From 31baa4ee85d9bc9ba1762752d4d33980a7c810a3 Mon Sep 17 00:00:00 2001 From: liuyangming Date: Mon, 15 Jan 2024 13:38:58 +0800 Subject: [PATCH] fix: [menu]view mode menu issue add tree view mode action in empty area menu. Log: fix menu issue Bug: https://pms.uniontech.com/bug-view-239753.html --- .../menus/sortanddisplaymenuscene.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/plugins/filemanager/core/dfmplugin-workspace/menus/sortanddisplaymenuscene.cpp b/src/plugins/filemanager/core/dfmplugin-workspace/menus/sortanddisplaymenuscene.cpp index 78474a292d..ee89430a1d 100644 --- a/src/plugins/filemanager/core/dfmplugin-workspace/menus/sortanddisplaymenuscene.cpp +++ b/src/plugins/filemanager/core/dfmplugin-workspace/menus/sortanddisplaymenuscene.cpp @@ -11,6 +11,7 @@ #include #include #include +#include #include @@ -39,6 +40,7 @@ SortAndDisplayMenuScene::SortAndDisplayMenuScene(QObject *parent) // 显示子菜单 d->predicateName[ActionID::kDisplayIcon] = tr("Icon"); d->predicateName[ActionID::kDisplayList] = tr("List"); + d->predicateName[ActionID::kDisplayTree] = tr("Tree"); } SortAndDisplayMenuScene::~SortAndDisplayMenuScene() @@ -103,6 +105,12 @@ bool SortAndDisplayMenuScene::triggered(QAction *action) dpfSignalDispatcher->publish(DFMBASE_NAMESPACE::kSwitchViewMode, d->windowId, int(Global::ViewMode::kListMode)); return true; } + + // display as tree + if (actionId == ActionID::kDisplayTree) { + dpfSignalDispatcher->publish(DFMBASE_NAMESPACE::kSwitchViewMode, d->windowId, int(Global::ViewMode::kTreeMode)); + return true; + } } // sort by @@ -197,6 +205,13 @@ QMenu *SortAndDisplayMenuScenePrivate::addDisplayAsActions(QMenu *menu) predicateAction[ActionID::kDisplayList] = tempAction; tempAction->setProperty(ActionPropertyKey::kActionID, QString(ActionID::kDisplayList)); + if (DConfigManager::instance()->value(kViewDConfName, kTreeViewEnable, true).toBool()) { + tempAction = subMenu->addAction(predicateName.value(ActionID::kDisplayTree)); + tempAction->setCheckable(true); + predicateAction[ActionID::kDisplayTree] = tempAction; + tempAction->setProperty(ActionPropertyKey::kActionID, QString(ActionID::kDisplayTree)); + } + return subMenu; } @@ -239,6 +254,9 @@ void SortAndDisplayMenuScenePrivate::updateEmptyAreaActionState() case Global::ViewMode::kListMode: predicateAction[ActionID::kDisplayList]->setChecked(true); break; + case Global::ViewMode::kTreeMode: + predicateAction[ActionID::kDisplayTree]->setChecked(true); + break; default: break; }