diff options
| author | David Edmundson <[email protected]> | 2015-03-05 15:12:52 +0100 |
|---|---|---|
| committer | David Edmundson <[email protected]> | 2015-03-25 18:31:40 +0100 |
| commit | 1fac8a7bbac28ea871f0a95dfe0b7d6ddcb2512a (patch) | |
| tree | 173e77598b44331d15e08fd9f690a12edb3f5a87 /src | |
| parent | 6a4d4463b8e7ed09b5a93e1199e7630e49e80071 (diff) | |
Create drag pixmaps which match the device pixel ratio
Diffstat (limited to 'src')
| -rw-r--r-- | src/kitemviews/kfileitemlistview.cpp | 8 | ||||
| -rw-r--r-- | src/kitemviews/kitemlistcontroller.cpp | 2 | ||||
| -rw-r--r-- | src/kitemviews/kitemlistwidget.cpp | 2 |
3 files changed, 9 insertions, 3 deletions
diff --git a/src/kitemviews/kfileitemlistview.cpp b/src/kitemviews/kfileitemlistview.cpp index d249bef91..18b193572 100644 --- a/src/kitemviews/kfileitemlistview.cpp +++ b/src/kitemviews/kfileitemlistview.cpp @@ -29,6 +29,8 @@ #include <QPainter> #include <QTimer> +#include <QGraphicsScene> +#include <QGraphicsView> // #define KFILEITEMLISTVIEW_DEBUG @@ -154,8 +156,10 @@ QPixmap KFileItemListView::createDragPixmap(const KItemSet& indexes) const yCount = xCount; } + 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); @@ -168,7 +172,7 @@ QPixmap KFileItemListView::createDragPixmap(const KItemSet& indexes) const 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); diff --git a/src/kitemviews/kitemlistcontroller.cpp b/src/kitemviews/kitemlistcontroller.cpp index a9ebf97af..1c86ff03f 100644 --- a/src/kitemviews/kitemlistcontroller.cpp +++ b/src/kitemviews/kitemlistcontroller.cpp @@ -1168,7 +1168,7 @@ void KItemListController::startDragging() const QPixmap pixmap = m_view->createDragPixmap(selectedItems); drag->setPixmap(pixmap); - const QPoint hotSpot(pixmap.width() / 2, 0); + const QPoint hotSpot((pixmap.width() / pixmap.devicePixelRatio()) / 2, 0); drag->setHotSpot(hotSpot); drag->exec(Qt::MoveAction | Qt::CopyAction | Qt::LinkAction, Qt::CopyAction); diff --git a/src/kitemviews/kitemlistwidget.cpp b/src/kitemviews/kitemlistwidget.cpp index 3eb6b1d71..596d1d709 100644 --- a/src/kitemviews/kitemlistwidget.cpp +++ b/src/kitemviews/kitemlistwidget.cpp @@ -369,6 +369,8 @@ QPixmap KItemListWidget::createDragPixmap(const QStyleOptionGraphicsItem* option QWidget* widget) { QPixmap pixmap(size().toSize()); + QPixmap pixmap(size().toSize() * widget->devicePixelRatio()); + pixmap.setDevicePixelRatio(widget->devicePixelRatio()); pixmap.fill(Qt::transparent); QPainter painter(&pixmap); |
