X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/980846ab36eef12c152aa913267145b8bab2f326..6e05c6365eec005caa3198a13bb071c782b8b192:/src/kitemviews/kfileitemlistview.cpp diff --git a/src/kitemviews/kfileitemlistview.cpp b/src/kitemviews/kfileitemlistview.cpp index fd01f2c4c..3c1ef1b98 100644 --- a/src/kitemviews/kfileitemlistview.cpp +++ b/src/kitemviews/kfileitemlistview.cpp @@ -19,19 +19,16 @@ #include "kfileitemlistview.h" -#include "kfileitemmodelrolesupdater.h" #include "kfileitemlistwidget.h" #include "kfileitemmodel.h" -#include -#include +#include "kfileitemmodelrolesupdater.h" #include "private/kpixmapmodifier.h" -#include -#include -#include +#include +#include +#include #include -#include #include // #define KFILEITEMLISTVIEW_DEBUG @@ -45,15 +42,15 @@ 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; } KFileItemListView::KFileItemListView(QGraphicsWidget* parent) : KStandardItemListView(parent), - m_modelRolesUpdater(0), - m_updateVisibleIndexRangeTimer(0), - m_updateIconSizeTimer(0) + m_modelRolesUpdater(nullptr), + m_updateVisibleIndexRangeTimer(nullptr), + m_updateIconSizeTimer(nullptr) { setAcceptDrops(true); @@ -62,14 +59,14 @@ KFileItemListView::KFileItemListView(QGraphicsWidget* parent) : m_updateVisibleIndexRangeTimer = new QTimer(this); m_updateVisibleIndexRangeTimer->setSingleShot(true); m_updateVisibleIndexRangeTimer->setInterval(ShortInterval); - connect(m_updateVisibleIndexRangeTimer, SIGNAL(timeout()), this, SLOT(updateVisibleIndexRange())); + connect(m_updateVisibleIndexRangeTimer, &QTimer::timeout, this, &KFileItemListView::updateVisibleIndexRange); m_updateIconSizeTimer = new QTimer(this); m_updateIconSizeTimer->setSingleShot(true); m_updateIconSizeTimer->setInterval(LongInterval); - connect(m_updateIconSizeTimer, SIGNAL(timeout()), this, SLOT(updateIconSize())); + connect(m_updateIconSizeTimer, &QTimer::timeout, this, &KFileItemListView::updateIconSize); - setVisibleRoles(QList() << "text"); + setVisibleRoles({"text"}); } KFileItemListView::~KFileItemListView() @@ -158,21 +155,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(); if (pixmap.isNull()) { - KIcon icon(model()->data(index).value("iconName").toString()); + 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); @@ -208,7 +207,7 @@ void KFileItemListView::initializeItemListWidget(KItemListWidget* item) const KFileItem fileItem = fileItemModel->fileItem(item->index()); data.insert("iconName", fileItem.iconName()); - item->setData(data, QSet() << "iconName"); + item->setData(data, {"iconName"}); } } @@ -229,7 +228,7 @@ void KFileItemListView::onModelChanged(KItemModelBase* current, KItemModelBase* KStandardItemListView::onModelChanged(current, previous); delete m_modelRolesUpdater; - m_modelRolesUpdater = 0; + m_modelRolesUpdater = nullptr; if (current) { m_modelRolesUpdater = new KFileItemModelRolesUpdater(static_cast(current), this); @@ -396,6 +395,7 @@ void KFileItemListView::applyRolesToModel() roles.insert("text"); roles.insert("isDir"); roles.insert("isLink"); + roles.insert("isHidden"); if (supportsItemExpanding()) { roles.insert("isExpanded"); roles.insert("isExpandable"); @@ -421,4 +421,3 @@ QSize KFileItemListView::availableIconSize() const return QSize(iconSize, iconSize); } -#include "kfileitemlistview.moc"