From a27443d904bc220615f2c4e8df74187b0c806d8a Mon Sep 17 00:00:00 2001 From: Akseli Lahtinen Date: Mon, 24 Feb 2025 18:39:22 +0000 Subject: Add smaller statusbar and set it as default - Statusbar has three modes: Small, FullWidth and Disabled - FullWidth is the original statusbar - Small is the new default statusbar - This statusbar overlays on top of the items instead of taking space - It changes size according to content - Disabled turns statusbar completely off - Zoom slider and space information is only shown in full-width statusbar - Space information is now always on - If user navigates with keyboard, or scrolls to selection, the scrolling will take the statusbar into account - This makes sure the statusbar does not cover any items Related discussion: https://invent.kde.org/system/dolphin/-/issues/50 --- src/kitemviews/private/kitemlistviewlayouter.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/kitemviews/private/kitemlistviewlayouter.cpp') diff --git a/src/kitemviews/private/kitemlistviewlayouter.cpp b/src/kitemviews/private/kitemlistviewlayouter.cpp index 99a95d98c..3ed2343a8 100644 --- a/src/kitemviews/private/kitemlistviewlayouter.cpp +++ b/src/kitemviews/private/kitemlistviewlayouter.cpp @@ -40,6 +40,7 @@ KItemListViewLayouter::KItemListViewLayouter(KItemListSizeHintResolver *sizeHint , m_groupHeaderHeight(0) , m_groupHeaderMargin(0) , m_itemInfos() + , m_statusBarOffset(0) { Q_ASSERT(m_sizeHintResolver); } @@ -341,6 +342,13 @@ void KItemListViewLayouter::markAsDirty() m_dirty = true; } +void KItemListViewLayouter::setStatusBarOffset(int offset) +{ + if (m_statusBarOffset != offset) { + m_statusBarOffset = offset; + } +} + #ifndef QT_NO_DEBUG bool KItemListViewLayouter::isDirty() { @@ -378,6 +386,7 @@ void KItemListViewLayouter::doLayout() itemSize.transpose(); itemMargin.transpose(); size.transpose(); + size.rwidth() -= m_statusBarOffset; if (grouped) { // In the horizontal scrolling case all groups are aligned -- cgit v1.3