diff options
author | Petr Mrázek <peterix@gmail.com> | 2016-11-26 18:06:08 +0100 |
---|---|---|
committer | Petr Mrázek <peterix@gmail.com> | 2016-11-26 18:06:08 +0100 |
commit | 66ffab71ae6bd4731ba02987c108561ab90be75c (patch) | |
tree | 7fa46da1daf4845f37a449197f324dc7dc3599e6 /application/MultiMC.cpp | |
parent | ce70407363b9bdd8d7901467f2bdb91179a9ac22 (diff) | |
download | MultiMC-66ffab71ae6bd4731ba02987c108561ab90be75c.tar MultiMC-66ffab71ae6bd4731ba02987c108561ab90be75c.tar.gz MultiMC-66ffab71ae6bd4731ba02987c108561ab90be75c.tar.lz MultiMC-66ffab71ae6bd4731ba02987c108561ab90be75c.tar.xz MultiMC-66ffab71ae6bd4731ba02987c108561ab90be75c.zip |
NOISSUE allow killing the instance from main window
Diffstat (limited to 'application/MultiMC.cpp')
-rw-r--r-- | application/MultiMC.cpp | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/application/MultiMC.cpp b/application/MultiMC.cpp index 93f7a33f..49c1d2c4 100644 --- a/application/MultiMC.cpp +++ b/application/MultiMC.cpp @@ -877,7 +877,7 @@ bool MultiMC::openJsonEditor(const QString &filename) } } -void MultiMC::launch(InstancePtr instance, bool online, BaseProfilerFactory *profiler) +bool MultiMC::launch(InstancePtr instance, bool online, BaseProfilerFactory *profiler) { if(instance->canLaunch()) { @@ -887,7 +887,7 @@ void MultiMC::launch(InstancePtr instance, bool online, BaseProfilerFactory *pro { if(!window->saveAll()) { - return; + return false; } } auto & controller = extras.controller; @@ -907,13 +907,33 @@ void MultiMC::launch(InstancePtr instance, bool online, BaseProfilerFactory *pro connect(controller.get(), &LaunchController::failed, this, &MultiMC::controllerFailed); controller->start(); m_runningInstances ++; + return true; } else if (instance->isRunning()) { showInstanceWindow(instance, "console"); + return true; } + return false; } +bool MultiMC::kill(InstancePtr instance) +{ + if (!instance->isRunning()) + { + qWarning() << "Attempted to kill instance" << instance->id() << "which isn't running."; + return false; + } + auto & extras = m_instanceExtras[instance->id()]; + auto & controller = extras.controller; + if(controller) + { + return controller->abort(); + } + return true; +} + + void MultiMC::controllerSucceeded() { auto controller = qobject_cast<LaunchController *>(QObject::sender()); |