diff options
author | Gerald Combs <gerald@wireshark.org> | 2016-09-20 11:30:38 -0700 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2016-10-03 17:47:39 +0000 |
commit | 1320ea4d57bf376a6a1923a7103d3321b4de8cc3 (patch) | |
tree | 2d3d46b240884b314cf758488bf219d3f3ef4c7e /ui/qt/coloring_rules_dialog.cpp | |
parent | d2a59db2bbf944da07710d31d4f86fe5a27490dd (diff) |
Be more forgiving about invalid Coloring Rules.
In ColoringRulesDialog:
Only check a rule's display filter if that rule is enabled. This keeps
us from disabling the OK button when we shouldn't.
Adjust the "Your coloring rules file contains unknown rules" dialog text
and buttons for accuracy.
In color_filters.c:
Don't try to compile disabled filters in color_filters_apply. Don't warn
about disabled and invalid filters in read_filters_file.
Bug: 12814
Change-Id: I7143bf8e7a6162d296f1e93769344b69763195c8
Reviewed-on: https://code.wireshark.org/review/17823
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: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'ui/qt/coloring_rules_dialog.cpp')
-rw-r--r-- | ui/qt/coloring_rules_dialog.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/ui/qt/coloring_rules_dialog.cpp b/ui/qt/coloring_rules_dialog.cpp index 671a9c075d..fa6242f8e5 100644 --- a/ui/qt/coloring_rules_dialog.cpp +++ b/ui/qt/coloring_rules_dialog.cpp @@ -175,8 +175,9 @@ void ColoringRulesDialog::updateWidgets() error_text = tr("the \"@\" symbol will be ignored."); } + // Check the rule's display filter syntax only if it's checked. QString display_filter = item->text(filter_col_); - if (!display_filter.isEmpty()) { + if (!display_filter.isEmpty() && item->checkState(name_col_) == Qt::Checked) { dfilter_t *dfilter; bool status; gchar *err_msg; @@ -306,6 +307,7 @@ void ColoringRulesDialog::on_deleteToolButton_clicked() foreach (QTreeWidgetItem *ti, selected) { delete ti; } + updateWidgets(); } void ColoringRulesDialog::on_copyToolButton_clicked() @@ -360,9 +362,8 @@ void ColoringRulesDialog::on_buttonBox_accepted() QMessageBox mb; mb.setText(tr("Your coloring rules file contains unknown rules")); mb.setInformativeText(tr("Wireshark doesn't recognize one or more of your coloring rules. " - "Saving will disable them.")); - mb.setStandardButtons(QMessageBox::Save | QMessageBox::Cancel); - mb.setDefaultButton(QMessageBox::Save); + "They have been disabled.")); + mb.setStandardButtons(QMessageBox::Ok); int result = mb.exec(); if (result != QMessageBox::Save) return; @@ -383,7 +384,6 @@ void ColoringRulesDialog::on_buttonBox_helpRequested() wsApp->helpTopicAction(HELP_COLORING_RULES_DIALOG); } - // // ColoringRulesTreeDelegate // Delegate for editing coloring rule names and filters. @@ -409,6 +409,8 @@ QWidget *ColoringRulesTreeDelegate::createEditor(QWidget *parent, const QStyleOp case filter_col_: { DisplayFilterEdit *dfe = new DisplayFilterEdit(parent); + // It's possible to have an invalid filter and an enabled OK button at this point. + // We might want to add a local slot for checking the filter status. connect(dfe, SIGNAL(textChanged(QString)), dfe, SLOT(checkDisplayFilter(QString))); dfe->setText(ti->text(filter_col_)); w = (QWidget*) dfe; |