odd selection issue
Dirk Hohndel
dirk at hohndel.org
Sat May 24 14:01:49 PDT 2014
I had a qDebug() there because I thought earlier that I could create
situations where things went wrong - now I was able to reproduce one.
Merging to trips reliably put us in an inconsistent state. The code flow
then actually happened to correct the issue, but I want to make sure this
doesn't bite us some other time...
Tomaz, Thiago, can you look at this and tell me why clearSelection()
doesn't appear to trigger the selectionChange() slot?
/D
commit 10e567515161f23510874236efd2f105c033ecec
Author: Dirk Hohndel <dirk at hohndel.org>
Date: Sat May 24 13:55:18 2014 -0700
Dive list: work around odd problem with selections
According to the documentation clearSelection() should emit
selectionChanged() - but I can verify in the debugger that sometimes this
doesn't appear to happen - consequently our notion of what's selected gets
confused.
To work around this, after calling clearSelection() we simply manuall
deselect all dives.
Signed-off-by: Dirk Hohndel <dirk at hohndel.org>
diff --git a/qt-ui/divelistview.cpp b/qt-ui/divelistview.cpp
index 91b3dadf5423..1f716ed57a70 100644
--- a/qt-ui/divelistview.cpp
+++ b/qt-ui/divelistview.cpp
@@ -190,8 +190,13 @@ void DiveListView::selectTrip(dive_trip_t *trip)
void DiveListView::unselectDives()
{
selectionModel()->clearSelection();
- if (amount_selected != 0)
- qDebug() << "selection information inconsistent";
+ // clearSelection should emit selectionChanged() but sometimes that
+ // appears not to happen
+ int i;
+ struct dive *dive;
+ for_each_dive(i, dive) {
+ deselect_dive(i);
+ }
}
QList<dive_trip_t *> DiveListView::selectedTrips()
More information about the subsurface
mailing list