Skip to content

Commit e548bec

Browse files
committed
SqlExecutionArea: Use Qt Designer for layout design
1 parent 16d5339 commit e548bec

4 files changed

Lines changed: 95 additions & 48 deletions

File tree

src/SqlExecutionArea.cpp

Lines changed: 22 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,30 @@
11
#include "SqlExecutionArea.h"
2+
#include "ui_SqlExecutionArea.h"
23
#include "sqltextedit.h"
34
#include "ExtendedTableWidget.h"
45
#include "SQLiteSyntaxHighlighter.h"
56
#include "sqlitetablemodel.h"
67
#include "sqlitedb.h"
78
#include "PreferencesDialog.h"
8-
#include <QLabel>
9-
#include <QSplitter>
10-
#include <QVBoxLayout>
119

1210
SqlExecutionArea::SqlExecutionArea(QWidget* parent, DBBrowserDB* db) :
13-
QFrame(parent)
11+
QWidget(parent),
12+
ui(new Ui::SqlExecutionArea)
1413
{
15-
// Create widgets
16-
splitter = new QSplitter(Qt::Vertical, this);
17-
editor = new SqlTextEdit(this);
18-
table = new ExtendedTableWidget(this);
19-
errors = new QLabel(this);
14+
// Create UI
15+
ui->setupUi(this);
2016

21-
// Set up widgets
22-
QFont font("Monospace");
23-
font.setStyleHint(QFont::TypeWriter);
24-
font.setPointSize(8);
25-
editor->setFont(font);
26-
27-
highlighter = new SQLiteSyntaxHighlighter(editor->document());
17+
// Create syntax highlighter
18+
highlighter = new SQLiteSyntaxHighlighter(ui->editEditor->document());
2819

20+
// Create model
2921
model = new SqliteTableModel(this, db, PreferencesDialog::getSettingsValue("db", "prefetchsize").toInt());
30-
table->setModel(model);
31-
table->setEditTriggers(ExtendedTableWidget::NoEditTriggers);
32-
33-
// Build layout
34-
splitter->addWidget(editor);
35-
splitter->addWidget(table);
36-
37-
layout = new QVBoxLayout(this);
38-
layout->addWidget(splitter);
39-
layout->addWidget(errors);
22+
ui->tableResult->setModel(model);
23+
}
4024

41-
setLayout(layout);
25+
SqlExecutionArea::~SqlExecutionArea()
26+
{
27+
delete ui;
4228
}
4329

4430
void SqlExecutionArea::setTableNames(const QStringList& tables)
@@ -48,16 +34,21 @@ void SqlExecutionArea::setTableNames(const QStringList& tables)
4834

4935
QString SqlExecutionArea::getSql() const
5036
{
51-
return editor->toPlainText().trimmed();
37+
return ui->editEditor->toPlainText().trimmed();
5238
}
5339

5440
QString SqlExecutionArea::getSelectedSql() const
5541
{
56-
return editor->textCursor().selectedText().trimmed();
42+
return ui->editEditor->textCursor().selectedText().trimmed();
5743
}
5844

5945
void SqlExecutionArea::finishExecution(const QString& result)
6046
{
61-
errors->setText(result);
62-
table->resizeColumnsToContents();
47+
ui->labelErrors->setText(result);
48+
ui->tableResult->resizeColumnsToContents();
49+
}
50+
51+
SqlTextEdit* SqlExecutionArea::getEditor()
52+
{
53+
return ui->editEditor;
6354
}

src/SqlExecutionArea.h

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,38 @@
11
#ifndef __SQLEXECUTIONAREA_H__
22
#define __SQLEXECUTIONAREA_H__
33

4-
#include <QFrame>
4+
#include <QWidget>
55
#include "sqltextedit.h"
6-
class QSplitter;
7-
class SqlTextEdit;
8-
class ExtendedTableWidget;
9-
class QLabel;
10-
class QVBoxLayout;
116
class SQLiteSyntaxHighlighter;
127
class SqliteTableModel;
138
class DBBrowserDB;
14-
class QStandardItemModel;
159

