aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoland Knall <rknall@gmail.com>2022-07-29 13:12:53 +0000
committerRoland Knall <rknall@gmail.com>2022-07-29 13:13:36 +0000
commit59e7c16425e0c84334b09cb7f6510a42190f62e3 (patch)
treee68921800dfedbbe3c8d14bbfd55b911f7679c87
parent9781ae3fc1246cd4c4ae92237e7cb0c93cb6c501 (diff)
Revert "Qt: remove unnecessary method from FunnelStatistics"
This reverts commit ddcb429979851d28c55b0e3df09258f5c7084599
-rw-r--r--ui/qt/funnel_statistics.cpp17
-rw-r--r--ui/qt/main_application.cpp9
-rw-r--r--ui/qt/main_application.h1
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);