From e548becda179c4d19f89d365d653797f09304b1b Mon Sep 17 00:00:00 2001 From: Martin Kleusberg Date: Mon, 6 May 2013 18:17:59 +0200 Subject: [PATCH] SqlExecutionArea: Use Qt Designer for layout design --- src/SqlExecutionArea.cpp | 53 +++++++++++++++-------------------- src/SqlExecutionArea.h | 27 ++++++++---------- src/SqlExecutionArea.ui | 60 ++++++++++++++++++++++++++++++++++++++++ src/src.pro | 3 +- 4 files changed, 95 insertions(+), 48 deletions(-) create mode 100644 src/SqlExecutionArea.ui diff --git a/src/SqlExecutionArea.cpp b/src/SqlExecutionArea.cpp index bbe004b7..3a6c4b6a 100644 --- a/src/SqlExecutionArea.cpp +++ b/src/SqlExecutionArea.cpp @@ -1,44 +1,30 @@ #include "SqlExecutionArea.h" +#include "ui_SqlExecutionArea.h" #include "sqltextedit.h" #include "ExtendedTableWidget.h" #include "SQLiteSyntaxHighlighter.h" #include "sqlitetablemodel.h" #include "sqlitedb.h" #include "PreferencesDialog.h" -#include -#include -#include SqlExecutionArea::SqlExecutionArea(QWidget* parent, DBBrowserDB* db) : - QFrame(parent) + QWidget(parent), + ui(new Ui::SqlExecutionArea) { - // Create widgets - splitter = new QSplitter(Qt::Vertical, this); - editor = new SqlTextEdit(this); - table = new ExtendedTableWidget(this); - errors = new QLabel(this); + // Create UI + ui->setupUi(this); - // Set up widgets - QFont font("Monospace"); - font.setStyleHint(QFont::TypeWriter); - font.setPointSize(8); - editor->setFont(font); - - highlighter = new SQLiteSyntaxHighlighter(editor->document()); + // Create syntax highlighter + highlighter = new SQLiteSyntaxHighlighter(ui->editEditor->document()); + // Create model model = new SqliteTableModel(this, db, PreferencesDialog::getSettingsValue("db", "prefetchsize").toInt()); - table->setModel(model); - table->setEditTriggers(ExtendedTableWidget::NoEditTriggers); + ui->tableResult->setModel(model); +} - // Build layout - splitter->addWidget(editor); - splitter->addWidget(table); - - layout = new QVBoxLayout(this); - layout->addWidget(splitter); - layout->addWidget(errors); - - setLayout(layout); +SqlExecutionArea::~SqlExecutionArea() +{ + delete ui; } void SqlExecutionArea::setTableNames(const QStringList& tables) @@ -48,16 +34,21 @@ void SqlExecutionArea::setTableNames(const QStringList& tables) QString SqlExecutionArea::getSql() const { - return editor->toPlainText().trimmed(); + return ui->editEditor->toPlainText().trimmed(); } QString SqlExecutionArea::getSelectedSql() const { - return editor->textCursor().selectedText().trimmed(); + return ui->editEditor->textCursor().selectedText().trimmed(); } void SqlExecutionArea::finishExecution(const QString& result) { - errors->setText(result); - table->resizeColumnsToContents(); + ui->labelErrors->setText(result); + ui->tableResult->resizeColumnsToContents(); +} + +SqlTextEdit* SqlExecutionArea::getEditor() +{ + return ui->editEditor; } diff --git a/src/SqlExecutionArea.h b/src/SqlExecutionArea.h index 9c32eb5e..9b61f118 100644 --- a/src/SqlExecutionArea.h +++ b/src/SqlExecutionArea.h @@ -1,43 +1,38 @@ #ifndef __SQLEXECUTIONAREA_H__ #define __SQLEXECUTIONAREA_H__ -#include +#include #include "sqltextedit.h" -class QSplitter; -class SqlTextEdit; -class ExtendedTableWidget; -class QLabel; -class QVBoxLayout; class SQLiteSyntaxHighlighter; class SqliteTableModel; class DBBrowserDB; -class QStandardItemModel; -class SqlExecutionArea : public QFrame +namespace Ui { +class SqlExecutionArea; +} + +class SqlExecutionArea : public QWidget { Q_OBJECT public: explicit SqlExecutionArea(QWidget* parent = 0, DBBrowserDB* db = 0); + ~SqlExecutionArea(); QString getSql() const; QString getSelectedSql() const; SqliteTableModel* getModel() { return model; } - SqlTextEdit* getEditor() { return editor; } + SqlTextEdit* getEditor(); public slots: virtual void setTableNames(const QStringList& tables); virtual void finishExecution(const QString& result); private: - QVBoxLayout* layout; - QSplitter* splitter; - SqlTextEdit* editor; - SQLiteSyntaxHighlighter* highlighter; - ExtendedTableWidget* table; - SqliteTableModel* model; - QLabel* errors; + Ui::SqlExecutionArea* ui; + SQLiteSyntaxHighlighter* highlighter; + SqliteTableModel* model; }; #endif diff --git a/src/SqlExecutionArea.ui b/src/SqlExecutionArea.ui new file mode 100644 index 00000000..e724e350 --- /dev/null +++ b/src/SqlExecutionArea.ui @@ -0,0 +1,60 @@ + + + SqlExecutionArea + + + + 0 + 0 + 434 + 451 + + + + Form + + + + + + Qt::Vertical + + + + + Monospace + 8 + + + + + + QAbstractItemView::NoEditTriggers + + + + + + + + + + + + + + + + SqlTextEdit + QTextEdit +
sqltextedit.h
+
+ + ExtendedTableWidget + QTableWidget +
ExtendedTableWidget.h
+
+
+ + +
diff --git a/src/src.pro b/src/src.pro index b424eca7..25dce698 100644 --- a/src/src.pro +++ b/src/src.pro @@ -76,7 +76,8 @@ FORMS += \ PreferencesDialog.ui \ EditDialog.ui \ ExportCsvDialog.ui \ - ImportCsvDialog.ui + ImportCsvDialog.ui \ + SqlExecutionArea.ui LIBPATH_QHEXEDIT=$$PWD/../libs/qhexedit LIBPATH_ANTLR=$$PWD/../libs/antlr-2.7.7