diff options
author | Berthold Stoeger <bstoeger@mail.tuwien.ac.at> | 2018-05-18 20:33:01 +0200 |
---|---|---|
committer | Lubomir I. Ivanov <neolit123@gmail.com> | 2018-05-21 22:17:28 +0300 |
commit | fbe1144eaf7e800a014c7a97b846835ba9f3bc7f (patch) | |
tree | fd18c14e5113f72562864016baf913f9be038664 | |
parent | 3646fa800bf4bac89593b5a6d43c58350918ddf7 (diff) | |
download | subsurface-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.cpp | 1 | ||||
-rw-r--r-- | qt-models/divepicturemodel.cpp | 9 |
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 |