From 9abb3ca1627ba535ecbacf3daa0d1bc468ed6db5 Mon Sep 17 00:00:00 2001 From: LostDragonist Date: Mon, 5 Nov 2018 21:43:50 -0600 Subject: Prevent user from clicking the run button more than once --- src/mainwindow.cpp | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) (limited to 'src') 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, -- cgit v1.3.1