Moved code from TablesPage into seperate PropetiesPage component

Clears up the TablePage and makes rhe propertypage reusable.
This commit is contained in:
eelke 2018-10-20 10:58:42 +02:00
parent b8cfb223be
commit 38ae5f50e4
8 changed files with 73 additions and 36 deletions

25
pglab/PropertiesPage.cpp Normal file
View file

@ -0,0 +1,25 @@
#include "PropertiesPage.h"
#include "PgLabItemDelegate.h"
#include "PropertyProxyModel.h"
#include "ResultTableModelUtil.h"
#include "SqlCodePreview.h"
#include <QTableView>
PropertiesPage::PropertiesPage(QWidget *parent) : QSplitter(parent)
{
m_tableView = new QTableView(this);
// m_definitionView = new SqlCodePreview(this);
addWidget(m_tableView);
// addWidget(m_definitionView);
SetTableViewDefault(m_tableView);
m_propertyProxyModel = new PropertyProxyModel(this);
m_tableView->setModel(m_propertyProxyModel);
auto item_delegate = new PgLabItemDelegate(this);
m_tableView->setItemDelegate(item_delegate);
}
//property_model->setSourceModel(m_tablesModel);

28
pglab/PropertiesPage.h Normal file
View file

@ -0,0 +1,28 @@
#ifndef PROPERTIESPAGE_H
#define PROPERTIESPAGE_H
#include <QSplitter>
class QTableView;
class SqlCodePreview;
class PgDatabaseCatalog;
class PropertyProxyModel;
class PropertiesPage : public QSplitter
{
Q_OBJECT
public:
explicit PropertiesPage(QWidget *parent = nullptr);
signals:
public slots:
private:
QTableView *m_tableView = nullptr;
// SqlCodePreview *m_definitionView = nullptr;
PropertyProxyModel *m_propertyProxyModel = nullptr;
};
#endif // PROPERTIESPAGE_H

View file

@ -9,7 +9,7 @@
#include "IndexModel.h" #include "IndexModel.h"
#include "MainWindow.h" #include "MainWindow.h"
#include "PgLabItemDelegate.h" #include "PgLabItemDelegate.h"
#include "PropertyProxyModel.h" #include "PropertiesPage.h"
#include "ResultTableModelUtil.h" #include "ResultTableModelUtil.h"
#include "SqlFormattingUtils.h" #include "SqlFormattingUtils.h"
#include "SqlSyntaxHighlighter.h" #include "SqlSyntaxHighlighter.h"
@ -54,14 +54,6 @@ TablesPage::TablesPage(MainWindow *parent)
ui->indexesTable->setItemDelegate(pglab_delegate); ui->indexesTable->setItemDelegate(pglab_delegate);
ui->indexesTable->setItemDelegateForColumn(0, icon_delegate); ui->indexesTable->setItemDelegateForColumn(0, icon_delegate);
// Properties
PropertyProxyModel* property_model = new PropertyProxyModel(this);
property_model->setSourceModel(m_tablesModel);
SetTableViewDefault(ui->tablePropertiesTable);
ui->tablePropertiesTable->setModel(property_model);
ui->tablePropertiesTable->setItemDelegate(pglab_delegate);
// Set code editor fonts // Set code editor fonts
QFont code_font = UserConfiguration::instance()->codeFont(); QFont code_font = UserConfiguration::instance()->codeFont();
ui->constraintSqlEdit->setFont(code_font); ui->constraintSqlEdit->setFont(code_font);
@ -71,14 +63,11 @@ TablesPage::TablesPage(MainWindow *parent)
// Connect signals // Connect signals
// --------------- // ---------------
// Table selection // Table selection
connect(ui->tableListTable->selectionModel(), &QItemSelectionModel::currentRowChanged, // connect(ui->tableListTable->selectionModel(), &QItemSelectionModel::currentRowChanged,
property_model, &PropertyProxyModel::setActiveRow); // property_model, &PropertyProxyModel::setActiveRow);
connect(ui->tableListTable->selectionModel(), &QItemSelectionModel::currentRowChanged, this, connect(ui->tableListTable->selectionModel(), &QItemSelectionModel::currentRowChanged, this,
&TablesPage::tableListTable_currentRowChanged); &TablesPage::tableListTable_currentRowChanged);
// connect(ui->constraintsTable->selectionModel(), &QItemSelectionModel::currentRowChanged, this,
// &TablesPage::constraintsTable_currentRowChanged);
connect(ui->constraintsTable->selectionModel(), &QItemSelectionModel::selectionChanged, this, connect(ui->constraintsTable->selectionModel(), &QItemSelectionModel::selectionChanged, this,
&TablesPage::constraintsTable_selectionChanged); &TablesPage::constraintsTable_selectionChanged);
connect(ui->constraintsTable->model(), &QAbstractItemModel::modelReset, this, connect(ui->constraintsTable->model(), &QAbstractItemModel::modelReset, this,
@ -92,8 +81,12 @@ TablesPage::TablesPage(MainWindow *parent)
&TablesPage::indexesTable_modelReset); &TablesPage::indexesTable_modelReset);
// Non designer based code // Non designer based code
m_propertiesPage = new PropertiesPage(this);
m_propertiesTab = addDetailTab(m_propertiesPage);
m_triggerPage = new TriggerPage(this); m_triggerPage = new TriggerPage(this);
m_triggerTab = addDetailTab(m_triggerPage, tr("Triggers")); m_triggerTab = addDetailTab(m_triggerPage);
retranslateUi(false); retranslateUi(false);
} }
@ -103,16 +96,17 @@ void TablesPage::retranslateUi(bool all)
if (all) if (all)
ui->retranslateUi(this); ui->retranslateUi(this);
ui->twDetails->setTabText(ui->twDetails->indexOf(m_propertiesTab), QApplication::translate("TablesPage", "Properties", nullptr));
ui->twDetails->setTabText(ui->twDetails->indexOf(m_triggerTab), QApplication::translate("TablesPage", "Triggers", nullptr)); ui->twDetails->setTabText(ui->twDetails->indexOf(m_triggerTab), QApplication::translate("TablesPage", "Triggers", nullptr));
} }
QWidget* TablesPage::addDetailTab(QWidget *contents, QString caption) QWidget* TablesPage::addDetailTab(QWidget *contents)
{ {
auto tab = new QWidget(); auto tab = new QWidget();
auto verticalLayout = new QVBoxLayout(tab); auto verticalLayout = new QVBoxLayout(tab);
verticalLayout->addWidget(contents); verticalLayout->addWidget(contents);
ui->twDetails->addTab(tab, caption); ui->twDetails->addTab(tab, "");
return tab; return tab;
} }

