Author: jghali
Date: Tue Jan 12 12:34:22 2021
New Revision: 24394

URL: http://scribus.net/websvn/listing.php?repname=Scribus&sc=1&rev=24394
Log:
Backport r24302: Fix canvas drawing in case device pixel ratio is not an 
integer value

Modified:
    branches/Version156/Scribus/scribus/canvas.cpp

Modified: branches/Version156/Scribus/scribus/canvas.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=24394&path=/branches/Version156/Scribus/scribus/canvas.cpp
==============================================================================
--- branches/Version156/Scribus/scribus/canvas.cpp      (original)
+++ branches/Version156/Scribus/scribus/canvas.cpp      Tue Jan 12 12:34:22 2021
@@ -961,10 +961,10 @@
 //     QTime tim;
 //     tim.start();
 //     qDebug() << "Canvas::drawContents" << clipx << clipy << clipw << 
cliph<<m_viewMode.forceRedraw<<m_viewMode.operItemSelecting;
-       int docPagesCount=m_doc->Pages->count();
-       ScPainter *painter=nullptr;
-       QImage img = QImage(clipw * devicePixelRatio(), cliph * 
devicePixelRatio(), QImage::Format_ARGB32_Premultiplied);
-       img.setDevicePixelRatio(devicePixelRatio());
+       int docPagesCount = m_doc->Pages->count();
+       ScPainter *painter = nullptr;
+       QImage img = QImage(clipw * devicePixelRatioF(), cliph * 
devicePixelRatioF(), QImage::Format_ARGB32_Premultiplied);
+       img.setDevicePixelRatio(devicePixelRatioF());
        painter = new ScPainter(&img, img.width(), img.height(), 1.0, 0);
        painter->clear(palette().color(QPalette::Window));
        painter->newPath();
@@ -2405,17 +2405,17 @@
 
 QPixmap Canvas::createPixmap(double w, double h)
 {
-       QPixmap p(w * devicePixelRatio(), h * devicePixelRatio());
-       p.setDevicePixelRatio(devicePixelRatio());
+       QPixmap p(w * devicePixelRatioF(), h * devicePixelRatioF());
+       p.setDevicePixelRatio(devicePixelRatioF());
        return p;
 }
 
 void Canvas::drawPixmap(QPainter& painter, double x, double y, const QPixmap& 
pixmap, double sx, double sy, double sw, double sh)
 {
-       sx *= devicePixelRatio();
-       sy *= devicePixelRatio();
-       sw *= devicePixelRatio();
-       sh *= devicePixelRatio();
+       sx *= devicePixelRatioF();
+       sy *= devicePixelRatioF();
+       sw *= devicePixelRatioF();
+       sh *= devicePixelRatioF();
        painter.drawPixmap(x, y, pixmap, sx, sy, sw, sh);
 }
 


_______________________________________________
scribus-commit mailing list
[email protected]
http://lists.scribus.net/mailman/listinfo/scribus-commit

Reply via email to