GH-1642 fix instance launch from console
This commit is contained in:
parent
877d1020db
commit
74b4343c43
@ -344,7 +344,6 @@ InstanceList::InstListError InstanceList::loadList()
|
||||
m_instances.clear();
|
||||
for(auto inst: tempList)
|
||||
{
|
||||
inst->setParent(this);
|
||||
connect(inst.get(), SIGNAL(propertiesChanged(BaseInstance *)), this,
|
||||
SLOT(propertiesChanged(BaseInstance *)));
|
||||
connect(inst.get(), SIGNAL(groupChanged()), this, SLOT(groupChanged()));
|
||||
|
@ -157,6 +157,11 @@ void InstanceWindow::closeEvent(QCloseEvent *event)
|
||||
{
|
||||
emit isClosing();
|
||||
event->accept();
|
||||
if(m_shouldQuit)
|
||||
{
|
||||
// this needs to be delayed so we don't do horrible things
|
||||
QMetaObject::invokeMethod(MMC, "quit", Qt::QueuedConnection);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -36,6 +36,11 @@ public:
|
||||
|
||||
QString instanceId();
|
||||
|
||||
void setQuitOnClose(bool shouldQuit = false)
|
||||
{
|
||||
m_shouldQuit = shouldQuit;
|
||||
}
|
||||
|
||||
signals:
|
||||
void isClosing();
|
||||
|
||||
@ -61,7 +66,7 @@ private:
|
||||
std::shared_ptr<LaunchTask> m_proc;
|
||||
unique_qobject_ptr<LaunchController> m_launchController;
|
||||
InstancePtr m_instance;
|
||||
bool m_mayclose = true;
|
||||
bool m_shouldQuit = false;
|
||||
PageContainer *m_container = nullptr;
|
||||
QPushButton *m_closeButton = nullptr;
|
||||
QPushButton *m_killButton = nullptr;
|
||||
|
@ -217,7 +217,9 @@ void LaunchController::launchInstance()
|
||||
}
|
||||
else
|
||||
{
|
||||
// this is used when launching directly from command line
|
||||
m_console = new InstanceWindow(m_instance);
|
||||
m_console->setQuitOnClose(true);
|
||||
}
|
||||
connect(m_launcher.get(), &LaunchTask::readyForLaunch, this, &LaunchController::readyForLaunch);
|
||||
|
||||
|
@ -219,6 +219,10 @@ MultiMC::MultiMC(int &argc, char **argv, bool test_mode) : QApplication(argc, ar
|
||||
}
|
||||
qDebug() << "Binary path : " << binPath;
|
||||
qDebug() << "Application root path : " << rootPath;
|
||||
if(!launchId.isEmpty())
|
||||
{
|
||||
qDebug() << "ID of instance to launch : " << launchId;
|
||||
}
|
||||
|
||||
// load settings
|
||||
initGlobalSettings(test_mode);
|
||||
|
@ -22,10 +22,6 @@ int launchInstance(MultiMC &app, InstancePtr inst)
|
||||
launchController.setInstance(inst);
|
||||
launchController.setOnline(true);
|
||||
QMetaObject::invokeMethod(&launchController, "start", Qt::QueuedConnection);
|
||||
app.connect(&launchController, &Task::finished, [&app]()
|
||||
{
|
||||
app.quit();
|
||||
});
|
||||
return app.exec();
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user