Gui: Fix several methods in Workbench to list all items

* Fix Workbench::listToolbars() to also return custom toolbars or added by a manipulator
* Fix Workbench::getToolbarItems() to also return custom toolbars or added by a manipulator
* Fix Workbench::listMenus() to also return menus added by a manipulator

Fixes issue 18647
This commit is contained in:
wmayer
2025-02-01 13:51:38 +01:00
committed by Ladislav Michl
parent 8b11c0672b
commit d969045bd9

View File

@@ -463,6 +463,9 @@ void Workbench::removeTaskWatcher()
std::list<std::string> Workbench::listToolbars() const
{
std::unique_ptr<ToolBarItem> tb(setupToolBars());
setupCustomToolbars(tb.get(), "Toolbar");
WorkbenchManipulator::changeToolBars(tb.get());
std::list<std::string> bars;
QList<ToolBarItem*> items = tb->getItems();
for (const auto & item : items) {
@@ -474,6 +477,8 @@ std::list<std::string> Workbench::listToolbars() const
std::list<std::pair<std::string, std::list<std::string>>> Workbench::getToolbarItems() const
{
std::unique_ptr<ToolBarItem> tb(setupToolBars());
setupCustomToolbars(tb.get(), "Toolbar");
WorkbenchManipulator::changeToolBars(tb.get());
std::list<std::pair<std::string, std::list<std::string>>> itemsList;
QList<ToolBarItem*> items = tb->getItems();
@@ -492,6 +497,9 @@ std::list<std::pair<std::string, std::list<std::string>>> Workbench::getToolbarI
std::list<std::string> Workbench::listMenus() const
{
std::unique_ptr<MenuItem> mb(setupMenuBar());
addPermanentMenuItems(mb.get());
WorkbenchManipulator::changeMenuBar(mb.get());
std::list<std::string> menus;
QList<MenuItem*> items = mb->getItems();
for (const auto & item : items) {