diff options
| -rw-r--r-- | src/createinstancedialog.cpp | 11 | ||||
| -rw-r--r-- | src/createinstancedialog.ui | 26 | ||||
| -rw-r--r-- | src/createinstancedialogpages.cpp | 7 | ||||
| -rw-r--r-- | src/createinstancedialogpages.h | 6 | ||||
| -rw-r--r-- | src/settings.cpp | 15 | ||||
| -rw-r--r-- | src/settings.h | 6 | ||||
| -rw-r--r-- | src/settingsdialoggeneral.cpp | 1 |
7 files changed, 65 insertions, 7 deletions
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<InfoPage>(*this)); + m_pages.push_back(std::make_unique<IntroPage>(*this)); m_pages.push_back(std::make_unique<TypePage>(*this)); m_pages.push_back(std::make_unique<GamePage>(*this)); m_pages.push_back(std::make_unique<EditionsPage>(*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 @@ <item> <widget class="QStackedWidget" name="pages"> <property name="currentIndex"> - <number>5</number> + <number>0</number> </property> <widget class="QWidget" name="page_10"> <layout class="QVBoxLayout" name="verticalLayout_21"> @@ -76,6 +76,26 @@ </property> </widget> </item> + <item> + <widget class="QCheckBox" name="hideIntro"> + <property name="text"> + <string>Never show this again</string> + </property> + </widget> + </item> + <item> + <spacer name="verticalSpacer_6"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>40</height> + </size> + </property> + </spacer> + </item> </layout> </widget> <widget class="QWidget" name="page"> @@ -258,7 +278,7 @@ <x>0</x> <y>0</y> <width>455</width> - <height>287</height> + <height>308</height> </rect> </property> <property name="sizePolicy"> @@ -368,7 +388,7 @@ <x>0</x> <y>0</y> <width>455</width> - <height>257</height> + <height>278</height> </rect> </property> <layout class="QVBoxLayout" name="verticalLayout_17"> 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() |
