diff --git a/pglab/util/PgLabItemDelegate.cpp b/pglab/util/PgLabItemDelegate.cpp index ae9e23c..db958c5 100644 --- a/pglab/util/PgLabItemDelegate.cpp +++ b/pglab/util/PgLabItemDelegate.cpp @@ -135,7 +135,7 @@ void PgLabItemDelegate::initStyleOption(QStyleOptionViewItem *option, suffix = "B"; forground_color = QColorConstants::Svg::darkblue; } - option->text = QString{ "%1 %2" }.arg(val, 3, 'g', -1 ).arg(suffix) ; + option->text = QString{ "%1 %2" }.arg(val, 0, 'g', 3).arg(suffix) ; } else { auto str = value.toString(); diff --git a/pglab/util/PgLabTableViewHelper.h b/pglab/util/PgLabTableViewHelper.h index 8d1b86d..e8c2363 100644 --- a/pglab/util/PgLabTableViewHelper.h +++ b/pglab/util/PgLabTableViewHelper.h @@ -3,6 +3,7 @@ #include #include #include +#include "util/PgLabItemDelegate.h" #include "util/PgLabTableView.h" #include @@ -19,7 +20,17 @@ inline void ResizeColumnsToContent(QTreeView *) { } +template +void InitView(ViewType *vt) +{} +template <> +inline void InitView(QTreeView *tv) +{ + tv->setAlternatingRowColors(true); + tv->setItemDelegate(new PgLabItemDelegate(tv)); + tv->setWordWrap(false); +} template @@ -28,13 +39,13 @@ public: PgLabTableViewHelper(QWidget * parent, TableModel *tableModel) { - m_tableView = new ViewType(parent); - + m_itemView = new ViewType(parent); + InitView(m_itemView); m_dataModel = tableModel; m_sortFilter = new QSortFilterProxyModel(parent); m_sortFilter->setSourceModel(m_dataModel); - m_tableView->setModel(m_sortFilter); - m_tableView->setSortingEnabled(true); + m_itemView->setModel(m_sortFilter); + m_itemView->setSortingEnabled(true); m_sortFilter->sort(0, Qt::AscendingOrder); } @@ -44,7 +55,7 @@ public: ViewType *itemView() const { - return m_tableView; + return m_itemView; } TableModel *dataModel() const @@ -60,12 +71,12 @@ public: void setCatalog(std::shared_ptr cat) { m_dataModel->setCatalog(cat); - ResizeColumnsToContent(m_tableView); + ResizeColumnsToContent(m_itemView); } QModelIndex currentSourceIndex() const { - QModelIndex index = m_tableView->selectionModel()->currentIndex(); + QModelIndex index = m_itemView->selectionModel()->currentIndex(); if (!index.isValid()) return index; @@ -99,7 +110,7 @@ public: private: - ViewType *m_tableView = nullptr; + ViewType *m_itemView = nullptr; TableModel *m_dataModel = nullptr; QSortFilterProxyModel *m_sortFilter = nullptr; };