summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Berthold Stoeger <bstoeger@mail.tuwien.ac.at>2018-05-18 20:33:01 +0200
committerGravatar Lubomir I. Ivanov <neolit123@gmail.com>2018-05-21 22:17:28 +0300
commitfbe1144eaf7e800a014c7a97b846835ba9f3bc7f (patch)
treefd18c14e5113f72562864016baf913f9be038664
parent3646fa800bf4bac89593b5a6d43c58350918ddf7 (diff)
downloadsubsurface-fbe1144eaf7e800a014c7a97b846835ba9f3bc7f.tar.gz
Dive pictures: use modelReset signal when reseting picture list
In the old code a combination of removeRows()/insertRows() was used to signal a model reset. Replace this by a single, modelReset signal. This saves a call to plotPictures() and will allow us to be smarter in the future, when removing pictures. Reset-model and remove-items are semantically different. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
-rw-r--r--profile-widget/profilewidget2.cpp1
-rw-r--r--qt-models/divepicturemodel.cpp9
2 files changed, 3 insertions, 7 deletions
diff --git a/profile-widget/profilewidget2.cpp b/profile-widget/profilewidget2.cpp
index de7cebc87..85653d1fc 100644
--- a/profile-widget/profilewidget2.cpp
+++ b/profile-widget/profilewidget2.cpp
@@ -1119,6 +1119,7 @@ void ProfileWidget2::setProfileState()
connect(DivePictureModel::instance(), &DivePictureModel::dataChanged, this, &ProfileWidget2::updatePictures);
connect(DivePictureModel::instance(), SIGNAL(rowsInserted(const QModelIndex &, int, int)), this, SLOT(plotPictures()));
connect(DivePictureModel::instance(), SIGNAL(rowsRemoved(const QModelIndex &, int, int)), this, SLOT(plotPictures()));
+ connect(DivePictureModel::instance(), &DivePictureModel::modelReset, this, &ProfileWidget2::plotPictures);
#endif
/* show the same stuff that the profile shows. */
diff --git a/qt-models/divepicturemodel.cpp b/qt-models/divepicturemodel.cpp
index 2fc7b8311..9b993cb5a 100644
--- a/qt-models/divepicturemodel.cpp
+++ b/qt-models/divepicturemodel.cpp
@@ -57,10 +57,9 @@ void DivePictureModel::updateThumbnails()
void DivePictureModel::updateDivePictures()
{
+ beginResetModel();
if (!pictures.isEmpty()) {
- beginRemoveRows(QModelIndex(), 0, pictures.count() - 1);
pictures.clear();
- endRemoveRows();
rowDDStart = rowDDEnd = 0;
Thumbnailer::instance()->clearWorkQueue();
}
@@ -83,11 +82,7 @@ void DivePictureModel::updateDivePictures()
}
updateThumbnails();
-
- if (!pictures.isEmpty()) {
- beginInsertRows(QModelIndex(), 0, pictures.count() - 1);
- endInsertRows();
- }
+ endResetModel();
}
int DivePictureModel::columnCount(const QModelIndex &parent) const