From 2799c29bbbe5f3b8ce55f2bf2e65b6adf49d4cf4 Mon Sep 17 00:00:00 2001 From: Martin Kleusberg Date: Mon, 15 Aug 2016 21:27:51 +0200 Subject: [PATCH] Don't delete and re-create the database model when closing a database This simplifies the code a bit. --- src/MainWindow.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index ddfdaabb..6a30a15a 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -85,6 +85,10 @@ void MainWindow::init() // Set up DB models ui->dataTable->setModel(m_browseTableModel); + // Set up filters + connect(ui->dataTable->filterHeader(), SIGNAL(filterChanged(int,QString)), this, SLOT(updateFilter(int,QString))); + connect(m_browseTableModel, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(dataTableSelectionChanged(QModelIndex))); + // Set up DB structure tab dbStructureModel = new DbStructureModel(ui->dbTreeWidget); ui->dbTreeWidget->setModel(dbStructureModel); @@ -526,11 +530,8 @@ bool MainWindow::fileClose() statusEncryptionLabel->setVisible(false); statusReadOnlyLabel->setVisible(false); - // Delete the model for the Browse tab and create a new one - delete m_browseTableModel; - m_browseTableModel = new SqliteTableModel(this, &db, PreferencesDialog::getSettingsValue("db", "prefetchsize").toInt()); - connect(ui->dataTable->filterHeader(), SIGNAL(filterChanged(int,QString)), this, SLOT(updateFilter(int,QString))); - connect(m_browseTableModel, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(dataTableSelectionChanged(QModelIndex))); + // Reset the model for the Browse tab + m_browseTableModel->reset(); // Remove all stored table information browse data tab browseTableSettings.clear();