From a3c932693ac230515ad471249985db0027313849 Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Wed, 22 Jan 2020 19:51:57 +1100 Subject: [PATCH] exportdialog: use wait for close code from previous commit when closing the export dialog --- app/dialog/export/export.cpp | 7 +++++++ app/dialog/export/export.h | 3 +++ app/render/backend/renderbackend.cpp | 14 +++++++------- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/app/dialog/export/export.cpp b/app/dialog/export/export.cpp index d906980e0..0fb7a6ef9 100644 --- a/app/dialog/export/export.cpp +++ b/app/dialog/export/export.cpp @@ -258,6 +258,13 @@ void ExportDialog::accept() QMetaObject::invokeMethod(exporter, "StartExporting", Qt::QueuedConnection); } +void ExportDialog::closeEvent(QCloseEvent *e) +{ + preview_viewer_->ConnectViewerNode(nullptr); + + QDialog::closeEvent(e); +} + void ExportDialog::BrowseFilename() { const ExportFormat& current_format = formats_.at(format_combobox_->currentIndex()); diff --git a/app/dialog/export/export.h b/app/dialog/export/export.h index 619d534eb..dc4af5133 100644 --- a/app/dialog/export/export.h +++ b/app/dialog/export/export.h @@ -21,6 +21,9 @@ public: public slots: virtual void accept() override; +protected: + virtual void closeEvent(QCloseEvent *e) override; + private: void SetUpFormats(); void LoadPresets(); diff --git a/app/render/backend/renderbackend.cpp b/app/render/backend/renderbackend.cpp index f1ff1d99e..5cb51fb52 100644 --- a/app/render/backend/renderbackend.cpp +++ b/app/render/backend/renderbackend.cpp @@ -238,12 +238,6 @@ void RenderBackend::DisconnectViewer(ViewerOutput *node) void RenderBackend::CacheNext() { - if (!Init() - || !ViewerIsConnected() - || !CanRender()) { - return; - } - if (cache_queue_.isEmpty()) { if (AllProcessorsAreAvailable()) { emit QueueComplete(); @@ -252,6 +246,12 @@ void RenderBackend::CacheNext() return; } + if (!Init() + || !ViewerIsConnected() + || !CanRender()) { + return; + } + if ((input_update_queued_ || recompile_queued_) && !AllProcessorsAreAvailable()) { return; } @@ -333,7 +333,7 @@ void RenderBackend::CancelQueue() if (processor_busy_state_.at(i)) busy++; } - qDebug() << this << "has" << busy << "busy workers"; + qDebug() << this << "is waiting for" << busy << "busy workers"; cancel_dialog_->RunIfWorkersAreBusy(); }