diff options
Diffstat (limited to 'src/kitemviews/kfileitemlistview.cpp')
| -rw-r--r-- | src/kitemviews/kfileitemlistview.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/kitemviews/kfileitemlistview.cpp b/src/kitemviews/kfileitemlistview.cpp index 03f379837..25f7738bf 100644 --- a/src/kitemviews/kfileitemlistview.cpp +++ b/src/kitemviews/kfileitemlistview.cpp @@ -97,8 +97,17 @@ bool KFileItemListView::previewsShown() const void KFileItemListView::setItemLayout(Layout layout) { if (m_itemLayout != layout) { + const bool updateRoles = (m_itemLayout == DetailsLayout || layout == DetailsLayout); m_itemLayout = layout; + if (updateRoles) { + // The details-layout requires some invisible roles that + // must be added to the model if the new layout is "details". + // If the old layout was "details" the roles will get removed. + applyRolesToModel(); + } updateLayoutOfVisibleItems(); + + setSupportsItemExpanding(m_itemLayout == DetailsLayout); } } @@ -234,11 +243,6 @@ QHash<QByteArray, QSizeF> KFileItemListView::visibleRolesSizes(const KItemRangeL return sizes; } -bool KFileItemListView::supportsItemExpanding() const -{ - return m_itemLayout == DetailsLayout; -} - QPixmap KFileItemListView::createDragPixmap(const QSet<int>& indexes) const { if (!model()) { |
