From 1ef790ab806c7834334a0df340354e06929de31d Mon Sep 17 00:00:00 2001 From: baldurk Date: Fri, 27 Aug 2021 11:33:40 +0100 Subject: [PATCH] Update capture connections when an open capture is saved. Closes #2352 --- qrenderdoc/Windows/Dialogs/LiveCapture.cpp | 15 +++++++++++++++ qrenderdoc/Windows/Dialogs/LiveCapture.h | 1 + qrenderdoc/Windows/MainWindow.cpp | 5 +++++ 3 files changed, 21 insertions(+) diff --git a/qrenderdoc/Windows/Dialogs/LiveCapture.cpp b/qrenderdoc/Windows/Dialogs/LiveCapture.cpp index 1e84438d9..489dde722 100644 --- a/qrenderdoc/Windows/Dialogs/LiveCapture.cpp +++ b/qrenderdoc/Windows/Dialogs/LiveCapture.cpp @@ -926,6 +926,21 @@ void LiveCapture::cleanItems() ui->captures->clear(); } +void LiveCapture::fileSaved(QString from, QString to) +{ + for(int i = 0; i < ui->captures->count(); i++) + { + Capture *cap = GetCapture(ui->captures->item(i)); + + if(cap->path == from) + { + cap->path = to; + cap->saved = true; + cap->local = true; + } + } +} + void LiveCapture::previewToggle_toggled(bool checked) { if(m_IgnorePreviewToggle) diff --git a/qrenderdoc/Windows/Dialogs/LiveCapture.h b/qrenderdoc/Windows/Dialogs/LiveCapture.h index 21861ab2a..019ac5660 100644 --- a/qrenderdoc/Windows/Dialogs/LiveCapture.h +++ b/qrenderdoc/Windows/Dialogs/LiveCapture.h @@ -60,6 +60,7 @@ public: void QueueCapture(int frameNumber, int numFrames); const QString &hostname() { return m_Hostname; } void cleanItems(); + void fileSaved(QString from, QString to); public slots: bool checkAllowClose(); diff --git a/qrenderdoc/Windows/MainWindow.cpp b/qrenderdoc/Windows/MainWindow.cpp index 84e5fdeef..3a1033d01 100644 --- a/qrenderdoc/Windows/MainWindow.cpp +++ b/qrenderdoc/Windows/MainWindow.cpp @@ -1005,6 +1005,8 @@ bool MainWindow::PromptSaveCaptureAs() if(!saveFilename.isEmpty()) { + QString origFilename = m_Ctx.GetCaptureFilename(); + bool success = m_Ctx.SaveCaptureTo(saveFilename); if(!success) @@ -1014,6 +1016,9 @@ bool MainWindow::PromptSaveCaptureAs() PopulateRecentCaptureFiles(); SetTitle(saveFilename); + for(LiveCapture *live : m_LiveCaptures) + live->fileSaved(origFilename, saveFilename); + return true; }