aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2017-05-09 14:04:18 +0200
committerPau Espin Pedrol <pespin@sysmocom.de>2017-05-12 10:44:44 +0200
commitf15b779d0b904526eb174893bc68c86eb08811d1 (patch)
treefb8495c3542983a3f1a608116a5d9988b7951c67
parent129bdb5a164a6386c35ff387e9d8f0d3d6a12dbf (diff)
GTK+Qt: Show non-plugin stats_tree entries on the menu bar
-rw-r--r--ui/gtk/main_menubar.c34
-rw-r--r--ui/qt/main_window.cpp2
-rw-r--r--ui/qt/main_window.h3
-rw-r--r--ui/qt/main_window_slots.cpp9
4 files changed, 36 insertions, 12 deletions
diff --git a/ui/gtk/main_menubar.c b/ui/gtk/main_menubar.c
index 8669743135..7291fa77ea 100644
--- a/ui/gtk/main_menubar.c
+++ b/ui/gtk/main_menubar.c
@@ -136,7 +136,7 @@ GtkWidget *popup_menu_object;
static void menu_open_recent_file_cmd_cb(GtkAction *action, gpointer data _U_ );
static void add_recent_items (guint merge_id, GtkUIManager *ui_manager);
-static void add_tap_plugins (guint merge_id, GtkUIManager *ui_manager);
+static void add_tap (guint merge_id, GtkUIManager *ui_manager);
static void menus_init(void);
static void merge_menu_items(GList *node);
@@ -3284,7 +3284,7 @@ menus_init(void)
/* Add statistics tap plug-in to the menu
*/
merge_id = gtk_ui_manager_new_merge_id (ui_manager_main_menubar);
- add_tap_plugins (merge_id, ui_manager_main_menubar);
+ add_tap (merge_id, ui_manager_main_menubar);
statusbar_profiles_action_group = gtk_action_group_new ("StatusBarProfilesPopUpMenuActionGroup");
@@ -3891,7 +3891,7 @@ add_recent_items (guint merge_id, GtkUIManager *ui_manager)
#define MENU_STATISTICS_PATH "/Menubar/StatisticsMenu"
static void
-add_tap_plugins (guint merge_id, GtkUIManager *ui_manager)
+add_tap_entries (guint merge_id, GtkUIManager *ui_manager, gboolean plugin)
{
GtkActionGroup *action_group;
GtkAction *action;
@@ -3906,22 +3906,33 @@ add_tap_plugins (guint merge_id, GtkUIManager *ui_manager)
gchar *stat_name;
gchar *sep;
- action_group = gtk_action_group_new ("tap-plugins-group");
+ gchar *action_group_str;
+ gchar *merge_id_str;
+
+ if (plugin) {
+ action_group_str = "tap-plugins-group";
+ merge_id_str = "tap-plugins-merge-id";
+ } else {
+ action_group_str = "tap-group";
+ merge_id_str = "tap-merge-id";
+ }
+
+ action_group = gtk_action_group_new (action_group_str);
submenu_statistics = gtk_ui_manager_get_widget(ui_manager_main_menubar, MENU_STATISTICS_PATH);
- if(!submenu_statistics){
- g_warning("add_tap_plugins: No submenu_statistics found, path= MENU_STATISTICS_PATH");
+ if (!submenu_statistics) {
+ g_warning("add_tap_entries: No submenu_statistics found, path=" MENU_STATISTICS_PATH);
return;
}
gtk_ui_manager_insert_action_group (ui_manager_main_menubar, action_group, 0);
g_object_set_data (G_OBJECT (ui_manager_main_menubar),
- "tap-plugins-merge-id", GUINT_TO_POINTER (merge_id));
+ merge_id_str, GUINT_TO_POINTER (merge_id));
cfg_list = stats_tree_get_cfg_list();
iter = g_list_first(cfg_list);
while (iter) {
stats_tree_cfg *cfg = (stats_tree_cfg*)iter->data;
- if (cfg->plugin) {
+ if (cfg->plugin == plugin) {
stat_name_buf = g_strdup(cfg->name);
submenu_path_size = (gsize)(strlen(MENU_STATISTICS_PATH)+strlen(cfg->name)+strlen(cfg->abbr)+1); /* worst case length */
submenu_path = (gchar *)g_malloc(submenu_path_size);
@@ -3984,6 +3995,13 @@ add_tap_plugins (guint merge_id, GtkUIManager *ui_manager)
g_list_free(cfg_list);
}
+static void
+add_tap(guint merge_id, GtkUIManager *ui_manager)
+{
+ add_tap_entries(merge_id, ui_manager, FALSE);
+ add_tap_entries(merge_id, ui_manager, TRUE);
+}
+
/* Open a file by its name
(Beware: will not ask to close existing capture file!) */
void
diff --git a/ui/qt/main_window.cpp b/ui/qt/main_window.cpp
index b47b83e34c..ce860b2dfa 100644
--- a/ui/qt/main_window.cpp
+++ b/ui/qt/main_window.cpp
@@ -398,7 +398,7 @@ MainWindow::MainWindow(QWidget *parent) :
connect(wsApp, SIGNAL(appInitialized()), this, SLOT(applyGlobalCommandLineOptions()));
connect(wsApp, SIGNAL(appInitialized()), this, SLOT(zoomText()));
connect(wsApp, SIGNAL(appInitialized()), this, SLOT(initViewColorizeMenu()));
- connect(wsApp, SIGNAL(appInitialized()), this, SLOT(addStatsPluginsToMenu()));
+ connect(wsApp, SIGNAL(appInitialized()), this, SLOT(addStatsToMenu()));
connect(wsApp, SIGNAL(appInitialized()), this, SLOT(addDynamicMenus()));
connect(wsApp, SIGNAL(appInitialized()), this, SLOT(addPluginIFStructures()));
connect(wsApp, SIGNAL(appInitialized()), this, SLOT(initConversationMenus()));
diff --git a/ui/qt/main_window.h b/ui/qt/main_window.h
index 23e1de7cce..e8b98429bc 100644
--- a/ui/qt/main_window.h
+++ b/ui/qt/main_window.h
@@ -238,6 +238,7 @@ private:
void removeMenuActions(QList<QAction *> &actions, int menu_group);
void goToConversationFrame(bool go_next);
void colorizeWithFilter(QByteArray filter, int color_number = -1);
+ void addStatsEntriesToMenu(bool plugin);
signals:
void setCaptureFile(capture_file *cf);
@@ -337,7 +338,7 @@ private slots:
void showAccordionFrame(AccordionFrame *show_frame, bool toggle = false);
void showColumnEditor(int column);
void showPreferenceEditor(); // module_t *, pref *
- void addStatsPluginsToMenu();
+ void addStatsToMenu();
void addDynamicMenus();
void reloadDynamicMenus();
void addPluginIFStructures();
diff --git a/ui/qt/main_window_slots.cpp b/ui/qt/main_window_slots.cpp
index c957a6e42a..5f9821012c 100644
--- a/ui/qt/main_window_slots.cpp
+++ b/ui/qt/main_window_slots.cpp
@@ -1623,7 +1623,7 @@ void MainWindow::initViewColorizeMenu()
#endif
}
-void MainWindow::addStatsPluginsToMenu() {
+void MainWindow::addStatsEntriesToMenu(bool plugin) {
GList *cfg_list = stats_tree_get_cfg_list();
GList *iter = g_list_first(cfg_list);
QAction *stats_tree_action;
@@ -1632,7 +1632,7 @@ void MainWindow::addStatsPluginsToMenu() {
while (iter) {
stats_tree_cfg *cfg = (stats_tree_cfg*)iter->data;
- if (cfg->plugin) {
+ if (cfg->plugin == plugin) {
if (first_item) {
main_ui_->menuStatistics->addSeparator();
first_item = false;
@@ -1659,6 +1659,11 @@ void MainWindow::addStatsPluginsToMenu() {
g_list_free(cfg_list);
}
+void MainWindow::addStatsToMenu() {
+ addStatsEntriesToMenu(false);
+ addStatsEntriesToMenu(true);
+}
+
void MainWindow::setFeaturesEnabled(bool enabled)
{
main_ui_->menuBar->setEnabled(enabled);