16-
class SqlExecutionArea : public QFrame
10+
namespace Ui {
11+
class SqlExecutionArea;
12+
}
13+
14+
class SqlExecutionArea : public QWidget
1715
{
1816
Q_OBJECT
1917

2018
public:
2119
explicit SqlExecutionArea(QWidget* parent = 0, DBBrowserDB* db = 0);
20+
~SqlExecutionArea();
2221

2322
QString getSql() const;
2423
QString getSelectedSql() const;
2524

2625
SqliteTableModel* getModel() { return model; }
27-
SqlTextEdit* getEditor() { return editor; }
26+
SqlTextEdit* getEditor();
2827

2928
public slots:
3029
virtual void setTableNames(const QStringList& tables);
3130
virtual void finishExecution(const QString& result);
3231

3332
private:
34-
QVBoxLayout* layout;
35-
QSplitter* splitter;
36-
SqlTextEdit* editor;
37-
SQLiteSyntaxHighlighter* highlighter;
38-
ExtendedTableWidget* table;
39-
SqliteTableModel* model;
40-
QLabel* errors;
33+
Ui::SqlExecutionArea* ui;
34+
SQLiteSyntaxHighlighter* highlighter;
35+
SqliteTableModel* model;
4136
};
4237

4338
#endif

src/SqlExecutionArea.ui

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<ui version="4.0">
3+
<class>SqlExecutionArea</class>
4+
<widget class="QWidget" name="SqlExecutionArea">
5+
<property name="geometry">
6+
<rect>
7+
<x>0</x>
8+
<y>0</y>
9+
<width>434</width>
10+
<height>451</height>
11+
</rect>
12+
</property>
13+
<property name="windowTitle">
14+
<string>Form</string>
15+
</property>
16+
<layout class="QVBoxLayout" name="verticalLayout">
17+
<item>
18+
<widget class="QSplitter" name="splitter">
19+
<property name="orientation">
20+
<enum>Qt::Vertical</enum>
21+
</property>
22+
<widget class="SqlTextEdit" name="editEditor">
23+
<property name="font">
24+
<font>
25+
<family>Monospace</family>
26+
<pointsize>8</pointsize>
27+
</font>
28+
</property>
29+
</widget>
30+
<widget class="ExtendedTableWidget" name="tableResult">
31+
<property name="editTriggers">
32+
<set>QAbstractItemView::NoEditTriggers</set>
33+
</property>
34+
</widget>
35+
</widget>
36+
</item>
37+
<item>
38+
<widget class="QLabel" name="labelErrors">
39+
<property name="text">
40+
<string/>
41+
</property>
42+
</widget>
43+
</item>
44+
</layout>
45+
</widget>
46+
<customwidgets>
47+
<customwidget>
48+
<class>SqlTextEdit</class>
49+
<extends>QTextEdit</extends>
50+
<header>sqltextedit.h</header>
51+
</customwidget>
52+
<customwidget>
53+
<class>ExtendedTableWidget</class>
54+
<extends>QTableWidget</extends>
55+
<header>ExtendedTableWidget.h</header>
56+
</customwidget>
57+
</customwidgets>
58+
<resources/>
59+
<connections/>
60+
</ui>

src/src.pro

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,8 @@ FORMS += \
7676
PreferencesDialog.ui \
7777
EditDialog.ui \
7878
ExportCsvDialog.ui \
79-
ImportCsvDialog.ui
79+
ImportCsvDialog.ui \
80+
SqlExecutionArea.ui
8081

8182
LIBPATH_QHEXEDIT=$$PWD/../libs/qhexedit
8283
LIBPATH_ANTLR=$$PWD/../libs/antlr-2.7.7

0 commit comments

Comments
 (0)