From 58e2c88e764730bce047a3d88241d75cec5c1fe0 Mon Sep 17 00:00:00 2001 From: baldurk Date: Mon, 17 Dec 2018 10:17:46 +0000 Subject: [PATCH] Don't custom size horizontal header by default in RDTableView --- qrenderdoc/Widgets/Extended/RDHeaderView.cpp | 2 +- qrenderdoc/Widgets/Extended/RDHeaderView.h | 1 + qrenderdoc/Widgets/Extended/RDTableView.cpp | 4 +++- qrenderdoc/Widgets/Extended/RDTableView.h | 1 + qrenderdoc/Windows/BufferViewer.cpp | 4 ++++ 5 files changed, 10 insertions(+), 2 deletions(-) diff --git a/qrenderdoc/Widgets/Extended/RDHeaderView.cpp b/qrenderdoc/Widgets/Extended/RDHeaderView.cpp index d9db7dbda..83972645e 100644 --- a/qrenderdoc/Widgets/Extended/RDHeaderView.cpp +++ b/qrenderdoc/Widgets/Extended/RDHeaderView.cpp @@ -262,7 +262,7 @@ void RDHeaderView::resizeSections(QHeaderView::ResizeMode mode) } if(!m_customSizing) - return resizeSections(mode); + return QHeaderView::resizeSections(mode); if(mode != ResizeToContents) return; diff --git a/qrenderdoc/Widgets/Extended/RDHeaderView.h b/qrenderdoc/Widgets/Extended/RDHeaderView.h index a9ee263f8..8005031ab 100644 --- a/qrenderdoc/Widgets/Extended/RDHeaderView.h +++ b/qrenderdoc/Widgets/Extended/RDHeaderView.h @@ -65,6 +65,7 @@ public: void setPinnedColumns(int numColumns) { m_pinnedColumns = numColumns; } int pinnedColumns() const { return m_pinnedColumns; } void setCustomSizing(bool sizing) { m_customSizing = sizing; } + bool customSizing() const { return m_customSizing; } int pinnedWidth() { return m_pinnedWidth; } public slots: void setRootIndex(const QModelIndex &index) override; diff --git a/qrenderdoc/Widgets/Extended/RDTableView.cpp b/qrenderdoc/Widgets/Extended/RDTableView.cpp index b6edb05d6..bc36790f9 100644 --- a/qrenderdoc/Widgets/Extended/RDTableView.cpp +++ b/qrenderdoc/Widgets/Extended/RDTableView.cpp @@ -37,7 +37,6 @@ RDTableView::RDTableView(QWidget *parent) : QTableView(parent) { m_horizontalHeader = new RDHeaderView(Qt::Horizontal, this); - m_horizontalHeader->setCustomSizing(true); setHorizontalHeader(m_horizontalHeader); QObject::connect(m_horizontalHeader, &QHeaderView::sectionResized, @@ -408,6 +407,9 @@ void RDTableView::scrollTo(const QModelIndex &index, ScrollHint hint) void RDTableView::updateGeometries() { + if(!m_horizontalHeader->customSizing()) + return QTableView::updateGeometries(); + static bool recurse = false; if(recurse) return; diff --git a/qrenderdoc/Widgets/Extended/RDTableView.h b/qrenderdoc/Widgets/Extended/RDTableView.h index e46ba9683..e647dbbdb 100644 --- a/qrenderdoc/Widgets/Extended/RDTableView.h +++ b/qrenderdoc/Widgets/Extended/RDTableView.h @@ -43,6 +43,7 @@ public: void setColumnWidths(const QList &widths); void resizeColumnsToContents(); + void setCustomHeaderSizing(bool sizing) { m_horizontalHeader->setCustomSizing(sizing); } // these ones we CAN override, so even though the implementation is identical to QTableView we // reimplement so it can pick up the above functions QRect visualRect(const QModelIndex &index) const override; diff --git a/qrenderdoc/Windows/BufferViewer.cpp b/qrenderdoc/Windows/BufferViewer.cpp index 96bdf503d..544929596 100644 --- a/qrenderdoc/Windows/BufferViewer.cpp +++ b/qrenderdoc/Windows/BufferViewer.cpp @@ -1069,6 +1069,10 @@ BufferViewer::BufferViewer(ICaptureContext &ctx, bool meshview, QWidget *parent) QMenu *menu = new QMenu(this); + ui->vsinData->setCustomHeaderSizing(true); + ui->vsoutData->setCustomHeaderSizing(true); + ui->gsoutData->setCustomHeaderSizing(true); + QObject::connect(ui->vsinData, &RDTableView::customContextMenuRequested, [this, menu](const QPoint &pos) { stageRowMenu(MeshDataStage::VSIn, menu, pos); });