Gui: move functions to list menus and toolbars from sub-class to base Workbench class

implement new function to list all toolbars and their used commands
This commit is contained in:
wmayer
2020-04-04 11:46:45 +02:00
parent 475f518510
commit 8663e724f5
7 changed files with 242 additions and 209 deletions

View File

@@ -429,6 +429,54 @@ void Workbench::removeTaskWatcher(void)
taskView->clearTaskWatcher();
}
std::list<std::string> Workbench::listToolbars() const
{
std::unique_ptr<ToolBarItem> tb(setupToolBars());
std::list<std::string> bars;
QList<ToolBarItem*> items = tb->getItems();
for (QList<ToolBarItem*>::ConstIterator item = items.begin(); item != items.end(); ++item)
bars.push_back((*item)->command());
return bars;
}
std::list<std::pair<std::string, std::list<std::string>>> Workbench::getToolbarItems() const
{
std::unique_ptr<ToolBarItem> tb(setupToolBars());
std::list<std::pair<std::string, std::list<std::string>>> itemsList;
QList<ToolBarItem*> items = tb->getItems();
for (QList<ToolBarItem*>::ConstIterator it = items.begin(); it != items.end(); ++it) {
QList<ToolBarItem*> sub = (*it)->getItems();
std::list<std::string> cmds;
for (QList<ToolBarItem*>::ConstIterator jt = sub.begin(); jt != sub.end(); ++jt) {
cmds.push_back((*jt)->command());
}
itemsList.emplace_back((*it)->command(), cmds);
}
return itemsList;
}
std::list<std::string> Workbench::listMenus() const
{
std::unique_ptr<MenuItem> mb(setupMenuBar());
std::list<std::string> menus;
QList<MenuItem*> items = mb->getItems();
for ( QList<MenuItem*>::ConstIterator it = items.begin(); it != items.end(); ++it )
menus.push_back((*it)->command());
return menus;
}
std::list<std::string> Workbench::listCommandbars() const
{
std::unique_ptr<ToolBarItem> cb(setupCommandBars());
std::list<std::string> bars;
QList<ToolBarItem*> items = cb->getItems();
for (QList<ToolBarItem*>::ConstIterator item = items.begin(); item != items.end(); ++item)
bars.push_back((*item)->command());
return bars;
}
// --------------------------------------------------------------------
#if 0 // needed for Qt's lupdate utility
@@ -1001,15 +1049,6 @@ void PythonBaseWorkbench::removeMenu(const std::string& menu) const
}
}
std::list<std::string> PythonBaseWorkbench::listMenus() const
{
std::list<std::string> menus;
QList<MenuItem*> items = _menuBar->getItems();
for ( QList<MenuItem*>::ConstIterator it = items.begin(); it != items.end(); ++it )
menus.push_back((*it)->command());
return menus;
}
void PythonBaseWorkbench::appendContextMenu(const std::list<std::string>& menu, const std::list<std::string>& items) const
{
MenuItem* item = _contextMenu;
@@ -1062,15 +1101,6 @@ void PythonBaseWorkbench::removeToolbar(const std::string& bar) const
}
}
std::list<std::string> PythonBaseWorkbench::listToolbars() const
{
std::list<std::string> bars;
QList<ToolBarItem*> items = _toolBar->getItems();
for (QList<ToolBarItem*>::ConstIterator item = items.begin(); item != items.end(); ++item)
bars.push_back((*item)->command());
return bars;
}
void PythonBaseWorkbench::appendCommandbar(const std::string& bar, const std::list<std::string>& items) const
{
ToolBarItem* item = _commandBar->findItem( bar );
@@ -1093,15 +1123,6 @@ void PythonBaseWorkbench::removeCommandbar(const std::string& bar) const
}
}
std::list<std::string> PythonBaseWorkbench::listCommandbars() const
{
std::list<std::string> bars;
QList<ToolBarItem*> items = _commandBar->getItems();
for (QList<ToolBarItem*>::ConstIterator item = items.begin(); item != items.end(); ++item)
bars.push_back((*item)->command());
return bars;
}
// -----------------------------------------------------------------------
TYPESYSTEM_SOURCE(Gui::PythonBlankWorkbench, Gui::PythonBaseWorkbench)