From 54f6027ff7e5c698377f9eb68d4a9c18882d1e03 Mon Sep 17 00:00:00 2001 From: PaddleStroke Date: Mon, 6 Jan 2025 18:26:01 +0100 Subject: [PATCH] Customize menus --- src/Gui/Tree.cpp | 2 +- src/Gui/Workbench.cpp | 38 +++++--------------- src/Mod/Measure/Gui/WorkbenchManipulator.cpp | 13 +++++-- src/Mod/Part/Gui/WorkbenchManipulator.cpp | 4 +-- 4 files changed, 21 insertions(+), 36 deletions(-) diff --git a/src/Gui/Tree.cpp b/src/Gui/Tree.cpp index 655fd41dc646b..7ec6f202178dd 100644 --- a/src/Gui/Tree.cpp +++ b/src/Gui/Tree.cpp @@ -1006,7 +1006,7 @@ void TreeWidget::contextMenuEvent(QContextMenuEvent* e) MenuItem view; Gui::Application::Instance->setupContextMenu("Tree", &view); - view << "Std_Properties" << "Separator" << "Std_Expressions"; + view << "Std_Group" << "Separator" << "Std_Properties" << "Separator" << "Std_Expressions"; Workbench::createLinkMenu(&view); QMenu contextMenu; diff --git a/src/Gui/Workbench.cpp b/src/Gui/Workbench.cpp index c64de9151ac3e..8a514ec3841f8 100644 --- a/src/Gui/Workbench.cpp +++ b/src/Gui/Workbench.cpp @@ -580,9 +580,6 @@ void StdWorkbench::setupContextMenu(const char* recipient, MenuItem* item) const { if (strcmp(recipient,"View") == 0) { - createLinkMenu(item); - *item << "Separator"; - auto StdViews = new MenuItem; StdViews->setCommand( "Standard views" ); @@ -590,9 +587,9 @@ void StdWorkbench::setupContextMenu(const char* recipient, MenuItem* item) const << "Std_ViewRear" << "Std_ViewBottom" << "Std_ViewLeft" << "Separator" << "Std_ViewRotateLeft" << "Std_ViewRotateRight"; - *item << "Std_ViewFitAll" << "Std_ViewFitSelection" << "Std_AlignToSelection" << "Std_DrawStyle" - << StdViews << "Separator" - << "Std_ViewDockUndockFullscreen"; + *item << "Std_ViewFitAll" << "Std_ViewFitSelection" << "Std_AlignToSelection" + << "Separator" << StdViews + << "Separator" << "Std_DrawStyle" << "Std_ViewDockUndockFullscreen"; if (Gui::Selection().countObjectsOfType(App::DocumentObject::getClassTypeId()) > 0) { *item << "Separator" << "Std_ToggleVisibility" @@ -776,18 +773,10 @@ ToolBarItem* StdWorkbench::setupToolBars() const // File auto file = new ToolBarItem( root ); file->setCommand("File"); - *file << "Std_New" << "Std_Open" << "Std_Save"; - - // Edit - auto edit = new ToolBarItem( root ); - edit->setCommand("Edit"); - *edit << "Std_Undo" << "Std_Redo" - << "Separator" << "Std_Refresh"; - - // Clipboard - auto clipboard = new ToolBarItem( root , ToolBarItem::DefaultVisibility::Hidden ); - clipboard->setCommand("Clipboard"); - *clipboard << "Std_Cut" << "Std_Copy" << "Std_Paste"; + *file << "Std_NewGroup" << "Std_OpenGroup" << "Std_SaveGroup" + << "Separator" << "Std_Undo" << "Std_Redo" << "Std_Refresh" + << "Separator" << "Std_VarSet" << "Std_TextDocument" + << "Separator" << "Std_ToolsGroup"; // Workbench switcher auto wb = new ToolBarItem(root); @@ -800,12 +789,6 @@ ToolBarItem* StdWorkbench::setupToolBars() const *macro << "Std_DlgMacroRecord" << "Std_DlgMacroExecute" << "Std_DlgMacroExecuteDirect"; - // View - auto view = new ToolBarItem( root ); - view->setCommand("View"); - *view << "Std_ViewFitAll" << "Std_ViewFitSelection" << "Std_ViewGroup" << "Std_AlignToSelection" - << "Separator" << "Std_DrawStyle" << "Std_TreeViewActions"; - // Individual views auto individualViews = new ToolBarItem(root, ToolBarItem::DefaultVisibility::Hidden); individualViews->setCommand("Individual views"); @@ -817,15 +800,10 @@ ToolBarItem* StdWorkbench::setupToolBars() const << "Std_ViewBottom" << "Std_ViewLeft"; - // Structure - auto structure = new ToolBarItem( root ); - structure->setCommand("Structure"); - *structure << "Std_Part" << "Std_Group" << "Std_VarSet"; - // Help auto help = new ToolBarItem( root ); help->setCommand("Help"); - *help << "Std_WhatsThis"; + *help << "Std_HelpGroup"; return root; } diff --git a/src/Mod/Measure/Gui/WorkbenchManipulator.cpp b/src/Mod/Measure/Gui/WorkbenchManipulator.cpp index 0041db16d778d..2a177cc61c827 100644 --- a/src/Mod/Measure/Gui/WorkbenchManipulator.cpp +++ b/src/Mod/Measure/Gui/WorkbenchManipulator.cpp @@ -40,12 +40,19 @@ void WorkbenchManipulator::modifyMenuBar([[maybe_unused]] Gui::MenuItem* menuBar void WorkbenchManipulator::modifyToolBars(Gui::ToolBarItem* toolBar) { - auto tbView = toolBar->findItem("View"); - if (!tbView) { + auto tb = toolBar->findItem("File"); + if (!tb) { return; } auto itemMeasure = new Gui::ToolBarItem(); itemMeasure->setCommand("Std_Measure"); - tbView->appendItem(itemMeasure); + + auto item = tb->findItem("Std_ToolsGroup"); + if (item) { + tb->insertItem(item, itemMeasure); + } + else { + tb->appendItem(itemMeasure); + } } diff --git a/src/Mod/Part/Gui/WorkbenchManipulator.cpp b/src/Mod/Part/Gui/WorkbenchManipulator.cpp index eee8c4aecece1..0f8ec432d87c5 100644 --- a/src/Mod/Part/Gui/WorkbenchManipulator.cpp +++ b/src/Mod/Part/Gui/WorkbenchManipulator.cpp @@ -75,10 +75,10 @@ void WorkbenchManipulator::addSelectionFilter(Gui::ToolBarItem* toolBar) void WorkbenchManipulator::addDatums(Gui::ToolBarItem* toolBar) { - if (auto view = toolBar->findItem("Structure")) { + if (auto view = toolBar->findItem("File")) { auto add = new Gui::ToolBarItem(); // NOLINT add->setCommand("Part_Datums"); - auto item = view->findItem("Std_Group"); + auto item = view->findItem("Std_VarSet"); if (item) { view->insertItem(item, add); }