From 46a74830fd50a77910b7c5965b0610d20014f471 Mon Sep 17 00:00:00 2001 From: Joshua Goins Date: Sat, 19 Aug 2023 11:20:47 -0400 Subject: [PATCH] Add an option to hide and show the dev tools --- launcher/config.kcfg | 3 +++ launcher/include/launchercore.h | 5 +++++ launcher/src/launchercore.cpp | 14 ++++++++++++++ launcher/ui/Settings/GeneralSettings.qml | 13 +++++++++++++ launcher/ui/Settings/SettingsPage.qml | 2 ++ 5 files changed, 37 insertions(+) diff --git a/launcher/config.kcfg b/launcher/config.kcfg index 683a5b6..09969e3 100644 --- a/launcher/config.kcfg +++ b/launcher/config.kcfg @@ -17,6 +17,9 @@ SPDX-License-Identifier: CC0-1.0 + + false + false diff --git a/launcher/include/launchercore.h b/launcher/include/launchercore.h index 9a6116c..fa0f87c 100755 --- a/launcher/include/launchercore.h +++ b/launcher/include/launchercore.h @@ -64,6 +64,7 @@ class LauncherCore : public QObject Q_PROPERTY(AccountManager *accountManager READ accountManager CONSTANT) Q_PROPERTY(bool closeWhenLaunched READ closeWhenLaunched WRITE setCloseWhenLaunched NOTIFY closeWhenLaunchedChanged) Q_PROPERTY(bool showNews READ showNews WRITE setShowNews NOTIFY showNewsChanged) + Q_PROPERTY(bool showDevTools READ showDevTools WRITE setShowDevTools NOTIFY showDevToolsChanged) Q_PROPERTY(bool keepPatches READ keepPatches WRITE setKeepPatches NOTIFY keepPatchesChanged) Q_PROPERTY(QString dalamudDistribServer READ dalamudDistribServer WRITE setDalamudDistribServer NOTIFY dalamudDistribServerChanged) Q_PROPERTY(QString squareEnixServer READ squareEnixServer WRITE setSquareEnixServer NOTIFY squareEnixServerChanged) @@ -125,6 +126,9 @@ public: bool showNews() const; void setShowNews(bool value); + bool showDevTools() const; + void setShowDevTools(bool value); + bool keepPatches() const; void setKeepPatches(bool value); @@ -165,6 +169,7 @@ signals: void gameClosed(); void closeWhenLaunchedChanged(); void showNewsChanged(); + void showDevToolsChanged(); void keepPatchesChanged(); void dalamudDistribServerChanged(); void squareEnixServerChanged(); diff --git a/launcher/src/launchercore.cpp b/launcher/src/launchercore.cpp index a8495d0..5e87f7a 100755 --- a/launcher/src/launchercore.cpp +++ b/launcher/src/launchercore.cpp @@ -504,6 +504,20 @@ void LauncherCore::setShowNews(const bool value) } } +bool LauncherCore::showDevTools() const +{ + return Config::showDevTools(); +} + +void LauncherCore::setShowDevTools(const bool value) +{ + if (value != Config::showDevTools()) { + Config::setShowDevTools(value); + Config::self()->save(); + Q_EMIT showDevToolsChanged(); + } +} + bool LauncherCore::keepPatches() const { return Config::keepPatches(); diff --git a/launcher/ui/Settings/GeneralSettings.qml b/launcher/ui/Settings/GeneralSettings.qml index b303c00..d919546 100644 --- a/launcher/ui/Settings/GeneralSettings.qml +++ b/launcher/ui/Settings/GeneralSettings.qml @@ -37,5 +37,18 @@ FormCard.FormCardPage { checked: LauncherCore.showNews onCheckedChanged: LauncherCore.showNews = checked } + + FormCard.FormDelegateSeparator { + above: showNewsDelegate + below: showDevToolsDelegate + } + + FormCard.FormCheckDelegate { + id: showDevToolsDelegate + + text: i18n("Show Developer Settings") + checked: LauncherCore.showDevTools + onCheckedChanged: LauncherCore.showDevTools = checked + } } } \ No newline at end of file diff --git a/launcher/ui/Settings/SettingsPage.qml b/launcher/ui/Settings/SettingsPage.qml index cecf308..6c682f9 100644 --- a/launcher/ui/Settings/SettingsPage.qml +++ b/launcher/ui/Settings/SettingsPage.qml @@ -5,6 +5,7 @@ import QtQuick 2.15 import org.kde.kirigami 2.18 as Kirigami import org.kde.kirigamiaddons.settings 1.0 as KirigamiSettings import QtQuick.Layouts 1.15 +import zone.xiv.astra 1.0 KirigamiSettings.CategorizedSettings { id: settingsPage @@ -39,6 +40,7 @@ KirigamiSettings.CategorizedSettings { text: i18n("Developer Settings") icon.name: "preferences-others" page: Qt.resolvedUrl("DeveloperSettings.qml") + visible: LauncherCore.showDevTools }, KirigamiSettings.SettingAction { actionName: "about"