diff --git a/src/Gui/Workbench.cpp b/src/Gui/Workbench.cpp index 8cc0875c8c..b8767f7f44 100644 --- a/src/Gui/Workbench.cpp +++ b/src/Gui/Workbench.cpp @@ -596,7 +596,7 @@ void StdWorkbench::setupContextMenu(const char* recipient, MenuItem* item) const *item << "Std_ViewFitAll" << "Std_ViewFitSelection" << "Std_DrawStyle" - << StdViews << measure << "Std_SelectFilter" << "Separator" + << StdViews << measure << "Separator" << "Std_ViewDockUndockFullscreen"; if (Gui::Selection().countObjectsOfType(App::DocumentObject::getClassTypeId()) > 0) { @@ -804,7 +804,7 @@ ToolBarItem* StdWorkbench::setupToolBars() const *view << "Std_ViewFitAll" << "Std_ViewFitSelection" << "Std_ViewIsometric" << "Std_ViewFront"<< "Std_ViewTop" << "Std_ViewRight" << "Std_ViewRear" << "Std_ViewBottom"<< "Std_ViewLeft" - << "Separator" << "Std_DrawStyle" << "Std_SelectFilter" << "Std_TreeViewActions" + << "Separator" << "Std_DrawStyle" << "Std_TreeViewActions" << "Separator" << "Std_MeasureDistance"; // Structure @@ -829,7 +829,7 @@ ToolBarItem* StdWorkbench::setupCommandBars() const view->setCommand("Standard views"); *view << "Std_ViewFitAll" << "Std_ViewFitSelection" << "Std_ViewIsometric" << "Separator" << "Std_ViewFront" << "Std_ViewRight" << "Std_ViewTop" << "Separator" - << "Std_ViewRear" << "Std_ViewLeft" << "Std_ViewBottom" << "Std_SelectFilter"; + << "Std_ViewRear" << "Std_ViewLeft" << "Std_ViewBottom"; // Special Ops auto macro = new ToolBarItem( root ); diff --git a/src/Mod/Part/Gui/WorkbenchManipulator.cpp b/src/Mod/Part/Gui/WorkbenchManipulator.cpp index 95a19c8530..d8dc4d6ffc 100644 --- a/src/Mod/Part/Gui/WorkbenchManipulator.cpp +++ b/src/Mod/Part/Gui/WorkbenchManipulator.cpp @@ -36,10 +36,14 @@ void WorkbenchManipulator::modifyMenuBar([[maybe_unused]] Gui::MenuItem* menuBar void WorkbenchManipulator::modifyContextMenu(const char* recipient, Gui::MenuItem* menuBar) { + if (strcmp(recipient, "View") == 0) { + addSelectionFilter(menuBar); + } } void WorkbenchManipulator::modifyToolBars(Gui::ToolBarItem* toolBar) { + addSelectionFilter(toolBar); } void WorkbenchManipulator::modifyDockWindows([[maybe_unused]] Gui::DockWindowItems* dockWindow) @@ -59,3 +63,27 @@ void WorkbenchManipulator::addSectionCut(Gui::MenuItem* menuBar) par->insertItem(item, add); } } + +void WorkbenchManipulator::addSelectionFilter(Gui::ToolBarItem* toolBar) +{ + if (auto view = toolBar->findItem("View")) { + auto add = new Gui::ToolBarItem(); // NOLINT + add->setCommand("Part_SelectFilter"); + auto item = view->findItem("Std_TreeViewActions"); + if (item) { + view->insertItem(item, add); + } + else { + view->appendItem(add); + } + } +} + +void WorkbenchManipulator::addSelectionFilter(Gui::MenuItem* menuBar) +{ + if (auto measure = menuBar->findItem("Measure")) { + auto add = new Gui::MenuItem(); // NOLINT + add->setCommand("Part_SelectFilter"); + menuBar->insertItem(measure, add); + } +} diff --git a/src/Mod/Part/Gui/WorkbenchManipulator.h b/src/Mod/Part/Gui/WorkbenchManipulator.h index e89f8c3977..745e7556b4 100644 --- a/src/Mod/Part/Gui/WorkbenchManipulator.h +++ b/src/Mod/Part/Gui/WorkbenchManipulator.h @@ -59,6 +59,8 @@ protected: private: static void addSectionCut(Gui::MenuItem* menuBar); + static void addSelectionFilter(Gui::ToolBarItem* toolBar); + static void addSelectionFilter(Gui::MenuItem* menuBar); }; } // namespace PartGui