From b9bc00a38915a55fa2dad23006015c919c5898a0 Mon Sep 17 00:00:00 2001 From: Eelke Klein Date: Sun, 3 Sep 2017 14:37:12 +0200 Subject: [PATCH] Using a global variable to register meta types instead of the main() function. Prevents needing to have extra includes in the main. --- src/pglab/ASyncDBConnection.cpp | 14 ++++++++++++++ src/pglab/QueryTab.cpp | 27 +++++++++++++++++++++------ src/pglab/QueryTab.h | 1 + src/pglab/main.cpp | 4 ---- 4 files changed, 36 insertions(+), 10 deletions(-) diff --git a/src/pglab/ASyncDBConnection.cpp b/src/pglab/ASyncDBConnection.cpp index e9b3a2a..adb20ea 100644 --- a/src/pglab/ASyncDBConnection.cpp +++ b/src/pglab/ASyncDBConnection.cpp @@ -4,6 +4,20 @@ using namespace boost::asio; +namespace { + + class registerMetaTypes { + public: + registerMetaTypes() + { + qRegisterMetaType(); + qRegisterMetaType(); + } + } registerMetaTypes_instance; + + +} + ASyncDBConnection::ASyncDBConnection(boost::asio::io_service &ios) : m_asioSock(ios) {} diff --git a/src/pglab/QueryTab.cpp b/src/pglab/QueryTab.cpp index a392f3f..035f2e6 100644 --- a/src/pglab/QueryTab.cpp +++ b/src/pglab/QueryTab.cpp @@ -45,6 +45,13 @@ Pgsql::Params QueryParamListController::params() const return params; } +bool QueryParamListController::empty() const +{ + + return m_paramList.rowCount() == 0; +} + + void QueryParamListController::on_addParam() { m_paramList.insertRows(m_paramList.rowCount(), 1); @@ -195,12 +202,20 @@ void QueryTab::execute() std::string cmd = getCommand(); m_stopwatch.start(); - m_dbConnection.send(cmd, - m_queryParamListController->params(), - [this](std::shared_ptr res, qint64 elapsedms) - { - m_win->QueueTask([this, res, elapsedms]() { query_ready(res, elapsedms); }); - }); + + if (m_queryParamListController->empty()) + m_dbConnection.send(cmd, + [this](std::shared_ptr res, qint64 elapsedms) + { + m_win->QueueTask([this, res, elapsedms]() { query_ready(res, elapsedms); }); + }); + else + m_dbConnection.send(cmd, + m_queryParamListController->params(), + [this](std::shared_ptr res, qint64 elapsedms) + { + m_win->QueueTask([this, res, elapsedms]() { query_ready(res, elapsedms); }); + }); } } diff --git a/src/pglab/QueryTab.h b/src/pglab/QueryTab.h index 4b82b5b..11b8b8e 100644 --- a/src/pglab/QueryTab.h +++ b/src/pglab/QueryTab.h @@ -33,6 +33,7 @@ public: QueryParamListController(QTableView *tv, OpenDatabase *opendb, QWidget *parent); Pgsql::Params params() const; + bool empty() const; public slots: void on_addParam(); void on_removeParam(); diff --git a/src/pglab/main.cpp b/src/pglab/main.cpp index cf43959..38482a6 100644 --- a/src/pglab/main.cpp +++ b/src/pglab/main.cpp @@ -5,8 +5,6 @@ #endif #include #include "GlobalIoService.h" -#include "ASyncDBConnection.h" -#include "Pgsql_Result.h" int main(int argc, char *argv[]) { @@ -24,8 +22,6 @@ int main(int argc, char *argv[]) } #endif - qRegisterMetaType(); - qRegisterMetaType(); QApplication a(argc, argv);