diff options
author | Christian Stenger <christian.stenger@qt.io> | 2024-02-26 08:46:37 +0100 |
---|---|---|
committer | Christian Stenger <christian.stenger@qt.io> | 2024-02-26 09:23:25 +0000 |
commit | 6dda17a2b3547a21f27893c7ff94952a719ffe21 (patch) | |
tree | f76f16b5baf90cdbb4b0e90a25cf6cd4322ef984 | |
parent | fdc84e84580f7640d2dcc6e2d8065abf57596da3 (diff) |
Axivion: Take alignments into account
Change-Id: I3d14b88562dbd9eca79ba954e6d01206aaec450e
Reviewed-by: hjk <hjk@qt.io>
-rw-r--r-- | src/plugins/axivion/axivionoutputpane.cpp | 14 | ||||
-rw-r--r-- | src/plugins/axivion/dynamiclistmodel.cpp | 12 | ||||
-rw-r--r-- | src/plugins/axivion/dynamiclistmodel.h | 2 |
3 files changed, 27 insertions, 1 deletions
diff --git a/src/plugins/axivion/axivionoutputpane.cpp b/src/plugins/axivion/axivionoutputpane.cpp index 132ebebf65..a13b63dd3a 100644 --- a/src/plugins/axivion/axivionoutputpane.cpp +++ b/src/plugins/axivion/axivionoutputpane.cpp @@ -380,6 +380,17 @@ void IssuesWidget::updateUi() fetchTable(); } +static Qt::Alignment alignmentFromString(const QString &str) +{ + if (str == "left") + return Qt::AlignLeft; + if (str == "right") + return Qt::AlignRight; + if (str == "center") + return Qt::AlignHCenter; + return Qt::AlignLeft; +} + void IssuesWidget::updateTable() { if (!m_currentTableInfo) @@ -389,12 +400,14 @@ void IssuesWidget::updateTable() QStringList hiddenColumns; QList<bool> sortableColumns; QList<int> columnWidths; + QList<Qt::Alignment> alignments; for (const Dto::ColumnInfoDto &column : m_currentTableInfo->columns) { columnHeaders << column.header.value_or(column.key); if (!column.showByDefault) hiddenColumns << column.key; sortableColumns << column.canSort; columnWidths << column.width; + alignments << alignmentFromString(column.alignment); } m_addedFilter->setText("0"); m_removedFilter->setText("0"); @@ -402,6 +415,7 @@ void IssuesWidget::updateTable() m_issuesModel->clear(); m_issuesModel->setHeader(columnHeaders); + m_issuesModel->setAlignments(alignments); m_headerView->setSortableColumns(sortableColumns); m_headerView->setColumnWidths(columnWidths); int counter = 0; diff --git a/src/plugins/axivion/dynamiclistmodel.cpp b/src/plugins/axivion/dynamiclistmodel.cpp index 4581999596..70abe087bd 100644 --- a/src/plugins/axivion/dynamiclistmodel.cpp +++ b/src/plugins/axivion/dynamiclistmodel.cpp @@ -61,8 +61,13 @@ QVariant DynamicListModel::data(const QModelIndex &index, int role) const return {}; auto item = m_children.constFind(row); - if (item != m_children.cend()) + if (item != m_children.cend()) { + if (role == Qt::TextAlignmentRole) { + if (!m_alignments.isEmpty() && index.column() < m_alignments.size()) + return QVariant::fromValue(m_alignments.at(index.column())); + } return item.value()->data(index.column(), role); + } if ((row < m_lastFetch || row > m_lastFetchEnd) && (row < m_fetchStart || row > m_fetchEnd)) const_cast<DynamicListModel *>(this)->onNeedFetch(row); @@ -138,6 +143,11 @@ void DynamicListModel::setHeader(const QStringList &header) m_columnCount = m_header.size(); } +void DynamicListModel::setAlignments(const QList<Qt::Alignment> &alignments) +{ + m_alignments = alignments; +} + QModelIndex DynamicListModel::indexForItem(const ListItem *item) const { QTC_ASSERT(item, return {}); diff --git a/src/plugins/axivion/dynamiclistmodel.h b/src/plugins/axivion/dynamiclistmodel.h index 1e83a572c3..d60f9f1615 100644 --- a/src/plugins/axivion/dynamiclistmodel.h +++ b/src/plugins/axivion/dynamiclistmodel.h @@ -43,6 +43,7 @@ public: void setExpectedRowCount(int expected); void setHeader(const QStringList &header); + void setAlignments(const QList<Qt::Alignment> &alignments); QModelIndex indexForItem(const ListItem *item) const; @@ -55,6 +56,7 @@ private: QHash<int, ListItem *> m_children; QStringList m_header; + QList<Qt::Alignment> m_alignments; QTimer m_fetchMoreTimer; std::optional<int> m_expectedRowCount = {}; int m_fetchStart = -1; |