]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Center align pixmaps in a high DPR friendly way
authorDavid Edmundson <kde@davidedmundson.co.uk>
Wed, 11 Mar 2015 16:16:49 +0000 (17:16 +0100)
committerDavid Edmundson <kde@davidedmundson.co.uk>
Wed, 25 Mar 2015 11:31:49 +0000 (12:31 +0100)
src/panels/information/pixmapviewer.cpp

index 0053e43f974e8b5d50ff81ffa3477080df8333fa..0874f2b3915c100ce8b9a7d223d1647050d5046c 100644 (file)
@@ -23,6 +23,7 @@
 
 #include <QPainter>
 #include <QPixmap>
+#include <QStyle>
 
 PixmapViewer::PixmapViewer(QWidget* parent, Transition transition) :
     QWidget(parent),
@@ -94,9 +95,6 @@ void PixmapViewer::paintEvent(QPaintEvent* event)
         const int scaledWidth  = static_cast<int>((m_oldPixmap.width()  * (1.0 - value)) + (m_pixmap.width()  * value));
         const int scaledHeight = static_cast<int>((m_oldPixmap.height() * (1.0 - value)) + (m_pixmap.height() * value));
 
-        const int x = (width()  - scaledWidth ) / 2;
-        const int y = (height() - scaledHeight) / 2;
-
         const bool useOldPixmap = (m_transition == SizeTransition) &&
                                   (m_oldPixmap.width() > m_pixmap.width());
         const QPixmap& largePixmap = useOldPixmap ? m_oldPixmap : m_pixmap;
@@ -105,12 +103,11 @@ void PixmapViewer::paintEvent(QPaintEvent* event)
                                                             scaledHeight,
                                                             Qt::IgnoreAspectRatio,
                                                             Qt::FastTransformation);
-            painter.drawPixmap(x, y, scaledPixmap);
+
+            style()->drawItemPixmap(&painter, rect(), Qt::AlignCenter, scaledPixmap);
        }
     } else {
-        const int x = (width()  - m_pixmap.width() ) / 2;
-        const int y = (height() - m_pixmap.height()) / 2;
-        painter.drawPixmap(x, y, m_pixmap);
+        style()->drawItemPixmap(&painter, rect(), Qt::AlignCenter, m_pixmap);
     }
 }