diff options
author | Petr Mrázek <peterix@gmail.com> | 2016-11-01 01:25:04 +0100 |
---|---|---|
committer | Petr Mrázek <peterix@gmail.com> | 2016-11-01 01:25:04 +0100 |
commit | fe68d5946073d92bc585b2b5372c420218807c91 (patch) | |
tree | d85c710d4f3844e8ab04e94575f6244c151f4bd5 /application/LaunchController.cpp | |
parent | 4b03dfcbd77f50d1f8fa3eb9d661ebcba764b9ba (diff) | |
download | PrismLauncher-fe68d5946073d92bc585b2b5372c420218807c91.tar.gz PrismLauncher-fe68d5946073d92bc585b2b5372c420218807c91.tar.bz2 PrismLauncher-fe68d5946073d92bc585b2b5372c420218807c91.zip |
GH-1645 reimplement open/close instance window based on settings
Diffstat (limited to 'application/LaunchController.cpp')
-rw-r--r-- | application/LaunchController.cpp | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/application/LaunchController.cpp b/application/LaunchController.cpp index 4dce6708..13f453ef 100644 --- a/application/LaunchController.cpp +++ b/application/LaunchController.cpp @@ -206,11 +206,15 @@ void LaunchController::launchInstance() } auto console = qobject_cast<InstanceWindow *>(m_parentWidget); - if(!console) + if(!console && m_showConsole) { MMC->showInstanceWindow(m_instance); } connect(m_launcher.get(), &LaunchTask::readyForLaunch, this, &LaunchController::readyForLaunch); + connect(m_launcher.get(), &LaunchTask::succeeded, this, &LaunchController::onSucceeded); + connect(m_launcher.get(), &LaunchTask::failed, this, &LaunchController::onFailed); + connect(m_launcher.get(), &LaunchTask::requestProgress, this, &LaunchController::onProgressRequested); + m_launcher->prependStep(std::make_shared<TextPrint>(m_launcher.get(), "MultiMC version: " + BuildConfig.printableVersionString() + "\n\n", MessageLevel::MultiMC)); m_launcher->start(); @@ -221,7 +225,6 @@ void LaunchController::readyForLaunch() if (!m_profiler) { m_launcher->proceed(); - emitSucceeded(); return; } @@ -247,7 +250,6 @@ void LaunchController::readyForLaunch() msg.setModal(true); msg.exec(); m_launcher->proceed(); - emitSucceeded(); }); connect(profilerInstance, &BaseProfiler::abortLaunch, [this](const QString & message) { @@ -263,3 +265,21 @@ void LaunchController::readyForLaunch() }); profilerInstance->beginProfiling(m_launcher); } + +void LaunchController::onSucceeded() +{ + emitSucceeded(); +} + +void LaunchController::onFailed(QString reason) +{ + emitFailed(reason); +} + +void LaunchController::onProgressRequested(Task* task) +{ + ProgressDialog progDialog(m_parentWidget); + progDialog.setSkipButton(true, tr("Abort")); + m_launcher->proceed(); + progDialog.execWithTask(task); +} |