From 32aa60bb1459663fbb7a7d8a194962d9a0da2915 Mon Sep 17 00:00:00 2001 From: RickyRister <42636155+RickyRister@users.noreply.github.com> Date: Sat, 7 Feb 2026 18:44:49 -0800 Subject: [PATCH] [Oracle] Move oracle settings to separate file (#6588) --- oracle/src/oracleimporter.cpp | 1 - oracle/src/oraclewizard.cpp | 29 ++++++++++++++++++++++++++++- oracle/src/oraclewizard.h | 2 ++ 3 files changed, 30 insertions(+), 2 deletions(-) diff --git a/oracle/src/oracleimporter.cpp b/oracle/src/oracleimporter.cpp index 4b089846f..d585842f6 100644 --- a/oracle/src/oracleimporter.cpp +++ b/oracle/src/oracleimporter.cpp @@ -1,6 +1,5 @@ #include "oracleimporter.h" -#include "client/settings/cache_settings.h" #include "libcockatrice/interfaces/noop_card_preference_provider.h" #include "libcockatrice/interfaces/noop_card_set_priority_controller.h" #include "parsehelpers.h" diff --git a/oracle/src/oraclewizard.cpp b/oracle/src/oraclewizard.cpp index 46e4722c6..9d32a993b 100644 --- a/oracle/src/oraclewizard.cpp +++ b/oracle/src/oraclewizard.cpp @@ -21,7 +21,14 @@ OracleWizard::OracleWizard(QWidget *parent) : QWizard(parent) // define a dummy context that will be used where needed QString dummy = QT_TRANSLATE_NOOP("i18n", "English"); - settings = new QSettings(SettingsCache::instance().getSettingsPath() + "global.ini", QSettings::IniFormat, this); + QString oracleSettingsFile = SettingsCache::instance().getSettingsPath() + "oracle.ini"; + settings = new QSettings(oracleSettingsFile, QSettings::IniFormat, this); + + // We moved the oracle-specific settings from global.ini to a separate oracle.ini after 2.10 + if (!QFile::exists(oracleSettingsFile)) { + migrateOracleSettings(); + } + connect(&SettingsCache::instance(), &SettingsCache::langChanged, this, &OracleWizard::updateLanguage); importer = new OracleImporter(this); @@ -50,6 +57,26 @@ OracleWizard::OracleWizard(QWidget *parent) : QWizard(parent) retranslateUi(); } +/** + * Migrates the oracle-specific settings from global.ini to oracle.ini + */ +void OracleWizard::migrateOracleSettings() +{ + QString filePath = SettingsCache::instance().getSettingsPath() + "global.ini"; + auto globalSettings = QSettings(filePath, QSettings::IniFormat, this); + + auto tryMigrateValue = [this, &globalSettings](const QString &name) { + QVariant variant = globalSettings.value(name); + if (variant.isValid()) { + settings->setValue(name, variant.toString()); + } + }; + + tryMigrateValue("allsetsurl"); + tryMigrateValue("tokensurl"); + tryMigrateValue("spoilersurl"); +} + void OracleWizard::updateLanguage() { qApp->removeTranslator(translator); diff --git a/oracle/src/oraclewizard.h b/oracle/src/oraclewizard.h index c913094e3..78427175c 100644 --- a/oracle/src/oraclewizard.h +++ b/oracle/src/oraclewizard.h @@ -75,6 +75,8 @@ private: QString cardSourceUrl; QString cardSourceVersion; + void migrateOracleSettings(); + protected: void changeEvent(QEvent *event) override; };