From 3b9f4f3cb0b53aabe6bdf87ef46051821282da11 Mon Sep 17 00:00:00 2001 From: Wilfried Huss Date: Thu, 22 Jun 2006 20:29:53 +0000 Subject: [PATCH] port of commit 553998: I should remember to always also test DVI-files that contain no papersize-special. This is only a temporary fix, because the code that handles paper sizes needs a rewrite anyway. svn path=/trunk/KDE/kdegraphics/kviewshell/plugins/dvi/; revision=554000 --- dviRenderer.cpp | 6 ++++++ kdvi_multipage.cpp | 6 +++++- renderedDviPagePixmap.h | 2 ++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/dviRenderer.cpp b/dviRenderer.cpp index 2fe398383..38f8727de 100644 --- a/dviRenderer.cpp +++ b/dviRenderer.cpp @@ -160,6 +160,12 @@ RenderedDocumentPagePixmap* dviRenderer::drawPage(const JobId& id) globalColor = Qt::black; SimplePageSize ps = sizeOfPage(page->getPageNumber()); + if (!ps.isValid()) + { + RenderedDviPagePixmap* DVIpage = static_cast(page); + ps = DVIpage->customPageSize; + } + int pageHeight = ps.sizeInPixel(resolution).height(); int pageWidth = ps.sizeInPixel(resolution).width(); page->resize(pageWidth, pageHeight); diff --git a/kdvi_multipage.cpp b/kdvi_multipage.cpp index b9b430620..0eca4f09c 100644 --- a/kdvi_multipage.cpp +++ b/kdvi_multipage.cpp @@ -412,8 +412,12 @@ DocumentWidget* KDVIMultiPage::createDocumentWidget(PageView *parent, DocumentPa RenderedDocumentPagePixmap* KDVIMultiPage::createDocumentPagePixmap(JobId id) const { - RenderedDocumentPagePixmap* page = new RenderedDviPagePixmap(id); + RenderedDviPagePixmap* page = new RenderedDviPagePixmap(id); page->setupObservers(dataModel); + + // Needed for DVI files without a papersize-special + page->customPageSize = dataModel->userPreferredPageSize(); + return page; } diff --git a/renderedDviPagePixmap.h b/renderedDviPagePixmap.h index 5e2745858..96567acb1 100644 --- a/renderedDviPagePixmap.h +++ b/renderedDviPagePixmap.h @@ -44,6 +44,8 @@ class RenderedDviPagePixmap : public RenderedDocumentPagePixmap generated when the current page is drawn. */ Q3ValueVector sourceHyperLinkList; + + SimplePageSize customPageSize; }; #endif