summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mainwindow.cpp23
1 files changed, 15 insertions, 8 deletions
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index f0aca1af..d0591d6e 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -1811,14 +1811,21 @@ void MainWindow::installMod(QString fileName)
}
void MainWindow::on_startButton_clicked() {
- const Executable &selectedExecutable(getSelectedExecutable());
- QString customOverwrite = m_OrganizerCore.currentProfile()->setting("custom_overwrites", selectedExecutable.m_Title).toString();
- m_OrganizerCore.spawnBinary(
- selectedExecutable.m_BinaryInfo, selectedExecutable.m_Arguments,
- selectedExecutable.m_WorkingDirectory.length() != 0
- ? selectedExecutable.m_WorkingDirectory
- : selectedExecutable.m_BinaryInfo.absolutePath(),
- selectedExecutable.m_SteamAppID, customOverwrite);
+ ui->startButton->setEnabled(false);
+ try {
+ const Executable &selectedExecutable(getSelectedExecutable());
+ QString customOverwrite = m_OrganizerCore.currentProfile()->setting("custom_overwrites", selectedExecutable.m_Title).toString();
+ m_OrganizerCore.spawnBinary(
+ selectedExecutable.m_BinaryInfo, selectedExecutable.m_Arguments,
+ selectedExecutable.m_WorkingDirectory.length() != 0
+ ? selectedExecutable.m_WorkingDirectory
+ : selectedExecutable.m_BinaryInfo.absolutePath(),
+ selectedExecutable.m_SteamAppID, customOverwrite);
+ } catch (...) {
+ ui->startButton->setEnabled(true);
+ throw;
+ }
+ ui->startButton->setEnabled(true);
}
static HRESULT CreateShortcut(LPCWSTR targetFileName, LPCWSTR arguments,