From e0191ccba4c8ac9636a39e1d8026266d3afaa4ea Mon Sep 17 00:00:00 2001 From: baldurk Date: Fri, 28 Apr 2017 17:44:49 +0100 Subject: [PATCH] Close transient log-specific windows when a log closes * Shader viewers already close themselves, but the pixel history view, non-mesh buffer viewers, and constant buffer views also close. --- qrenderdoc/Windows/BufferViewer.cpp | 3 +++ qrenderdoc/Windows/ConstantBufferPreviewer.cpp | 2 ++ qrenderdoc/Windows/PixelHistoryView.cpp | 3 +++ 3 files changed, 8 insertions(+) diff --git a/qrenderdoc/Windows/BufferViewer.cpp b/qrenderdoc/Windows/BufferViewer.cpp index 18d482078..fe05d82a6 100644 --- a/qrenderdoc/Windows/BufferViewer.cpp +++ b/qrenderdoc/Windows/BufferViewer.cpp @@ -1166,6 +1166,9 @@ void BufferViewer::OnLogfileLoaded() void BufferViewer::OnLogfileClosed() { Reset(); + + if(!m_MeshView) + ToolWindowManager::closeToolWindow(this); } void BufferViewer::OnEventChanged(uint32_t eventID) diff --git a/qrenderdoc/Windows/ConstantBufferPreviewer.cpp b/qrenderdoc/Windows/ConstantBufferPreviewer.cpp index 9cffae358..7240153c0 100644 --- a/qrenderdoc/Windows/ConstantBufferPreviewer.cpp +++ b/qrenderdoc/Windows/ConstantBufferPreviewer.cpp @@ -88,6 +88,8 @@ void ConstantBufferPreviewer::OnLogfileClosed() ui->variables->clear(); ui->saveCSV->setEnabled(false); + + ToolWindowManager::closeToolWindow(this); } void ConstantBufferPreviewer::OnEventChanged(uint32_t eventID) diff --git a/qrenderdoc/Windows/PixelHistoryView.cpp b/qrenderdoc/Windows/PixelHistoryView.cpp index 7c4623155..325de171a 100644 --- a/qrenderdoc/Windows/PixelHistoryView.cpp +++ b/qrenderdoc/Windows/PixelHistoryView.cpp @@ -609,11 +609,14 @@ PixelHistoryView::PixelHistoryView(ICaptureContext &ctx, ResourceId id, QPoint p ui->events->header()->setSectionResizeMode(2, QHeaderView::ResizeToContents); ui->events->header()->setSectionResizeMode(3, QHeaderView::ResizeToContents); ui->events->header()->setSectionResizeMode(4, QHeaderView::ResizeToContents); + + m_Ctx.AddLogViewer(this); } PixelHistoryView::~PixelHistoryView() { ui->events->setModel(NULL); + m_Ctx.RemoveLogViewer(this); delete ui; }