From dfbcf8ec4c6da4d2d098403a01e7ec19b587e836 Mon Sep 17 00:00:00 2001 From: isanae <14251494+isanae@users.noreply.github.com> Date: Sat, 25 Jul 2020 22:08:43 -0400 Subject: restart when finished, added launch instance checkbox --- src/createinstancedialog.cpp | 14 ++++++++++++++ src/createinstancedialog.ui | 38 ++++++++++++++++++++++++++++++++++++++ src/instancemanager.h | 3 +-- 3 files changed, 53 insertions(+), 2 deletions(-) diff --git a/src/createinstancedialog.cpp b/src/createinstancedialog.cpp index 4b9f24ae..63df9cd7 100644 --- a/src/createinstancedialog.cpp +++ b/src/createinstancedialog.cpp @@ -3,6 +3,7 @@ #include "createinstancedialogpages.h" #include "instancemanager.h" #include "settings.h" +#include "shared/util.h" #include "shared/appconfig.h" #include #include @@ -27,6 +28,7 @@ CreateInstanceDialog::CreateInstanceDialog( m_pages.push_back(std::make_unique(*this)); ui->pages->setCurrentIndex(0); + ui->launch->setChecked(true); updateNavigation(); @@ -287,6 +289,14 @@ void CreateInstanceDialog::finish() } logCreation(tr("Done.")); + + if (ui->launch->isChecked()) { + InstanceManager::instance().setCurrentInstance(ci.instanceName); + ExitModOrganizer(Exit::Restart); + } else { + ui->next->setEnabled(false); + ui->cancel->setText(tr("Close")); + } } catch(Failed&) { @@ -328,6 +338,10 @@ void CreateInstanceDialog::updateNavigation() } else { ui->next->setText(m_originalNext); } + + // this may have been changed by finish() if the launch checkbox wasn't + // checked + ui->cancel->setText(tr("Cancel")); } CreateInstanceDialog::Types CreateInstanceDialog::instanceType() const diff --git a/src/createinstancedialog.ui b/src/createinstancedialog.ui index 41703f5e..bcd2eb03 100644 --- a/src/createinstancedialog.ui +++ b/src/createinstancedialog.ui @@ -910,6 +910,44 @@ + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Qt::Horizontal + + + + 304 + 20 + + + + + + + + Launch the new instance + + + + + + diff --git a/src/instancemanager.h b/src/instancemanager.h index 33a751c2..7467e2fa 100644 --- a/src/instancemanager.h +++ b/src/instancemanager.h @@ -45,6 +45,7 @@ public: void clearCurrentInstance(); QString currentInstance() const; + void setCurrentInstance(const QString &name); bool allowedToChangeInstance() const; static bool isPortablePath(const QString& dataPath); @@ -67,8 +68,6 @@ private: QString manageInstances(const QStringList &instanceList) const; - void setCurrentInstance(const QString &name); - QString queryInstanceName(const QStringList &instanceList) const; QString chooseInstance(const QStringList &instanceList) const; -- cgit v1.3.1