From 8987693dcf7dc116361869f128fd443716511f0c Mon Sep 17 00:00:00 2001 From: isanae <14251494+isanae@users.noreply.github.com> Date: Sat, 25 Jul 2020 23:00:16 -0400 Subject: added hide option for intro page in create instance dialog --- src/createinstancedialog.cpp | 11 ++++++++++- src/createinstancedialog.ui | 26 +++++++++++++++++++++++--- src/createinstancedialogpages.cpp | 7 ++++++- src/createinstancedialogpages.h | 6 ++++-- src/settings.cpp | 15 +++++++++++++++ src/settings.h | 6 ++++++ src/settingsdialoggeneral.cpp | 1 + 7 files changed, 65 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/createinstancedialog.cpp b/src/createinstancedialog.cpp index 5a38aa50..2edfee88 100644 --- a/src/createinstancedialog.cpp +++ b/src/createinstancedialog.cpp @@ -19,7 +19,7 @@ CreateInstanceDialog::CreateInstanceDialog( ui->setupUi(this); m_originalNext = ui->next->text(); - m_pages.push_back(std::make_unique(*this)); + m_pages.push_back(std::make_unique(*this)); m_pages.push_back(std::make_unique(*this)); m_pages.push_back(std::make_unique(*this)); m_pages.push_back(std::make_unique(*this)); @@ -30,10 +30,15 @@ CreateInstanceDialog::CreateInstanceDialog( ui->pages->setCurrentIndex(0); ui->launch->setChecked(true); + if (m_pages[0]->skip()) { + next(); + } + updateNavigation(); connect(ui->next, &QPushButton::clicked, [&]{ next(); }); connect(ui->back, &QPushButton::clicked, [&]{ back(); }); + connect(ui->cancel, &QPushButton::clicked, [&]{ reject(); }); } CreateInstanceDialog::~CreateInstanceDialog() = default; @@ -290,6 +295,10 @@ void CreateInstanceDialog::finish() logCreation(tr("Done.")); + if (ui->hideIntro->isChecked()) { + GlobalSettings::setHideCreateInstanceIntro(true); + } + if (ui->launch->isChecked()) { InstanceManager::instance().setCurrentInstance(ci.instanceName); ExitModOrganizer(Exit::Restart); diff --git a/src/createinstancedialog.ui b/src/createinstancedialog.ui index 1f9a8ce1..cafccb36 100644 --- a/src/createinstancedialog.ui +++ b/src/createinstancedialog.ui @@ -58,7 +58,7 @@ - 5 + 0 @@ -76,6 +76,26 @@ + + + + Never show this again + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + @@ -258,7 +278,7 @@ 0 0 455 - 287 + 308 @@ -368,7 +388,7 @@ 0 0 455 - 257 + 278 diff --git a/src/createinstancedialogpages.cpp b/src/createinstancedialogpages.cpp index e5213d33..3f35b4fe 100644 --- a/src/createinstancedialogpages.cpp +++ b/src/createinstancedialogpages.cpp @@ -153,11 +153,16 @@ CreateInstanceDialog::Paths Page::selectedPaths() const } -InfoPage::InfoPage(CreateInstanceDialog& dlg) +IntroPage::IntroPage(CreateInstanceDialog& dlg) : Page(dlg) { } +bool IntroPage::skip() const +{ + return GlobalSettings::hideCreateInstanceIntro(); +} + TypePage::TypePage(CreateInstanceDialog& dlg) : Page(dlg), m_type(CreateInstanceDialog::NoType) diff --git a/src/createinstancedialogpages.h b/src/createinstancedialogpages.h index 15e63a8f..b8366234 100644 --- a/src/createinstancedialogpages.h +++ b/src/createinstancedialogpages.h @@ -53,10 +53,12 @@ protected: }; -class InfoPage : public Page +class IntroPage : public Page { public: - InfoPage(CreateInstanceDialog& dlg); + IntroPage(CreateInstanceDialog& dlg); + + bool skip() const override; }; diff --git a/src/settings.cpp b/src/settings.cpp index 76378af9..4ee4cd81 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -2201,3 +2201,18 @@ QSettings GlobalSettings::settings() return QSettings(Organization, Application); } + +bool GlobalSettings::hideCreateInstanceIntro() +{ + return settings().value("HideCreateInstanceIntro", false).toBool(); +} + +void GlobalSettings::setHideCreateInstanceIntro(bool b) +{ + settings().setValue("HideCreateInstanceIntro", b); +} + +void GlobalSettings::resetDialogs() +{ + setHideCreateInstanceIntro(false); +} diff --git a/src/settings.h b/src/settings.h index 54f1bb5b..dd8abf3f 100644 --- a/src/settings.h +++ b/src/settings.h @@ -838,6 +838,12 @@ public: static QString currentInstance(); static void setCurrentInstance(const QString& s); + static bool hideCreateInstanceIntro(); + static void setHideCreateInstanceIntro(bool b); + + // resets anything that the user can disable + static void resetDialogs(); + private: static QSettings settings(); }; diff --git a/src/settingsdialoggeneral.cpp b/src/settingsdialoggeneral.cpp index 3d14d521..f29e1d24 100644 --- a/src/settingsdialoggeneral.cpp +++ b/src/settingsdialoggeneral.cpp @@ -177,6 +177,7 @@ void GeneralSettingsTab::selectStyle() void GeneralSettingsTab::resetDialogs() { settings().widgets().resetQuestionButtons(); + GlobalSettings::resetDialogs(); } void GeneralSettingsTab::onExploreStyles() -- cgit v1.3.1