From 211d937c16546b42a1ab8152641d10faa8483cc1 Mon Sep 17 00:00:00 2001 From: eelke Date: Sun, 6 Oct 2019 14:24:18 +0200 Subject: [PATCH] Catalog refresh working for functions page. --- pglab/ProcTableModel.cpp | 12 ++++++++---- pglab/ProcTableModel.h | 5 +++-- pglab/widgets/CatalogFunctionsPage.cpp | 1 + 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/pglab/ProcTableModel.cpp b/pglab/ProcTableModel.cpp index 1fa52d8..09d4419 100644 --- a/pglab/ProcTableModel.cpp +++ b/pglab/ProcTableModel.cpp @@ -28,17 +28,21 @@ QVariant ProcTableModel::headerData(int section, Qt::Orientation orientation, in void ProcTableModel::setCatalog(std::shared_ptr cat) { - m_catalog = cat; - reloadData(); + if (cat != m_catalog) { + m_catalog = cat; + refreshConnection = connect(m_catalog.get(), &PgDatabaseCatalog::refreshed, + this, &ProcTableModel::refresh); + } + refresh(); } void ProcTableModel::setNamespaceFilter(NamespaceFilter filter) { m_namespaceFilter = filter; - reloadData(); + refresh(); } -void ProcTableModel::reloadData() +void ProcTableModel::refresh() { if (!m_catalog) return; diff --git a/pglab/ProcTableModel.h b/pglab/ProcTableModel.h index 6a07d17..c467803 100644 --- a/pglab/ProcTableModel.h +++ b/pglab/ProcTableModel.h @@ -48,11 +48,12 @@ private: std::shared_ptr m_catalog; NamespaceFilter m_namespaceFilter = NamespaceFilter::User; std::vector m_procs; + QMetaObject::Connection refreshConnection; - void reloadData(); Oid getType(int column) const; QVariant getData(const QModelIndex &index) const; - +private slots: + void refresh(); }; diff --git a/pglab/widgets/CatalogFunctionsPage.cpp b/pglab/widgets/CatalogFunctionsPage.cpp index 2cf0a71..bd6f20f 100644 --- a/pglab/widgets/CatalogFunctionsPage.cpp +++ b/pglab/widgets/CatalogFunctionsPage.cpp @@ -41,6 +41,7 @@ CatalogFunctionsPage::CatalogFunctionsPage(QWidget *parent) connect(m_functionTable->selectionModel(), &QItemSelectionModel::currentRowChanged, this, &CatalogFunctionsPage::functionTable_currentRowChanged); + connect(m_model, &ProcTableModel::modelReset, m_definitionView, &SqlCodePreview::clear); retranslateUi(); }