diff options
| author | LostDragonist <lost.dragonist@gmail.com> | 2018-11-05 21:43:50 -0600 |
|---|---|---|
| committer | LostDragonist <lost.dragonist@gmail.com> | 2018-11-05 21:43:50 -0600 |
| commit | 9abb3ca1627ba535ecbacf3daa0d1bc468ed6db5 (patch) | |
| tree | 7d4570f080162efad45aef1a4c09e67b7c5d9d94 | |
| parent | 5588b8b756ea224b1469049a338628787aff80c0 (diff) | |
Prevent user from clicking the run button more than once
| -rw-r--r-- | src/mainwindow.cpp | 23 |
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,
|