View file

@ -16,6 +16,7 @@ class PgDatabaseCatalog;
class NamespaceFilterWidget; class NamespaceFilterWidget;
class IndexModel; class IndexModel;
class MainWindow; class MainWindow;
class PropertiesPage;
class TriggerPage; class TriggerPage;
class TablesPage : public QWidget class TablesPage : public QWidget
@ -30,6 +31,8 @@ public:
private: private:
Ui::TablesPage *ui; Ui::TablesPage *ui;
MainWindow *m_window; MainWindow *m_window;
QWidget *m_propertiesTab;
PropertiesPage *m_propertiesPage;
QWidget *m_triggerTab; QWidget *m_triggerTab;
TriggerPage *m_triggerPage; TriggerPage *m_triggerPage;
std::shared_ptr<PgDatabaseCatalog> m_catalog; std::shared_ptr<PgDatabaseCatalog> m_catalog;
@ -40,7 +43,7 @@ private:
//NamespaceFilterWidget* m_namespaceFilterWidget; //NamespaceFilterWidget* m_namespaceFilterWidget;
void retranslateUi(bool all = true); void retranslateUi(bool all = true);
QWidget* addDetailTab(QWidget *contents, QString caption); QWidget* addDetailTab(QWidget *contents);
private slots: private slots:
void tableListTable_currentRowChanged(const QModelIndex &current, const QModelIndex &previous); void tableListTable_currentRowChanged(const QModelIndex &current, const QModelIndex &previous);

View file

@ -38,7 +38,7 @@
</widget> </widget>
<widget class="QTabWidget" name="twDetails"> <widget class="QTabWidget" name="twDetails">
<property name="currentIndex"> <property name="currentIndex">
<number>3</number> <number>2</number>
</property> </property>
<widget class="QWidget" name="columnsTab"> <widget class="QWidget" name="columnsTab">
<attribute name="title"> <attribute name="title">
@ -86,16 +86,6 @@
</item> </item>
</layout> </layout>
</widget> </widget>
<widget class="QWidget" name="propertiesTab">
<attribute name="title">
<string>Properties</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayoutProperties">
<item>
<widget class="QTableView" name="tablePropertiesTable"/>
</item>
</layout>
</widget>
</widget> </widget>
</widget> </widget>
</item> </item>

View file

@ -21,9 +21,6 @@ TriggerPage::TriggerPage(QWidget *parent)
SetTableViewDefault(m_tableView); SetTableViewDefault(m_tableView);
QFont code_font = UserConfiguration::instance()->codeFont();
m_definitionView->setFont(code_font);
m_model = new TriggerTableModel(this); m_model = new TriggerTableModel(this);
m_sortFilterProxy = new CustomFilterSortModel(this); m_sortFilterProxy = new CustomFilterSortModel(this);
m_sortFilterProxy->setSourceModel(m_model); m_sortFilterProxy->setSourceModel(m_model);

View file

@ -1,11 +1,9 @@
#ifndef TRIGGERPAGE_H #ifndef TRIGGERPAGE_H
#define TRIGGERPAGE_H #define TRIGGERPAGE_H
#include <QObject>
#include <QSplitter> #include <QSplitter>
#include <memory> #include <memory>
class QSplitter;
class QTableView; class QTableView;
class SqlCodePreview; class SqlCodePreview;
class PgDatabaseCatalog; class PgDatabaseCatalog;

View file

@ -82,7 +82,8 @@ PropertyProxyModel.cpp \
TriggerTableModel.cpp \ TriggerTableModel.cpp \
TriggerPage.cpp \ TriggerPage.cpp \
SqlCodePreview.cpp \ SqlCodePreview.cpp \
CustomFilterSortModel.cpp CustomFilterSortModel.cpp \
PropertiesPage.cpp
HEADERS += \ HEADERS += \
QueryResultModel.h \ QueryResultModel.h \
@ -135,7 +136,8 @@ CustomDataRole.h \
TriggerTableModel.h \ TriggerTableModel.h \
TriggerPage.h \ TriggerPage.h \
SqlCodePreview.h \ SqlCodePreview.h \
CustomFilterSortModel.h CustomFilterSortModel.h \
PropertiesPage.h
FORMS += mainwindow.ui \ FORMS += mainwindow.ui \
ConnectionManagerWindow.ui \ ConnectionManagerWindow.ui \