summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ui/qt/interface_frame.cpp2
-rw-r--r--ui/qt/interface_sort_filter_model.cpp43
-rw-r--r--ui/qt/interface_sort_filter_model.h3
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;