From 74a3c5f5d202abe4aebe709f396980e22a0710c0 Mon Sep 17 00:00:00 2001 From: Joshua Goins Date: Sun, 4 May 2025 12:27:37 -0400 Subject: [PATCH] Allow configuring the platform, boot and game update channels --- launcher/profileconfig.kcfg | 9 +++++ launcher/src/squareenixlogin.cpp | 10 +++--- launcher/ui/Settings/ProfileSettings.qml | 45 ++++++++++++++++++++++++ 3 files changed, 58 insertions(+), 6 deletions(-) diff --git a/launcher/profileconfig.kcfg b/launcher/profileconfig.kcfg index 23e4fe1..6077269 100644 --- a/launcher/profileconfig.kcfg +++ b/launcher/profileconfig.kcfg @@ -69,5 +69,14 @@ SPDX-License-Identifier: CC0-1.0 true + + win32 + + + ffxivneo_release_boot + + + ffxivneo_release_game + diff --git a/launcher/src/squareenixlogin.cpp b/launcher/src/squareenixlogin.cpp index baa0b6f..0233014 100644 --- a/launcher/src/squareenixlogin.cpp +++ b/launcher/src/squareenixlogin.cpp @@ -20,10 +20,6 @@ #include "profileconfig.h" #include "utility.h" -const QString platform = QStringLiteral("win32"); -const QString bootUpdateChannel = QStringLiteral("ffxivneo_release_boot"); -const QString gameUpdateChannel = QStringLiteral("ffxivneo_release_game"); - const QByteArray patchUserAgent = QByteArrayLiteral("FFXIV PATCH CLIENT"); const QByteArray macosPatchUserAgent = QByteArrayLiteral("FFXIV-MAC PATCH CLIEN"); @@ -168,7 +164,8 @@ QCoro::Task SquareEnixLogin::checkBootUpdates() QUrl url; url.setScheme(QStringLiteral("http")); url.setHost(QStringLiteral("patch-bootver.%1").arg(m_info->profile->account()->config()->oldServer())); - url.setPath(QStringLiteral("/http/%1/%2/%3/").arg(platform, bootUpdateChannel, m_info->profile->bootVersion())); + url.setPath(QStringLiteral("/http/%1/%2/%3/") + .arg(m_info->profile->config()->platform(), m_info->profile->config()->bootUpdateChannel(), m_info->profile->bootVersion())); url.setQuery(query); auto request = QNetworkRequest(url); @@ -362,7 +359,8 @@ QCoro::Task SquareEnixLogin::registerSession() QUrl url; url.setScheme(m_info->profile->account()->config()->preferredProtocol()); url.setHost(QStringLiteral("patch-gamever.%1").arg(m_info->profile->account()->config()->oldServer())); - url.setPath(QStringLiteral("/http/%1/%2/%3/%4").arg(platform, gameUpdateChannel, m_info->profile->baseGameVersion(), m_SID)); + url.setPath(QStringLiteral("/http/%1/%2/%3/%4") + .arg(m_info->profile->config()->platform(), m_info->profile->config()->gameUpdateChannel(), m_info->profile->baseGameVersion(), m_SID)); auto request = QNetworkRequest(url); Utility::setSSL(request); diff --git a/launcher/ui/Settings/ProfileSettings.qml b/launcher/ui/Settings/ProfileSettings.qml index a841143..3491e26 100644 --- a/launcher/ui/Settings/ProfileSettings.qml +++ b/launcher/ui/Settings/ProfileSettings.qml @@ -47,6 +47,10 @@ FormCard.FormCardPage { Kirigami.Action { id: dalamudAction text: i18n("Dalamud") + }, + Kirigami.Action { + id: developerAction + text: i18n("Developer") } ] @@ -245,6 +249,47 @@ FormCard.FormCardPage { } } + FormCard.FormCard { + visible: developerAction.checked + + Layout.fillWidth: true + Layout.topMargin: Kirigami.Units.largeSpacing * 4 + + FormCard.FormTextFieldDelegate { + id: platformDelegate + + label: i18n("Platform") + text: page.profile.config.platform + onTextChanged: page.profile.config.platform = text + } + + FormCard.FormDelegateSeparator { + above: platformDelegate + below: bootUpdateChannel + } + + FormCard.FormTextFieldDelegate { + id: bootUpdateChannel + + label: i18n("Boot Update Channel") + text: page.profile.config.bootUpdateChannel + onTextChanged: page.profile.config.bootUpdateChannel = text + } + + FormCard.FormDelegateSeparator { + above: bootUpdateChannel + below: gameUpdateChannel + } + + FormCard.FormTextFieldDelegate { + id: gameUpdateChannel + + label: i18n("Game Update Channel") + text: page.profile.config.gameUpdateChannel + onTextChanged: page.profile.config.gameUpdateChannel = text + } + } + Kirigami.PromptDialog { id: deletePrompt