diff options
Diffstat (limited to 'src/kitemviews/kstandarditemlistwidget.cpp')
| -rw-r--r-- | src/kitemviews/kstandarditemlistwidget.cpp | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/src/kitemviews/kstandarditemlistwidget.cpp b/src/kitemviews/kstandarditemlistwidget.cpp index 9c527fa17..175181271 100644 --- a/src/kitemviews/kstandarditemlistwidget.cpp +++ b/src/kitemviews/kstandarditemlistwidget.cpp @@ -226,8 +226,22 @@ void KStandardItemListWidgetInformant::calculateCompactLayoutItemSizeHints(QVect void KStandardItemListWidgetInformant::calculateDetailsLayoutItemSizeHints(QVector<qreal>& logicalHeightHints, qreal& logicalWidthHint, const KItemListView* view) const { const KItemListStyleOption& option = view->styleOption(); - const qreal height = option.padding * 2 + qMax(option.iconSize, option.fontMetrics.height()); - logicalHeightHints.fill(height); + + float zoomLevel = 1; + if (option.iconSize >= KIconLoader::SizeEnormous) { + zoomLevel = 2; + } else if (option.iconSize >= KIconLoader::SizeHuge) { + zoomLevel = 1.8; + } else if (option.iconSize >= KIconLoader::SizeLarge) { + zoomLevel = 1.6; + } else if (option.iconSize >= KIconLoader::SizeMedium) { + zoomLevel = 1.4; + } else if (option.iconSize >= KIconLoader::SizeSmallMedium) { + zoomLevel = 1.2; + } + + const qreal contentHeight = qMax<qreal>(option.iconSize, zoomLevel * option.fontMetrics.height()); + logicalHeightHints.fill(contentHeight + 2 * option.padding); logicalWidthHint = -1.0; } |
