Use PgLabItemDelegate for rendering the table QTreeView
This commit is contained in:
parent
abc0dd892f
commit
7728417392
2 changed files with 20 additions and 9 deletions
|
|
@ -135,7 +135,7 @@ void PgLabItemDelegate::initStyleOption(QStyleOptionViewItem *option,
|
||||||
suffix = "B";
|
suffix = "B";
|
||||||
forground_color = QColorConstants::Svg::darkblue;
|
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 {
|
else {
|
||||||
auto str = value.toString();
|
auto str = value.toString();
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@
|
||||||
#include <QTableWidget>
|
#include <QTableWidget>
|
||||||
#include <QTreeView>
|
#include <QTreeView>
|
||||||
#include <QSortFilterProxyModel>
|
#include <QSortFilterProxyModel>
|
||||||
|
#include "util/PgLabItemDelegate.h"
|
||||||
#include "util/PgLabTableView.h"
|
#include "util/PgLabTableView.h"
|
||||||
#include <optional>
|
#include <optional>
|
||||||
|
|
||||||
|
|
@ -19,7 +20,17 @@ inline void ResizeColumnsToContent<QTreeView>(QTreeView *)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <typename ViewType>
|
||||||
|
void InitView(ViewType *vt)
|
||||||
|
{}
|
||||||
|
|
||||||
|
template <>
|
||||||
|
inline void InitView<QTreeView>(QTreeView *tv)
|
||||||
|
{
|
||||||
|
tv->setAlternatingRowColors(true);
|
||||||
|
tv->setItemDelegate(new PgLabItemDelegate(tv));
|
||||||
|
tv->setWordWrap(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
template <typename TableModel, typename ViewType = PgLabTableView>
|
template <typename TableModel, typename ViewType = PgLabTableView>
|
||||||
|
|
@ -28,13 +39,13 @@ public:
|
||||||
|
|
||||||
PgLabTableViewHelper(QWidget * parent, TableModel *tableModel)
|
PgLabTableViewHelper(QWidget * parent, TableModel *tableModel)
|
||||||
{
|
{
|
||||||
m_tableView = new ViewType(parent);
|
m_itemView = new ViewType(parent);
|
||||||
|
InitView(m_itemView);
|
||||||
m_dataModel = tableModel;
|
m_dataModel = tableModel;
|
||||||
m_sortFilter = new QSortFilterProxyModel(parent);
|
m_sortFilter = new QSortFilterProxyModel(parent);
|
||||||
m_sortFilter->setSourceModel(m_dataModel);
|
m_sortFilter->setSourceModel(m_dataModel);
|
||||||
m_tableView->setModel(m_sortFilter);
|
m_itemView->setModel(m_sortFilter);
|
||||||
m_tableView->setSortingEnabled(true);
|
m_itemView->setSortingEnabled(true);
|
||||||
m_sortFilter->sort(0, Qt::AscendingOrder);
|
m_sortFilter->sort(0, Qt::AscendingOrder);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -44,7 +55,7 @@ public:
|
||||||
|
|
||||||
ViewType *itemView() const
|
ViewType *itemView() const
|
||||||
{
|
{
|
||||||
return m_tableView;
|
return m_itemView;
|
||||||
}
|
}
|
||||||
|
|
||||||
TableModel *dataModel() const
|
TableModel *dataModel() const
|
||||||
|
|
@ -60,12 +71,12 @@ public:
|
||||||
void setCatalog(std::shared_ptr<PgDatabaseCatalog> cat)
|
void setCatalog(std::shared_ptr<PgDatabaseCatalog> cat)
|
||||||
{
|
{
|
||||||
m_dataModel->setCatalog(cat);
|
m_dataModel->setCatalog(cat);
|
||||||
ResizeColumnsToContent(m_tableView);
|
ResizeColumnsToContent(m_itemView);
|
||||||
}
|
}
|
||||||
|
|
||||||
QModelIndex currentSourceIndex() const
|
QModelIndex currentSourceIndex() const
|
||||||
{
|
{
|
||||||
QModelIndex index = m_tableView->selectionModel()->currentIndex();
|
QModelIndex index = m_itemView->selectionModel()->currentIndex();
|
||||||
if (!index.isValid())
|
if (!index.isValid())
|
||||||
return index;
|
return index;
|
||||||
|
|
||||||
|
|
@ -99,7 +110,7 @@ public:
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
ViewType *m_tableView = nullptr;
|
ViewType *m_itemView = nullptr;
|
||||||
TableModel *m_dataModel = nullptr;
|
TableModel *m_dataModel = nullptr;
|
||||||
QSortFilterProxyModel *m_sortFilter = nullptr;
|
QSortFilterProxyModel *m_sortFilter = nullptr;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue