[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    koffice/kspread
From:       Stefan Nikolaus <nikolaus4 () googlemail ! com>
Date:       2008-05-31 20:51:14
Message-ID: 1212267074.178339.16720.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 814988 by nikolaus:

Printing	More work on shape printing.


 M  +0 -1      PrintManager.cpp  
 M  +8 -7      ui/PrintJob.cpp  


--- trunk/koffice/kspread/PrintManager.cpp #814987:814988
@@ -284,7 +284,6 @@
 
     // setup the QPainter
     painter.save();
-    painter.translate(pageLayout.left, pageLayout.top);
     painter.scale(d->zoomHandler->zoomedResolutionX(), d->zoomHandler->zoomedResolutionY());
     painter.setClipRect(0.0, 0.0, pageLayout.width, pageLayout.height);
 
--- trunk/koffice/kspread/ui/PrintJob.cpp #814987:814988
@@ -197,12 +197,14 @@
         return;
 
     // Prepare the page for shape printing.
-    const QRectF printerPageRect = printer().pageRect(QPrinter::Point);
-    painter().translate(printerPageRect.left(), printerPageRect.top());
+    const double scale = POINT_TO_INCH(printer().resolution());
+    const KoPageLayout pageLayout = sheet->printSettings()->pageLayout();
+    painter().translate(pageLayout.left * scale, pageLayout.top * scale);
     const QRect cellRange = sheet->printManager()->cellRange(sheetPageNumber);
     const QRectF pageRect = sheet->cellCoordinatesToDocument(cellRange);
-    painter().translate(pageRect.left(), pageRect.top());
-    painter().setClipRect(0.0, 0.0, pageRect.width(), pageRect.height());
+    painter().translate(-pageRect.left() * scale, -pageRect.top() * scale);
+    painter().setClipRect(pageRect.left() * scale, pageRect.top() * scale,
+                          pageRect.width() * scale, pageRect.height() * scale);
 }
 
 void PrintJob::printPage(int pageNumber, QPainter &painter)
@@ -215,11 +217,10 @@
     if (sheet)
     {
         // Reset the offset.
-        const QRectF printerPageRect = printer().pageRect(QPrinter::Point);
-        painter.translate(-printerPageRect.left(), -printerPageRect.top());
+        const double scale = POINT_TO_INCH(printer().resolution());
         const QRect cellRange = sheet->printManager()->cellRange(sheetPageNumber);
         const QRectF pageRect = sheet->cellCoordinatesToDocument(cellRange);
-        painter.translate(-pageRect.left(), -pageRect.top());
+        painter.translate(pageRect.left() * scale, pageRect.top() * scale);
 
         sheet->printManager()->printPage(sheetPageNumber, painter);
     }
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic