summaryrefslogtreecommitdiff
path: root/src/processrunner.cpp
diff options
context:
space:
mode:
authorisanae <14251494+isanae@users.noreply.github.com>2019-10-31 01:47:08 -0400
committerisanae <14251494+isanae@users.noreply.github.com>2019-11-06 07:44:57 -0500
commit0cea4833eb48400feb652e883c70d8a2907701c3 (patch)
tree2a1e0a4354cabae66415e5db817e33c589d98341 /src/processrunner.cpp
parentdb0b92776b5c9a34ebb1a5ce5c3f0b105844ee16 (diff)
explicit refresh parameter for setWaitForCompletion(), some parts of the ui will crash if things refresh unexpectedly
removed runFile() fixed crash when unlocking if some widgets were destroyed in the meantime lock widget will now pick the active window and disable all top levels
Diffstat (limited to 'src/processrunner.cpp')
-rw-r--r--src/processrunner.cpp25
1 files changed, 8 insertions, 17 deletions
diff --git a/src/processrunner.cpp b/src/processrunner.cpp
index 62c77efc..1d9da96b 100644
--- a/src/processrunner.cpp
+++ b/src/processrunner.cpp
@@ -368,7 +368,7 @@ void SpawnedProcess::destroy()
ProcessRunner::ProcessRunner(OrganizerCore& core, IUserInterface* ui) :
- m_core(core), m_ui(ui), m_lock(LockWidget::NoReason), m_refresh(false),
+ m_core(core), m_ui(ui), m_lock(LockWidget::NoReason), m_refresh(NoRefresh),
m_handle(INVALID_HANDLE_VALUE), m_exitCode(-1)
{
m_sp.hooked = true;
@@ -417,10 +417,10 @@ ProcessRunner& ProcessRunner::setProfileName(const QString& profileName)
}
ProcessRunner& ProcessRunner::setWaitForCompletion(
- LockWidget::Reasons reason, bool refresh)
+ RefreshModes refresh, LockWidget::Reasons reason)
{
- m_lock = reason;
m_refresh = refresh;
+ m_lock = reason;
return *this;
}
@@ -655,7 +655,7 @@ ProcessRunner::Results ProcessRunner::run()
const auto r = waitForProcessCompletionWithLock(
m_handle, &m_exitCode, m_lock);
- if (r == Completed && m_refresh) {
+ if (r == Completed && m_refresh == Refresh) {
m_core.afterRun(m_sp.binary, m_exitCode);
}
@@ -669,15 +669,6 @@ DWORD ProcessRunner::exitCode()
}
-bool ProcessRunner::runFile(QWidget* parent, const QFileInfo& targetInfo)
-{
- setFromFile(parent, targetInfo);
- setWaitForCompletion(LockWidget::LockUI, true);
-
- const auto r = run();
- return (r != Error);
-}
-
bool ProcessRunner::runExecutableFile(
const QFileInfo &binary, const QString &arguments,
const QDir &currentDirectory, const QString &steamAppID,
@@ -691,7 +682,7 @@ bool ProcessRunner::runExecutableFile(
setSteamID(steamAppID);
setCustomOverwrite(customOverwrite);
setForcedLibraries(forcedLibraries);
- setWaitForCompletion(LockWidget::LockUI, refresh);
+ setWaitForCompletion(refresh ? Refresh : NoRefresh);
const auto r = run();
return (r != Error);
@@ -700,7 +691,7 @@ bool ProcessRunner::runExecutableFile(
bool ProcessRunner::runExecutable(const Executable& exe, bool refresh)
{
setFromExecutable(exe);
- setWaitForCompletion(LockWidget::LockUI, refresh);
+ setWaitForCompletion(refresh ? Refresh : NoRefresh);
const auto r = run();
return (r != Error);
@@ -709,7 +700,7 @@ bool ProcessRunner::runExecutable(const Executable& exe, bool refresh)
bool ProcessRunner::runShortcut(const MOShortcut& shortcut)
{
setFromShortcut(shortcut);
- setWaitForCompletion(LockWidget::LockUI, false);
+ setWaitForCompletion(NoRefresh);
const auto r = run();
return (r != Error);
@@ -724,7 +715,7 @@ HANDLE ProcessRunner::runExecutableOrExecutableFile(
executable, args, cwd, profileOverride, forcedCustomOverwrite,
ignoreCustomOverwrite);
- setWaitForCompletion(LockWidget::LockUI, true);
+ setWaitForCompletion(Refresh);
run();
return m_handle;