summaryrefslogtreecommitdiffstats
path: root/qt-models
diff options
context:
space:
mode:
Diffstat (limited to 'qt-models')
-rw-r--r--qt-models/filtermodels.cpp14
-rw-r--r--qt-models/filtermodels.h1
2 files changed, 15 insertions, 0 deletions
diff --git a/qt-models/filtermodels.cpp b/qt-models/filtermodels.cpp
index 568fcd9e2..07ec1a250 100644
--- a/qt-models/filtermodels.cpp
+++ b/qt-models/filtermodels.cpp
@@ -333,6 +333,20 @@ void LocationFilterModel::changeName(const QString &oldName, const QString &newN
checkState[newIndex] = true;
}
+void LocationFilterModel::addName(const QString &newName)
+{
+ // If any item is checked and a new location is added, add the name
+ // of the new location in front of the list and mark it as checked.
+ // Thus, on subsequent repopulation of the list, the new entry will
+ // be registered as already checked.
+ QStringList list = stringList();
+ if (!anyChecked || newName.isEmpty() || list.indexOf(newName) >= 0)
+ return;
+ list.prepend(newName);
+ setStringList(list);
+ checkState.insert(checkState.begin(), true);
+}
+
MultiFilterSortModel::MultiFilterSortModel(QObject *parent) :
QSortFilterProxyModel(parent),
divesDisplayed(0),
diff --git a/qt-models/filtermodels.h b/qt-models/filtermodels.h
index 45f820984..671ac1d19 100644
--- a/qt-models/filtermodels.h
+++ b/qt-models/filtermodels.h
@@ -69,6 +69,7 @@ public
slots:
void repopulate();
void changeName(const QString &oldName, const QString &newName);
+ void addName(const QString &newName);
private:
explicit LocationFilterModel(QObject *parent = 0);