diff --git a/pglab/DatabaseWindow.cpp b/pglab/DatabaseWindow.cpp index d671f56..81cf935 100644 --- a/pglab/DatabaseWindow.cpp +++ b/pglab/DatabaseWindow.cpp @@ -86,10 +86,9 @@ DatabaseWindow::~DatabaseWindow() QueryTab* DatabaseWindow::newSqlPage() { QueryTab *qt = new QueryTab(m_context); - qt->setConfig(m_config, m_database->catalog()); - addPage(qt, "Tab"); qt->newdoc(); qt->focusEditor(); + addPage(qt, "Tab"); return qt; } diff --git a/pglab/QueryTab.cpp b/pglab/QueryTab.cpp index 81b564b..ba0b6dc 100644 --- a/pglab/QueryTab.cpp +++ b/pglab/QueryTab.cpp @@ -30,13 +30,16 @@ QueryTab::QueryTab(IPluginContentWidgetContext *context_, QWidget *parent) { ui->setupUi(this); + m_config = context()->getDatabase()->config(); + m_catalog = context()->getDatabase()->catalog(); + connect(&m_dbConnection, &ASyncDBConnection::onStateChanged, this, &QueryTab::connectionStateChanged); connect(&m_dbConnection, &ASyncDBConnection::onNotice, this, &QueryTab::receiveNotice); ui->queryEdit->setFont(UserConfiguration::instance()->codeFont()); highlighter = new SqlSyntaxHighlighter(ui->queryEdit->document()); - auto open_database = context()-> getDatabase(); + auto open_database = context()->getDatabase(); if (open_database) { auto cat = open_database->catalog(); highlighter->setTypes(*cat->types()); @@ -49,6 +52,8 @@ QueryTab::QueryTab(IPluginContentWidgetContext *context_, QWidget *parent) &QueryParamListController::on_addParam); connect(ui->removeButton, &QPushButton::clicked, m_queryParamListController, &QueryParamListController::on_removeParam); + + context()->QueueTask([this]() { startConnect(); }); } QueryTab::~QueryTab() @@ -58,14 +63,6 @@ QueryTab::~QueryTab() delete ui; } -void QueryTab::setConfig(const ConnectionConfig &config, - std::shared_ptr cat) -{ - m_config = config; - m_catalog = cat; - context()->QueueTask([this]() { startConnect(); }); -} - bool QueryTab::canClose() { bool can_close; diff --git a/pglab/QueryTab.h b/pglab/QueryTab.h index 1b1d76a..41169f4 100644 --- a/pglab/QueryTab.h +++ b/pglab/QueryTab.h @@ -37,10 +37,7 @@ public: QueryTab(IPluginContentWidgetContext *context, QWidget *parent = nullptr); ~QueryTab() override; - void setConfig(const ConnectionConfig &config, std::shared_ptrcat); - void newdoc(); -// void open(); bool load(const QString &filename); bool save(); bool saveAs(); @@ -50,7 +47,7 @@ public: void explain(bool analyze); void cancel(); - bool canClose(); + bool canClose() override; void copyQueryAsCString(); void copyQueryAsRawCppString();