diff options
author | Michael Mann <mmann78@netscape.net> | 2017-12-29 11:23:07 -0500 |
---|---|---|
committer | Roland Knall <rknall@gmail.com> | 2018-01-04 21:20:59 +0000 |
commit | d239da264c5d0ca2ecfd609ae3eccced939a4c46 (patch) | |
tree | aa5b490fa2d9c1b4b6899a411bbcca03ccc0659d /ui/qt/preferences_dialog.h | |
parent | a79b7986cddf40a8ade57638916951323fff581e (diff) |
Convert preference dialog to use more models.
Convert Advanced view and Modules view to use a single base model,
loading the preferences once and then filter and display what they
need with QSortFilterProxyModel derived classes.
Convert the PreferencePane "types" to just strings. This allows
a more straightforward relationship between the "special" modules
that need custom widgets for preference manipulation and it also
removes dependency on preferences_dialog.h for many files.
Change-Id: I091deb3061564aa4d1564e9ca1c792715961b083
Reviewed-on: https://code.wireshark.org/review/25134
Reviewed-by: Michael Mann <mmann78@netscape.net>
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot
Reviewed-by: Roland Knall <rknall@gmail.com>
Diffstat (limited to 'ui/qt/preferences_dialog.h')
-rw-r--r-- | ui/qt/preferences_dialog.h | 65 |
1 files changed, 13 insertions, 52 deletions
diff --git a/ui/qt/preferences_dialog.h b/ui/qt/preferences_dialog.h index b841f783fd..e78116f27e 100644 --- a/ui/qt/preferences_dialog.h +++ b/ui/qt/preferences_dialog.h @@ -4,19 +4,7 @@ * By Gerald Combs <gerald@wireshark.org> * Copyright 1998 Gerald Combs * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * SPDX-License-Identifier: GPL-2.0+ */ #ifndef PREFERENCES_DIALOG_H @@ -24,19 +12,15 @@ #include <config.h> -#include <glib.h> - #include <epan/prefs.h> -#include "wireshark_application.h" +#include <ui/qt/models/pref_models.h> +#include <ui/qt/models/pref_delegate.h> #include "geometry_state_dialog.h" -#include <QTreeWidgetItem> class QComboBox; -extern pref_t *prefFromPrefPtr(void *pref_ptr); - namespace Ui { class PreferencesDialog; } @@ -46,50 +30,27 @@ class PreferencesDialog : public GeometryStateDialog Q_OBJECT public: - // This, prefsTree, and stackedWidget must all correspond to each other. - enum PreferencesPane { - ppAppearance, - ppLayout, - ppColumn, - ppFontAndColor, - ppCapture, - ppExpert, - ppFilterExpressions - }; - explicit PreferencesDialog(QWidget *parent = 0); ~PreferencesDialog(); - void setPane(PreferencesPane start_pane); - void setPane(const QString module_name); + + void setPane(const QString pane_name); protected: void showEvent(QShowEvent *evt); - void keyPressEvent(QKeyEvent *evt); private: - void updateItem(QTreeWidgetItem &item); - Ui::PreferencesDialog *pd_ui_; - QHash<PreferencesDialog::PreferencesPane, QTreeWidgetItem *>prefs_pane_to_item_; - int cur_pref_type_; - QLineEdit *cur_line_edit_; - QString saved_string_pref_; - QComboBox *cur_combo_box_; - int saved_combo_idx_; + + QHash<QString, QWidget*> prefs_pane_to_item_; + + PrefsModel model_; + AdvancedPrefsModel advancedPrefsModel_; + AdvancedPrefDelegate advancedPrefsDelegate_; + ModulePrefsModel modulePrefsModel_; private slots: - void on_prefsTree_currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous); + void selectPane(QString pane); void on_advancedSearchLineEdit_textEdited(const QString &search_re); - void lineEditPrefDestroyed(); - void enumPrefDestroyed(); - void uintPrefEditingFinished(); - void enumPrefCurrentIndexChanged(int index); - void stringPrefEditingFinished(); - void rangePrefTextChanged(const QString & text); - void rangePrefEditingFinished(); - - void on_advancedTree_currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous); - void on_advancedTree_itemActivated(QTreeWidgetItem *item, int column); void on_buttonBox_accepted(); void on_buttonBox_rejected(); |