diff --git a/pglab/ColumnPage.cpp b/pglab/ColumnPage.cpp index e17ac22..730d89f 100644 --- a/pglab/ColumnPage.cpp +++ b/pglab/ColumnPage.cpp @@ -1,7 +1,7 @@ #include "ColumnPage.h" #include "ResultTableModelUtil.h" #include "UserConfiguration.h" -#include +#include "PgLabTableView.h" #include "catalog/PgClass.h" #include "SqlCodePreview.h" #include "ColumnTableModel.h" @@ -15,13 +15,11 @@ ColumnPage::ColumnPage(QWidget *parent) : QSplitter(Qt::Vertical, parent) { - m_tableView = new QTableView(this); + m_tableView = new PgLabTableView(this); m_definitionView = new SqlCodePreview(this); addWidget(m_tableView); addWidget(m_definitionView); - SetTableViewDefault(m_tableView); - m_columnModel = new ColumnTableModel(this); m_sortFilterProxy = new CustomFilterSortModel(this); m_sortFilterProxy->setSourceModel(m_columnModel); @@ -30,12 +28,6 @@ ColumnPage::ColumnPage(QWidget *parent) m_tableView->setSelectionBehavior(QAbstractItemView::SelectRows); m_sortFilterProxy->sort(ColumnTableModel::AttnumCol, Qt::AscendingOrder); - // With this delegate the coloring of the datatype column doesn't work.... -// auto item_delegate = new PgLabItemDelegate(this); -// m_tableView->setItemDelegate(item_delegate); - - //auto icon_delegate = new IconColumnDelegate(this); - connect(m_tableView->selectionModel(), &QItemSelectionModel::selectionChanged, this, &ColumnPage::tableView_selectionChanged); } diff --git a/pglab/ColumnPage.h b/pglab/ColumnPage.h index a030c29..220ae2d 100644 --- a/pglab/ColumnPage.h +++ b/pglab/ColumnPage.h @@ -7,7 +7,7 @@ #include -class QTableView; +class PgLabTableView; class SqlCodePreview; class PgDatabaseCatalog; class ColumnTableModel; @@ -28,7 +28,7 @@ signals: public slots: private: - QTableView *m_tableView = nullptr; + PgLabTableView *m_tableView = nullptr; SqlCodePreview *m_definitionView = nullptr; ColumnTableModel *m_columnModel = nullptr; CustomFilterSortModel *m_sortFilterProxy = nullptr; diff --git a/pglab/FunctionsPage.cpp b/pglab/FunctionsPage.cpp index ac901d0..a42fc69 100644 --- a/pglab/FunctionsPage.cpp +++ b/pglab/FunctionsPage.cpp @@ -6,7 +6,7 @@ #include "ProcTableModel.h" #include "SqlCodePreview.h" #include -#include +#include "PgLabTableView.h" #include #include @@ -14,7 +14,7 @@ FunctionsPage::FunctionsPage(QWidget *parent) : QSplitter(Qt::Horizontal, parent) { // create widgets - m_functionTable = new QTableView(this); + m_functionTable = new PgLabTableView(this); m_detailTabs = new QTabWidget(this); m_definitionView = new SqlCodePreview(this); @@ -31,8 +31,6 @@ FunctionsPage::FunctionsPage(QWidget *parent) // setLayout(mainLayout); // Do further initialization of widgets and models - SetTableViewDefault(m_functionTable); - m_model = new ProcTableModel(this); m_sortFilterProxy = new CustomFilterSortModel(this); m_sortFilterProxy->setSourceModel(m_model); @@ -40,9 +38,6 @@ FunctionsPage::FunctionsPage(QWidget *parent) m_functionTable->setSortingEnabled(true); m_functionTable->setSelectionBehavior(QAbstractItemView::SelectRows); - auto item_delegate = new PgLabItemDelegate(this); - m_functionTable->setItemDelegate(item_delegate); - connect(m_functionTable->selectionModel(), &QItemSelectionModel::currentRowChanged, this, &FunctionsPage::functionTable_currentRowChanged); diff --git a/pglab/FunctionsPage.h b/pglab/FunctionsPage.h index a82969f..e466f4f 100644 --- a/pglab/FunctionsPage.h +++ b/pglab/FunctionsPage.h @@ -5,7 +5,7 @@ #include #include -class QTableView; +class PgLabTableView; class PgDatabaseCatalog; class ProcTableModel; class CustomFilterSortModel; @@ -25,7 +25,7 @@ public slots: void functionTable_currentRowChanged(const QModelIndex ¤t, const QModelIndex &previous); private: - QTableView *m_functionTable = nullptr; + PgLabTableView *m_functionTable = nullptr; QTabWidget *m_detailTabs = nullptr; SqlCodePreview *m_definitionView = nullptr; ProcTableModel *m_model = nullptr; diff --git a/pglab/PgLabTableView.cpp b/pglab/PgLabTableView.cpp new file mode 100644 index 0000000..b5ae5b0 --- /dev/null +++ b/pglab/PgLabTableView.cpp @@ -0,0 +1,14 @@ +#include "PgLabTableView.h" +#include "PgLabItemDelegate.h" +#include + +PgLabTableView::PgLabTableView(QWidget *parent) + : QTableView(parent) +{ + setAlternatingRowColors(true); + setItemDelegate(new PgLabItemDelegate(this)); + + auto vertical_header = verticalHeader(); + vertical_header->setMinimumSectionSize(16); + vertical_header->setDefaultSectionSize(20); +} diff --git a/pglab/PgLabTableView.h b/pglab/PgLabTableView.h new file mode 100644 index 0000000..9bc0c9d --- /dev/null +++ b/pglab/PgLabTableView.h @@ -0,0 +1,12 @@ +#ifndef PGLABTABLEVIEW_H +#define PGLABTABLEVIEW_H + +#include + +class PgLabTableView : public QTableView { + Q_OBJECT +public: + explicit PgLabTableView(QWidget *parent = nullptr); +}; + +#endif // PGLABTABLEVIEW_H diff --git a/pglab/SequencesPage.cpp b/pglab/SequencesPage.cpp index fbd46fd..d7442eb 100644 --- a/pglab/SequencesPage.cpp +++ b/pglab/SequencesPage.cpp @@ -5,11 +5,11 @@ #include "PgLabItemDelegate.h" #include "SequenceModel.h" #include "SqlCodePreview.h" -#include +#include "PgLabTableView.h" SequencesPage::SequencesPage(QWidget *parent) { - m_sequenceTable = new QTableView(this); + m_sequenceTable = new PgLabTableView(this); m_definitionView = new SqlCodePreview(this); // build widget tree @@ -17,8 +17,6 @@ SequencesPage::SequencesPage(QWidget *parent) addWidget(m_sequenceTable); addWidget(m_definitionView); - SetTableViewDefault(m_sequenceTable); - m_model = new SequenceModel(this); m_sortFilterProxy = new CustomFilterSortModel(this); m_sortFilterProxy->setSourceModel(m_model); @@ -26,9 +24,6 @@ SequencesPage::SequencesPage(QWidget *parent) m_sequenceTable->setSortingEnabled(true); m_sequenceTable->setSelectionBehavior(QAbstractItemView::SelectRows); - auto item_delegate = new PgLabItemDelegate(this); - m_sequenceTable->setItemDelegate(item_delegate); - connect(m_sequenceTable->selectionModel(), &QItemSelectionModel::currentRowChanged, this, &SequencesPage::sequenceTable_currentRowChanged); diff --git a/pglab/SequencesPage.h b/pglab/SequencesPage.h index e93212f..19b29c2 100644 --- a/pglab/SequencesPage.h +++ b/pglab/SequencesPage.h @@ -5,7 +5,7 @@ #include #include -class QTableView; +class PgLabTableView; class PgDatabaseCatalog; class SequenceModel; class CustomFilterSortModel; @@ -25,7 +25,7 @@ public slots: void sequenceTable_currentRowChanged(const QModelIndex ¤t, const QModelIndex &previous); private: - QTableView *m_sequenceTable = nullptr; + PgLabTableView *m_sequenceTable = nullptr; //QTabWidget *m_detailTabs = nullptr; SqlCodePreview *m_definitionView = nullptr; SequenceModel *m_model = nullptr; diff --git a/pglab/pglab.pro b/pglab/pglab.pro index 9c0b15d..994bbf8 100644 --- a/pglab/pglab.pro +++ b/pglab/pglab.pro @@ -83,7 +83,8 @@ PropertyProxyModel.cpp \ EditColumnTableModel.cpp \ SequenceModel.cpp \ SequencesPage.cpp \ - DatabaseWindow.cpp + DatabaseWindow.cpp \ + PgLabTableView.cpp HEADERS += \ QueryResultModel.h \ @@ -144,7 +145,8 @@ CustomDataRole.h \ EditColumnTableModel.h \ SequenceModel.h \ SequencesPage.h \ - DatabaseWindow.h + DatabaseWindow.h \ + PgLabTableView.h FORMS += mainwindow.ui \ ConnectionManagerWindow.ui \