summaryrefslogtreecommitdiff
path: root/ui/qt/wireshark_application.cpp
diff options
context:
space:
mode:
authorGerald Combs <gerald@wireshark.org>2015-07-03 15:52:49 -0500
committerGerald Combs <gerald@wireshark.org>2015-07-07 20:49:30 +0000
commite91ca72a445d51b71f958f140e2eb89747f499ff (patch)
tree8447adabdba8623cd8e045bc7a3d3d73fca54130 /ui/qt/wireshark_application.cpp
parente9622175f7aee7dbeff6e97c9ac6ab78460e239a (diff)
downloadwireshark-e91ca72a445d51b71f958f140e2eb89747f499ff.tar.gz
Qt: Add initial Lua support.
Add a FunnelStatistics class, which is the main interface between the Qt UI and the Funnel API. Add FunnelTextDialog, which implements the text_window, ProgDlg, menu, and other routines. Add FunnelStringDialog, which implements dlg_new. We currently only support "Tools" menu items (MENU_TOOLS_UNSORTED, aka REGISTER_TOOLS_GROUP_UNSORTED). Add a disabled placeholder to the "Tools" menu in case we don't load any scripts. Use "struct progdlg" instead of needlessly casting to funnel_progress_window_t. To do: - Add support for MENU_STAT_UNSORTED, MENU_STAT_GENERIC, etc. - Make the firewall config generator a Lua script? - Add FunnelGraphDialog? It seems like it would be useful to make QCustomPlot accessible to Lua scripts. Ping-Bug: 9845 Change-Id: Iefff02e9032ed1853666f7902509ed08b431e7a7 Reviewed-on: https://code.wireshark.org/review/9523 Petri-Dish: Gerald Combs <gerald@wireshark.org> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Gerald Combs <gerald@wireshark.org>
Diffstat (limited to 'ui/qt/wireshark_application.cpp')
-rw-r--r--ui/qt/wireshark_application.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/ui/qt/wireshark_application.cpp b/ui/qt/wireshark_application.cpp
index e34c1ae3dc..1439c72f0f 100644
--- a/ui/qt/wireshark_application.cpp
+++ b/ui/qt/wireshark_application.cpp
@@ -90,6 +90,7 @@ static char *last_open_dir = NULL;
static bool updated_last_open_dir = FALSE;
static QList<recent_item_status *> recent_items_;
static QHash<int, QList<QAction *> > statistics_groups_;
+static QHash<int, QList<QAction *> > funnel_groups_;
QString WiresharkApplication::window_title_separator_ = QString::fromUtf8(" " UTF8_MIDDLE_DOT " ");
@@ -571,6 +572,7 @@ void WiresharkApplication::emitTapParameterSignal(const QString cfg_abbr, const
emit openTapParameterDialog(cfg_abbr, arg, userdata);
}
+// XXX Combine statistics and funnel routines into addGroupItem + groupItems?
void WiresharkApplication::addStatisticsGroupItem(int group, QAction *sg_action)
{
if (!statistics_groups_.contains(group)) {
@@ -590,6 +592,25 @@ QList<QAction *> WiresharkApplication::statisticsGroupItems(int group)
return sgi_list;
}
+void WiresharkApplication::addFunnelGroupItem(int group, QAction *fg_action)
+{
+ if (!funnel_groups_.contains(group)) {
+ funnel_groups_[group] = QList<QAction *>();
+ }
+ funnel_groups_[group] << fg_action;
+}
+
+QList<QAction *> WiresharkApplication::funnelGroupItems(int group)
+{
+ if (!funnel_groups_.contains(group)) {
+ return QList<QAction *>();
+ }
+
+ QList<QAction *> fgi_list = funnel_groups_[group];
+ std::sort(fgi_list.begin(), fgi_list.end(), qActionLessThan);
+ return fgi_list;
+}
+
#ifdef HAVE_LIBPCAP
static void