]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/kitemviews/kstandarditemlistwidget.cpp
Remove redundant data from KItemListViewLayouter's ItemInfo struct
[dolphin.git] / src / kitemviews / kstandarditemlistwidget.cpp
index 302150fec1267d93a094a3c5d2b0e3400acc41ca..acdf839aca58923f1c0bcac8dddf86f9ef0ae045 100644 (file)
@@ -99,11 +99,18 @@ QSizeF KStandardItemListWidgetInformant::itemSizeHint(int index, const KItemList
         // to show all roles without horizontal clipping.
         qreal maximumRequiredWidth = 0.0;
 
-        const QHash<QByteArray, QVariant> values = view->model()->data(index);
-        foreach (const QByteArray& role, view->visibleRoles()) {
-            const QString text = roleText(role, values);
-            const qreal requiredWidth = option.fontMetrics.width(text);
-            maximumRequiredWidth = qMax(maximumRequiredWidth, requiredWidth);
+        const QList<QByteArray>& visibleRoles = view->visibleRoles();
+        const bool showOnlyTextRole = (visibleRoles.count() == 1) && (visibleRoles.first() == "text");
+
+        if (showOnlyTextRole) {
+            maximumRequiredWidth = option.fontMetrics.width(itemText(index, view));
+        } else {
+            const QHash<QByteArray, QVariant> values = view->model()->data(index);
+            foreach (const QByteArray& role, view->visibleRoles()) {
+                const QString text = roleText(role, values);
+                const qreal requiredWidth = option.fontMetrics.width(text);
+                maximumRequiredWidth = qMax(maximumRequiredWidth, requiredWidth);
+            }
         }
 
         qreal width = option.padding * 4 + option.iconSize + maximumRequiredWidth;