From 7c4f1a475284d8b9880ad130166b6406fd231711 Mon Sep 17 00:00:00 2001 From: eelke Date: Sun, 5 Aug 2018 11:57:27 +0200 Subject: [PATCH] fix: the source views for constraints and indexes are now cleared when the model is reset as this will clear all selections. Unfortunatly the selection model does not trigger a selectionChanged when the model is reset. Close #16 --- pglab/MainWindow.cpp | 2 +- pglab/TablesPage.cpp | 22 +++++++++++++++++++--- pglab/TablesPage.h | 2 ++ pglab/TablesPage.ui | 2 +- 4 files changed, 23 insertions(+), 5 deletions(-) diff --git a/pglab/MainWindow.cpp b/pglab/MainWindow.cpp index 225807c..256ab72 100644 --- a/pglab/MainWindow.cpp +++ b/pglab/MainWindow.cpp @@ -321,7 +321,7 @@ void MainWindow::addPage(PlgPage* page, QString caption) //addToolBarButtonsForPage(page); } -void MainWindow::removePage(PlgPage *page) +void MainWindow::removePage(PlgPage *) { } diff --git a/pglab/TablesPage.cpp b/pglab/TablesPage.cpp index cc2f4a6..1ba5897 100644 --- a/pglab/TablesPage.cpp +++ b/pglab/TablesPage.cpp @@ -56,7 +56,7 @@ TablesPage::TablesPage(MainWindow *parent) //m_namespaceFilterWidget = new NamespaceFilterWidget(this); //ui->verticalLayoutTableView->addWidget(m_namespaceFilterWidget); - + // Table selection connect(ui->tableListTable->selectionModel(), &QItemSelectionModel::currentRowChanged, this, &TablesPage::tableListTable_currentRowChanged); @@ -65,9 +65,15 @@ TablesPage::TablesPage(MainWindow *parent) connect(ui->constraintsTable->selectionModel(), &QItemSelectionModel::selectionChanged, this, &TablesPage::constraintsTable_selectionChanged); + connect(ui->constraintsTable->model(), &QAbstractItemModel::modelReset, this, + &TablesPage::constraintsTable_modelReset); + // React to changes in de selected indexes, does not trigger when model is reset connect(ui->indexesTable->selectionModel(), &QItemSelectionModel::selectionChanged, this, &TablesPage::indexesTable_selectionChanged); + // Capture model reset independently + connect(ui->indexesTable->model(), &QAbstractItemModel::modelReset, this, + &TablesPage::indexesTable_modelReset); } @@ -122,7 +128,7 @@ void TablesPage::constraintsTable_selectionChanged(const QItemSelection &/*selec { const auto indexes = ui->constraintsTable->selectionModel()->selectedIndexes(); boost::container::flat_set rijen; - for (const auto e : indexes) + for (const auto &e : indexes) rijen.insert(e.row()); QString drops; @@ -135,11 +141,16 @@ void TablesPage::constraintsTable_selectionChanged(const QItemSelection &/*selec ui->constraintSqlEdit->setPlainText(drops % "\n" % creates); } +void TablesPage::constraintsTable_modelReset() +{ + ui->constraintSqlEdit->clear(); +} + void TablesPage::indexesTable_selectionChanged(const QItemSelection &/*selected*/, const QItemSelection &/*deselected*/) { const auto indexes = ui->indexesTable->selectionModel()->selectedIndexes(); boost::container::flat_set rijen; - for (const auto e : indexes) + for (const auto &e : indexes) rijen.insert(e.row()); QString drops; @@ -153,6 +164,11 @@ void TablesPage::indexesTable_selectionChanged(const QItemSelection &/*selected* } +void TablesPage::indexesTable_modelReset() +{ + ui->indexSqlEdit->clear(); +} + void TablesPage::on_tableListTable_doubleClicked(const QModelIndex &index) { PgClass table = m_tablesModel->getTable(index.row()); diff --git a/pglab/TablesPage.h b/pglab/TablesPage.h index 7681e05..6098399 100644 --- a/pglab/TablesPage.h +++ b/pglab/TablesPage.h @@ -41,7 +41,9 @@ private slots: void tableListTable_currentRowChanged(const QModelIndex ¤t, const QModelIndex &previous); // void constraintsTable_currentRowChanged(const QModelIndex ¤t, const QModelIndex &previous); void constraintsTable_selectionChanged(const QItemSelection &selected, const QItemSelection &deselected); + void constraintsTable_modelReset(); void indexesTable_selectionChanged(const QItemSelection &selected, const QItemSelection &deselected); + void indexesTable_modelReset(); void on_tableListTable_doubleClicked(const QModelIndex &index); }; diff --git a/pglab/TablesPage.ui b/pglab/TablesPage.ui index d2a9ee2..4481693 100644 --- a/pglab/TablesPage.ui +++ b/pglab/TablesPage.ui @@ -38,7 +38,7 @@ - 2 + 0