From 5a994b08f6323680fe8362f129f097c9c2aaef2e Mon Sep 17 00:00:00 2001 From: Tomaz Canabrava Date: Tue, 28 May 2013 17:46:40 -0300 Subject: Saves the selection to select it later. Signed-off-by: Tomaz Canabrava --- qt-ui/divelistview.cpp | 25 ++++++++++++++++++++++++- qt-ui/mainwindow.ui | 4 ++-- 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/qt-ui/divelistview.cpp b/qt-ui/divelistview.cpp index 8852eda3e..948bfa57a 100644 --- a/qt-ui/divelistview.cpp +++ b/qt-ui/divelistview.cpp @@ -24,20 +24,43 @@ DiveListView::DiveListView(QWidget *parent) : QTreeView(parent), mouseClickSelec setModel(model); setSortingEnabled(false); header()->setContextMenuPolicy(Qt::ActionsContextMenu); - connect(header(), SIGNAL(sectionClicked(int)), this, SLOT(headerClicked(int))); } void DiveListView::headerClicked(int i ) { + QModelIndexList oldSelection = selectionModel()->selectedRows(); + QList currentSelectedDives; + Q_FOREACH(const QModelIndex& index , oldSelection){ + struct dive *d = (struct dive *) index.data(TreeItemDT::DIVE_ROLE).value(); + if (d){ + currentSelectedDives.push_back(d); + } + } + if (i == (int) TreeItemDT::NR){ reload(DiveTripModel::TREE); }else{ reload(DiveTripModel::LIST); } + + QModelIndexList newSelection; + QItemSelection newSelection2; + + Q_FOREACH(struct dive *d, currentSelectedDives){ + QModelIndexList match = model()->match(model()->index(0,0), TreeItemDT::DIVE_ROLE, QVariant::fromValue(d), 1, Qt::MatchRecursive); + if (match.count() == 0){ + qDebug() << "Well, this shouldn't happen."; + }else{ + newSelection << match.first(); + } + } } void DiveListView::reload(DiveTripModel::Layout layout) { + header()->setClickable(true); + connect(header(), SIGNAL(sectionPressed(int)), this, SLOT(headerClicked(int)), Qt::UniqueConnection); + QSortFilterProxyModel *m = qobject_cast(model()); QAbstractItemModel *oldModel = m->sourceModel(); if (oldModel) diff --git a/qt-ui/mainwindow.ui b/qt-ui/mainwindow.ui index 3f9726785..c72e36eb4 100644 --- a/qt-ui/mainwindow.ui +++ b/qt-ui/mainwindow.ui @@ -73,7 +73,7 @@ true - true + false true @@ -103,7 +103,7 @@ 0 0 763 - 25 + 20 -- cgit v1.2.3-70-g09d2