diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/kitemviews/kfileitemlistview.cpp | 2 | ||||
| -rw-r--r-- | src/kitemviews/kitemlistheader.cpp | 2 | ||||
| -rw-r--r-- | src/kitemviews/kitemlistheader_p.h | 2 | ||||
| -rw-r--r-- | src/kitemviews/kitemlistview.cpp | 28 |
4 files changed, 17 insertions, 17 deletions
diff --git a/src/kitemviews/kfileitemlistview.cpp b/src/kitemviews/kfileitemlistview.cpp index 796a45099..54d858c1e 100644 --- a/src/kitemviews/kfileitemlistview.cpp +++ b/src/kitemviews/kfileitemlistview.cpp @@ -513,7 +513,7 @@ QSizeF KFileItemListView::visibleRoleSizeHint(int index, const QByteArray& role) if (role == "name") { // Increase the width by the expansion-toggle and the current expansion level const int expandedParentsCount = values.value("expandedParentsCount", 0).toInt(); - width += option.padding + expandedParentsCount * itemSize().height() + KIconLoader::SizeSmall; + width += option.padding + (expandedParentsCount + 1) * itemSize().height() + KIconLoader::SizeSmall; // Increase the width by the required space for the icon width += option.padding * 2 + option.iconSize; diff --git a/src/kitemviews/kitemlistheader.cpp b/src/kitemviews/kitemlistheader.cpp index dfe76bc95..ea714c96f 100644 --- a/src/kitemviews/kitemlistheader.cpp +++ b/src/kitemviews/kitemlistheader.cpp @@ -95,7 +95,7 @@ QList<QByteArray> KItemListHeader::visibleRoles() const return m_visibleRoles; } -void KItemListHeader::setVisibleRolesWidths(const QHash<QByteArray, qreal> rolesWidths) +void KItemListHeader::setVisibleRolesWidths(const QHash<QByteArray, qreal>& rolesWidths) { m_visibleRolesWidths = rolesWidths; diff --git a/src/kitemviews/kitemlistheader_p.h b/src/kitemviews/kitemlistheader_p.h index 364a5f1c0..a0e54f5e3 100644 --- a/src/kitemviews/kitemlistheader_p.h +++ b/src/kitemviews/kitemlistheader_p.h @@ -44,7 +44,7 @@ public: void setVisibleRoles(const QList<QByteArray>& roles); QList<QByteArray> visibleRoles() const; - void setVisibleRolesWidths(const QHash<QByteArray, qreal> rolesWidths); + void setVisibleRolesWidths(const QHash<QByteArray, qreal>& rolesWidths); QHash<QByteArray, qreal> visibleRolesWidths() const; qreal minimumRoleWidth() const; diff --git a/src/kitemviews/kitemlistview.cpp b/src/kitemviews/kitemlistview.cpp index 678b09bff..0880687e1 100644 --- a/src/kitemviews/kitemlistview.cpp +++ b/src/kitemviews/kitemlistview.cpp @@ -1998,7 +1998,7 @@ void KItemListView::updateStretchedVisibleRolesSizes() // Calculate the maximum size of an item by considering the // visible role sizes and apply them to the layouter. If the - // size does not use the available view-size it the size of the + // size does not use the available view-size the size of the // first role will get stretched. m_stretchedVisibleRolesSizes = m_visibleRolesSizes; const QByteArray role = m_visibleRoles.first(); @@ -2009,25 +2009,25 @@ void KItemListView::updateStretchedVisibleRolesSizes() if (dynamicItemSize.width() <= 0) { const qreal requiredWidth = visibleRolesSizesWidthSum(); const qreal availableWidth = size().width(); - if (requiredWidth < availableWidth) { - // Stretch the first role to use the whole width for the item + if (requiredWidth != availableWidth) { + // Stretch the first role to use the whole remaining width firstRoleSize.rwidth() += availableWidth - requiredWidth; - m_stretchedVisibleRolesSizes.insert(role, firstRoleSize); - } - dynamicItemSize.setWidth(qMax(requiredWidth, availableWidth)); - } - if (dynamicItemSize.height() <= 0) { - const qreal requiredHeight = visibleRolesSizesHeightSum(); - const qreal availableHeight = size().height(); - if (requiredHeight < availableHeight) { - // Stretch the first role to use the whole height for the item - firstRoleSize.rheight() += availableHeight - requiredHeight; + // TODO: A proper calculation of the minimum width depends on the implementation + // of KItemListWidget. Probably a kind of minimum size-hint should be introduced + // later. + const qreal minWidth = m_styleOption.iconSize * 2 + 200; + if (firstRoleSize.width() < minWidth) { + firstRoleSize.rwidth() = minWidth; + } m_stretchedVisibleRolesSizes.insert(role, firstRoleSize); } - dynamicItemSize.setHeight(qMax(requiredHeight, availableHeight)); + dynamicItemSize.rwidth() = qMax(requiredWidth, availableWidth); } + // TODO: A dynamic item height (dynamicItemSize.height() <= 0) + // is not handled currently + m_layouter->setItemSize(dynamicItemSize); if (m_header) { |
