┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/kitemviews/kfileitemlistview.cpp2
-rw-r--r--src/kitemviews/kitemlistheader.cpp2
-rw-r--r--src/kitemviews/kitemlistheader_p.h2
-rw-r--r--src/kitemviews/kitemlistview.cpp28
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) {