aboutsummaryrefslogtreecommitdiffstats
path: root/ui
diff options
context:
space:
mode:
authorGerald Combs <gerald@wireshark.org>2016-06-24 15:17:25 -0700
committerAnders Broman <a.broman58@gmail.com>2016-06-26 06:10:51 +0000
commit60cdee9e307c15928a542adc547f27fd752c4837 (patch)
treed08558060606dcae8fd10049d3e5f7769678acce /ui
parent291762d0af8cd49a19c6fc73fce317ee20816a17 (diff)
Qt: Handle unhandled filter actions.
Handle FilterAction::ActionColorize and ::ActionFind. Remove ::ActionConversation since it was unused. Assert when we encounter a missing FilterAction, similar to what we do in other parts of the code. Bug: 12363 Change-Id: I5c1ecd488e5bdb9700a80fc70ec7c047311054b6 Reviewed-on: https://code.wireshark.org/review/16131 Reviewed-by: Gerald Combs <gerald@wireshark.org> Petri-Dish: Gerald Combs <gerald@wireshark.org> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'ui')
-rw-r--r--ui/qt/filter_action.cpp5
-rw-r--r--ui/qt/filter_action.h9
-rw-r--r--ui/qt/main_window.cpp8
-rw-r--r--ui/qt/main_window.h3
-rw-r--r--ui/qt/main_window_slots.cpp22
-rw-r--r--ui/qt/protocol_hierarchy_dialog.cpp1
-rw-r--r--ui/qt/search_frame.cpp2
7 files changed, 29 insertions, 21 deletions
diff --git a/ui/qt/filter_action.cpp b/ui/qt/filter_action.cpp
index f24318b6b9..d968f3cdfa 100644
--- a/ui/qt/filter_action.cpp
+++ b/ui/qt/filter_action.cpp
@@ -48,13 +48,11 @@ FilterAction::FilterAction(QObject *parent, FilterAction::Action action) :
setText(actionName(action));
}
-
const QList<FilterAction::Action> FilterAction::actions() {
static const QList<Action> actions_ = QList<Action>()
<< ActionApply
<< ActionPrepare
<< ActionFind
- << ActionConversation
<< ActionColorize
<< ActionWebLookup
<< ActionCopy;
@@ -72,9 +70,6 @@ const QString FilterAction::actionName(Action action) {
case ActionFind:
return QObject::tr("Find");
break;
- case ActionConversation:
- return QObject::tr("Conversation Filter");
- break;
case ActionColorize:
return QObject::tr("Colorize");
break;
diff --git a/ui/qt/filter_action.h b/ui/qt/filter_action.h
index 0a41a18ddf..01984aa751 100644
--- a/ui/qt/filter_action.h
+++ b/ui/qt/filter_action.h
@@ -35,12 +35,11 @@ public:
/* Filter actions */
enum Action {
ActionApply,
- ActionPrepare,
- ActionFind,
- ActionConversation,
ActionColorize,
- ActionWebLookup,
- ActionCopy
+ ActionCopy,
+ ActionFind,
+ ActionPrepare,
+ ActionWebLookup
};
/* Action type - says what to do with the filter */
diff --git a/ui/qt/main_window.cpp b/ui/qt/main_window.cpp
index 2c3853b422..78f062a2b3 100644
--- a/ui/qt/main_window.cpp
+++ b/ui/qt/main_window.cpp
@@ -1874,14 +1874,14 @@ void MainWindow::initConversationMenus()
conv_action->setColorNumber(i++);
submenu->addAction(conv_action);
connect(this, SIGNAL(packetInfoChanged(_packet_info*)), conv_action, SLOT(setPacketInfo(_packet_info*)));
- connect(conv_action, SIGNAL(triggered()), this, SLOT(colorizeWithFilter()));
+ connect(conv_action, SIGNAL(triggered()), this, SLOT(colorizeActionTriggered()));
}
conv_action = new ConversationAction(submenu, conv_filter);
conv_action->setText(main_ui_->actionViewColorizeNewColoringRule->text());
submenu->addAction(conv_action);
connect(this, SIGNAL(packetInfoChanged(_packet_info*)), conv_action, SLOT(setPacketInfo(_packet_info*)));
- connect(conv_action, SIGNAL(triggered()), this, SLOT(colorizeWithFilter()));
+ connect(conv_action, SIGNAL(triggered()), this, SLOT(colorizeActionTriggered()));
// Proto tree conversation menu is filled in in ProtoTree::contextMenuEvent.
// We should probably do that here.
@@ -1897,14 +1897,14 @@ void MainWindow::initConversationMenus()
colorize_action->setColorNumber(i++);
proto_tree_->colorizeMenu()->addAction(colorize_action);
connect(this, SIGNAL(fieldFilterChanged(QByteArray)), colorize_action, SLOT(setFieldFilter(QByteArray)));
- connect(colorize_action, SIGNAL(triggered()), this, SLOT(colorizeWithFilter()));
+ connect(colorize_action, SIGNAL(triggered()), this, SLOT(colorizeActionTriggered()));
}
colorize_action = new ColorizeAction(proto_tree_->colorizeMenu());
colorize_action->setText(main_ui_->actionViewColorizeNewColoringRule->text());
proto_tree_->colorizeMenu()->addAction(colorize_action);
connect(this, SIGNAL(fieldFilterChanged(QByteArray)), colorize_action, SLOT(setFieldFilter(QByteArray)));
- connect(colorize_action, SIGNAL(triggered()), this, SLOT(colorizeWithFilter()));
+ connect(colorize_action, SIGNAL(triggered()), this, SLOT(colorizeActionTriggered()));
}
// Titlebar
diff --git a/ui/qt/main_window.h b/ui/qt/main_window.h
index 67163415d7..331afd4742 100644
--- a/ui/qt/main_window.h
+++ b/ui/qt/main_window.h
@@ -221,6 +221,7 @@ private:
void addMenuActions(QList<QAction *> &actions, int menu_group);
void removeMenuActions(QList<QAction *> &actions, int menu_group);
void goToConversationFrame(bool go_next);
+ void colorizeWithFilter(QByteArray filter, int color_number = -1);
signals:
void setCaptureFile(capture_file *cf);
@@ -435,7 +436,7 @@ private slots:
void on_actionViewColorizePacketList_triggered(bool checked);
void on_actionViewColoringRules_triggered();
void colorizeConversation(bool create_rule = false);
- void colorizeWithFilter();
+ void colorizeActionTriggered();
void on_actionViewColorizeResetColorization_triggered();
void on_actionViewColorizeNewColoringRule_triggered();
void on_actionViewResizeColumns_triggered();
diff --git a/ui/qt/main_window_slots.cpp b/ui/qt/main_window_slots.cpp
index ea01582468..881460dca5 100644
--- a/ui/qt/main_window_slots.cpp
+++ b/ui/qt/main_window_slots.cpp
@@ -155,7 +155,6 @@
#include <QToolBar>
#include <QDesktopServices>
#include <QUrl>
-#include <QDebug>
// XXX You must uncomment QT_WINEXTRAS_LIB lines in CMakeList.txt and
// cmakeconfig.h.in.
@@ -551,6 +550,15 @@ void MainWindow::queuedFilterAction(QString action_filter, FilterAction::Action
df_combo_box_->lineEdit()->setText(new_filter);
df_combo_box_->applyDisplayFilter();
break;
+ case FilterAction::ActionColorize:
+ colorizeWithFilter(new_filter.toUtf8());
+ break;
+ case FilterAction::ActionCopy:
+ wsApp->clipboard()->setText(new_filter);
+ break;
+ case FilterAction::ActionFind:
+ main_ui_->searchFrame->findFrameWithFilter(new_filter);
+ break;
case FilterAction::ActionPrepare:
df_combo_box_->lineEdit()->setText(new_filter);
df_combo_box_->lineEdit()->setFocus();
@@ -561,11 +569,8 @@ void MainWindow::queuedFilterAction(QString action_filter, FilterAction::Action
QDesktopServices::openUrl(QUrl(url));
break;
}
- case FilterAction::ActionCopy:
- wsApp->clipboard()->setText(new_filter);
- break;
default:
- qDebug() << "FIX FilterAction::Action" << action << "not implemented";
+ g_assert_not_reached();
break;
}
}
@@ -2369,7 +2374,7 @@ void MainWindow::colorizeConversation(bool create_rule)
setMenusForSelectedPacket();
}
-void MainWindow::colorizeWithFilter()
+void MainWindow::colorizeActionTriggered()
{
QByteArray filter;
int color_number = -1;
@@ -2386,6 +2391,11 @@ void MainWindow::colorizeWithFilter()
}
}
+ colorizeWithFilter(filter, color_number);
+}
+
+void MainWindow::colorizeWithFilter(QByteArray filter, int color_number)
+{
if (filter.isEmpty()) return;
if (color_number > 0) {
diff --git a/ui/qt/protocol_hierarchy_dialog.cpp b/ui/qt/protocol_hierarchy_dialog.cpp
index 79bab76339..51bda42978 100644
--- a/ui/qt/protocol_hierarchy_dialog.cpp
+++ b/ui/qt/protocol_hierarchy_dialog.cpp
@@ -222,6 +222,7 @@ ProtocolHierarchyDialog::ProtocolHierarchyDialog(QWidget &parent, CaptureFile &c
fa = new FilterAction(&ctx_menu_, FilterAction::ActionColorize);
ctx_menu_.addAction(fa);
+ connect(fa, SIGNAL(triggered()), this, SLOT(filterActionTriggered()));
ctx_menu_.addSeparator();
ctx_menu_.addAction(ui->actionCopyAsCsv);
diff --git a/ui/qt/search_frame.cpp b/ui/qt/search_frame.cpp
index c0c7f13c64..ffe6c183b1 100644
--- a/ui/qt/search_frame.cpp
+++ b/ui/qt/search_frame.cpp
@@ -125,8 +125,10 @@ void SearchFrame::findFrameWithFilter(QString &filter)
{
animatedShow();
sf_ui_->searchLineEdit->setText(filter);
+ sf_ui_->searchLineEdit->setCursorPosition(0);
sf_ui_->searchTypeComboBox->setCurrentIndex(df_search_);
updateWidgets();
+ on_findButton_clicked();
}
void SearchFrame::keyPressEvent(QKeyEvent *event)