Add ability to disable autocomplete suggestions for filter controls.

Add a preference (enabled by default) that can enable/disable the ability for Wireshark to autocomplete display and capture filter controls.

Bug: 14368
Change-Id: Ib2b688bb75c4465dab14a6a635a870d7e5c4fe80
Reviewed-on: https://code.wireshark.org/review/30320
Reviewed-by: Michael Mann <mmann78@netscape.net>
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
This commit is contained in:
Michael Mann 2018-10-21 19:24:01 -04:00 committed by Anders Broman
parent aa038336ce
commit 6db67117b5
6 changed files with 24 additions and 1 deletions

View File

@ -3230,6 +3230,11 @@ prefs_register_modules(void)
"Ask to save unsaved capture files?",
&prefs.gui_ask_unsaved);
prefs_register_bool_preference(gui_module, "autocomplete_filter",
"Display autocompletion for filter text",
"Display an autocomplete suggestion for display and capture filter controls",
&prefs.gui_autocomplete_filter);
prefs_register_bool_preference(gui_module, "find_wrap",
"Wrap to beginning/end of file during search",
"Wrap to beginning/end of file during search?",
@ -4061,6 +4066,7 @@ pre_init_prefs(void)
prefs.gui_fileopen_dir = g_strdup(get_persdatafile_dir());
prefs.gui_fileopen_preview = 3;
prefs.gui_ask_unsaved = TRUE;
prefs.gui_autocomplete_filter = TRUE;
prefs.gui_find_wrap = TRUE;
prefs.gui_update_enabled = TRUE;
prefs.gui_update_channel = UPDATE_CHANNEL_STABLE;

View File

@ -165,6 +165,7 @@ typedef struct _e_prefs {
gchar *gui_fileopen_dir;
guint gui_fileopen_preview;
gboolean gui_ask_unsaved;
gboolean gui_autocomplete_filter;
gboolean gui_find_wrap;
gchar *gui_window_title;
gchar *gui_prepend_window_title;

View File

@ -35,6 +35,7 @@ MainWindowPreferencesFrame::MainWindowPreferencesFrame(QWidget *parent) :
pref_recent_df_entries_max_ = prefFromPrefPtr(&prefs.gui_recent_df_entries_max);
pref_recent_files_count_max_ = prefFromPrefPtr(&prefs.gui_recent_files_count_max);
pref_ask_unsaved_ = prefFromPrefPtr(&prefs.gui_ask_unsaved);
pref_autocomplete_filter_ = prefFromPrefPtr(&prefs.gui_autocomplete_filter);
pref_toolbar_main_style_ = prefFromPrefPtr(&prefs.gui_toolbar_main_style);
QStyleOption style_opt;
@ -122,6 +123,7 @@ void MainWindowPreferencesFrame::updateWidgets()
ui->maxRecentLineEdit->setText(QString::number(prefs_get_uint_value_real(pref_recent_files_count_max_, pref_stashed)));
ui->confirmUnsavedCheckBox->setChecked(prefs_get_bool_value(pref_ask_unsaved_, pref_stashed));
ui->displayAutoCompleteCheckBox->setChecked(prefs_get_bool_value(pref_autocomplete_filter_, pref_stashed));
ui->mainToolbarComboBox->setCurrentIndex(prefs_get_enum_value(pref_toolbar_main_style_, pref_stashed));
@ -188,6 +190,11 @@ void MainWindowPreferencesFrame::on_confirmUnsavedCheckBox_toggled(bool checked)
prefs_set_bool_value(pref_ask_unsaved_, checked, pref_stashed);
}
void MainWindowPreferencesFrame::on_displayAutoCompleteCheckBox_toggled(bool checked)
{
prefs_set_bool_value(pref_autocomplete_filter_, checked, pref_stashed);
}
void MainWindowPreferencesFrame::on_mainToolbarComboBox_currentIndexChanged(int index)
{
prefs_set_enum_value(pref_toolbar_main_style_, index, pref_stashed);

View File

@ -40,6 +40,7 @@ private:
pref_t *pref_recent_df_entries_max_;
pref_t *pref_recent_files_count_max_;
pref_t *pref_ask_unsaved_;
pref_t *pref_autocomplete_filter_;
pref_t *pref_toolbar_main_style_;
void updateWidgets();
@ -52,6 +53,7 @@ private slots:
void on_maxFilterLineEdit_textEdited(const QString &new_max);
void on_maxRecentLineEdit_textEdited(const QString &new_max);
void on_confirmUnsavedCheckBox_toggled(bool checked);
void on_displayAutoCompleteCheckBox_toggled(bool checked);
void on_mainToolbarComboBox_currentIndexChanged(int index);
void on_languageComboBox_currentIndexChanged(int index);
};

View File

@ -154,6 +154,13 @@
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="displayAutoCompleteCheckBox">
<property name="text">
<string>Display autocompletion for filter text</string>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>

View File

@ -306,7 +306,7 @@ void SyntaxLineEdit::completionKeyPressEvent(QKeyEvent *event)
// ...otherwise process the key ourselves.
SyntaxLineEdit::keyPressEvent(event);
if (!completer_ || !completion_model_) return;
if (!completer_ || !completion_model_ || !prefs.gui_autocomplete_filter) return;
// Do nothing on bare shift.
if ((event->modifiers() & Qt::ShiftModifier) && event->text().isEmpty()) return;