diff --git a/src/plugins/axivion/axivionoutputpane.cpp b/src/plugins/axivion/axivionoutputpane.cpp index 063fafdc988..d4462f06133 100644 --- a/src/plugins/axivion/axivionoutputpane.cpp +++ b/src/plugins/axivion/axivionoutputpane.cpp @@ -388,11 +388,13 @@ void IssuesWidget::updateTable() QStringList columnHeaders; QStringList hiddenColumns; QList sortableColumns; + QList columnWidths; 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; } m_addedFilter->setText("0"); m_removedFilter->setText("0"); @@ -401,7 +403,6 @@ void IssuesWidget::updateTable() m_issuesModel->clear(); m_issuesModel->setHeader(columnHeaders); m_headerView->setSortableColumns(sortableColumns); - int counter = 0; for (const QString &header : std::as_const(columnHeaders)) m_issuesView->setColumnHidden(counter++, hiddenColumns.contains(header)); diff --git a/src/plugins/axivion/issueheaderview.cpp b/src/plugins/axivion/issueheaderview.cpp index dfb4c11eec3..ceb2d520afa 100644 --- a/src/plugins/axivion/issueheaderview.cpp +++ b/src/plugins/axivion/issueheaderview.cpp @@ -115,9 +115,11 @@ void IssueHeaderView::onToggleSort(int index, SortOrder order) QSize IssueHeaderView::sectionSizeFromContents(int logicalIndex) const { - QSize size = QHeaderView::sectionSizeFromContents(logicalIndex); + const QSize oldSize = QHeaderView::sectionSizeFromContents(logicalIndex); + const QSize newSize = logicalIndex < m_columnWidths.size() + ? QSize(qMax(m_columnWidths.at(logicalIndex), oldSize.width()), oldSize.height()) : oldSize; // add icon size and margin (2) - return QSize{size.width() + ICON_SIZE + 2, qMax(size.height(), ICON_SIZE)}; + return QSize{newSize.width() + ICON_SIZE + 2, qMax(newSize.height(), ICON_SIZE)}; } void IssueHeaderView::paintSection(QPainter *painter, const QRect &rect, int logicalIndex) const diff --git a/src/plugins/axivion/issueheaderview.h b/src/plugins/axivion/issueheaderview.h index 3d6f271a762..1fbbd9b76fd 100644 --- a/src/plugins/axivion/issueheaderview.h +++ b/src/plugins/axivion/issueheaderview.h @@ -16,9 +16,11 @@ class IssueHeaderView : public QHeaderView public: explicit IssueHeaderView(QWidget *parent = nullptr) : QHeaderView(Qt::Horizontal, parent) {} void setSortableColumns(const QList &sortable); + void setColumnWidths(const QList &widths) { m_columnWidths = widths; } SortOrder currentSortOrder() const { return m_currentSortOrder; } int currentSortColumn() const; + signals: void sortTriggered(); @@ -36,6 +38,7 @@ private: int m_currentSortIndex = -1; SortOrder m_currentSortOrder = SortOrder::None; QList m_sortableColumns; + QList m_columnWidths; }; } // namespace Axivion::Internal