diff options
author | Gerald Combs <gerald@wireshark.org> | 2016-06-24 15:17:25 -0700 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2016-06-26 06:10:51 +0000 |
commit | 60cdee9e307c15928a542adc547f27fd752c4837 (patch) | |
tree | d08558060606dcae8fd10049d3e5f7769678acce /ui | |
parent | 291762d0af8cd49a19c6fc73fce317ee20816a17 (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.cpp | 5 | ||||
-rw-r--r-- | ui/qt/filter_action.h | 9 | ||||
-rw-r--r-- | ui/qt/main_window.cpp | 8 | ||||
-rw-r--r-- | ui/qt/main_window.h | 3 | ||||
-rw-r--r-- | ui/qt/main_window_slots.cpp | 22 | ||||
-rw-r--r-- | ui/qt/protocol_hierarchy_dialog.cpp | 1 | ||||
-rw-r--r-- | ui/qt/search_frame.cpp | 2 |
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) |