summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/createinstancedialog.cpp11
-rw-r--r--src/createinstancedialog.ui26
-rw-r--r--src/createinstancedialogpages.cpp7
-rw-r--r--src/createinstancedialogpages.h6
-rw-r--r--src/settings.cpp15
-rw-r--r--src/settings.h6
-rw-r--r--src/settingsdialoggeneral.cpp1
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()