From 3db08caaf2a5a52310f3e7decb4d603929c36e9c Mon Sep 17 00:00:00 2001 From: AL <26797547+Al12rs@users.noreply.github.com> Date: Sat, 28 Nov 2020 17:28:49 +0100 Subject: Allow optional refresh for waitForApplication() --- src/organizerproxy.cpp | 10 ++++++++-- src/organizerproxy.h | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/organizerproxy.cpp b/src/organizerproxy.cpp index 06e932cb..92f250ea 100644 --- a/src/organizerproxy.cpp +++ b/src/organizerproxy.cpp @@ -144,7 +144,7 @@ HANDLE OrganizerProxy::startApplication( return runner.stealProcessHandle().release(); } -bool OrganizerProxy::waitForApplication(HANDLE handle, LPDWORD exitCode) const +bool OrganizerProxy::waitForApplication(HANDLE handle, bool refresh, LPDWORD exitCode) const { const auto pid = ::GetProcessId(handle); @@ -154,8 +154,14 @@ bool OrganizerProxy::waitForApplication(HANDLE handle, LPDWORD exitCode) const auto runner = m_Proxied->processRunner(); + ProcessRunner::WaitFlags waitFlags = ProcessRunner::ForceWait; + + if (refresh) { + waitFlags |= ProcessRunner::Refresh; + } + const auto r = runner - .setWaitForCompletion(ProcessRunner::ForceWait | ProcessRunner::Refresh, UILocker::OutputRequired) + .setWaitForCompletion(waitFlags, UILocker::OutputRequired) .attachToProcess(handle); if (exitCode) { diff --git a/src/organizerproxy.h b/src/organizerproxy.h index 8664c64f..3097adf0 100644 --- a/src/organizerproxy.h +++ b/src/organizerproxy.h @@ -52,7 +52,7 @@ public: virtual MOBase::IProfile *profile() const override; virtual HANDLE startApplication(const QString &executable, const QStringList &args = QStringList(), const QString &cwd = "", const QString &profile = "", const QString &forcedCustomOverwrite = "", bool ignoreCustomOverwrite = false); - virtual bool waitForApplication(HANDLE handle, LPDWORD exitCode = nullptr) const; + virtual bool waitForApplication(HANDLE handle, bool refresh = true, LPDWORD exitCode = nullptr) const; virtual void refresh(bool saveChanges); virtual bool onAboutToRun(const std::function &func) override; -- cgit v1.3.1