From 779910895a66df5827f937eaa1884aa50cba41c5 Mon Sep 17 00:00:00 2001 From: Aleksei Nikiforov Date: Fri, 14 Feb 2020 17:10:29 +0300 Subject: [PATCH] Hide top level scrollkeeper menu item if it has no children --- khelpcenter/navigator.cpp | 2 +- khelpcenter/scrollkeepertreebuilder.cpp | 7 +++++++ khelpcenter/scrollkeepertreebuilder.h | 2 ++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/khelpcenter/navigator.cpp b/khelpcenter/navigator.cpp index e0ce4906..1eb9d228 100644 --- a/khelpcenter/navigator.cpp +++ b/khelpcenter/navigator.cpp @@ -281,7 +281,7 @@ void Navigator::insertInfoDocs( NavigatorItem *topItem ) void Navigator::insertScrollKeeperDocs( NavigatorItem *topItem ) { ScrollKeeperTreeBuilder *builder = new ScrollKeeperTreeBuilder( this ); - builder->build( topItem ); + builder->buildOrHide( topItem ); } void Navigator::selectItem( const QUrl &url ) diff --git a/khelpcenter/scrollkeepertreebuilder.cpp b/khelpcenter/scrollkeepertreebuilder.cpp index 58e2a9e8..d847a78d 100644 --- a/khelpcenter/scrollkeepertreebuilder.cpp +++ b/khelpcenter/scrollkeepertreebuilder.cpp @@ -45,6 +45,13 @@ void ScrollKeeperTreeBuilder::loadConfig() mShowEmptyDirs = Prefs::showEmptyDirs(); } +void ScrollKeeperTreeBuilder::buildOrHide( NavigatorItem *parent ) +{ + build(parent); + + parent->setHidden(parent->childCount() == 0); +} + void ScrollKeeperTreeBuilder::build( NavigatorItem *parent ) { QString lang = QLocale().bcp47Name(); diff --git a/khelpcenter/scrollkeepertreebuilder.h b/khelpcenter/scrollkeepertreebuilder.h index 6672a694..d4c6aaa9 100644 --- a/khelpcenter/scrollkeepertreebuilder.h +++ b/khelpcenter/scrollkeepertreebuilder.h @@ -36,6 +36,8 @@ class ScrollKeeperTreeBuilder : public QObject void build( NavigatorItem *parent ); + void buildOrHide( NavigatorItem *parent ); + private: void loadConfig(); int insertSection( NavigatorItem *parent, -- 2.24.1