From 98a9fc8bf35e076e22e94cbd2adcede43145f46e Mon Sep 17 00:00:00 2001 From: alemuntoni Date: Mon, 24 Jan 2022 11:59:48 +0100 Subject: [PATCH] consistent search engine organization --- src/meshlab/dialogs/plugin_info_dialog.cpp | 2 +- src/meshlab/mainwindow.h | 2 - src/meshlab/mainwindow_Init.cpp | 49 ++++------------------ src/meshlab/mainwindow_RunTime.cpp | 1 + 4 files changed, 11 insertions(+), 43 deletions(-) diff --git a/src/meshlab/dialogs/plugin_info_dialog.cpp b/src/meshlab/dialogs/plugin_info_dialog.cpp index 6859183f0..e17c565a8 100644 --- a/src/meshlab/dialogs/plugin_info_dialog.cpp +++ b/src/meshlab/dialogs/plugin_info_dialog.cpp @@ -119,7 +119,7 @@ void PluginInfoDialog::on_loadPluginsPushButton_clicked() QStringList fileList = QFileDialog::getOpenFileNames(this, "Load Plugins", "", pluginFileFormat); PluginManager& pm = meshlab::pluginManagerInstance(); bool loadOk = false; - for (const QString& fileName : fileList){ + for (const QString& fileName : qAsConst(fileList)){ QFileInfo finfo(fileName); try { diff --git a/src/meshlab/mainwindow.h b/src/meshlab/mainwindow.h index 0df44c450..407391ee0 100644 --- a/src/meshlab/mainwindow.h +++ b/src/meshlab/mainwindow.h @@ -256,8 +256,6 @@ private: void createActions(); void createMenus(); void initSearchEngine(); - void initItemForSearching(QAction* act); - void initMenuForSearching(QMenu* menu); void fillFilterMenu(); void fillRenderMenu(); void fillShadersMenu(); diff --git a/src/meshlab/mainwindow_Init.cpp b/src/meshlab/mainwindow_Init.cpp index b1c79cdd5..3d8bf9ba0 100644 --- a/src/meshlab/mainwindow_Init.cpp +++ b/src/meshlab/mainwindow_Init.cpp @@ -658,40 +658,23 @@ void MainWindow::createMenus() void MainWindow::initSearchEngine() { + wama.clear(); for (const auto& p : PM.filterPluginIterator()){ for (QAction* act : p->actions()) - initItemForSearching(act); + wama.addAction(act); } - /*for (const auto& p : PM.editPluginFactoryIterator()){ + for (const auto& p : PM.editPluginFactoryIterator()){ for (QAction* act : p->actions()) - initItemForSearching(act); + wama.addAction(act); } for (const auto& p : PM.renderPluginIterator()){ for (QAction* act : p->actions()) - initItemForSearching(act); - }*/ - - initMenuForSearching(editMenu); - initMenuForSearching(renderMenu); -} - -void MainWindow::initMenuForSearching(QMenu* menu) -{ - if (menu == NULL) - return; - const QList& acts = menu->actions(); - for(QAction* act: acts) { - QMenu* submenu = act->menu(); - if (!act->isSeparator() && (submenu == NULL)) - initItemForSearching(act); - else if (!act->isSeparator()) - initMenuForSearching(submenu); + wama.addAction(act); + } + for (const auto& p : PM.decoratePluginIterator()){ + for (QAction* act : p->actions()) + wama.addAction(act); } -} - -void MainWindow::initItemForSearching(QAction* act) -{ - wama.addAction(act); } QString MainWindow::getDecoratedFileName(const QString& name) @@ -928,20 +911,6 @@ void MainWindow::updateAllPluginsActions() filterToolBar->clear(); updateFilterToolBar(); - - //TODO update the searcher: this seems to be an impossible task due to unreadable code. - //for now, just close and reopen meshlab.... - /* - disconnect(searchShortCut, SIGNAL(activated()), searchButton, SLOT(openMenu())); - wama.clear(); - delete searchMenu; - - initSearchEngine(); - int longest = longestActionWidthInAllMenus(); - searchMenu = new SearchMenu(wama, 15, searchButton, longest); - searchButton->setMenu(searchMenu); - connect(searchShortCut, SIGNAL(activated()), searchButton, SLOT(openMenu())); - */ } void MainWindow::loadDefaultSettingsFromPlugins() diff --git a/src/meshlab/mainwindow_RunTime.cpp b/src/meshlab/mainwindow_RunTime.cpp index 69e7e87c9..658ed4e7d 100644 --- a/src/meshlab/mainwindow_RunTime.cpp +++ b/src/meshlab/mainwindow_RunTime.cpp @@ -2576,6 +2576,7 @@ void MainWindow::aboutPlugins() PluginInfoDialog dialog(this); dialog.exec(); updateAllPluginsActions(); + initSearchEngine(); QSettings settings; QStringList disabledPlugins; for (MeshLabPlugin* pf : PM.pluginIterator(true)){