X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/00b00d2371e0f65da0c6bf30775ae43f536ab807..16e3d669de256aab86f957cd5b3bee91bd2fbbff:/src/kitemviews/kstandarditemlistwidget.cpp diff --git a/src/kitemviews/kstandarditemlistwidget.cpp b/src/kitemviews/kstandarditemlistwidget.cpp index 170517754..51c5bc896 100644 --- a/src/kitemviews/kstandarditemlistwidget.cpp +++ b/src/kitemviews/kstandarditemlistwidget.cpp @@ -40,7 +40,6 @@ #include #include #include -#include #include // #define KSTANDARDITEMLISTWIDGET_DEBUG @@ -685,7 +684,7 @@ void KStandardItemListWidget::dataChanged(const QHash& cur // The URL might have changed (i.e., if the sort order of the items has // been changed). Therefore, the "is cut" state must be updated. KFileItemClipboard* clipboard = KFileItemClipboard::instance(); - const QUrl itemUrl = data().value("url").value(); + const QUrl itemUrl = data().value("url").toUrl(); m_isCut = clipboard->isCut(itemUrl); // The icon-state might depend from other roles and hence is @@ -836,7 +835,7 @@ void KStandardItemListWidget::showEvent(QShowEvent* event) // Listen to changes of the clipboard to mark the item as cut/uncut KFileItemClipboard* clipboard = KFileItemClipboard::instance(); - const QUrl itemUrl = data().value("url").value(); + const QUrl itemUrl = data().value("url").toUrl(); m_isCut = clipboard->isCut(itemUrl); connect(clipboard, &KFileItemClipboard::cutItemsChanged, @@ -853,7 +852,7 @@ void KStandardItemListWidget::hideEvent(QHideEvent* event) void KStandardItemListWidget::slotCutItemsChanged() { - const QUrl itemUrl = data().value("url").value(); + const QUrl itemUrl = data().value("url").toUrl(); const bool isCut = KFileItemClipboard::instance()->isCut(itemUrl); if (m_isCut != isCut) { m_isCut = isCut; @@ -952,13 +951,12 @@ void KStandardItemListWidget::updatePixmapCache() if (iconName.isEmpty()) { // The icon-name has not been not resolved by KFileItemModelRolesUpdater, // use a generic icon as fallback - iconName = QLatin1String("unknown"); + iconName = QStringLiteral("unknown"); } const QStringList overlays = values["iconOverlays"].toStringList(); m_pixmap = pixmapForIcon(iconName, overlays, maxIconHeight); -// qDebug() << "attempt 2 - setting pixmap to one of size " << m_pixmap.size() << m_pixmap.devicePixelRatio(); - } else if (m_pixmap.width() / qApp->devicePixelRatio() != maxIconWidth || m_pixmap.height() / qApp->devicePixelRatio() != maxIconHeight) { + } else if (m_pixmap.width() / m_pixmap.devicePixelRatio() != maxIconWidth || m_pixmap.height() / m_pixmap.devicePixelRatio() != maxIconHeight) { // A custom pixmap has been applied. Assure that the pixmap // is scaled to the maximum available size. KPixmapModifier::scale(m_pixmap, QSize(maxIconWidth, maxIconHeight) * qApp->devicePixelRatio()); @@ -1357,9 +1355,10 @@ void KStandardItemListWidget::updateAdditionalInfoTextColor() void KStandardItemListWidget::drawPixmap(QPainter* painter, const QPixmap& pixmap) { - if (m_scaledPixmapSize * qApp->devicePixelRatio() != pixmap.size()) { + if (m_scaledPixmapSize != pixmap.size() / pixmap.devicePixelRatio()) { QPixmap scaledPixmap = pixmap; KPixmapModifier::scale(scaledPixmap, m_scaledPixmapSize * qApp->devicePixelRatio()); + scaledPixmap.setDevicePixelRatio(qApp->devicePixelRatio()); painter->drawPixmap(m_pixmapPos, scaledPixmap); #ifdef KSTANDARDITEMLISTWIDGET_DEBUG @@ -1391,7 +1390,7 @@ void KStandardItemListWidget::drawSiblingsInformation(QPainter* painter) if (m_isExpandable) { option.state |= QStyle::State_Children; } - if (data()["isExpanded"].toBool()) { + if (data().value("isExpanded").toBool()) { option.state |= QStyle::State_Open; } isItemSibling = false; @@ -1441,12 +1440,13 @@ void KStandardItemListWidget::closeRoleEditor() QPixmap KStandardItemListWidget::pixmapForIcon(const QString& name, const QStringList& overlays, int size) { + static const QIcon fallbackIcon = QIcon::fromTheme(QStringLiteral("unknown")); size *= qApp->devicePixelRatio(); - const QString key = "KStandardItemListWidget:" % name % ":" % overlays.join(":") % ":" % QString::number(size); + const QString key = "KStandardItemListWidget:" % name % ":" % overlays.join(QStringLiteral(":")) % ":" % QString::number(size); QPixmap pixmap; if (!QPixmapCache::find(key, pixmap)) { - const QIcon icon = QIcon::fromTheme(name); + const QIcon icon = QIcon::fromTheme(name, fallbackIcon); int requestedSize; if (size <= KIconLoader::SizeSmall) {