diff --git a/launcher/config.kcfg b/launcher/config.kcfg index 55b0399..5b2cae1 100644 --- a/launcher/config.kcfg +++ b/launcher/config.kcfg @@ -8,6 +8,7 @@ SPDX-FileCopyrightText: Joshua Goins SPDX-License-Identifier: CC0-1.0 --> + QDir true @@ -24,6 +25,9 @@ SPDX-License-Identifier: CC0-1.0 + + QStandardPaths::writableLocation(QStandardPaths::PicturesLocation) + QDir::separator() + QStringLiteral("FFXIV") + diff --git a/launcher/include/launchercore.h b/launcher/include/launchercore.h index eb7eb26..a20fd7f 100755 --- a/launcher/include/launchercore.h +++ b/launcher/include/launchercore.h @@ -74,6 +74,7 @@ class LauncherCore : public QObject Q_PROPERTY(QString squareEnixLoginServer READ squareEnixLoginServer WRITE setSquareEnixLoginServer NOTIFY squareEnixLoginServerChanged) Q_PROPERTY(QString xivApiServer READ xivApiServer WRITE setXivApiServer NOTIFY xivApiServerChanged) Q_PROPERTY(QString preferredProtocol READ preferredProtocol WRITE setPreferredProtocol NOTIFY preferredProtocolChanged) + Q_PROPERTY(QString screenshotDir READ screenshotDir WRITE setScreenshotDir NOTIFY screenshotDirChanged) Q_PROPERTY(bool argumentsEncrypted READ argumentsEncrypted WRITE setArgumentsEncrypted NOTIFY encryptedArgumentsChanged) Q_PROPERTY(Headline *headline READ headline NOTIFY newsChanged) Q_PROPERTY(Profile *currentProfile READ currentProfile WRITE setCurrentProfile NOTIFY currentProfileChanged) @@ -151,6 +152,9 @@ public: [[nodiscard]] QString preferredProtocol() const; void setPreferredProtocol(const QString &value); + [[nodiscard]] QString screenshotDir() const; + void setScreenshotDir(const QString &value); + [[nodiscard]] bool argumentsEncrypted() const; void setArgumentsEncrypted(bool value); @@ -190,6 +194,7 @@ signals: void squareEnixLoginServerChanged(); void xivApiServerChanged(); void preferredProtocolChanged(); + void screenshotDirChanged(); void encryptedArgumentsChanged(); void loginError(QString message); void dalamudError(QString message); diff --git a/launcher/src/launchercore.cpp b/launcher/src/launchercore.cpp index 1098d76..34ebec4 100755 --- a/launcher/src/launchercore.cpp +++ b/launcher/src/launchercore.cpp @@ -646,6 +646,20 @@ void LauncherCore::setPreferredProtocol(const QString &value) } } +QString LauncherCore::screenshotDir() const +{ + return m_config->screenshotDir(); +} + +void LauncherCore::setScreenshotDir(const QString &value) +{ + if (value != m_config->screenshotDir()) { + m_config->setScreenshotDir(value); + m_config->save(); + Q_EMIT screenshotDirChanged(); + } +} + bool LauncherCore::argumentsEncrypted() const { return m_config->encryptArguments(); diff --git a/launcher/ui/Settings/GeneralSettings.qml b/launcher/ui/Settings/GeneralSettings.qml index 7fe3d53..ed1f4e7 100644 --- a/launcher/ui/Settings/GeneralSettings.qml +++ b/launcher/ui/Settings/GeneralSettings.qml @@ -86,6 +86,20 @@ FormCard.FormCardPage { checked: LauncherCore.showDevTools onCheckedChanged: LauncherCore.showDevTools = checked } + + FormCard.FormDelegateSeparator { + above: showDevToolsDelegate + below: screenshotsPathDelegate + } + + FormFolderDelegate { + id: screenshotsPathDelegate + + text: i18n("Screenshots Folder") + folder: LauncherCore.screenshotDir + + onAccepted: (folder) => LauncherCore.screenshotDir = folder + } } FormCard.FormCard {