From 3bf1ef4fe0a435fd6418dec6291defb43fcd51a0 Mon Sep 17 00:00:00 2001 From: eelke Date: Sat, 9 Dec 2017 14:16:47 +0100 Subject: [PATCH] Moved QueryParamListController to its own translation unit. --- pglab/QueryParamListController.cpp | 49 +++++++++++++++++++++++++ pglab/QueryParamListController.h | 29 +++++++++++++++ pglab/QueryTab.cpp | 58 +++--------------------------- pglab/QueryTab.h | 21 +---------- pglab/pglab.pro | 6 ++-- 5 files changed, 88 insertions(+), 75 deletions(-) create mode 100644 pglab/QueryParamListController.cpp create mode 100644 pglab/QueryParamListController.h diff --git a/pglab/QueryParamListController.cpp b/pglab/QueryParamListController.cpp new file mode 100644 index 0000000..947a0e8 --- /dev/null +++ b/pglab/QueryParamListController.cpp @@ -0,0 +1,49 @@ +#include "QueryParamListController.h" +#include "OpenDatabase.h" +#include "PgDatabaseCatalogue.h" +#include "PgTypeContainer.h" +#include + + +QueryParamListController::QueryParamListController(QTableView *tv, + OpenDatabase *opendb, QWidget *parent) + : QObject(parent) + , paramTableView(tv) + , m_openDatabase(opendb) +{ + if (opendb) { + m_typeDelegate.setTypeSelectionModel(opendb->typeSelectionModel()); + } + + paramTableView->setModel(&m_paramList); + paramTableView->setItemDelegateForColumn(1, &m_typeDelegate); +} + +Pgsql::Params QueryParamListController::params() const +{ + Pgsql::Params params; + auto types = m_openDatabase->catalogue()->types(); + for (auto e : m_paramList) { + Oid oid = types->getByName(e.type).oid; + params.add(e.value, oid); + } + return params; +} + +bool QueryParamListController::empty() const +{ + + return m_paramList.rowCount() == 0; +} + +void QueryParamListController::on_addParam() +{ + m_paramList.insertRows(m_paramList.rowCount(), 1); +} + +void QueryParamListController::on_removeParam() +{ + auto rc = m_paramList.rowCount(); + if (rc > 0) + m_paramList.removeRows(rc-1, 1); +} diff --git a/pglab/QueryParamListController.h b/pglab/QueryParamListController.h new file mode 100644 index 0000000..aee93d2 --- /dev/null +++ b/pglab/QueryParamListController.h @@ -0,0 +1,29 @@ +#ifndef QUERYPARAMLISTCONTROLLER_H +#define QUERYPARAMLISTCONTROLLER_H + +#include +#include "ParamListModel.h" +#include "ParamTypeDelegate.h" +#include "Pgsql_Params.h" + +class QTableView; +class OpenDatabase; + +class QueryParamListController : public QObject { + Q_OBJECT +public: + QueryParamListController(QTableView *tv, OpenDatabase *opendb, QWidget *parent); + + Pgsql::Params params() const; + bool empty() const; +public slots: + void on_addParam(); + void on_removeParam(); +private: + QTableView *paramTableView; + OpenDatabase *m_openDatabase; + ParamListModel m_paramList; + ParamTypeDelegate m_typeDelegate; +}; + +#endif // QUERYPARAMLISTCONTROLLER_H diff --git a/pglab/QueryTab.cpp b/pglab/QueryTab.cpp index 7db03a9..695a7ab 100644 --- a/pglab/QueryTab.cpp +++ b/pglab/QueryTab.cpp @@ -15,54 +15,11 @@ #include "json/json.h" #include "MainWindow.h" #include "OpenDatabase.h" -#include "PgTypeContainer.h" #include "PgDatabaseCatalogue.h" +#include "QueryParamListController.h" #include "util.h" #include "GlobalIoService.h" -QueryParamListController::QueryParamListController(QTableView *tv, - OpenDatabase *opendb, QWidget *parent) - : QObject(parent) - , paramTableView(tv) - , m_openDatabase(opendb) -{ - if (opendb) { - m_typeDelegate.setTypeSelectionModel(opendb->typeSelectionModel()); - } - - paramTableView->setModel(&m_paramList); - paramTableView->setItemDelegateForColumn(1, &m_typeDelegate); -} - -Pgsql::Params QueryParamListController::params() const -{ - Pgsql::Params params; - auto types = m_openDatabase->catalogue()->types(); - for (auto e : m_paramList) { - Oid oid = types->getByName(e.type).oid; - params.add(e.value, oid); - } - return params; -} - -bool QueryParamListController::empty() const -{ - - return m_paramList.rowCount() == 0; -} - - -void QueryParamListController::on_addParam() -{ - m_paramList.insertRows(m_paramList.rowCount(), 1); -} - -void QueryParamListController::on_removeParam() -{ - auto rc = m_paramList.rowCount(); - if (rc > 0) - m_paramList.removeRows(rc-1, 1); -} @@ -295,21 +252,15 @@ bool QueryTab::continueWithoutSavingWarning() bool QueryTab::saveSqlTo(const QString &filename) { bool result = false; + QFileInfo fileinfo(filename); + + QFile file(filename); if (file.open(QIODevice::WriteOnly)) { QTextStream stream(&file); stream.setCodec("utf-8"); QString text = ui->queryEdit->toPlainText(); stream << text; -/* - QTextDocument *doc = ui->queryEdit->document(); - QTextBlock block = doc->firstBlock(); - while (stream.status() == QTextStream::Ok && block.isValid()) { - QString plain = block.text(); - stream << plain << "\n"; - block = block.next(); - } -*/ stream.flush(); if (stream.status() == QTextStream::Ok) { @@ -320,6 +271,7 @@ bool QueryTab::saveSqlTo(const QString &filename) return result; } + QString QueryTab::promptUserForSaveSqlFilename() { QString home_dir = QStandardPaths::locate(QStandardPaths::HomeLocation, "", QStandardPaths::LocateDirectory); diff --git a/pglab/QueryTab.h b/pglab/QueryTab.h index 2d874a6..d8d18ce 100644 --- a/pglab/QueryTab.h +++ b/pglab/QueryTab.h @@ -2,8 +2,6 @@ #define QUERYTAB_H #include "ASyncDBConnection.h" -#include "ParamListModel.h" -#include "ParamTypeDelegate.h" #include "QueryResultModel.h" #include "QueryExplainModel.h" #include "stopwatch.h" @@ -26,24 +24,7 @@ class QueryResultModel; class QueryExplainModel; class PgTypeContainer; class OpenDatabase; - -class QueryParamListController : public QObject { - Q_OBJECT -public: - QueryParamListController(QTableView *tv, OpenDatabase *opendb, QWidget *parent); - - Pgsql::Params params() const; - bool empty() const; -public slots: - void on_addParam(); - void on_removeParam(); -private: - QTableView *paramTableView; - OpenDatabase *m_openDatabase; - ParamListModel m_paramList; - ParamTypeDelegate m_typeDelegate; -}; - +class QueryParamListController; class QueryTab : public QWidget { Q_OBJECT diff --git a/pglab/pglab.pro b/pglab/pglab.pro index cf65e49..ee14146 100644 --- a/pglab/pglab.pro +++ b/pglab/pglab.pro @@ -68,7 +68,8 @@ PgDatabaseCatalogue.cpp \ GlobalIoService.cpp \ CodeBuilderConfiguration.cpp \ ResultTableModelUtil.cpp \ - BaseTableModel.cpp + BaseTableModel.cpp \ + QueryParamListController.cpp HEADERS += \ QueryResultModel.h \ @@ -111,7 +112,8 @@ PgDatabaseCatalogue.h \ GlobalIoService.h \ CodeBuilderConfiguration.h \ ResultTableModelUtil.h \ - BaseTableModel.h + BaseTableModel.h \ + QueryParamListController.h FORMS += mainwindow.ui \ DatabaseWindow.ui \