aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Stenger <christian.stenger@qt.io>2024-02-26 08:46:37 +0100
committerChristian Stenger <christian.stenger@qt.io>2024-02-26 09:23:25 +0000
commit6dda17a2b3547a21f27893c7ff94952a719ffe21 (patch)
treef76f16b5baf90cdbb4b0e90a25cf6cd4322ef984
parentfdc84e84580f7640d2dcc6e2d8065abf57596da3 (diff)
Axivion: Take alignments into account
Change-Id: I3d14b88562dbd9eca79ba954e6d01206aaec450e Reviewed-by: hjk <hjk@qt.io>
-rw-r--r--src/plugins/axivion/axivionoutputpane.cpp14
-rw-r--r--src/plugins/axivion/dynamiclistmodel.cpp12
-rw-r--r--src/plugins/axivion/dynamiclistmodel.h2
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;