summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLostDragonist <lost.dragonist@gmail.com>2018-11-05 21:43:50 -0600
committerLostDragonist <lost.dragonist@gmail.com>2018-11-05 21:43:50 -0600
commit9abb3ca1627ba535ecbacf3daa0d1bc468ed6db5 (patch)
tree7d4570f080162efad45aef1a4c09e67b7c5d9d94 /src
parent5588b8b756ea224b1469049a338628787aff80c0 (diff)
Prevent user from clicking the run button more than once
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,