diff src/metadataview.cpp @ 53:28d5a77db9fb 0.9.1

Ensure that the first row is properly set after filtering
author Andre Heinecke <andre.heinecke@intevation.de>
date Mon, 18 May 2015 12:06:01 +0200
parents 73e6b6b12412
children 23672cbc3e5f
line wrap: on
line diff
--- a/src/metadataview.cpp	Thu May 07 10:38:07 2015 +0200
+++ b/src/metadataview.cpp	Mon May 18 12:06:01 2015 +0200
@@ -44,6 +44,8 @@
     FilterWidget *filterWidget = new FilterWidget(mSortModel);
     connect(filterWidget, &FilterWidget::filterHasChanged,
             this, &MetaDataView::applyDefaultSort);
+    connect(filterWidget, &FilterWidget::filterHasChanged,
+            this, &MetaDataView::selectFirstRow);
     baseLayout->addWidget(filterWidget);
 
     mView = new QTableView;
@@ -128,6 +130,11 @@
     qDebug() << "Selection changed: " << idx.data();
 }
 
+void MetaDataView::selectFirstRow() {
+    qDebug() << "Selecting first row";
+    selectRow(0);
+}
+
 void MetaDataView::selectRow(int row) {
     QItemSelectionModel *selection = mView->selectionModel();
     if (!mSortModel->hasIndex(row, 0)) {
@@ -135,7 +142,7 @@
         return;
     }
     QModelIndex newIdx = mSortModel->index(row, 0);
-    selection->select(newIdx, QItemSelectionModel::SelectCurrent | QItemSelectionModel::Rows);
+    selection->select(newIdx, QItemSelectionModel::Clear | QItemSelectionModel::SelectCurrent | QItemSelectionModel::Rows);
 }
 
 void MetaDataView::selectPrevRow() {
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)