Add ability to disable autocomplete suggestions for filter controls.
authorMichael Mann <mmann78@netscape.net>
Sun, 21 Oct 2018 23:24:01 +0000 (19:24 -0400)
committerAnders Broman <a.broman58@gmail.com>
Mon, 22 Oct 2018 04:45:59 +0000 (04:45 +0000)
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>
epan/prefs.c
epan/prefs.h
ui/qt/main_window_preferences_frame.cpp
ui/qt/main_window_preferences_frame.h
ui/qt/main_window_preferences_frame.ui
ui/qt/widgets/syntax_line_edit.cpp

index 1c2db68b3246333a99538fc955049c87adf51925..b2f981818ac16126d8b9027dc8d8b91b9c134762 100644 (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;
index 3e38d6d7ddc6c7acf7e4d42ed64707bf7af03a48..9e3149120f2e07efabe76028e270e18ee22c8669 100644 (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;
index 4832a417cbe7dae9cfc95445b833f774f472652d..a29be594ed5d42da40e1b5755b7f3b56ebbe4c51 100644 (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);
index 01477e344c672a152b836dcb5793ef00628deee2..5f51e1f87fa2b488bb711457162b9f36ee9bac4a 100644 (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);
 };
index 9824bbd80c08ed7637df09e601143d1cd9cbd392..35dd6580f4500ee8eb5c34aa6887987354c29a80 100644 (file)
      </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>
index a846640f46ea3772044850a162d3c63f68169eb6..e241c86b7b56ea32544a0032552248b074f1e8c9 100644 (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;