diff options
Diffstat (limited to 'qt-models')
-rw-r--r-- | qt-models/filtermodels.cpp | 14 | ||||
-rw-r--r-- | qt-models/filtermodels.h | 1 |
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); |