]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/kitemviews/kfileitemlistview.cpp
Merge branch 'Applications/16.04'
[dolphin.git] / src / kitemviews / kfileitemlistview.cpp
index d249bef91b9e0314c585f08885306b272a43a9e3..1b6071820c2c1470a58d26a50d22e1dec112aae2 100644 (file)
@@ -29,6 +29,8 @@
 
 #include <QPainter>
 #include <QTimer>
+#include <QGraphicsScene>
+#include <QGraphicsView>
 
 // #define KFILEITEMLISTVIEW_DEBUG
 
@@ -41,7 +43,7 @@ namespace {
 
     // If the icon size changes, a longer delay is used. This prevents that
     // the expensive re-generation of all previews is triggered repeatedly when
-    // chaning the zoom level.
+    // changing the zoom level.
     const int LongInterval = 300;
 }
 
@@ -154,21 +156,23 @@ QPixmap KFileItemListView::createDragPixmap(const KItemSet& indexes) const
         yCount = xCount;
     }
 
+    const qreal dpr = scene()->views()[0]->devicePixelRatio();
     // Draw the selected items into the grid cells.
-    QPixmap dragPixmap(xCount * size + xCount, yCount * size + yCount);
+    QPixmap dragPixmap(QSize(xCount * size + xCount, yCount * size + yCount) * dpr);
+    dragPixmap.setDevicePixelRatio(dpr);
     dragPixmap.fill(Qt::transparent);
 
     QPainter painter(&dragPixmap);
     int x = 0;
     int y = 0;
 
-    foreach (int index, indexes) {
+    for (int index : indexes) {
         QPixmap pixmap = model()->data(index).value("iconPixmap").value<QPixmap>();
         if (pixmap.isNull()) {
             QIcon icon = QIcon::fromTheme(model()->data(index).value("iconName").toString());
             pixmap = icon.pixmap(size, size);
         } else {
-            KPixmapModifier::scale(pixmap, QSize(size, size));
+            KPixmapModifier::scale(pixmap, QSize(size, size) * dpr);
         }
 
         painter.drawPixmap(x, y, pixmap);