diff options
-rw-r--r-- | ui/qt/interface_frame.cpp | 2 | ||||
-rw-r--r-- | ui/qt/interface_sort_filter_model.cpp | 43 | ||||
-rw-r--r-- | ui/qt/interface_sort_filter_model.h | 3 |
3 files changed, 32 insertions, 16 deletions
diff --git a/ui/qt/interface_frame.cpp b/ui/qt/interface_frame.cpp index a6bb538172..64af22da68 100644 --- a/ui/qt/interface_frame.cpp +++ b/ui/qt/interface_frame.cpp @@ -91,7 +91,7 @@ InterfaceFrame::InterfaceFrame(QWidget * parent) columns.append(IFTREE_COL_NAME); columns.append(IFTREE_COL_STATS); proxyModel->setColumns(columns); - + proxyModel->setStoreOnChange(true); proxyModel->setSourceModel(sourceModel); ui->interfaceTree->setModel(proxyModel); 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(); diff --git a/ui/qt/interface_sort_filter_model.h b/ui/qt/interface_sort_filter_model.h index 6a19e5b874..dd062acfb7 100644 --- a/ui/qt/interface_sort_filter_model.h +++ b/ui/qt/interface_sort_filter_model.h @@ -37,6 +37,8 @@ class InterfaceSortFilterModel : public QSortFilterProxyModel public: InterfaceSortFilterModel(QObject *parent); + void setStoreOnChange(bool storeOnChange); + void setFilterHidden(bool filter); bool filterHidden() const; int interfacesHidden(); @@ -66,6 +68,7 @@ private: bool _filterHidden; bool _filterTypes; bool _invertTypeFilter; + bool _storeOnChange; QList<int> displayHiddenTypes; |