diff options
author | Roland Knall <rknall@gmail.com> | 2016-10-26 10:03:50 +0200 |
---|---|---|
committer | Roland Knall <rknall@gmail.com> | 2016-10-26 09:19:11 +0000 |
commit | ca2dc538ffbf6ecda2416bc53808fc97e7b8b3d4 (patch) | |
tree | ffb85f7eecae80cf1c006e7e44147fcba6ded8d7 /ui/qt/interface_sort_filter_model.cpp | |
parent | 6eee29bf2a86eee890051b566db26628e2e52918 (diff) | |
download | wireshark-ca2dc538ffbf6ecda2416bc53808fc97e7b8b3d4.tar.gz |
InterfaceList: Make storing preferences optional
If multiple proxy models are used, not all should change
the preferences if types are being displayed or hidden. Only
the main list should have that option.
Change-Id: I8617e402b6608eda98d7ecc0167cd0ccc3c43eaa
Reviewed-on: https://code.wireshark.org/review/18470
Petri-Dish: Roland Knall <rknall@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Roland Knall <rknall@gmail.com>
Diffstat (limited to 'ui/qt/interface_sort_filter_model.cpp')
-rw-r--r-- | ui/qt/interface_sort_filter_model.cpp | 43 |
1 files changed, 28 insertions, 15 deletions
diff --git a/ui/qt/interface_sort_filter_model.cpp b/ui/qt/interface_sort_filter_model.cpp index 73dde7b6a2..fab21ec6e0 100644 --- a/ui/qt/interface_sort_filter_model.cpp +++ b/ui/qt/interface_sort_filter_model.cpp @@ -39,14 +39,21 @@ InterfaceSortFilterModel::InterfaceSortFilterModel(QObject *parent) : _filterHidden = true; _filterTypes = true; _invertTypeFilter = false; + _storeOnChange = false; /* Adding all columns, to have a default setting */ for ( int col = 0; col < IFTREE_COL_MAX; col++ ) _columns.append((InterfaceTreeColumns)col); +} - connect(wsApp, SIGNAL(preferencesChanged()), this, SLOT(resetPreferenceData())); - - resetPreferenceData(); +void InterfaceSortFilterModel::setStoreOnChange(bool storeOnChange) +{ + _storeOnChange = storeOnChange; + if ( storeOnChange ) + { + connect(wsApp, SIGNAL(preferencesChanged()), this, SLOT(resetPreferenceData())); + resetPreferenceData(); + } } void InterfaceSortFilterModel::setFilterHidden(bool filter) @@ -95,9 +102,12 @@ void InterfaceSortFilterModel::toggleFilterHidden() { _filterHidden = ! _filterHidden; - prefs.gui_interfaces_show_hidden = ! _filterHidden; + if ( _storeOnChange ) + { + prefs.gui_interfaces_show_hidden = ! _filterHidden; - prefs_main_write(); + prefs_main_write(); + } invalidateFilter(); invalidate(); @@ -150,19 +160,22 @@ void InterfaceSortFilterModel::setInterfaceTypeVisible(int ifType, bool visible) /* Nothing should have changed */ return; - QString new_pref; - QList<int>::const_iterator it = displayHiddenTypes.constBegin(); - while( it != displayHiddenTypes.constEnd() ) + if ( _storeOnChange ) { - new_pref.append(QString("%1,").arg(*it)); - ++it; - } - if (new_pref.length() > 0) - new_pref = new_pref.left(new_pref.length() - 1); + QString new_pref; + QList<int>::const_iterator it = displayHiddenTypes.constBegin(); + while( it != displayHiddenTypes.constEnd() ) + { + new_pref.append(QString("%1,").arg(*it)); + ++it; + } + if (new_pref.length() > 0) + new_pref = new_pref.left(new_pref.length() - 1); - prefs.gui_interfaces_hide_types = qstring_strdup(new_pref); + prefs.gui_interfaces_hide_types = qstring_strdup(new_pref); - prefs_main_write(); + prefs_main_write(); + } invalidateFilter(); invalidate(); |