summaryrefslogtreecommitdiffstats
path: root/gui/MainWindow.cpp
diff options
context:
space:
mode:
authorJan Dalheimer <jan@dalheimer.de>2014-02-16 08:54:52 +0100
committerJan Dalheimer <jan@dalheimer.de>2014-02-16 08:54:52 +0100
commit82b35b5445d88d67c89c6547b24053d31dc35b9c (patch)
tree333b6a40d558ab3022f7e68297f9b14863c854bc /gui/MainWindow.cpp
parent7ceb2cacb129d5924087f616cfc0b949689ed4fe (diff)
downloadMultiMC-82b35b5445d88d67c89c6547b24053d31dc35b9c.tar
MultiMC-82b35b5445d88d67c89c6547b24053d31dc35b9c.tar.gz
MultiMC-82b35b5445d88d67c89c6547b24053d31dc35b9c.tar.lz
MultiMC-82b35b5445d88d67c89c6547b24053d31dc35b9c.tar.xz
MultiMC-82b35b5445d88d67c89c6547b24053d31dc35b9c.zip
Fix stuff. Make sure different ways of aborting profiling work.
Diffstat (limited to 'gui/MainWindow.cpp')
-rw-r--r--gui/MainWindow.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/gui/MainWindow.cpp b/gui/MainWindow.cpp
index 7c61ca9d..b28e753f 100644
--- a/gui/MainWindow.cpp
+++ b/gui/MainWindow.cpp
@@ -1256,6 +1256,7 @@ void MainWindow::launchInstance(BaseInstance *instance, AuthSessionPtr session,
dialog.setMaximum(0);
dialog.setValue(0);
dialog.setLabelText(tr("Waiting for profiler..."));
+ connect(&dialog, &QDialog::rejected, profilerInstance, &BaseProfiler::abortProfiling);
dialog.show();
connect(profilerInstance, &BaseProfiler::readyToLaunch, [&dialog, this](const QString &message)
{
@@ -1270,6 +1271,17 @@ void MainWindow::launchInstance(BaseInstance *instance, AuthSessionPtr session,
msg.exec();
proc->launch();
});
+ connect(profilerInstance, &BaseProfiler::abortLaunch, [&dialog, this](const QString &message)
+ {
+ dialog.accept();
+ QMessageBox msg;
+ msg.setText(tr("Couldn't start the profiler: %1").arg(message));
+ msg.setWindowTitle(tr("Error"));
+ msg.setIcon(QMessageBox::Critical);
+ msg.addButton(QMessageBox::Ok);
+ msg.exec();
+ proc->abort();
+ });
profilerInstance->beginProfiling(proc);
dialog.exec();
}