[PATCH] Clean up divelist dive selection

Linus Torvalds torvalds at linux-foundation.org
Wed Jun 5 01:32:09 PDT 2013


From: Linus Torvalds <torvalds at linux-foundation.org>
Date: Wed, 5 Jun 2013 17:28:22 +0900
Subject: [PATCH] Clean up divelist dive selection

Since we have a "selectDive()" method, let's just use it rather than
opencoding it.  Similarly for "unselectDives()".

Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
---
 qt-ui/divelistview.cpp | 19 ++++---------------
 1 file changed, 4 insertions(+), 15 deletions(-)

diff --git a/qt-ui/divelistview.cpp b/qt-ui/divelistview.cpp
index b75dda1f54b7..2fd98d426776 100644
--- a/qt-ui/divelistview.cpp
+++ b/qt-ui/divelistview.cpp
@@ -91,7 +91,7 @@ void DiveListView::headerClicked(int i)
 	QItemSelection oldSelection = selectionModel()->selection();
 	QList<struct dive*> currentSelectedDives;
 	DiveTripModel::Layout newLayout;
-	bool scrolled = false;
+	bool first = true;
 
 	newLayout = i == (int) TreeItemDT::NR ? DiveTripModel::TREE : DiveTripModel::LIST;
 
@@ -104,7 +104,7 @@ void DiveListView::headerClicked(int i)
 			currentSelectedDives.push_back(d);
 	}
 
-	selectionModel()->clearSelection();
+	unselectDives();
 
 	/* No layout change? Just re-sort, and scroll to first selection, making sure all selections are expanded */
 	if (currentLayout == newLayout) {
@@ -119,19 +119,8 @@ void DiveListView::headerClicked(int i)
 
 	// repopulat the selections.
 	Q_FOREACH(struct dive *d, currentSelectedDives) {
-		QModelIndexList match = m->match(m->index(0,0), TreeItemDT::NR, d->number, 1, Qt::MatchRecursive);
-		QModelIndex idx = match.first();
-
-		if (newLayout == DiveTripModel::TREE) {
-			QModelIndex parent = idx.parent();
-			if (parent.isValid())
-				expand(parent);
-		}
-		selectionModel()->select( idx, QItemSelectionModel::Select | QItemSelectionModel::Rows);
-		if (!scrolled) {
-			scrollTo(idx, PositionAtCenter);
-			scrolled = true;
-		}
+		selectDive(d, first);
+		first = false;
 	}
 }
 
-- 
1.8.3



More information about the subsurface mailing list