diff options
author | Berthold Stoeger <bstoeger@mail.tuwien.ac.at> | 2019-09-26 13:47:49 +0200 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2019-09-27 16:33:37 -0700 |
commit | eecca6aab0a1970c7474df7ac8408d810a5d0bbd (patch) | |
tree | 9c7fce46bb075dd013915ebf5ef6fcc2589303da /qt-models/divelistmodel.h | |
parent | 649ac1f83a7c2a5254363682c2c7cce9fd680ffe (diff) | |
download | subsurface-eecca6aab0a1970c7474df7ac8408d810a5d0bbd.tar.gz |
Mobile: replace model-reset by row-addition in DiveListModel::reload()
Owing to apparent QML breakage, a model-reset leads to the DiveDetail
page being reloaded for every dive in the list(!). Therefore, add
rows instead.
This leads to extremely subtle code, as it is now imperative that
the model has been properly cleared beforehand. Nevertheless, for
now we have to do this to fix a severe performance regression.
Fixes #2295
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'qt-models/divelistmodel.h')
-rw-r--r-- | qt-models/divelistmodel.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/qt-models/divelistmodel.h b/qt-models/divelistmodel.h index 686dcd1c3..19838f468 100644 --- a/qt-models/divelistmodel.h +++ b/qt-models/divelistmodel.h @@ -53,7 +53,7 @@ public: void removeDive(int i); void removeDiveById(int id); void updateDive(int i, dive *d); - void reload(); + void reload(); // Only call after clearing the model! struct dive *getDive(int i); int rowCount(const QModelIndex &parent = QModelIndex()) const; int getDiveIdx(int id) const; |