From 182d9deb08125f9c595bcb32dcb28f745989d615 Mon Sep 17 00:00:00 2001 From: Michael Mann Date: Sat, 21 Oct 2017 22:50:16 -0400 Subject: Add "Apply as filter" button to Coloring Rules Dialog Add a button to apply currently selected color as the display filter. Bug: 14100 Change-Id: Ife3edeb577075f1fe30b649a5655ef5887684d8a Reviewed-on: https://code.wireshark.org/review/24012 Petri-Dish: Michael Mann Tested-by: Petri Dish Buildbot Reviewed-by: Michael Mann --- ui/qt/coloring_rules_dialog.cpp | 12 ++++++++++++ ui/qt/coloring_rules_dialog.h | 5 +++++ ui/qt/coloring_rules_dialog.ui | 26 +++++++++++++------------- ui/qt/main_window_slots.cpp | 6 ++++++ 4 files changed, 36 insertions(+), 13 deletions(-) diff --git a/ui/qt/coloring_rules_dialog.cpp b/ui/qt/coloring_rules_dialog.cpp index 552e5a1eec..f0112d9aef 100644 --- a/ui/qt/coloring_rules_dialog.cpp +++ b/ui/qt/coloring_rules_dialog.cpp @@ -136,6 +136,7 @@ void ColoringRulesDialog::showEvent(QShowEvent *) { ui->fGPushButton->setFixedHeight(ui->copyToolButton->geometry().height()); ui->bGPushButton->setFixedHeight(ui->copyToolButton->geometry().height()); + ui->displayFilterPushButton->setFixedHeight(ui->copyToolButton->geometry().height()); } void ColoringRulesDialog::updateWidgets() @@ -164,6 +165,7 @@ void ColoringRulesDialog::updateWidgets() ui->deleteToolButton->setEnabled(num_selected > 0); ui->fGPushButton->setVisible(num_selected == 1); ui->bGPushButton->setVisible(num_selected == 1); + ui->displayFilterPushButton->setVisible(num_selected == 1); QString error_text; QTreeWidgetItemIterator iter(ui->coloringRulesTreeWidget); @@ -267,6 +269,16 @@ void ColoringRulesDialog::on_bGPushButton_clicked() changeColor(false); } +void ColoringRulesDialog::on_displayFilterPushButton_clicked() +{ + if (!ui->coloringRulesTreeWidget->currentItem()) return; + + QTreeWidgetItem *ti = ui->coloringRulesTreeWidget->currentItem(); + QString filter = ti->text(filter_col_); + + emit filterAction(filter, FilterAction::ActionApply, FilterAction::ActionTypePlain); +} + void ColoringRulesDialog::addColoringRule(bool disabled, QString name, QString filter, QColor foreground, QColor background, bool start_editing, bool at_top) { QTreeWidgetItem *ti = new QTreeWidgetItem(); diff --git a/ui/qt/coloring_rules_dialog.h b/ui/qt/coloring_rules_dialog.h index 99e42e6510..42b4c76fec 100644 --- a/ui/qt/coloring_rules_dialog.h +++ b/ui/qt/coloring_rules_dialog.h @@ -23,6 +23,7 @@ #define COLORING_RULES_DIALOG_H #include "geometry_state_dialog.h" +#include "filter_action.h" class QAbstractButton; class QTreeWidget; @@ -64,6 +65,9 @@ public: void addColor(struct _color_filter *colorf); +signals: + void filterAction(QString filter, FilterAction::Action action, FilterAction::ActionType type); + protected: void showEvent(QShowEvent *); @@ -73,6 +77,7 @@ private slots: void on_coloringRulesTreeWidget_itemSelectionChanged(); void on_fGPushButton_clicked(); void on_bGPushButton_clicked(); + void on_displayFilterPushButton_clicked(); void on_newToolButton_clicked(); void on_deleteToolButton_clicked(); void on_copyToolButton_clicked(); diff --git a/ui/qt/coloring_rules_dialog.ui b/ui/qt/coloring_rules_dialog.ui index a8098bae7b..467aaecc4c 100644 --- a/ui/qt/coloring_rules_dialog.ui +++ b/ui/qt/coloring_rules_dialog.ui @@ -97,19 +97,6 @@ - - - - Qt::Horizontal - - - - 40 - 20 - - - - @@ -148,6 +135,19 @@ + + + + Set the display filter using this rule. + + + Apply as filter + + + false + + + diff --git a/ui/qt/main_window_slots.cpp b/ui/qt/main_window_slots.cpp index 518bd392bf..c61b03abd6 100644 --- a/ui/qt/main_window_slots.cpp +++ b/ui/qt/main_window_slots.cpp @@ -2498,6 +2498,8 @@ void MainWindow::on_actionViewColoringRules_triggered() ColoringRulesDialog coloring_rules_dialog(this); connect(&coloring_rules_dialog, SIGNAL(accepted()), packet_list_, SLOT(recolorPackets())); + connect(&coloring_rules_dialog, SIGNAL(filterAction(QString,FilterAction::Action,FilterAction::ActionType)), + this, SIGNAL(filterAction(QString,FilterAction::Action,FilterAction::ActionType))); coloring_rules_dialog.exec(); } @@ -2520,6 +2522,8 @@ void MainWindow::colorizeConversation(bool create_rule) ColoringRulesDialog coloring_rules_dialog(this, filter); connect(&coloring_rules_dialog, SIGNAL(accepted()), packet_list_, SLOT(recolorPackets())); + connect(&coloring_rules_dialog, SIGNAL(filterAction(QString,FilterAction::Action,FilterAction::ActionType)), + this, SIGNAL(filterAction(QString,FilterAction::Action,FilterAction::ActionType))); coloring_rules_dialog.exec(); } else { gchar *err_msg = NULL; @@ -2570,6 +2574,8 @@ void MainWindow::colorizeWithFilter(QByteArray filter, int color_number) ColoringRulesDialog coloring_rules_dialog(window(), filter); connect(&coloring_rules_dialog, SIGNAL(accepted()), packet_list_, SLOT(recolorPackets())); + connect(&coloring_rules_dialog, SIGNAL(filterAction(QString,FilterAction::Action,FilterAction::ActionType)), + this, SIGNAL(filterAction(QString,FilterAction::Action,FilterAction::ActionType))); coloring_rules_dialog.exec(); } main_ui_->actionViewColorizeResetColorization->setEnabled(tmp_color_filters_used()); -- cgit v1.2.3