diff options
author | Roland Knall <rknall@gmail.com> | 2022-07-29 13:12:53 +0000 |
---|---|---|
committer | Roland Knall <rknall@gmail.com> | 2022-07-29 13:13:36 +0000 |
commit | 59e7c16425e0c84334b09cb7f6510a42190f62e3 (patch) | |
tree | e68921800dfedbbe3c8d14bbfd55b911f7679c87 | |
parent | 9781ae3fc1246cd4c4ae92237e7cb0c93cb6c501 (diff) |
Revert "Qt: remove unnecessary method from FunnelStatistics"
This reverts commit ddcb429979851d28c55b0e3df09258f5c7084599
-rw-r--r-- | ui/qt/funnel_statistics.cpp | 17 | ||||
-rw-r--r-- | ui/qt/main_application.cpp | 9 | ||||
-rw-r--r-- | ui/qt/main_application.h | 1 |
3 files changed, 25 insertions, 2 deletions
diff --git a/ui/qt/funnel_statistics.cpp b/ui/qt/funnel_statistics.cpp index 6066f15498..752858e862 100644 --- a/ui/qt/funnel_statistics.cpp +++ b/ui/qt/funnel_statistics.cpp @@ -106,6 +106,7 @@ private: static QHash<int, QList<FunnelAction *> > funnel_actions_; const QString FunnelStatistics::action_name_ = "FunnelStatisticsAction"; +static gboolean menus_registered = FALSE; struct _funnel_ops_id_t { FunnelStatistics *funnel_statistics; @@ -347,6 +348,8 @@ void progress_window_destroy(progdlg *progress_dialog) { extern "C" { +void register_tap_listener_qt_funnel(void); + static void register_menu_cb(const char *name, register_stat_group_t group, funnel_menu_callback callback, @@ -354,8 +357,11 @@ static void register_menu_cb(const char *name, gboolean retap) { FunnelAction *funnel_action = new FunnelAction(name, callback, callback_data, retap, mainApp); - mainApp->addDynamicMenuGroupItem(group, funnel_action); - + if (menus_registered) { + mainApp->appendDynamicMenuGroupItem(group, funnel_action); + } else { + mainApp->addDynamicMenuGroupItem(group, funnel_action); + } if (!funnel_actions_.contains(group)) { funnel_actions_[group] = QList<FunnelAction *>(); } @@ -381,6 +387,13 @@ static void deregister_menu_cb(funnel_menu_callback callback) } void +register_tap_listener_qt_funnel(void) +{ + funnel_register_all_menus(register_menu_cb); + menus_registered = TRUE; +} + +void funnel_statistics_reload_menus(void) { funnel_reload_menus(deregister_menu_cb, register_menu_cb); diff --git a/ui/qt/main_application.cpp b/ui/qt/main_application.cpp index 2763b0b258..0a42fd5b7c 100644 --- a/ui/qt/main_application.cpp +++ b/ui/qt/main_application.cpp @@ -879,6 +879,15 @@ void MainApplication::addDynamicMenuGroupItem(int group, QAction *sg_action) dynamic_menu_groups_[group] << sg_action; } +void MainApplication::appendDynamicMenuGroupItem(int group, QAction *sg_action) +{ + if (!added_menu_groups_.contains(group)) { + added_menu_groups_[group] = QList<QAction *>(); + } + added_menu_groups_[group] << sg_action; + addDynamicMenuGroupItem(group, sg_action); +} + void MainApplication::removeDynamicMenuGroupItem(int group, QAction *sg_action) { if (!removed_menu_groups_.contains(group)) { diff --git a/ui/qt/main_application.h b/ui/qt/main_application.h index 786c01dc97..f4c70d7b06 100644 --- a/ui/qt/main_application.h +++ b/ui/qt/main_application.h @@ -92,6 +92,7 @@ public: void emitStatCommandSignal(const QString &menu_path, const char *arg, void *userdata); void emitTapParameterSignal(const QString cfg_abbr, const QString arg, void *userdata); void addDynamicMenuGroupItem(int group, QAction *sg_action); + void appendDynamicMenuGroupItem(int group, QAction *sg_action); void removeDynamicMenuGroupItem(int group, QAction *sg_action); QList<QAction *> dynamicMenuGroupItems(int group); QList<QAction *> addedMenuGroupItems(int group); |