diff options
author | Dirk Hohndel <dirk@hohndel.org> | 2015-11-30 10:09:46 -0800 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2015-11-30 10:09:46 -0800 |
commit | 2f2e9da2cd18d0450fa791371922ba1844338bb6 (patch) | |
tree | 4f774b1f37a1f9ad7546896f0d16088b26a77833 | |
parent | 9d6225831650dd9c6331763d29b392bc2741ae4e (diff) | |
download | subsurface-2f2e9da2cd18d0450fa791371922ba1844338bb6.tar.gz |
Clear the Dive model before repopulating it
Otherwise we could get duplicate dives in the dive list.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r-- | qt-mobile/qmlmanager.cpp | 1 | ||||
-rw-r--r-- | qt-models/divelistmodel.cpp | 7 | ||||
-rw-r--r-- | qt-models/divelistmodel.h | 1 |
3 files changed, 9 insertions, 0 deletions
diff --git a/qt-mobile/qmlmanager.cpp b/qt-mobile/qmlmanager.cpp index cb91df2ad..9d44fea91 100644 --- a/qt-mobile/qmlmanager.cpp +++ b/qt-mobile/qmlmanager.cpp @@ -117,6 +117,7 @@ void QMLManager::loadDives() int i; struct dive *d; + DiveListModel::instance()->clear(); for_each_dive(i, d) { DiveListModel::instance()->addDive(d); } diff --git a/qt-models/divelistmodel.cpp b/qt-models/divelistmodel.cpp index 7d49f5c01..18f270c15 100644 --- a/qt-models/divelistmodel.cpp +++ b/qt-models/divelistmodel.cpp @@ -15,6 +15,13 @@ void DiveListModel::addDive(dive *d) endInsertRows(); } +void DiveListModel::clear() +{ + beginRemoveRows(QModelIndex(), 0, m_dives.count() - 1); + m_dives.clear(); + endRemoveRows(); +} + int DiveListModel::rowCount(const QModelIndex &) const { return m_dives.count(); diff --git a/qt-models/divelistmodel.h b/qt-models/divelistmodel.h index 958a783e9..fbeb13486 100644 --- a/qt-models/divelistmodel.h +++ b/qt-models/divelistmodel.h @@ -35,6 +35,7 @@ public: static DiveListModel *instance(); DiveListModel(QObject *parent = 0); void addDive(dive *d); + void clear(); int rowCount(const QModelIndex &parent = QModelIndex()) const; QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const; QHash<int, QByteArray> roleNames() const; |