summaryrefslogtreecommitdiffstats
path: root/application/MultiMC.cpp
diff options
context:
space:
mode:
authorPetr Mrázek <peterix@gmail.com>2016-11-06 23:01:08 +0100
committerPetr Mrázek <peterix@gmail.com>2016-11-06 23:06:49 +0100
commit1276ecdbb769a249a969e8d34749b8f245c3031e (patch)
tree2e34c6476e3ce7a27254000e8735efcc9ea8aac0 /application/MultiMC.cpp
parent8b952b387041341f556edcf0bb34576a2fc88568 (diff)
downloadMultiMC-1276ecdbb769a249a969e8d34749b8f245c3031e.tar
MultiMC-1276ecdbb769a249a969e8d34749b8f245c3031e.tar.gz
MultiMC-1276ecdbb769a249a969e8d34749b8f245c3031e.tar.lz
MultiMC-1276ecdbb769a249a969e8d34749b8f245c3031e.tar.xz
MultiMC-1276ecdbb769a249a969e8d34749b8f245c3031e.zip
NOISSUE ask user if closing is OK when instances are still running
Diffstat (limited to 'application/MultiMC.cpp')
-rw-r--r--application/MultiMC.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/application/MultiMC.cpp b/application/MultiMC.cpp
index c6ac2b63..3c637077 100644
--- a/application/MultiMC.cpp
+++ b/application/MultiMC.cpp
@@ -1104,6 +1104,7 @@ void MultiMC::launch(InstancePtr instance, bool online, BaseProfilerFactory *pro
connect(controller.get(), &LaunchController::succeeded, this, &MultiMC::controllerSucceeded);
connect(controller.get(), &LaunchController::failed, this, &MultiMC::controllerFailed);
controller->start();
+ m_runningInstances ++;
}
else if (instance->isRunning())
{
@@ -1118,6 +1119,7 @@ void MultiMC::controllerSucceeded()
return;
auto id = controller->id();
auto & extras = m_instanceExtras[id];
+
// on success, do...
if (controller->instance()->settings()->get("AutoCloseConsole").toBool())
{
@@ -1127,8 +1129,10 @@ void MultiMC::controllerSucceeded()
}
}
extras.controller.reset();
+ m_runningInstances --;
+
// quit when there are no more windows.
- if(m_openWindows == 0)
+ if(m_openWindows == 0 && m_runningInstances == 0)
{
m_status = Status::Succeeded;
quit();
@@ -1146,8 +1150,10 @@ void MultiMC::controllerFailed(const QString& error)
// on failure, do... nothing
extras.controller.reset();
+ m_runningInstances --;
+
// quit when there are no more windows.
- if(m_openWindows == 0)
+ if(m_openWindows == 0 && m_runningInstances == 0)
{
m_status = Status::Failed;
quit();