From a1f506bb141df23aae81d04bcaf296c824a54b0f Mon Sep 17 00:00:00 2001 From: Martin Kleusberg Date: Tue, 29 Apr 2014 20:27:20 +0200 Subject: [PATCH] Fix not working filters. Closes issue #46. --- src/MainWindow.cpp | 10 +++++----- src/MainWindow.h | 2 ++ 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index 01c85caf..65b4233d 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -77,10 +77,8 @@ void MainWindow::init() ui->dbTreeWidget->setColumnWidth(0, 300); // Set up filter row - FilterTableHeader* tableHeader = new FilterTableHeader(ui->dataTable); - connect(tableHeader, SIGNAL(filterChanged(int,QString)), m_browseTableModel, SLOT(updateFilter(int,QString))); - connect(tableHeader, SIGNAL(filterChanged(int,QString)), this, SLOT(setRecordsetLabel())); - ui->dataTable->setHorizontalHeader(tableHeader); + m_tableHeader = new FilterTableHeader(ui->dataTable); + ui->dataTable->setHorizontalHeader(m_tableHeader); // Create the actions for the recently opened dbs list for(int i = 0; i < MaxRecentFiles; ++i) { @@ -118,7 +116,8 @@ void MainWindow::init() ui->statusbar->addPermanentWidget(statusEncodingLabel); // Connect some more signals and slots - connect(tableHeader, SIGNAL(sectionClicked(int)), this, SLOT(browseTableHeaderClicked(int))); + connect(m_tableHeader, SIGNAL(filterChanged(int,QString)), this, SLOT(setRecordsetLabel())); + connect(m_tableHeader, SIGNAL(sectionClicked(int)), this, SLOT(browseTableHeaderClicked(int))); connect(ui->dataTable->verticalScrollBar(), SIGNAL(valueChanged(int)), this, SLOT(setRecordsetLabel())); connect(editWin, SIGNAL(goingAway()), this, SLOT(editWinAway())); connect(editWin, SIGNAL(updateRecordText(int, int, QByteArray)), this, SLOT(updateRecordText(int, int, QByteArray))); @@ -365,6 +364,7 @@ void MainWindow::fileClose() // 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(m_tableHeader, SIGNAL(filterChanged(int,QString)), m_browseTableModel, SLOT(updateFilter(int,QString))); // Manually update the recordset label inside the Browse tab now setRecordsetLabel(); diff --git a/src/MainWindow.h b/src/MainWindow.h index 36a47adf..4c1e66c1 100644 --- a/src/MainWindow.h +++ b/src/MainWindow.h @@ -19,6 +19,7 @@ class DbStructureModel; class QNetworkReply; class QNetworkAccessManager; class QTreeWidgetItem; +class FilterTableHeader; namespace Ui { class MainWindow; @@ -67,6 +68,7 @@ private: SqliteTableModel* m_browseTableModel; SqliteTableModel* m_currentPlotModel; + FilterTableHeader* m_tableHeader; QMenu *popupTableMenu; QMenu *recentFilesMenu;