From a8a3fca8c98906d1b97d2bafbad282f4b2bd9ae2 Mon Sep 17 00:00:00 2001 From: BruebachL <44814898+BruebachL@users.noreply.github.com> Date: Sat, 8 Nov 2025 22:19:40 +0100 Subject: [PATCH] Clean up inter-library dependencies with interfaces (#6280) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Have CardDatabase::getPreferredPrintingInfo respect card provider ID overrides (pinned printings) Took 13 minutes Took 37 seconds Took 10 seconds Took 10 seconds # Commit time for manual adjustment: # Took 30 seconds Took 15 seconds Took 8 minutes Took 21 seconds * Move settings cache and settings card preference provider out of libcockatrice_settings and into cockatrice Took 52 minutes Took 9 minutes Took 1 minute * Temp cache. Took 16 minutes * Dependency Injection for SettingsCache * Turn SettingsCache into a QSharedPointer. * Implement interfaces for settings that need it Took 2 hours 38 minutes * Adjust oracle. Took 5 minutes * Move abstract/noop interfaces to libcockatrice_interfaces so they can be linked against independently. Took 52 minutes * Clean up some links. Took 3 minutes * Cleanup two includes. Took 3 minutes * More fixes. Took 7 minutes * More includes that slipped past. Took 3 minutes * Stop mocking and start injecting for tests. Took 15 minutes * I don't know why remote_client was including main. Took 4 minutes * Include. Took 3 minutes * Lint. Took 2 minutes * Don't use Qt pointers. Took 1 hour 7 minutes * Make parser use CardSettingsInterface Took 13 minutes * Also adjust constructor lol. Took 8 minutes * Lint. Took 32 minutes * Revert "Lint." This reverts commit ecb596c39e6eb7f0ba3a527aa101c4642937664f. Took 3 minutes * Test. Took 3 minutes --------- Co-authored-by: Lukas BrĂ¼bach --- .github/workflows/desktop-lint.yml | 2 +- CMakeLists.txt | 1 + cockatrice/CMakeLists.txt | 6 + .../spoiler_background_updater.cpp | 2 +- .../update/client/client_update_checker.cpp | 3 +- .../src/client}/settings/cache_settings.cpp | 22 +- .../src/client}/settings/cache_settings.h | 47 +- .../settings/card_counter_settings.cpp | 0 .../client}/settings/card_counter_settings.h | 3 +- .../client}/settings/shortcut_treeview.cpp | 0 .../src/client}/settings/shortcut_treeview.h | 0 .../client}/settings/shortcuts_settings.cpp | 0 .../src/client}/settings/shortcuts_settings.h | 0 cockatrice/src/client/sound_engine.cpp | 3 +- .../settings_card_preference_provider.h | 21 + .../game/board/abstract_card_drag_item.cpp | 3 +- .../src/game/board/abstract_card_item.cpp | 2 +- .../src/game/board/abstract_counter.cpp | 2 +- cockatrice/src/game/board/arrow_item.cpp | 2 +- cockatrice/src/game/board/card_item.cpp | 4 +- cockatrice/src/game/deckview/deck_view.cpp | 2 +- .../src/game/deckview/deck_view_container.cpp | 2 +- .../src/game/dialogs/dlg_create_token.cpp | 13 +- cockatrice/src/game/game_scene.cpp | 2 +- cockatrice/src/game/game_view.cpp | 2 +- .../src/game/log/message_log_widget.cpp | 2 +- cockatrice/src/game/player/menu/card_menu.cpp | 2 +- cockatrice/src/game/player/menu/hand_menu.cpp | 4 +- .../src/game/player/menu/library_menu.cpp | 4 +- cockatrice/src/game/player/menu/say_menu.cpp | 3 +- cockatrice/src/game/zones/hand_zone.cpp | 2 +- .../src/game/zones/logic/view_zone_logic.cpp | 3 +- cockatrice/src/game/zones/select_zone.cpp | 2 +- cockatrice/src/game/zones/stack_zone.cpp | 2 +- cockatrice/src/game/zones/table_zone.cpp | 2 +- .../src/game/zones/view_zone_widget.cpp | 2 +- .../card_picture_loader.cpp | 3 +- .../card_picture_loader_local.cpp | 2 +- .../card_picture_loader_worker.cpp | 2 +- .../card_picture_loader_worker_work.cpp | 2 +- .../card_picture_to_load.cpp | 5 +- cockatrice/src/interface/theme_manager.cpp | 3 +- .../additional_info/color_identity_widget.cpp | 2 +- .../additional_info/mana_symbol_widget.cpp | 3 +- .../widgets/cards/card_info_frame_widget.cpp | 2 +- .../card_info_picture_enlarged_widget.cpp | 2 +- .../cards/card_info_picture_widget.cpp | 2 +- .../widgets/cards/card_size_widget.cpp | 3 +- .../deck_preview_card_picture_widget.cpp | 3 +- .../deck_editor_database_display_widget.cpp | 20 +- .../deck_editor_database_display_widget.h | 1 - .../deck_editor_deck_dock_widget.cpp | 3 +- .../deck_editor_filter_dock_widget.cpp | 2 +- .../interface/widgets/dialogs/dlg_connect.cpp | 3 +- .../widgets/dialogs/dlg_create_game.cpp | 2 +- .../dialogs/dlg_default_tags_editor.cpp | 3 +- .../widgets/dialogs/dlg_edit_password.cpp | 3 +- .../widgets/dialogs/dlg_edit_user.cpp | 3 +- .../dialogs/dlg_forgot_password_challenge.cpp | 3 +- .../dialogs/dlg_forgot_password_request.cpp | 3 +- .../dialogs/dlg_forgot_password_reset.cpp | 3 +- .../widgets/dialogs/dlg_load_deck.cpp | 3 +- .../dialogs/dlg_load_deck_from_clipboard.cpp | 2 +- .../widgets/dialogs/dlg_manage_sets.cpp | 2 +- .../widgets/dialogs/dlg_register.cpp | 3 +- .../widgets/dialogs/dlg_settings.cpp | 6 +- .../dialogs/dlg_startup_card_check.cpp | 3 +- .../widgets/dialogs/dlg_tip_of_the_day.cpp | 2 +- .../interface/widgets/dialogs/dlg_update.cpp | 2 +- .../widgets/dialogs/dlg_view_log.cpp | 2 +- .../interface/widgets/general/home_widget.cpp | 2 +- .../widgets/menus/deck_editor_menu.cpp | 4 +- .../interface/widgets/menus/tearoff_menu.h | 3 +- .../printing_selector/printing_selector.cpp | 2 +- .../printing_selector_card_overlay_widget.cpp | 2 +- .../printing_selector_card_sorting_widget.cpp | 5 +- .../widgets/replay/replay_timeline_widget.cpp | 3 +- .../widgets/server/chat_view/chat_view.cpp | 2 +- .../interface/widgets/server/games_model.cpp | 2 +- .../widgets/server/handle_public_servers.cpp | 3 +- .../server/user/user_info_connection.cpp | 3 +- .../widgets/tabs/abstract_tab_deck_editor.cpp | 2 +- .../widgets/tabs/tab_deck_editor.cpp | 2 +- .../widgets/tabs/tab_deck_storage.cpp | 2 +- .../src/interface/widgets/tabs/tab_game.cpp | 2 +- .../interface/widgets/tabs/tab_message.cpp | 2 +- .../interface/widgets/tabs/tab_replays.cpp | 2 +- .../src/interface/widgets/tabs/tab_room.cpp | 2 +- .../interface/widgets/tabs/tab_supervisor.cpp | 2 +- .../tab_deck_editor_visual.cpp | 2 +- .../widgets/utility/custom_line_edit.cpp | 5 +- .../widgets/utility/sequence_edit.cpp | 3 +- ...tabase_display_filter_save_load_widget.cpp | 2 +- ...ual_database_display_set_filter_widget.cpp | 2 +- .../visual_database_display_widget.cpp | 2 +- .../visual_database_filter_display_widget.cpp | 3 +- .../visual_deck_editor_sample_hand_widget.cpp | 2 +- .../deck_preview_deck_tags_display_widget.cpp | 2 +- .../deck_preview_tag_addition_widget.cpp | 2 +- .../deck_preview/deck_preview_tag_dialog.cpp | 2 +- .../deck_preview/deck_preview_widget.cpp | 2 +- ...ual_deck_storage_folder_display_widget.cpp | 2 +- ...ual_deck_storage_quick_settings_widget.cpp | 2 +- .../visual_deck_storage_search_widget.cpp | 2 +- .../visual_deck_storage_sort_widget.cpp | 2 +- .../visual_deck_storage_widget.cpp | 2 +- cockatrice/src/interface/window_main.cpp | 4 +- cockatrice/src/main.cpp | 9 +- dbconverter/CMakeLists.txt | 1 + dbconverter/src/main.cpp | 1 - dbconverter/src/main.h | 10 +- dbconverter/src/mocks.cpp | 16 +- dbconverter/src/mocks.h | 3 +- libcockatrice_card/CMakeLists.txt | 3 +- .../libcockatrice/card/card_info.cpp | 1 - .../card/database/card_database.cpp | 14 +- .../card/database/card_database.h | 8 +- .../card/database/card_database_loader.cpp | 22 +- .../card/database/card_database_loader.h | 9 +- .../card/database/card_database_manager.cpp | 25 +- .../card/database/card_database_manager.h | 8 + .../card/database/card_database_querier.cpp | 22 +- .../card/database/card_database_querier.h | 6 +- .../database/parser/card_database_parser.cpp | 4 +- .../card/database/parser/cockatrice_xml_4.cpp | 8 +- .../card/database/parser/cockatrice_xml_4.h | 5 +- .../libcockatrice/card/set/card_set.cpp | 26 +- .../libcockatrice/card/set/card_set.h | 8 +- libcockatrice_interfaces/CMakeLists.txt | 25 + .../interface_card_database_path_provider.h | 21 + .../interface_card_preference_provider.h | 14 + .../interface_card_set_priority_controller.h | 19 + .../interface_network_settings_provider.h | 20 + .../noop_card_database_path_provider.h | 26 + .../noop_card_preference_provider.h | 19 + .../noop_card_set_priority_controller.h | 33 ++ .../models/deck_list/deck_list_model.cpp | 1 - .../network/client/remote/CMakeLists.txt | 2 +- .../network/client/remote/remote_client.cpp | 25 +- .../network/client/remote/remote_client.h | 4 +- libcockatrice_settings/CMakeLists.txt | 10 +- .../settings/card_database_settings.h | 19 +- oracle/CMakeLists.txt | 4 + oracle/src/main.cpp | 2 +- oracle/src/oracleimporter.cpp | 13 +- oracle/src/oraclewizard.cpp | 2 +- tests/carddatabase/CMakeLists.txt | 2 - tests/carddatabase/carddatabase_test.cpp | 7 +- tests/carddatabase/filter_string_test.cpp | 19 +- tests/carddatabase/mocks.cpp | 458 ------------------ tests/carddatabase/mocks.h | 7 - .../test_card_database_path_provider.h | 28 ++ 152 files changed, 609 insertions(+), 750 deletions(-) rename {libcockatrice_settings/libcockatrice => cockatrice/src/client}/settings/cache_settings.cpp (99%) rename {libcockatrice_settings/libcockatrice => cockatrice/src/client}/settings/cache_settings.h (96%) rename {libcockatrice_settings/libcockatrice => cockatrice/src/client}/settings/card_counter_settings.cpp (100%) rename {libcockatrice_settings/libcockatrice => cockatrice/src/client}/settings/card_counter_settings.h (92%) rename {libcockatrice_settings/libcockatrice => cockatrice/src/client}/settings/shortcut_treeview.cpp (100%) rename {libcockatrice_settings/libcockatrice => cockatrice/src/client}/settings/shortcut_treeview.h (100%) rename {libcockatrice_settings/libcockatrice => cockatrice/src/client}/settings/shortcuts_settings.cpp (100%) rename {libcockatrice_settings/libcockatrice => cockatrice/src/client}/settings/shortcuts_settings.h (100%) create mode 100644 cockatrice/src/database/interface/settings_card_preference_provider.h create mode 100644 libcockatrice_interfaces/CMakeLists.txt create mode 100644 libcockatrice_interfaces/libcockatrice/interfaces/interface_card_database_path_provider.h create mode 100644 libcockatrice_interfaces/libcockatrice/interfaces/interface_card_preference_provider.h create mode 100644 libcockatrice_interfaces/libcockatrice/interfaces/interface_card_set_priority_controller.h create mode 100644 libcockatrice_interfaces/libcockatrice/interfaces/interface_network_settings_provider.h create mode 100644 libcockatrice_interfaces/libcockatrice/interfaces/noop_card_database_path_provider.h create mode 100644 libcockatrice_interfaces/libcockatrice/interfaces/noop_card_preference_provider.h create mode 100644 libcockatrice_interfaces/libcockatrice/interfaces/noop_card_set_priority_controller.h create mode 100644 tests/carddatabase/test_card_database_path_provider.h diff --git a/.github/workflows/desktop-lint.yml b/.github/workflows/desktop-lint.yml index e54bdb087..087b27b79 100644 --- a/.github/workflows/desktop-lint.yml +++ b/.github/workflows/desktop-lint.yml @@ -20,7 +20,7 @@ on: jobs: format: - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 steps: - name: Checkout diff --git a/CMakeLists.txt b/CMakeLists.txt index 0af0823c8..5039b8b48 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -328,6 +328,7 @@ endif() include(CPack) +add_subdirectory(${CMAKE_SOURCE_DIR}/libcockatrice_interfaces ${CMAKE_BINARY_DIR}/libcockatrice_interfaces) add_subdirectory(${CMAKE_SOURCE_DIR}/libcockatrice_protocol ${CMAKE_BINARY_DIR}/libcockatrice_protocol) add_subdirectory(${CMAKE_SOURCE_DIR}/libcockatrice_network ${CMAKE_BINARY_DIR}/libcockatrice_network) add_subdirectory(${CMAKE_SOURCE_DIR}/libcockatrice_deck_list ${CMAKE_BINARY_DIR}/libcockatrice_deck_list) diff --git a/cockatrice/CMakeLists.txt b/cockatrice/CMakeLists.txt index 9eed16ff7..665a44d17 100644 --- a/cockatrice/CMakeLists.txt +++ b/cockatrice/CMakeLists.txt @@ -15,6 +15,10 @@ set(cockatrice_SOURCES src/client/network/update/client/release_channel.cpp src/client/network/update/card_spoiler/spoiler_background_updater.cpp src/client/sound_engine.cpp + src/client/settings/cache_settings.cpp + src/client/settings/card_counter_settings.cpp + src/client/settings/shortcut_treeview.cpp + src/client/settings/shortcuts_settings.cpp src/interface/widgets/dialogs/dlg_connect.cpp src/interface/widgets/dialogs/dlg_convert_deck_to_cod_format.cpp src/interface/widgets/dialogs/dlg_create_game.cpp @@ -364,6 +368,7 @@ if(Qt5_FOUND) libcockatrice_network libcockatrice_models libcockatrice_rng + libcockatrice_settings ${COCKATRICE_QT_MODULES} ) else() @@ -375,6 +380,7 @@ else() libcockatrice_network libcockatrice_models libcockatrice_rng + libcockatrice_settings ${COCKATRICE_QT_MODULES} ) endif() diff --git a/cockatrice/src/client/network/update/card_spoiler/spoiler_background_updater.cpp b/cockatrice/src/client/network/update/card_spoiler/spoiler_background_updater.cpp index 7dce6a65c..cfd4cbbf8 100644 --- a/cockatrice/src/client/network/update/card_spoiler/spoiler_background_updater.cpp +++ b/cockatrice/src/client/network/update/card_spoiler/spoiler_background_updater.cpp @@ -2,6 +2,7 @@ #include "../../../../interface/window_main.h" #include "../../../../main.h" +#include "../../../settings/cache_settings.h" #include #include @@ -15,7 +16,6 @@ #include #include #include -#include #define SPOILERS_STATUS_URL "https://raw.githubusercontent.com/Cockatrice/Magic-Spoiler/files/SpoilerSeasonEnabled" #define SPOILERS_URL "https://raw.githubusercontent.com/Cockatrice/Magic-Spoiler/files/spoiler.xml" diff --git a/cockatrice/src/client/network/update/client/client_update_checker.cpp b/cockatrice/src/client/network/update/client/client_update_checker.cpp index f965ff6dc..64709113a 100644 --- a/cockatrice/src/client/network/update/client/client_update_checker.cpp +++ b/cockatrice/src/client/network/update/client/client_update_checker.cpp @@ -1,9 +1,8 @@ #include "client_update_checker.h" +#include "../../../settings/cache_settings.h" #include "release_channel.h" -#include - ClientUpdateChecker::ClientUpdateChecker(QObject *parent) : QObject(parent) { } diff --git a/libcockatrice_settings/libcockatrice/settings/cache_settings.cpp b/cockatrice/src/client/settings/cache_settings.cpp similarity index 99% rename from libcockatrice_settings/libcockatrice/settings/cache_settings.cpp rename to cockatrice/src/client/settings/cache_settings.cpp index f730877d1..0c6091a35 100644 --- a/libcockatrice_settings/libcockatrice/settings/cache_settings.cpp +++ b/cockatrice/src/client/settings/cache_settings.cpp @@ -1,8 +1,7 @@ #include "cache_settings.h" -#include "../../../cockatrice/src/client/network/update/client/release_channel.h" +#include "../network/update/client/release_channel.h" #include "card_counter_settings.h" -#include "card_override_settings.h" #include #include @@ -12,9 +11,15 @@ #include #include #include +#include #include -Q_GLOBAL_STATIC(SettingsCache, settingsCache); +Q_GLOBAL_STATIC(SettingsCache, settingsCache) + +SettingsCache &SettingsCache::instance() +{ + return *settingsCache; // returns a QT managed singleton reference +} QString SettingsCache::getDataPath() { @@ -61,9 +66,9 @@ void SettingsCache::translateLegacySettings() QStringList setsGroups = legacySetting.childGroups(); for (int i = 0; i < setsGroups.size(); i++) { legacySetting.beginGroup(setsGroups.at(i)); - cardDatabase().setEnabled(setsGroups.at(i), legacySetting.value("enabled").toBool()); - cardDatabase().setIsKnown(setsGroups.at(i), legacySetting.value("isknown").toBool()); - cardDatabase().setSortKey(setsGroups.at(i), legacySetting.value("sortkey").toUInt()); + cardDatabase()->setEnabled(setsGroups.at(i), legacySetting.value("enabled").toBool()); + cardDatabase()->setIsKnown(setsGroups.at(i), legacySetting.value("isknown").toBool()); + cardDatabase()->setSortKey(setsGroups.at(i), legacySetting.value("sortkey").toUInt()); legacySetting.endGroup(); } QStringList setsKeys = legacySetting.allKeys(); @@ -1500,11 +1505,6 @@ void SettingsCache::resetPaths() } } -SettingsCache &SettingsCache::instance() -{ - return *settingsCache; -} - CardCounterSettings &SettingsCache::cardCounters() const { return *cardCounterSettings; diff --git a/libcockatrice_settings/libcockatrice/settings/cache_settings.h b/cockatrice/src/client/settings/cache_settings.h similarity index 96% rename from libcockatrice_settings/libcockatrice/settings/cache_settings.h rename to cockatrice/src/client/settings/cache_settings.h index 90eba0cb1..cf0daff69 100644 --- a/libcockatrice_settings/libcockatrice/settings/cache_settings.h +++ b/cockatrice/src/client/settings/cache_settings.h @@ -7,15 +7,6 @@ #ifndef SETTINGSCACHE_H #define SETTINGSCACHE_H -#include "card_database_settings.h" -#include "card_override_settings.h" -#include "debug_settings.h" -#include "download_settings.h" -#include "game_filters_settings.h" -#include "layouts_settings.h" -#include "message_settings.h" -#include "recents_settings.h" -#include "servers_settings.h" #include "shortcuts_settings.h" #include @@ -23,6 +14,17 @@ #include #include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include inline Q_LOGGING_CATEGORY(SettingsCacheLog, "settings_cache"); @@ -132,14 +134,13 @@ inline QStringList defaultTags = { class QSettings; class CardCounterSettings; -class SettingsCache : public QObject +class SettingsCache : public ICardDatabasePathProvider, public INetworkSettingsProvider { Q_OBJECT signals: void langChanged(); void picsPathChanged(); - void cardDatabasePathChanged(); void themeChanged(); void homeTabBackgroundSourceChanged(); void homeTabBackgroundShuffleFrequencyChanged(); @@ -374,19 +375,19 @@ public: { return customPicsPath; } - QString getCustomCardDatabasePath() const + QString getCustomCardDatabasePath() const override { return customCardDatabasePath; } - QString getCardDatabasePath() const + QString getCardDatabasePath() const override { return cardDatabasePath; } - QString getSpoilerCardDatabasePath() const + QString getSpoilerCardDatabasePath() const override { return spoilerDatabasePath; } - QString getTokenDatabasePath() const + QString getTokenDatabasePath() const override { return tokenDatabasePath; } @@ -483,7 +484,7 @@ public: return getLastCardUpdateCheck().daysTo(QDateTime::currentDateTime().date()) >= getCardUpdateCheckInterval() && getLastCardUpdateCheck() != QDateTime::currentDateTime().date(); } - bool getNotifyAboutUpdates() const + bool getNotifyAboutUpdates() const override { return notifyAboutUpdates; } @@ -835,11 +836,11 @@ public: { return rememberGameSettings; } - int getKeepAlive() const + int getKeepAlive() const override { return keepalive; } - int getTimeOut() const + int getTimeOut() const override { return timeout; } @@ -849,13 +850,13 @@ public: } void setClientID(const QString &clientID); void setClientVersion(const QString &clientVersion); - void setKnownMissingFeatures(const QString &_knownMissingFeatures); + void setKnownMissingFeatures(const QString &_knownMissingFeatures) override; void setUseTearOffMenus(bool _useTearOffMenus); void setCardViewInitialRowsMax(int _cardViewInitialRowsMax); void setCardViewExpandedRowsMax(int value); void setCloseEmptyCardView(QT_STATE_CHANGED_T value); void setFocusCardViewSearchBar(QT_STATE_CHANGED_T value); - QString getClientID() + QString getClientID() override { return clientID; } @@ -863,7 +864,7 @@ public: { return clientVersion; } - QString getKnownMissingFeatures() + QString getKnownMissingFeatures() override { return knownMissingFeatures; } @@ -891,9 +892,9 @@ public: { return *shortcutsSettings; } - CardDatabaseSettings &cardDatabase() const + CardDatabaseSettings *cardDatabase() const { - return *cardDatabaseSettings; + return cardDatabaseSettings; } ServersSettings &servers() const { diff --git a/libcockatrice_settings/libcockatrice/settings/card_counter_settings.cpp b/cockatrice/src/client/settings/card_counter_settings.cpp similarity index 100% rename from libcockatrice_settings/libcockatrice/settings/card_counter_settings.cpp rename to cockatrice/src/client/settings/card_counter_settings.cpp diff --git a/libcockatrice_settings/libcockatrice/settings/card_counter_settings.h b/cockatrice/src/client/settings/card_counter_settings.h similarity index 92% rename from libcockatrice_settings/libcockatrice/settings/card_counter_settings.h rename to cockatrice/src/client/settings/card_counter_settings.h index 94baeb9e2..f2c1c1d43 100644 --- a/libcockatrice_settings/libcockatrice/settings/card_counter_settings.h +++ b/cockatrice/src/client/settings/card_counter_settings.h @@ -7,9 +7,8 @@ #ifndef CARD_COUNTER_SETTINGS_H #define CARD_COUNTER_SETTINGS_H -#include "settings_manager.h" - #include +#include class QSettings; class QColor; diff --git a/libcockatrice_settings/libcockatrice/settings/shortcut_treeview.cpp b/cockatrice/src/client/settings/shortcut_treeview.cpp similarity index 100% rename from libcockatrice_settings/libcockatrice/settings/shortcut_treeview.cpp rename to cockatrice/src/client/settings/shortcut_treeview.cpp diff --git a/libcockatrice_settings/libcockatrice/settings/shortcut_treeview.h b/cockatrice/src/client/settings/shortcut_treeview.h similarity index 100% rename from libcockatrice_settings/libcockatrice/settings/shortcut_treeview.h rename to cockatrice/src/client/settings/shortcut_treeview.h diff --git a/libcockatrice_settings/libcockatrice/settings/shortcuts_settings.cpp b/cockatrice/src/client/settings/shortcuts_settings.cpp similarity index 100% rename from libcockatrice_settings/libcockatrice/settings/shortcuts_settings.cpp rename to cockatrice/src/client/settings/shortcuts_settings.cpp diff --git a/libcockatrice_settings/libcockatrice/settings/shortcuts_settings.h b/cockatrice/src/client/settings/shortcuts_settings.h similarity index 100% rename from libcockatrice_settings/libcockatrice/settings/shortcuts_settings.h rename to cockatrice/src/client/settings/shortcuts_settings.h diff --git a/cockatrice/src/client/sound_engine.cpp b/cockatrice/src/client/sound_engine.cpp index 05f2d12d8..31cb2a35e 100644 --- a/cockatrice/src/client/sound_engine.cpp +++ b/cockatrice/src/client/sound_engine.cpp @@ -1,8 +1,9 @@ #include "sound_engine.h" +#include "settings/cache_settings.h" + #include #include -#include #if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)) #include diff --git a/cockatrice/src/database/interface/settings_card_preference_provider.h b/cockatrice/src/database/interface/settings_card_preference_provider.h new file mode 100644 index 000000000..4197bb53c --- /dev/null +++ b/cockatrice/src/database/interface/settings_card_preference_provider.h @@ -0,0 +1,21 @@ +#ifndef COCKATRICE_SETTINGS_CARD_PREFERENCE_PROVIDER_H +#define COCKATRICE_SETTINGS_CARD_PREFERENCE_PROVIDER_H +#include "../../client/settings/cache_settings.h" + +#include + +class SettingsCardPreferenceProvider : public ICardPreferenceProvider +{ +public: + QString getCardPreferenceOverride(const QString &cardName) const override + { + return SettingsCache::instance().cardOverrides().getCardPreferenceOverride(cardName); + } + + bool getIncludeRebalancedCards() const override + { + return SettingsCache::instance().getIncludeRebalancedCards(); + }; +}; + +#endif // COCKATRICE_SETTINGS_CARD_PREFERENCE_PROVIDER_H diff --git a/cockatrice/src/game/board/abstract_card_drag_item.cpp b/cockatrice/src/game/board/abstract_card_drag_item.cpp index 3507a5a27..c961cbcb6 100644 --- a/cockatrice/src/game/board/abstract_card_drag_item.cpp +++ b/cockatrice/src/game/board/abstract_card_drag_item.cpp @@ -1,10 +1,11 @@ #include "abstract_card_drag_item.h" +#include "../../client/settings/cache_settings.h" + #include #include #include #include -#include static const float CARD_WIDTH_HALF = CARD_WIDTH / 2; static const float CARD_HEIGHT_HALF = CARD_HEIGHT / 2; diff --git a/cockatrice/src/game/board/abstract_card_item.cpp b/cockatrice/src/game/board/abstract_card_item.cpp index 2b3811b53..48720aa96 100644 --- a/cockatrice/src/game/board/abstract_card_item.cpp +++ b/cockatrice/src/game/board/abstract_card_item.cpp @@ -1,5 +1,6 @@ #include "abstract_card_item.h" +#include "../../client/settings/cache_settings.h" #include "../../interface/card_picture_loader/card_picture_loader.h" #include "../game_scene.h" @@ -10,7 +11,6 @@ #include #include #include -#include AbstractCardItem::AbstractCardItem(QGraphicsItem *parent, const CardRef &cardRef, Player *_owner, int _id) : ArrowTarget(_owner, parent), id(_id), cardRef(cardRef), tapped(false), facedown(false), tapAngle(0), diff --git a/cockatrice/src/game/board/abstract_counter.cpp b/cockatrice/src/game/board/abstract_counter.cpp index 44340cc34..8ca593ace 100644 --- a/cockatrice/src/game/board/abstract_counter.cpp +++ b/cockatrice/src/game/board/abstract_counter.cpp @@ -1,5 +1,6 @@ #include "abstract_counter.h" +#include "../../client/settings/cache_settings.h" #include "../../interface/widgets/tabs/tab_game.h" #include "../player/player.h" #include "translate_counter_name.h" @@ -14,7 +15,6 @@ #include #include #include -#include #include AbstractCounter::AbstractCounter(Player *_player, diff --git a/cockatrice/src/game/board/arrow_item.cpp b/cockatrice/src/game/board/arrow_item.cpp index cc4a4e6aa..fd044d042 100644 --- a/cockatrice/src/game/board/arrow_item.cpp +++ b/cockatrice/src/game/board/arrow_item.cpp @@ -1,6 +1,7 @@ #define _USE_MATH_DEFINES #include "arrow_item.h" +#include "../../client/settings/cache_settings.h" #include "../player/player.h" #include "../player/player_target.h" #include "../zones/card_zone.h" @@ -15,7 +16,6 @@ #include #include #include -#include #include ArrowItem::ArrowItem(Player *_player, int _id, ArrowTarget *_startItem, ArrowTarget *_targetItem, const QColor &_color) diff --git a/cockatrice/src/game/board/card_item.cpp b/cockatrice/src/game/board/card_item.cpp index 64f905fee..52e237897 100644 --- a/cockatrice/src/game/board/card_item.cpp +++ b/cockatrice/src/game/board/card_item.cpp @@ -1,5 +1,6 @@ #include "card_item.h" +#include "../../client/settings/cache_settings.h" #include "../../interface/widgets/tabs/tab_game.h" #include "../game_scene.h" #include "../player/player.h" @@ -10,14 +11,13 @@ #include "arrow_item.h" #include "card_drag_item.h" +#include <../../client/settings/card_counter_settings.h> #include #include #include #include #include #include -#include -#include CardItem::CardItem(Player *_owner, QGraphicsItem *parent, const CardRef &cardRef, int _cardid, CardZoneLogic *_zone) : AbstractCardItem(parent, cardRef, _owner, _cardid), zone(_zone), attacking(false), destroyOnZoneChange(false), diff --git a/cockatrice/src/game/deckview/deck_view.cpp b/cockatrice/src/game/deckview/deck_view.cpp index da9c97db9..6c5e51fc4 100644 --- a/cockatrice/src/game/deckview/deck_view.cpp +++ b/cockatrice/src/game/deckview/deck_view.cpp @@ -1,5 +1,6 @@ #include "deck_view.h" +#include "../../client/settings/cache_settings.h" #include "../../interface/theme_manager.h" #include @@ -10,7 +11,6 @@ #include #include #include -#include DeckViewCardDragItem::DeckViewCardDragItem(DeckViewCard *_item, const QPointF &_hotSpot, diff --git a/cockatrice/src/game/deckview/deck_view_container.cpp b/cockatrice/src/game/deckview/deck_view_container.cpp index fc1c569b5..6a01467d1 100644 --- a/cockatrice/src/game/deckview/deck_view_container.cpp +++ b/cockatrice/src/game/deckview/deck_view_container.cpp @@ -1,5 +1,6 @@ #include "deck_view_container.h" +#include "../../client/settings/cache_settings.h" #include "../../interface/card_picture_loader/card_picture_loader.h" #include "../../interface/widgets/dialogs/dlg_load_deck.h" #include "../../interface/widgets/dialogs/dlg_load_deck_from_clipboard.h" @@ -22,7 +23,6 @@ #include #include #include -#include #include ToggleButton::ToggleButton(QWidget *parent) : QPushButton(parent), state(false) diff --git a/cockatrice/src/game/dialogs/dlg_create_token.cpp b/cockatrice/src/game/dialogs/dlg_create_token.cpp index d2002b6e0..7cafc3219 100644 --- a/cockatrice/src/game/dialogs/dlg_create_token.cpp +++ b/cockatrice/src/game/dialogs/dlg_create_token.cpp @@ -1,5 +1,6 @@ #include "dlg_create_token.h" +#include "../../client/settings/cache_settings.h" #include "../../interface/widgets/cards/card_info_picture_widget.h" #include "../../main.h" @@ -20,7 +21,6 @@ #include #include #include -#include #include DlgCreateToken::DlgCreateToken(const QStringList &_predefinedTokens, QWidget *parent) @@ -199,16 +199,7 @@ void DlgCreateToken::tokenSelectionChanged(const QModelIndex ¤t, const QMo annotationEdit->setText(""); } - const auto &cardProviderId = - SettingsCache::instance().cardOverrides().getCardPreferenceOverride(cardInfo->getName()); - if (!cardProviderId.isEmpty()) { - CardRef ref; - ref.name = cardInfo->getName(); - ref.providerId = cardProviderId; - pic->setCard(CardDatabaseManager::query()->getCard(ref)); - } else { - pic->setCard(CardDatabaseManager::query()->getPreferredCard(cardInfo)); - } + pic->setCard(CardDatabaseManager::query()->getPreferredCard(cardInfo)); } void DlgCreateToken::updateSearchFieldWithoutUpdatingFilter(const QString &newValue) const diff --git a/cockatrice/src/game/game_scene.cpp b/cockatrice/src/game/game_scene.cpp index 5af7b2e1d..2175f4aa2 100644 --- a/cockatrice/src/game/game_scene.cpp +++ b/cockatrice/src/game/game_scene.cpp @@ -1,5 +1,6 @@ #include "game_scene.h" +#include "../client/settings/cache_settings.h" #include "board/card_item.h" #include "phases_toolbar.h" #include "player/player.h" @@ -14,7 +15,6 @@ #include #include #include -#include #include /** diff --git a/cockatrice/src/game/game_view.cpp b/cockatrice/src/game/game_view.cpp index 607f0c85a..dd5cc70c1 100644 --- a/cockatrice/src/game/game_view.cpp +++ b/cockatrice/src/game/game_view.cpp @@ -1,11 +1,11 @@ #include "game_view.h" +#include "../client/settings/cache_settings.h" #include "game_scene.h" #include #include #include -#include GameView::GameView(GameScene *scene, QWidget *parent) : QGraphicsView(scene, parent), rubberBand(0) { diff --git a/cockatrice/src/game/log/message_log_widget.cpp b/cockatrice/src/game/log/message_log_widget.cpp index b9ad47d61..d4af5d00d 100644 --- a/cockatrice/src/game/log/message_log_widget.cpp +++ b/cockatrice/src/game/log/message_log_widget.cpp @@ -8,10 +8,10 @@ #include "../player/player.h" #include "../zones/card_zone.h" +#include <../../client/settings/card_counter_settings.h> #include #include #include -#include #include static const QString TABLE_ZONE_NAME = "table"; diff --git a/cockatrice/src/game/player/menu/card_menu.cpp b/cockatrice/src/game/player/menu/card_menu.cpp index cd73c6d88..ed7854df2 100644 --- a/cockatrice/src/game/player/menu/card_menu.cpp +++ b/cockatrice/src/game/player/menu/card_menu.cpp @@ -1,5 +1,6 @@ #include "card_menu.h" +#include "../../../client/settings/card_counter_settings.h" #include "../../../interface/widgets/tabs/tab_game.h" #include "../../board/card_item.h" #include "../../zones/logic/view_zone_logic.h" @@ -11,7 +12,6 @@ #include #include -#include CardMenu::CardMenu(Player *_player, const CardItem *_card, bool _shortcutsActive) : player(_player), card(_card), shortcutsActive(_shortcutsActive) diff --git a/cockatrice/src/game/player/menu/hand_menu.cpp b/cockatrice/src/game/player/menu/hand_menu.cpp index b8908bc3e..dc5fd0e2a 100644 --- a/cockatrice/src/game/player/menu/hand_menu.cpp +++ b/cockatrice/src/game/player/menu/hand_menu.cpp @@ -1,5 +1,7 @@ #include "hand_menu.h" +#include "../../../client/settings/cache_settings.h" +#include "../../../client/settings/shortcuts_settings.h" #include "../../abstract_game.h" #include "../../zones/hand_zone.h" #include "../player.h" @@ -7,8 +9,6 @@ #include #include -#include -#include HandMenu::HandMenu(Player *_player, PlayerActions *actions, QWidget *parent) : TearOffMenu(parent), player(_player) { diff --git a/cockatrice/src/game/player/menu/library_menu.cpp b/cockatrice/src/game/player/menu/library_menu.cpp index 4303a6540..749439558 100644 --- a/cockatrice/src/game/player/menu/library_menu.cpp +++ b/cockatrice/src/game/player/menu/library_menu.cpp @@ -1,5 +1,7 @@ #include "library_menu.h" +#include "../../../client/settings/cache_settings.h" +#include "../../../client/settings/shortcuts_settings.h" #include "../../../interface/widgets/tabs/tab_game.h" #include "../../abstract_game.h" #include "../player.h" @@ -7,8 +9,6 @@ #include #include -#include -#include LibraryMenu::LibraryMenu(Player *_player, QWidget *parent) : TearOffMenu(parent), player(_player) { diff --git a/cockatrice/src/game/player/menu/say_menu.cpp b/cockatrice/src/game/player/menu/say_menu.cpp index 7db8f60be..3c4802aa5 100644 --- a/cockatrice/src/game/player/menu/say_menu.cpp +++ b/cockatrice/src/game/player/menu/say_menu.cpp @@ -1,10 +1,9 @@ #include "say_menu.h" +#include "../../../client/settings/cache_settings.h" #include "../player.h" #include "../player_actions.h" -#include - SayMenu::SayMenu(Player *_player) : player(_player) { connect(&SettingsCache::instance().messages(), &MessageSettings::messageMacrosChanged, this, &SayMenu::initSayMenu); diff --git a/cockatrice/src/game/zones/hand_zone.cpp b/cockatrice/src/game/zones/hand_zone.cpp index 5d63e8a28..eb52f8f3b 100644 --- a/cockatrice/src/game/zones/hand_zone.cpp +++ b/cockatrice/src/game/zones/hand_zone.cpp @@ -1,5 +1,6 @@ #include "hand_zone.h" +#include "../../client/settings/cache_settings.h" #include "../../interface/theme_manager.h" #include "../board/card_drag_item.h" #include "../board/card_item.h" @@ -7,7 +8,6 @@ #include #include -#include HandZone::HandZone(HandZoneLogic *_logic, int _zoneHeight, QGraphicsItem *parent) : SelectZone(_logic, parent), zoneHeight(_zoneHeight) diff --git a/cockatrice/src/game/zones/logic/view_zone_logic.cpp b/cockatrice/src/game/zones/logic/view_zone_logic.cpp index e61c126e7..5a4db3163 100644 --- a/cockatrice/src/game/zones/logic/view_zone_logic.cpp +++ b/cockatrice/src/game/zones/logic/view_zone_logic.cpp @@ -1,9 +1,8 @@ #include "view_zone_logic.h" +#include "../../../client/settings/cache_settings.h" #include "../../board/card_item.h" -#include - /** * @param _player the player that the cards are revealed to. * @param _origZone the zone the cards were revealed from. diff --git a/cockatrice/src/game/zones/select_zone.cpp b/cockatrice/src/game/zones/select_zone.cpp index ec24e4f9f..719eec148 100644 --- a/cockatrice/src/game/zones/select_zone.cpp +++ b/cockatrice/src/game/zones/select_zone.cpp @@ -1,11 +1,11 @@ #include "select_zone.h" +#include "../../client/settings/cache_settings.h" #include "../board/card_item.h" #include "../game_scene.h" #include #include -#include qreal divideCardSpaceInZone(qreal index, int cardCount, qreal totalHeight, qreal cardHeight, bool reverse) { diff --git a/cockatrice/src/game/zones/stack_zone.cpp b/cockatrice/src/game/zones/stack_zone.cpp index 4d8c15da8..0c0501705 100644 --- a/cockatrice/src/game/zones/stack_zone.cpp +++ b/cockatrice/src/game/zones/stack_zone.cpp @@ -1,5 +1,6 @@ #include "stack_zone.h" +#include "../../client/settings/cache_settings.h" #include "../../interface/theme_manager.h" #include "../board/arrow_item.h" #include "../board/card_drag_item.h" @@ -10,7 +11,6 @@ #include #include #include -#include StackZone::StackZone(StackZoneLogic *_logic, int _zoneHeight, QGraphicsItem *parent) : SelectZone(_logic, parent), zoneHeight(_zoneHeight) diff --git a/cockatrice/src/game/zones/table_zone.cpp b/cockatrice/src/game/zones/table_zone.cpp index b0484f984..55aaeaa39 100644 --- a/cockatrice/src/game/zones/table_zone.cpp +++ b/cockatrice/src/game/zones/table_zone.cpp @@ -1,5 +1,6 @@ #include "table_zone.h" +#include "../../client/settings/cache_settings.h" #include "../../interface/theme_manager.h" #include "../board/arrow_item.h" #include "../board/card_drag_item.h" @@ -13,7 +14,6 @@ #include #include #include -#include const QColor TableZone::BACKGROUND_COLOR = QColor(100, 100, 100); const QColor TableZone::FADE_MASK = QColor(0, 0, 0, 80); diff --git a/cockatrice/src/game/zones/view_zone_widget.cpp b/cockatrice/src/game/zones/view_zone_widget.cpp index 2424feb9b..e2f242883 100644 --- a/cockatrice/src/game/zones/view_zone_widget.cpp +++ b/cockatrice/src/game/zones/view_zone_widget.cpp @@ -1,5 +1,6 @@ #include "view_zone_widget.h" +#include "../../client/settings/cache_settings.h" #include "../../filters/syntax_help.h" #include "../../interface/pixel_map_generator.h" #include "../board/card_item.h" @@ -17,7 +18,6 @@ #include #include #include -#include /** * @param _player the player the cards were revealed to. diff --git a/cockatrice/src/interface/card_picture_loader/card_picture_loader.cpp b/cockatrice/src/interface/card_picture_loader/card_picture_loader.cpp index 56b00e4b8..aebb09f0f 100644 --- a/cockatrice/src/interface/card_picture_loader/card_picture_loader.cpp +++ b/cockatrice/src/interface/card_picture_loader/card_picture_loader.cpp @@ -1,5 +1,7 @@ #include "card_picture_loader.h" +#include "../../client/settings/cache_settings.h" + #include #include #include @@ -15,7 +17,6 @@ #include #include #include -#include #include // never cache more than 300 cards at once for a single deck diff --git a/cockatrice/src/interface/card_picture_loader/card_picture_loader_local.cpp b/cockatrice/src/interface/card_picture_loader/card_picture_loader_local.cpp index a2058b0ed..33a78ddaf 100644 --- a/cockatrice/src/interface/card_picture_loader/card_picture_loader_local.cpp +++ b/cockatrice/src/interface/card_picture_loader/card_picture_loader_local.cpp @@ -1,11 +1,11 @@ #include "card_picture_loader_local.h" +#include "../../client/settings/cache_settings.h" #include "card_picture_to_load.h" #include #include #include -#include static constexpr int REFRESH_INTERVAL_MS = 10 * 1000; diff --git a/cockatrice/src/interface/card_picture_loader/card_picture_loader_worker.cpp b/cockatrice/src/interface/card_picture_loader/card_picture_loader_worker.cpp index f92848b22..4a831c24a 100644 --- a/cockatrice/src/interface/card_picture_loader/card_picture_loader_worker.cpp +++ b/cockatrice/src/interface/card_picture_loader/card_picture_loader_worker.cpp @@ -1,5 +1,6 @@ #include "card_picture_loader_worker.h" +#include "../../client/settings/cache_settings.h" #include "card_picture_loader_local.h" #include "card_picture_loader_worker_work.h" @@ -9,7 +10,6 @@ #include #include #include -#include #include static constexpr int MAX_REQUESTS_PER_SEC = 10; diff --git a/cockatrice/src/interface/card_picture_loader/card_picture_loader_worker_work.cpp b/cockatrice/src/interface/card_picture_loader/card_picture_loader_worker_work.cpp index eae93d46f..07478ee70 100644 --- a/cockatrice/src/interface/card_picture_loader/card_picture_loader_worker_work.cpp +++ b/cockatrice/src/interface/card_picture_loader/card_picture_loader_worker_work.cpp @@ -1,5 +1,6 @@ #include "card_picture_loader_worker_work.h" +#include "../../client/settings/cache_settings.h" #include "card_picture_loader_worker.h" #include @@ -11,7 +12,6 @@ #include #include #include -#include // Card back returned by gatherer when card is not found static const QStringList MD5_BLACKLIST = {"db0c48db407a907c16ade38de048a441"}; diff --git a/cockatrice/src/interface/card_picture_loader/card_picture_to_load.cpp b/cockatrice/src/interface/card_picture_loader/card_picture_to_load.cpp index 4f1a27a98..c5caa7e34 100644 --- a/cockatrice/src/interface/card_picture_loader/card_picture_to_load.cpp +++ b/cockatrice/src/interface/card_picture_loader/card_picture_to_load.cpp @@ -1,12 +1,13 @@ #include "card_picture_to_load.h" +#include "../../client/settings/cache_settings.h" + #include #include #include #include #include #include -#include CardPictureToLoad::CardPictureToLoad(const ExactCard &_card) : card(_card), urlTemplates(SettingsCache::instance().downloads().getAllURLs()) @@ -33,7 +34,7 @@ QList CardPictureToLoad::extractSetsSorted(const ExactCard &card) } } if (sortedSets.empty()) { - sortedSets << CardSet::newInstance("", "", "", QDate()); + sortedSets << CardSet::newInstance(SettingsCache::instance().cardDatabase(), "", "", "", QDate()); } std::sort(sortedSets.begin(), sortedSets.end(), SetPriorityComparator()); diff --git a/cockatrice/src/interface/theme_manager.cpp b/cockatrice/src/interface/theme_manager.cpp index 4cb66e2b1..ec52a0f6e 100644 --- a/cockatrice/src/interface/theme_manager.cpp +++ b/cockatrice/src/interface/theme_manager.cpp @@ -1,12 +1,13 @@ #include "theme_manager.h" +#include "../../client/settings/cache_settings.h" + #include #include #include #include #include #include -#include #define NONE_THEME_NAME "Default" #define STYLE_CSS_NAME "style.css" diff --git a/cockatrice/src/interface/widgets/cards/additional_info/color_identity_widget.cpp b/cockatrice/src/interface/widgets/cards/additional_info/color_identity_widget.cpp index c134b0aff..20f4b29df 100644 --- a/cockatrice/src/interface/widgets/cards/additional_info/color_identity_widget.cpp +++ b/cockatrice/src/interface/widgets/cards/additional_info/color_identity_widget.cpp @@ -1,5 +1,6 @@ #include "color_identity_widget.h" +#include "../../../../client/settings/cache_settings.h" #include "mana_symbol_widget.h" #include @@ -8,7 +9,6 @@ #include #include #include -#include ColorIdentityWidget::ColorIdentityWidget(QWidget *parent, CardInfoPtr _card) : QWidget(parent), card(_card) { diff --git a/cockatrice/src/interface/widgets/cards/additional_info/mana_symbol_widget.cpp b/cockatrice/src/interface/widgets/cards/additional_info/mana_symbol_widget.cpp index 942635871..07cc382ad 100644 --- a/cockatrice/src/interface/widgets/cards/additional_info/mana_symbol_widget.cpp +++ b/cockatrice/src/interface/widgets/cards/additional_info/mana_symbol_widget.cpp @@ -1,7 +1,8 @@ #include "mana_symbol_widget.h" +#include "../../../../client/settings/cache_settings.h" + #include -#include ManaSymbolWidget::ManaSymbolWidget(QWidget *parent, QString _symbol, bool _isActive, bool _mayBeToggled) : QLabel(parent), symbol(_symbol), isActive(_isActive), mayBeToggled(_mayBeToggled) diff --git a/cockatrice/src/interface/widgets/cards/card_info_frame_widget.cpp b/cockatrice/src/interface/widgets/cards/card_info_frame_widget.cpp index 6dad6424b..9fea41076 100644 --- a/cockatrice/src/interface/widgets/cards/card_info_frame_widget.cpp +++ b/cockatrice/src/interface/widgets/cards/card_info_frame_widget.cpp @@ -1,5 +1,6 @@ #include "card_info_frame_widget.h" +#include "../../../client/settings/cache_settings.h" #include "../../../game/board/card_item.h" #include "card_info_display_widget.h" #include "card_info_picture_widget.h" @@ -9,7 +10,6 @@ #include #include #include -#include #include CardInfoFrameWidget::CardInfoFrameWidget(QWidget *parent) diff --git a/cockatrice/src/interface/widgets/cards/card_info_picture_enlarged_widget.cpp b/cockatrice/src/interface/widgets/cards/card_info_picture_enlarged_widget.cpp index ead669e7c..9a79bd32f 100644 --- a/cockatrice/src/interface/widgets/cards/card_info_picture_enlarged_widget.cpp +++ b/cockatrice/src/interface/widgets/cards/card_info_picture_enlarged_widget.cpp @@ -1,10 +1,10 @@ #include "card_info_picture_enlarged_widget.h" +#include "../../../client/settings/cache_settings.h" #include "../../../interface/card_picture_loader/card_picture_loader.h" #include #include -#include #include /** diff --git a/cockatrice/src/interface/widgets/cards/card_info_picture_widget.cpp b/cockatrice/src/interface/widgets/cards/card_info_picture_widget.cpp index 8b744dc73..8ad86eadc 100644 --- a/cockatrice/src/interface/widgets/cards/card_info_picture_widget.cpp +++ b/cockatrice/src/interface/widgets/cards/card_info_picture_widget.cpp @@ -1,5 +1,6 @@ #include "card_info_picture_widget.h" +#include "../../../client/settings/cache_settings.h" #include "../../../game/board/card_item.h" #include "../../../interface/card_picture_loader/card_picture_loader.h" #include "../../../interface/widgets/tabs/tab_supervisor.h" @@ -12,7 +13,6 @@ #include #include #include -#include #include /** diff --git a/cockatrice/src/interface/widgets/cards/card_size_widget.cpp b/cockatrice/src/interface/widgets/cards/card_size_widget.cpp index c084dac64..927d9bf5f 100644 --- a/cockatrice/src/interface/widgets/cards/card_size_widget.cpp +++ b/cockatrice/src/interface/widgets/cards/card_size_widget.cpp @@ -1,10 +1,9 @@ #include "card_size_widget.h" +#include "../../../client/settings/cache_settings.h" #include "../printing_selector/printing_selector.h" #include "../visual_deck_storage/visual_deck_storage_widget.h" -#include - /** * @class CardSizeWidget * @brief A widget for adjusting card sizes using a slider. diff --git a/cockatrice/src/interface/widgets/cards/deck_preview_card_picture_widget.cpp b/cockatrice/src/interface/widgets/cards/deck_preview_card_picture_widget.cpp index dfa7bc025..8f4e1a115 100644 --- a/cockatrice/src/interface/widgets/cards/deck_preview_card_picture_widget.cpp +++ b/cockatrice/src/interface/widgets/cards/deck_preview_card_picture_widget.cpp @@ -1,5 +1,7 @@ #include "deck_preview_card_picture_widget.h" +#include "../../../client/settings/cache_settings.h" + #include #include #include @@ -7,7 +9,6 @@ #include #include #include -#include /** * @brief Constructs a CardPictureWithTextOverlay widget. diff --git a/cockatrice/src/interface/widgets/deck_editor/deck_editor_database_display_widget.cpp b/cockatrice/src/interface/widgets/deck_editor/deck_editor_database_display_widget.cpp index 4695eda0b..b5aa007f0 100644 --- a/cockatrice/src/interface/widgets/deck_editor/deck_editor_database_display_widget.cpp +++ b/cockatrice/src/interface/widgets/deck_editor/deck_editor_database_display_widget.cpp @@ -1,5 +1,6 @@ #include "deck_editor_database_display_widget.h" +#include "../../../client/settings/cache_settings.h" #include "../../../filters/syntax_help.h" #include "../../../interface/widgets/tabs/abstract_tab_deck_editor.h" #include "../../../interface/widgets/tabs/tab_supervisor.h" @@ -14,7 +15,6 @@ #include #include #include -#include static bool canBeCommander(const CardInfo &cardInfo) { @@ -143,7 +143,7 @@ void DeckEditorDatabaseDisplayWidget::updateCard(const QModelIndex ¤t, con } if (!current.model()->hasChildren(current.sibling(current.row(), 0))) { - emit cardChanged(getCardOrPinnedPrinting(cardName)); + emit cardChanged(CardDatabaseManager::query()->getPreferredCard(cardName)); } } @@ -176,21 +176,7 @@ ExactCard DeckEditorDatabaseDisplayWidget::currentCard() const const QString cardName = currentIndex.sibling(currentIndex.row(), 0).data().toString(); - return getCardOrPinnedPrinting(cardName); -} - -ExactCard DeckEditorDatabaseDisplayWidget::getCardOrPinnedPrinting(QString cardName) const -{ - const auto &cardProviderId = SettingsCache::instance().cardOverrides().getCardPreferenceOverride(cardName); - - ExactCard card = CardDatabaseManager::query()->getCard({cardName}); - - if (cardProviderId != "") { - return ExactCard(card.getCardPtr(), - CardDatabaseManager::query()->getSpecificPrinting({cardName, cardProviderId})); - } - - return card; + return CardDatabaseManager::query()->getPreferredCard(cardName); } void DeckEditorDatabaseDisplayWidget::databaseCustomMenu(QPoint point) diff --git a/cockatrice/src/interface/widgets/deck_editor/deck_editor_database_display_widget.h b/cockatrice/src/interface/widgets/deck_editor/deck_editor_database_display_widget.h index 0add31322..efac97eae 100644 --- a/cockatrice/src/interface/widgets/deck_editor/deck_editor_database_display_widget.h +++ b/cockatrice/src/interface/widgets/deck_editor/deck_editor_database_display_widget.h @@ -31,7 +31,6 @@ public: public slots: ExactCard currentCard() const; - ExactCard getCardOrPinnedPrinting(QString cardName) const; void setFilterTree(FilterTree *filterTree); void clearAllDatabaseFilters(); diff --git a/cockatrice/src/interface/widgets/deck_editor/deck_editor_deck_dock_widget.cpp b/cockatrice/src/interface/widgets/deck_editor/deck_editor_deck_dock_widget.cpp index f5970c1e6..0e6b535bf 100644 --- a/cockatrice/src/interface/widgets/deck_editor/deck_editor_deck_dock_widget.cpp +++ b/cockatrice/src/interface/widgets/deck_editor/deck_editor_deck_dock_widget.cpp @@ -1,5 +1,7 @@ #include "deck_editor_deck_dock_widget.h" +#include "../../../client/settings/cache_settings.h" + #include #include #include @@ -7,7 +9,6 @@ #include #include #include -#include #include DeckEditorDeckDockWidget::DeckEditorDeckDockWidget(AbstractTabDeckEditor *parent) diff --git a/cockatrice/src/interface/widgets/deck_editor/deck_editor_filter_dock_widget.cpp b/cockatrice/src/interface/widgets/deck_editor/deck_editor_filter_dock_widget.cpp index 69eb71c2b..4957e24ec 100644 --- a/cockatrice/src/interface/widgets/deck_editor/deck_editor_filter_dock_widget.cpp +++ b/cockatrice/src/interface/widgets/deck_editor/deck_editor_filter_dock_widget.cpp @@ -1,5 +1,6 @@ #include "deck_editor_filter_dock_widget.h" +#include "../../../client/settings/cache_settings.h" #include "../../../filters/filter_builder.h" #include "../../../filters/filter_tree_model.h" @@ -7,7 +8,6 @@ #include #include #include -#include DeckEditorFilterDockWidget::DeckEditorFilterDockWidget(AbstractTabDeckEditor *parent) : QDockWidget(parent), deckEditor(parent) diff --git a/cockatrice/src/interface/widgets/dialogs/dlg_connect.cpp b/cockatrice/src/interface/widgets/dialogs/dlg_connect.cpp index 3f398218e..ed32b356c 100644 --- a/cockatrice/src/interface/widgets/dialogs/dlg_connect.cpp +++ b/cockatrice/src/interface/widgets/dialogs/dlg_connect.cpp @@ -1,5 +1,7 @@ #include "dlg_connect.h" +#include "../../../client/settings/cache_settings.h" + #include #include #include @@ -12,7 +14,6 @@ #include #include #include -#include #include DlgConnect::DlgConnect(QWidget *parent) : QDialog(parent) diff --git a/cockatrice/src/interface/widgets/dialogs/dlg_create_game.cpp b/cockatrice/src/interface/widgets/dialogs/dlg_create_game.cpp index 86b002c92..d69c7a08a 100644 --- a/cockatrice/src/interface/widgets/dialogs/dlg_create_game.cpp +++ b/cockatrice/src/interface/widgets/dialogs/dlg_create_game.cpp @@ -1,5 +1,6 @@ #include "dlg_create_game.h" +#include "../../../client/settings/cache_settings.h" #include "../interface/widgets/tabs/tab_room.h" #include @@ -17,7 +18,6 @@ #include #include #include -#include #include void DlgCreateGame::sharedCtor() diff --git a/cockatrice/src/interface/widgets/dialogs/dlg_default_tags_editor.cpp b/cockatrice/src/interface/widgets/dialogs/dlg_default_tags_editor.cpp index 39b7333c5..5b120b1e2 100644 --- a/cockatrice/src/interface/widgets/dialogs/dlg_default_tags_editor.cpp +++ b/cockatrice/src/interface/widgets/dialogs/dlg_default_tags_editor.cpp @@ -1,8 +1,9 @@ #include "dlg_default_tags_editor.h" +#include "../../../client/settings/cache_settings.h" + #include #include -#include DlgDefaultTagsEditor::DlgDefaultTagsEditor(QWidget *parent) : QDialog(parent) { diff --git a/cockatrice/src/interface/widgets/dialogs/dlg_edit_password.cpp b/cockatrice/src/interface/widgets/dialogs/dlg_edit_password.cpp index 105783210..998dafb66 100644 --- a/cockatrice/src/interface/widgets/dialogs/dlg_edit_password.cpp +++ b/cockatrice/src/interface/widgets/dialogs/dlg_edit_password.cpp @@ -1,11 +1,12 @@ #include "dlg_edit_password.h" +#include "../../../client/settings/cache_settings.h" + #include #include #include #include #include -#include #include DlgEditPassword::DlgEditPassword(QWidget *parent) : QDialog(parent) diff --git a/cockatrice/src/interface/widgets/dialogs/dlg_edit_user.cpp b/cockatrice/src/interface/widgets/dialogs/dlg_edit_user.cpp index 70e99ca28..c39c87d4a 100644 --- a/cockatrice/src/interface/widgets/dialogs/dlg_edit_user.cpp +++ b/cockatrice/src/interface/widgets/dialogs/dlg_edit_user.cpp @@ -1,11 +1,12 @@ #include "dlg_edit_user.h" +#include "../../../client/settings/cache_settings.h" + #include #include #include #include #include -#include #include DlgEditUser::DlgEditUser(QWidget *parent, QString email, QString country, QString realName) : QDialog(parent) diff --git a/cockatrice/src/interface/widgets/dialogs/dlg_forgot_password_challenge.cpp b/cockatrice/src/interface/widgets/dialogs/dlg_forgot_password_challenge.cpp index a8999d1e3..c8c86d1f1 100644 --- a/cockatrice/src/interface/widgets/dialogs/dlg_forgot_password_challenge.cpp +++ b/cockatrice/src/interface/widgets/dialogs/dlg_forgot_password_challenge.cpp @@ -1,5 +1,7 @@ #include "dlg_forgot_password_challenge.h" +#include "../../../client/settings/cache_settings.h" + #include #include #include @@ -7,7 +9,6 @@ #include #include #include -#include #include DlgForgotPasswordChallenge::DlgForgotPasswordChallenge(QWidget *parent) : QDialog(parent) diff --git a/cockatrice/src/interface/widgets/dialogs/dlg_forgot_password_request.cpp b/cockatrice/src/interface/widgets/dialogs/dlg_forgot_password_request.cpp index 000e7b0f1..4921630f3 100644 --- a/cockatrice/src/interface/widgets/dialogs/dlg_forgot_password_request.cpp +++ b/cockatrice/src/interface/widgets/dialogs/dlg_forgot_password_request.cpp @@ -1,5 +1,7 @@ #include "dlg_forgot_password_request.h" +#include "../../../client/settings/cache_settings.h" + #include #include #include @@ -7,7 +9,6 @@ #include #include #include -#include #include DlgForgotPasswordRequest::DlgForgotPasswordRequest(QWidget *parent) : QDialog(parent) diff --git a/cockatrice/src/interface/widgets/dialogs/dlg_forgot_password_reset.cpp b/cockatrice/src/interface/widgets/dialogs/dlg_forgot_password_reset.cpp index 43b6c2fb9..f08347879 100644 --- a/cockatrice/src/interface/widgets/dialogs/dlg_forgot_password_reset.cpp +++ b/cockatrice/src/interface/widgets/dialogs/dlg_forgot_password_reset.cpp @@ -1,5 +1,7 @@ #include "dlg_forgot_password_reset.h" +#include "../../../client/settings/cache_settings.h" + #include #include #include @@ -7,7 +9,6 @@ #include #include #include -#include #include DlgForgotPasswordReset::DlgForgotPasswordReset(QWidget *parent) : QDialog(parent) diff --git a/cockatrice/src/interface/widgets/dialogs/dlg_load_deck.cpp b/cockatrice/src/interface/widgets/dialogs/dlg_load_deck.cpp index 47718e158..4f21d7543 100644 --- a/cockatrice/src/interface/widgets/dialogs/dlg_load_deck.cpp +++ b/cockatrice/src/interface/widgets/dialogs/dlg_load_deck.cpp @@ -1,7 +1,8 @@ #include "dlg_load_deck.h" +#include "../../../client/settings/cache_settings.h" + #include -#include DlgLoadDeck::DlgLoadDeck(QWidget *parent) : QFileDialog(parent, tr("Load Deck")) { diff --git a/cockatrice/src/interface/widgets/dialogs/dlg_load_deck_from_clipboard.cpp b/cockatrice/src/interface/widgets/dialogs/dlg_load_deck_from_clipboard.cpp index e15e7518f..cfd99872a 100644 --- a/cockatrice/src/interface/widgets/dialogs/dlg_load_deck_from_clipboard.cpp +++ b/cockatrice/src/interface/widgets/dialogs/dlg_load_deck_from_clipboard.cpp @@ -1,5 +1,6 @@ #include "dlg_load_deck_from_clipboard.h" +#include "../../../client/settings/cache_settings.h" #include "dlg_settings.h" #include @@ -12,7 +13,6 @@ #include #include #include -#include /** * Creates the main layout and connects the signals that are common to all versions of this window diff --git a/cockatrice/src/interface/widgets/dialogs/dlg_manage_sets.cpp b/cockatrice/src/interface/widgets/dialogs/dlg_manage_sets.cpp index 50233e03b..2d3bc08a4 100644 --- a/cockatrice/src/interface/widgets/dialogs/dlg_manage_sets.cpp +++ b/cockatrice/src/interface/widgets/dialogs/dlg_manage_sets.cpp @@ -1,5 +1,6 @@ #include "dlg_manage_sets.h" +#include "../../../client/settings/cache_settings.h" #include "../interface/card_picture_loader/card_picture_loader.h" #include "../interface/widgets/utility/custom_line_edit.h" #include "../main.h" @@ -21,7 +22,6 @@ #include #include #include -#include #define SORT_RESET -1 diff --git a/cockatrice/src/interface/widgets/dialogs/dlg_register.cpp b/cockatrice/src/interface/widgets/dialogs/dlg_register.cpp index e71759554..dff99e4d8 100644 --- a/cockatrice/src/interface/widgets/dialogs/dlg_register.cpp +++ b/cockatrice/src/interface/widgets/dialogs/dlg_register.cpp @@ -1,5 +1,7 @@ #include "dlg_register.h" +#include "../../../client/settings/cache_settings.h" + #include #include #include @@ -8,7 +10,6 @@ #include #include #include -#include #include DlgRegister::DlgRegister(QWidget *parent) : QDialog(parent) diff --git a/cockatrice/src/interface/widgets/dialogs/dlg_settings.cpp b/cockatrice/src/interface/widgets/dialogs/dlg_settings.cpp index 0c4b7797e..d825a2125 100644 --- a/cockatrice/src/interface/widgets/dialogs/dlg_settings.cpp +++ b/cockatrice/src/interface/widgets/dialogs/dlg_settings.cpp @@ -1,5 +1,7 @@ #include "dlg_settings.h" +#include "../../../client/settings/cache_settings.h" +#include "../../../client/settings/shortcut_treeview.h" #include "../client/network/update/card_spoiler/spoiler_background_updater.h" #include "../client/network/update/client/release_channel.h" #include "../client/sound_engine.h" @@ -12,6 +14,7 @@ #include "../interface/widgets/utility/sequence_edit.h" #include "../main.h" +#include <../../client/settings/card_counter_settings.h> #include #include #include @@ -45,9 +48,6 @@ #include #include #include -#include -#include -#include #define WIKI_CUSTOM_PIC_URL "https://github.com/Cockatrice/Cockatrice/wiki/Custom-Picture-Download-URLs" #define WIKI_CUSTOM_SHORTCUTS "https://github.com/Cockatrice/Cockatrice/wiki/Custom-Keyboard-Shortcuts" diff --git a/cockatrice/src/interface/widgets/dialogs/dlg_startup_card_check.cpp b/cockatrice/src/interface/widgets/dialogs/dlg_startup_card_check.cpp index c2a03a55e..ac1922a9d 100644 --- a/cockatrice/src/interface/widgets/dialogs/dlg_startup_card_check.cpp +++ b/cockatrice/src/interface/widgets/dialogs/dlg_startup_card_check.cpp @@ -1,7 +1,8 @@ #include "dlg_startup_card_check.h" +#include "../../../client/settings/cache_settings.h" + #include -#include DlgStartupCardCheck::DlgStartupCardCheck(QWidget *parent) : QDialog(parent) { diff --git a/cockatrice/src/interface/widgets/dialogs/dlg_tip_of_the_day.cpp b/cockatrice/src/interface/widgets/dialogs/dlg_tip_of_the_day.cpp index 6023ac48c..0197d3dbf 100644 --- a/cockatrice/src/interface/widgets/dialogs/dlg_tip_of_the_day.cpp +++ b/cockatrice/src/interface/widgets/dialogs/dlg_tip_of_the_day.cpp @@ -1,5 +1,6 @@ #include "dlg_tip_of_the_day.h" +#include "../../../client/settings/cache_settings.h" #include "tip_of_the_day.h" #include @@ -9,7 +10,6 @@ #include #include #include -#include #define MIN_TIP_IMAGE_HEIGHT 200 #define MIN_TIP_IMAGE_WIDTH 200 diff --git a/cockatrice/src/interface/widgets/dialogs/dlg_update.cpp b/cockatrice/src/interface/widgets/dialogs/dlg_update.cpp index cd7f3e8ba..19182c55b 100644 --- a/cockatrice/src/interface/widgets/dialogs/dlg_update.cpp +++ b/cockatrice/src/interface/widgets/dialogs/dlg_update.cpp @@ -1,5 +1,6 @@ #include "dlg_update.h" +#include "../../../client/settings/cache_settings.h" #include "../client/network/update/client/client_update_checker.h" #include "../client/network/update/client/release_channel.h" #include "../interface/window_main.h" @@ -13,7 +14,6 @@ #include #include #include -#include #include DlgUpdate::DlgUpdate(QWidget *parent) : QDialog(parent) diff --git a/cockatrice/src/interface/widgets/dialogs/dlg_view_log.cpp b/cockatrice/src/interface/widgets/dialogs/dlg_view_log.cpp index 0fb98bef9..3dd0fedb3 100644 --- a/cockatrice/src/interface/widgets/dialogs/dlg_view_log.cpp +++ b/cockatrice/src/interface/widgets/dialogs/dlg_view_log.cpp @@ -1,5 +1,6 @@ #include "dlg_view_log.h" +#include "../../../client/settings/cache_settings.h" #include "../../logger.h" #include @@ -7,7 +8,6 @@ #include #include #include -#include DlgViewLog::DlgViewLog(QWidget *parent) : QDialog(parent) { diff --git a/cockatrice/src/interface/widgets/general/home_widget.cpp b/cockatrice/src/interface/widgets/general/home_widget.cpp index f36f1831a..17283f035 100644 --- a/cockatrice/src/interface/widgets/general/home_widget.cpp +++ b/cockatrice/src/interface/widgets/general/home_widget.cpp @@ -1,5 +1,6 @@ #include "home_widget.h" +#include "../../../client/settings/cache_settings.h" #include "../../../interface/widgets/tabs/tab_supervisor.h" #include "../../window_main.h" #include "background_sources.h" @@ -11,7 +12,6 @@ #include #include #include -#include HomeWidget::HomeWidget(QWidget *parent, TabSupervisor *_tabSupervisor) : QWidget(parent), tabSupervisor(_tabSupervisor), background("theme:backgrounds/home"), overlay("theme:cockatrice") diff --git a/cockatrice/src/interface/widgets/menus/deck_editor_menu.cpp b/cockatrice/src/interface/widgets/menus/deck_editor_menu.cpp index aac488dd1..775efafbd 100644 --- a/cockatrice/src/interface/widgets/menus/deck_editor_menu.cpp +++ b/cockatrice/src/interface/widgets/menus/deck_editor_menu.cpp @@ -1,7 +1,7 @@ #include "../../../interface/widgets/menus/deck_editor_menu.h" -#include -#include +#include "../../../client/settings/cache_settings.h" +#include "../../../client/settings/shortcuts_settings.h" DeckEditorMenu::DeckEditorMenu(AbstractTabDeckEditor *parent) : QMenu(parent), deckEditor(parent) { diff --git a/cockatrice/src/interface/widgets/menus/tearoff_menu.h b/cockatrice/src/interface/widgets/menus/tearoff_menu.h index d2b3f3413..3e6c47012 100644 --- a/cockatrice/src/interface/widgets/menus/tearoff_menu.h +++ b/cockatrice/src/interface/widgets/menus/tearoff_menu.h @@ -6,8 +6,9 @@ #pragma once +#include "../../../client/settings/cache_settings.h" + #include -#include class TearOffMenu : public QMenu { diff --git a/cockatrice/src/interface/widgets/printing_selector/printing_selector.cpp b/cockatrice/src/interface/widgets/printing_selector/printing_selector.cpp index 8afd56f9a..1a47c56a6 100644 --- a/cockatrice/src/interface/widgets/printing_selector/printing_selector.cpp +++ b/cockatrice/src/interface/widgets/printing_selector/printing_selector.cpp @@ -1,5 +1,6 @@ #include "printing_selector.h" +#include "../../../client/settings/cache_settings.h" #include "../../../interface/card_picture_loader/card_picture_loader.h" #include "../../../interface/widgets/dialogs/dlg_select_set_for_cards.h" #include "printing_selector_card_display_widget.h" @@ -9,7 +10,6 @@ #include #include -#include #include /** diff --git a/cockatrice/src/interface/widgets/printing_selector/printing_selector_card_overlay_widget.cpp b/cockatrice/src/interface/widgets/printing_selector/printing_selector_card_overlay_widget.cpp index 56e5d1aab..40f38ac43 100644 --- a/cockatrice/src/interface/widgets/printing_selector/printing_selector_card_overlay_widget.cpp +++ b/cockatrice/src/interface/widgets/printing_selector/printing_selector_card_overlay_widget.cpp @@ -1,5 +1,6 @@ #include "printing_selector_card_overlay_widget.h" +#include "../../../client/settings/cache_settings.h" #include "printing_selector_card_display_widget.h" #include @@ -7,7 +8,6 @@ #include #include #include -#include #include /** diff --git a/cockatrice/src/interface/widgets/printing_selector/printing_selector_card_sorting_widget.cpp b/cockatrice/src/interface/widgets/printing_selector/printing_selector_card_sorting_widget.cpp index d95019e80..af7cedbeb 100644 --- a/cockatrice/src/interface/widgets/printing_selector/printing_selector_card_sorting_widget.cpp +++ b/cockatrice/src/interface/widgets/printing_selector/printing_selector_card_sorting_widget.cpp @@ -1,7 +1,8 @@ #include "printing_selector_card_sorting_widget.h" +#include "../../../client/settings/cache_settings.h" + #include -#include const QString PrintingSelectorCardSortingWidget::SORT_OPTIONS_ALPHABETICAL = tr("Alphabetical"); const QString PrintingSelectorCardSortingWidget::SORT_OPTIONS_PREFERENCE = tr("Preference"); @@ -88,7 +89,7 @@ QList PrintingSelectorCardSortingWidget::sortSets(const SetToPrint } if (sortedSets.empty()) { - sortedSets << CardSet::newInstance("", "", "", QDate()); + sortedSets << CardSet::newInstance(SettingsCache::instance().cardDatabase(), "", "", "", QDate()); } if (sortOptionsSelector->currentText() == SORT_OPTIONS_PREFERENCE) { diff --git a/cockatrice/src/interface/widgets/replay/replay_timeline_widget.cpp b/cockatrice/src/interface/widgets/replay/replay_timeline_widget.cpp index 2b9ab72e9..fb5936cae 100644 --- a/cockatrice/src/interface/widgets/replay/replay_timeline_widget.cpp +++ b/cockatrice/src/interface/widgets/replay/replay_timeline_widget.cpp @@ -1,10 +1,11 @@ #include "replay_timeline_widget.h" +#include "../../../client/settings/cache_settings.h" + #include #include #include #include -#include ReplayTimelineWidget::ReplayTimelineWidget(QWidget *parent) : QWidget(parent), maxBinValue(1), maxTime(1), timeScaleFactor(1.0), currentVisualTime(0), currentProcessedTime(0), diff --git a/cockatrice/src/interface/widgets/server/chat_view/chat_view.cpp b/cockatrice/src/interface/widgets/server/chat_view/chat_view.cpp index 10897b651..c97d32d44 100644 --- a/cockatrice/src/interface/widgets/server/chat_view/chat_view.cpp +++ b/cockatrice/src/interface/widgets/server/chat_view/chat_view.cpp @@ -1,5 +1,6 @@ #include "chat_view.h" +#include "../../../../client/settings/cache_settings.h" #include "../../client/sound_engine.h" #include "../../interface/pixel_map_generator.h" #include "../../interface/widgets/tabs/tab_account.h" @@ -13,7 +14,6 @@ #include #include #include -#include const QColor DEFAULT_MENTION_COLOR = QColor(194, 31, 47); diff --git a/cockatrice/src/interface/widgets/server/games_model.cpp b/cockatrice/src/interface/widgets/server/games_model.cpp index 8c9e2c723..1da92cdad 100644 --- a/cockatrice/src/interface/widgets/server/games_model.cpp +++ b/cockatrice/src/interface/widgets/server/games_model.cpp @@ -1,5 +1,6 @@ #include "games_model.h" +#include "../../../client/settings/cache_settings.h" #include "../interface/pixel_map_generator.h" #include "../interface/widgets/tabs/tab_account.h" #include "user/user_list_manager.h" @@ -12,7 +13,6 @@ #include #include #include -#include enum GameListColumn { diff --git a/cockatrice/src/interface/widgets/server/handle_public_servers.cpp b/cockatrice/src/interface/widgets/server/handle_public_servers.cpp index 2497ecdcc..6a8754a79 100644 --- a/cockatrice/src/interface/widgets/server/handle_public_servers.cpp +++ b/cockatrice/src/interface/widgets/server/handle_public_servers.cpp @@ -1,11 +1,12 @@ #include "handle_public_servers.h" +#include "../../../client/settings/cache_settings.h" + #include #include #include #include #include -#include #define PUBLIC_SERVERS_JSON "https://cockatrice.github.io/public-servers.json" diff --git a/cockatrice/src/interface/widgets/server/user/user_info_connection.cpp b/cockatrice/src/interface/widgets/server/user/user_info_connection.cpp index 813a9236c..069e438a9 100644 --- a/cockatrice/src/interface/widgets/server/user/user_info_connection.cpp +++ b/cockatrice/src/interface/widgets/server/user/user_info_connection.cpp @@ -1,7 +1,8 @@ #include "user_info_connection.h" +#include "../../../../client/settings/cache_settings.h" + #include -#include #include UserConnection_Information::UserConnection_Information() = default; diff --git a/cockatrice/src/interface/widgets/tabs/abstract_tab_deck_editor.cpp b/cockatrice/src/interface/widgets/tabs/abstract_tab_deck_editor.cpp index 631803092..4236c3858 100644 --- a/cockatrice/src/interface/widgets/tabs/abstract_tab_deck_editor.cpp +++ b/cockatrice/src/interface/widgets/tabs/abstract_tab_deck_editor.cpp @@ -1,5 +1,6 @@ #include "abstract_tab_deck_editor.h" +#include "../../../client/settings/cache_settings.h" #include "../client/network/interfaces/deck_stats_interface.h" #include "../client/network/interfaces/tapped_out_interface.h" #include "../interface/card_picture_loader/card_picture_loader.h" @@ -37,7 +38,6 @@ #include #include #include -#include #include AbstractTabDeckEditor::AbstractTabDeckEditor(TabSupervisor *_tabSupervisor) : Tab(_tabSupervisor) diff --git a/cockatrice/src/interface/widgets/tabs/tab_deck_editor.cpp b/cockatrice/src/interface/widgets/tabs/tab_deck_editor.cpp index 034800158..4bb4ffcda 100644 --- a/cockatrice/src/interface/widgets/tabs/tab_deck_editor.cpp +++ b/cockatrice/src/interface/widgets/tabs/tab_deck_editor.cpp @@ -1,5 +1,6 @@ #include "tab_deck_editor.h" +#include "../../../client/settings/cache_settings.h" #include "../client/network/interfaces/tapped_out_interface.h" #include "../filters/filter_builder.h" #include "../filters/filter_tree_model.h" @@ -36,7 +37,6 @@ #include #include #include -#include #include TabDeckEditor::TabDeckEditor(TabSupervisor *_tabSupervisor) : AbstractTabDeckEditor(_tabSupervisor) diff --git a/cockatrice/src/interface/widgets/tabs/tab_deck_storage.cpp b/cockatrice/src/interface/widgets/tabs/tab_deck_storage.cpp index 7ca0bad1f..cf8acec5a 100644 --- a/cockatrice/src/interface/widgets/tabs/tab_deck_storage.cpp +++ b/cockatrice/src/interface/widgets/tabs/tab_deck_storage.cpp @@ -1,5 +1,6 @@ #include "tab_deck_storage.h" +#include "../../../client/settings/cache_settings.h" #include "../interface/widgets/server/remote/remote_decklist_tree_widget.h" #include "../interface/widgets/utility/get_text_with_max.h" @@ -28,7 +29,6 @@ #include #include #include -#include TabDeckStorage::TabDeckStorage(TabSupervisor *_tabSupervisor, AbstractClient *_client, diff --git a/cockatrice/src/interface/widgets/tabs/tab_game.cpp b/cockatrice/src/interface/widgets/tabs/tab_game.cpp index f55450de9..9206c61a8 100644 --- a/cockatrice/src/interface/widgets/tabs/tab_game.cpp +++ b/cockatrice/src/interface/widgets/tabs/tab_game.cpp @@ -1,5 +1,6 @@ #include "tab_game.h" +#include "../../../client/settings/cache_settings.h" #include "../game/board/arrow_item.h" #include "../game/board/card_item.h" #include "../game/deckview/deck_view_container.h" @@ -44,7 +45,6 @@ #include #include #include -#include #include TabGame::TabGame(TabSupervisor *_tabSupervisor, GameReplay *_replay) diff --git a/cockatrice/src/interface/widgets/tabs/tab_message.cpp b/cockatrice/src/interface/widgets/tabs/tab_message.cpp index 3e6a86384..f1a942f16 100644 --- a/cockatrice/src/interface/widgets/tabs/tab_message.cpp +++ b/cockatrice/src/interface/widgets/tabs/tab_message.cpp @@ -1,5 +1,6 @@ #include "tab_message.h" +#include "../../../client/settings/cache_settings.h" #include "../client/sound_engine.h" #include "../interface/widgets/server/chat_view/chat_view.h" #include "../interface/widgets/server/user/user_list_manager.h" @@ -16,7 +17,6 @@ #include #include #include -#include #include TabMessage::TabMessage(TabSupervisor *_tabSupervisor, diff --git a/cockatrice/src/interface/widgets/tabs/tab_replays.cpp b/cockatrice/src/interface/widgets/tabs/tab_replays.cpp index e90926768..8d7081407 100644 --- a/cockatrice/src/interface/widgets/tabs/tab_replays.cpp +++ b/cockatrice/src/interface/widgets/tabs/tab_replays.cpp @@ -1,5 +1,6 @@ #include "tab_replays.h" +#include "../../../client/settings/cache_settings.h" #include "../interface/widgets/server/remote/remote_replay_list_tree_widget.h" #include "tab_game.h" @@ -29,7 +30,6 @@ #include #include #include -#include TabReplays::TabReplays(TabSupervisor *_tabSupervisor, AbstractClient *_client, const ServerInfo_User *currentUserInfo) : Tab(_tabSupervisor), client(_client) diff --git a/cockatrice/src/interface/widgets/tabs/tab_room.cpp b/cockatrice/src/interface/widgets/tabs/tab_room.cpp index 808c888cd..e1fcca216 100644 --- a/cockatrice/src/interface/widgets/tabs/tab_room.cpp +++ b/cockatrice/src/interface/widgets/tabs/tab_room.cpp @@ -1,5 +1,6 @@ #include "tab_room.h" +#include "../../../client/settings/cache_settings.h" #include "../interface/widgets/dialogs/dlg_settings.h" #include "../interface/widgets/server/chat_view/chat_view.h" #include "../interface/widgets/server/game_selector.h" @@ -30,7 +31,6 @@ #include #include #include -#include #include TabRoom::TabRoom(TabSupervisor *_tabSupervisor, diff --git a/cockatrice/src/interface/widgets/tabs/tab_supervisor.cpp b/cockatrice/src/interface/widgets/tabs/tab_supervisor.cpp index 1da03637f..a30a19353 100644 --- a/cockatrice/src/interface/widgets/tabs/tab_supervisor.cpp +++ b/cockatrice/src/interface/widgets/tabs/tab_supervisor.cpp @@ -1,5 +1,6 @@ #include "tab_supervisor.h" +#include "../../../client/settings/cache_settings.h" #include "../interface/pixel_map_generator.h" #include "../interface/widgets/server/user/user_list_manager.h" #include "../interface/widgets/server/user/user_list_widget.h" @@ -35,7 +36,6 @@ #include #include #include -#include QRect MacOSTabFixStyle::subElementRect(SubElement element, const QStyleOption *option, const QWidget *widget) const { diff --git a/cockatrice/src/interface/widgets/tabs/visual_deck_editor/tab_deck_editor_visual.cpp b/cockatrice/src/interface/widgets/tabs/visual_deck_editor/tab_deck_editor_visual.cpp index 4df9d1c7a..109815816 100644 --- a/cockatrice/src/interface/widgets/tabs/visual_deck_editor/tab_deck_editor_visual.cpp +++ b/cockatrice/src/interface/widgets/tabs/visual_deck_editor/tab_deck_editor_visual.cpp @@ -1,5 +1,6 @@ #include "tab_deck_editor_visual.h" +#include "../../../../client/settings/cache_settings.h" #include "../../client/network/interfaces/deck_stats_interface.h" #include "../../filters/filter_builder.h" #include "../../interface/pixel_map_generator.h" @@ -31,7 +32,6 @@ #include #include #include -#include #include /** diff --git a/cockatrice/src/interface/widgets/utility/custom_line_edit.cpp b/cockatrice/src/interface/widgets/utility/custom_line_edit.cpp index 532afc114..c137b4f35 100644 --- a/cockatrice/src/interface/widgets/utility/custom_line_edit.cpp +++ b/cockatrice/src/interface/widgets/utility/custom_line_edit.cpp @@ -1,12 +1,13 @@ #include "custom_line_edit.h" +#include "../../../client/settings/cache_settings.h" +#include "../../../client/settings/shortcuts_settings.h" + #include #include #include #include #include -#include -#include LineEditUnfocusable::LineEditUnfocusable(QWidget *parent) : QLineEdit(parent) { diff --git a/cockatrice/src/interface/widgets/utility/sequence_edit.cpp b/cockatrice/src/interface/widgets/utility/sequence_edit.cpp index 53776a3b0..7e14d4335 100644 --- a/cockatrice/src/interface/widgets/utility/sequence_edit.cpp +++ b/cockatrice/src/interface/widgets/utility/sequence_edit.cpp @@ -1,9 +1,10 @@ #include "sequence_edit.h" +#include "../../../client/settings/cache_settings.h" + #include #include #include -#include #include SequenceEdit::SequenceEdit(const QString &_shortcutName, QWidget *parent) : QWidget(parent) diff --git a/cockatrice/src/interface/widgets/visual_database_display/visual_database_display_filter_save_load_widget.cpp b/cockatrice/src/interface/widgets/visual_database_display/visual_database_display_filter_save_load_widget.cpp index e8c42a28a..6a85dfcb1 100644 --- a/cockatrice/src/interface/widgets/visual_database_display/visual_database_display_filter_save_load_widget.cpp +++ b/cockatrice/src/interface/widgets/visual_database_display/visual_database_display_filter_save_load_widget.cpp @@ -1,5 +1,6 @@ #include "visual_database_display_filter_save_load_widget.h" +#include "../../../client/settings/cache_settings.h" #include "../../../filters/filter_tree.h" #include "visual_database_filter_display_widget.h" @@ -7,7 +8,6 @@ #include #include #include -#include VisualDatabaseDisplayFilterSaveLoadWidget::VisualDatabaseDisplayFilterSaveLoadWidget(QWidget *parent, FilterTreeModel *_filterModel) diff --git a/cockatrice/src/interface/widgets/visual_database_display/visual_database_display_set_filter_widget.cpp b/cockatrice/src/interface/widgets/visual_database_display/visual_database_display_set_filter_widget.cpp index 5a9c1029c..06844121e 100644 --- a/cockatrice/src/interface/widgets/visual_database_display/visual_database_display_set_filter_widget.cpp +++ b/cockatrice/src/interface/widgets/visual_database_display/visual_database_display_set_filter_widget.cpp @@ -1,5 +1,6 @@ #include "visual_database_display_set_filter_widget.h" +#include "../../../client/settings/cache_settings.h" #include "../../../filters/filter_tree.h" #include "../../../filters/filter_tree_model.h" @@ -8,7 +9,6 @@ #include #include #include -#include VisualDatabaseDisplayRecentSetFilterSettingsWidget::VisualDatabaseDisplayRecentSetFilterSettingsWidget(QWidget *parent) : QWidget(parent) diff --git a/cockatrice/src/interface/widgets/visual_database_display/visual_database_display_widget.cpp b/cockatrice/src/interface/widgets/visual_database_display/visual_database_display_widget.cpp index 673a2ec1a..d371d0ed3 100644 --- a/cockatrice/src/interface/widgets/visual_database_display/visual_database_display_widget.cpp +++ b/cockatrice/src/interface/widgets/visual_database_display/visual_database_display_widget.cpp @@ -1,5 +1,6 @@ #include "visual_database_display_widget.h" +#include "../../../client/settings/cache_settings.h" #include "../../../filters/filter_tree_model.h" #include "../../../filters/syntax_help.h" #include "../../pixel_map_generator.h" @@ -18,7 +19,6 @@ #include #include #include -#include #include #include diff --git a/cockatrice/src/interface/widgets/visual_database_display/visual_database_filter_display_widget.cpp b/cockatrice/src/interface/widgets/visual_database_display/visual_database_filter_display_widget.cpp index 093a52d72..5364fa813 100644 --- a/cockatrice/src/interface/widgets/visual_database_display/visual_database_filter_display_widget.cpp +++ b/cockatrice/src/interface/widgets/visual_database_display/visual_database_filter_display_widget.cpp @@ -1,12 +1,13 @@ #include "visual_database_filter_display_widget.h" +#include "../../../client/settings/cache_settings.h" + #include #include #include #include #include #include -#include FilterDisplayWidget::FilterDisplayWidget(QWidget *parent, const QString &filename, FilterTreeModel *_filterModel) : QWidget(parent), filterFilename(filename), filterModel(_filterModel) diff --git a/cockatrice/src/interface/widgets/visual_deck_editor/visual_deck_editor_sample_hand_widget.cpp b/cockatrice/src/interface/widgets/visual_deck_editor/visual_deck_editor_sample_hand_widget.cpp index a2bd051ff..7e4e2407d 100644 --- a/cockatrice/src/interface/widgets/visual_deck_editor/visual_deck_editor_sample_hand_widget.cpp +++ b/cockatrice/src/interface/widgets/visual_deck_editor/visual_deck_editor_sample_hand_widget.cpp @@ -1,10 +1,10 @@ #include "visual_deck_editor_sample_hand_widget.h" +#include "../../../client/settings/cache_settings.h" #include "../cards/card_info_picture_widget.h" #include #include -#include #include VisualDeckEditorSampleHandWidget::VisualDeckEditorSampleHandWidget(QWidget *parent, DeckListModel *_deckListModel) diff --git a/cockatrice/src/interface/widgets/visual_deck_storage/deck_preview/deck_preview_deck_tags_display_widget.cpp b/cockatrice/src/interface/widgets/visual_deck_storage/deck_preview/deck_preview_deck_tags_display_widget.cpp index 4053de89b..fbff6c434 100644 --- a/cockatrice/src/interface/widgets/visual_deck_storage/deck_preview/deck_preview_deck_tags_display_widget.cpp +++ b/cockatrice/src/interface/widgets/visual_deck_storage/deck_preview/deck_preview_deck_tags_display_widget.cpp @@ -1,5 +1,6 @@ #include "deck_preview_deck_tags_display_widget.h" +#include "../../../../client/settings/cache_settings.h" #include "../../../../interface/widgets/dialogs/dlg_convert_deck_to_cod_format.h" #include "../../../../interface/widgets/tabs/tab_deck_editor.h" #include "../../general/layout_containers/flow_widget.h" @@ -12,7 +13,6 @@ #include #include #include -#include DeckPreviewDeckTagsDisplayWidget::DeckPreviewDeckTagsDisplayWidget(QWidget *_parent, DeckList *_deckList) : QWidget(_parent), deckList(nullptr) diff --git a/cockatrice/src/interface/widgets/visual_deck_storage/deck_preview/deck_preview_tag_addition_widget.cpp b/cockatrice/src/interface/widgets/visual_deck_storage/deck_preview/deck_preview_tag_addition_widget.cpp index a8979bae9..a221442ba 100644 --- a/cockatrice/src/interface/widgets/visual_deck_storage/deck_preview/deck_preview_tag_addition_widget.cpp +++ b/cockatrice/src/interface/widgets/visual_deck_storage/deck_preview/deck_preview_tag_addition_widget.cpp @@ -1,5 +1,6 @@ #include "deck_preview_tag_addition_widget.h" +#include "../../../../client/settings/cache_settings.h" #include "../../../../interface/widgets/tabs/abstract_tab_deck_editor.h" #include "deck_preview_tag_dialog.h" @@ -7,7 +8,6 @@ #include #include #include -#include #include DeckPreviewTagAdditionWidget::DeckPreviewTagAdditionWidget(QWidget *_parent, QString _tagName) diff --git a/cockatrice/src/interface/widgets/visual_deck_storage/deck_preview/deck_preview_tag_dialog.cpp b/cockatrice/src/interface/widgets/visual_deck_storage/deck_preview/deck_preview_tag_dialog.cpp index 9d130946f..df7f9738d 100644 --- a/cockatrice/src/interface/widgets/visual_deck_storage/deck_preview/deck_preview_tag_dialog.cpp +++ b/cockatrice/src/interface/widgets/visual_deck_storage/deck_preview/deck_preview_tag_dialog.cpp @@ -1,5 +1,6 @@ #include "deck_preview_tag_dialog.h" +#include "../../../../client/settings/cache_settings.h" #include "../../../../interface/widgets/dialogs/dlg_default_tags_editor.h" #include "deck_preview_tag_item_widget.h" @@ -11,7 +12,6 @@ #include #include #include -#include DeckPreviewTagDialog::DeckPreviewTagDialog(const QStringList &knownTags, const QStringList &_activeTags, diff --git a/cockatrice/src/interface/widgets/visual_deck_storage/deck_preview/deck_preview_widget.cpp b/cockatrice/src/interface/widgets/visual_deck_storage/deck_preview/deck_preview_widget.cpp index afa6b6d72..21e85bdbd 100644 --- a/cockatrice/src/interface/widgets/visual_deck_storage/deck_preview/deck_preview_widget.cpp +++ b/cockatrice/src/interface/widgets/visual_deck_storage/deck_preview/deck_preview_widget.cpp @@ -1,5 +1,6 @@ #include "deck_preview_widget.h" +#include "../../../../client/settings/cache_settings.h" #include "../../cards/additional_info/color_identity_widget.h" #include "../../cards/deck_preview_card_picture_widget.h" #include "deck_preview_deck_tags_display_widget.h" @@ -14,7 +15,6 @@ #include #include #include -#include DeckPreviewWidget::DeckPreviewWidget(QWidget *_parent, VisualDeckStorageWidget *_visualDeckStorageWidget, diff --git a/cockatrice/src/interface/widgets/visual_deck_storage/visual_deck_storage_folder_display_widget.cpp b/cockatrice/src/interface/widgets/visual_deck_storage/visual_deck_storage_folder_display_widget.cpp index f36b84a1c..c628a15aa 100644 --- a/cockatrice/src/interface/widgets/visual_deck_storage/visual_deck_storage_folder_display_widget.cpp +++ b/cockatrice/src/interface/widgets/visual_deck_storage/visual_deck_storage_folder_display_widget.cpp @@ -1,10 +1,10 @@ #include "visual_deck_storage_folder_display_widget.h" +#include "../../../client/settings/cache_settings.h" #include "deck_preview/deck_preview_widget.h" #include #include -#include VisualDeckStorageFolderDisplayWidget::VisualDeckStorageFolderDisplayWidget( QWidget *parent, diff --git a/cockatrice/src/interface/widgets/visual_deck_storage/visual_deck_storage_quick_settings_widget.cpp b/cockatrice/src/interface/widgets/visual_deck_storage/visual_deck_storage_quick_settings_widget.cpp index 19bf070c9..c1e9bfa6a 100644 --- a/cockatrice/src/interface/widgets/visual_deck_storage/visual_deck_storage_quick_settings_widget.cpp +++ b/cockatrice/src/interface/widgets/visual_deck_storage/visual_deck_storage_quick_settings_widget.cpp @@ -1,11 +1,11 @@ #include "visual_deck_storage_quick_settings_widget.h" +#include "../../../client/settings/cache_settings.h" #include "visual_deck_storage_widget.h" #include #include #include -#include VisualDeckStorageQuickSettingsWidget::VisualDeckStorageQuickSettingsWidget(QWidget *parent) : SettingsButtonWidget(parent) diff --git a/cockatrice/src/interface/widgets/visual_deck_storage/visual_deck_storage_search_widget.cpp b/cockatrice/src/interface/widgets/visual_deck_storage/visual_deck_storage_search_widget.cpp index 18430d698..dbd7929c5 100644 --- a/cockatrice/src/interface/widgets/visual_deck_storage/visual_deck_storage_search_widget.cpp +++ b/cockatrice/src/interface/widgets/visual_deck_storage/visual_deck_storage_search_widget.cpp @@ -1,11 +1,11 @@ #include "visual_deck_storage_search_widget.h" +#include "../../../client/settings/cache_settings.h" #include "../../../filters/deck_filter_string.h" #include "../../../filters/syntax_help.h" #include "../../pixel_map_generator.h" #include -#include /** * @brief Constructs a PrintingSelectorCardSearchWidget for searching cards by set name or set code. diff --git a/cockatrice/src/interface/widgets/visual_deck_storage/visual_deck_storage_sort_widget.cpp b/cockatrice/src/interface/widgets/visual_deck_storage/visual_deck_storage_sort_widget.cpp index c68dfdc3b..901a4cb9f 100644 --- a/cockatrice/src/interface/widgets/visual_deck_storage/visual_deck_storage_sort_widget.cpp +++ b/cockatrice/src/interface/widgets/visual_deck_storage/visual_deck_storage_sort_widget.cpp @@ -1,6 +1,6 @@ #include "visual_deck_storage_sort_widget.h" -#include +#include "../../../client/settings/cache_settings.h" /** * @brief Constructs a PrintingSelectorCardSortWidget for searching cards by set name or set code. diff --git a/cockatrice/src/interface/widgets/visual_deck_storage/visual_deck_storage_widget.cpp b/cockatrice/src/interface/widgets/visual_deck_storage/visual_deck_storage_widget.cpp index 164aff8bc..d9cf74e7f 100644 --- a/cockatrice/src/interface/widgets/visual_deck_storage/visual_deck_storage_widget.cpp +++ b/cockatrice/src/interface/widgets/visual_deck_storage/visual_deck_storage_widget.cpp @@ -1,5 +1,6 @@ #include "visual_deck_storage_widget.h" +#include "../../../client/settings/cache_settings.h" #include "../quick_settings/settings_button_widget.h" #include "deck_preview/deck_preview_widget.h" #include "visual_deck_storage_folder_display_widget.h" @@ -13,7 +14,6 @@ #include #include #include -#include VisualDeckStorageWidget::VisualDeckStorageWidget(QWidget *parent) : QWidget(parent), folderWidget(nullptr) { diff --git a/cockatrice/src/interface/window_main.cpp b/cockatrice/src/interface/window_main.cpp index 4186f7ce7..622c04a08 100644 --- a/cockatrice/src/interface/window_main.cpp +++ b/cockatrice/src/interface/window_main.cpp @@ -21,6 +21,7 @@ #include "../client/network/update/client/client_update_checker.h" #include "../client/network/update/client/release_channel.h" +#include "../client/settings/cache_settings.h" #include "../interface/widgets/dialogs/dlg_connect.h" #include "../interface/widgets/dialogs/dlg_edit_tokens.h" #include "../interface/widgets/dialogs/dlg_forgot_password_challenge.h" @@ -71,7 +72,6 @@ #include #include #include -#include #define GITHUB_PAGES_URL "https://cockatrice.github.io" #define GITHUB_CONTRIBUTORS_URL "https://github.com/Cockatrice/Cockatrice/graphs/contributors?type=c" @@ -846,7 +846,7 @@ MainWindow::MainWindow(QWidget *parent) &MainWindow::pixmapCacheSizeChanged); pixmapCacheSizeChanged(SettingsCache::instance().getPixmapCacheSize()); - client = new RemoteClient; + client = new RemoteClient(nullptr, &SettingsCache::instance()); connect(client, &RemoteClient::connectionClosedEventReceived, this, &MainWindow::processConnectionClosedEvent); connect(client, &RemoteClient::serverShutdownEventReceived, this, &MainWindow::processServerShutdownEvent); connect(client, &RemoteClient::loginError, this, &MainWindow::loginError); diff --git a/cockatrice/src/main.cpp b/cockatrice/src/main.cpp index ecb915cee..f20dab6fb 100644 --- a/cockatrice/src/main.cpp +++ b/cockatrice/src/main.cpp @@ -22,7 +22,9 @@ #include "QtNetwork/QNetworkInterface" #include "client/network/update/card_spoiler/spoiler_background_updater.h" +#include "client/settings/cache_settings.h" #include "client/sound_engine.h" +#include "database/interface/settings_card_preference_provider.h" #include "interface/logger.h" #include "interface/pixel_map_generator.h" #include "interface/theme_manager.h" @@ -42,9 +44,9 @@ #include #include #include +#include #include #include -#include QTranslator *translator, *qtTranslator; RNG_Abstract *rng; @@ -250,6 +252,11 @@ int main(int argc, char *argv[]) QLocale::setDefault(QLocale::English); + // Dependency Injections + CardDatabaseManager::setCardPreferenceProvider(new SettingsCardPreferenceProvider()); + CardDatabaseManager::setCardDatabasePathProvider(&SettingsCache::instance()); + CardDatabaseManager::setCardSetPriorityController(SettingsCache::instance().cardDatabase()); + qCInfo(MainLog) << "Starting main program"; MainWindow ui; diff --git a/dbconverter/CMakeLists.txt b/dbconverter/CMakeLists.txt index acf60bf03..b2de9dcb8 100644 --- a/dbconverter/CMakeLists.txt +++ b/dbconverter/CMakeLists.txt @@ -25,6 +25,7 @@ add_executable(dbconverter MACOSX_BUNDLE ${dbconverter_SOURCES}) target_link_libraries( dbconverter PRIVATE libcockatrice_card + PRIVATE libcockatrice_interfaces PRIVATE libcockatrice_settings PRIVATE ${DB_CONVERTER_QT_MODULES} ) diff --git a/dbconverter/src/main.cpp b/dbconverter/src/main.cpp index f64392fa8..67748fa45 100644 --- a/dbconverter/src/main.cpp +++ b/dbconverter/src/main.cpp @@ -54,7 +54,6 @@ int main(int argc, char *argv[]) exit(0); } - settingsCache = new SettingsCache; CardDatabaseConverter *db = new CardDatabaseConverter; qInfo() << "---------------------------------------------"; diff --git a/dbconverter/src/main.h b/dbconverter/src/main.h index 1fa1335d0..7a5809b1b 100644 --- a/dbconverter/src/main.h +++ b/dbconverter/src/main.h @@ -3,10 +3,18 @@ #include #include +#include class CardDatabaseConverter : public CardDatabase { public: + explicit CardDatabaseConverter() + { + // Replace querier with one that ignores SettingsCache + delete querier; + querier = new CardDatabaseQuerier(this, this, new NoopCardPreferenceProvider()); + }; + LoadStatus loadCardDatabase(const QString &path) { return loader->loadCardDatabase(path); @@ -14,7 +22,7 @@ public: bool saveCardDatabase(const QString &fileName) { - CockatriceXml4Parser parser; + CockatriceXml4Parser parser(new NoopCardPreferenceProvider()); return parser.saveToFile(sets, cards, fileName); } }; diff --git a/dbconverter/src/mocks.cpp b/dbconverter/src/mocks.cpp index 6aa108e57..c54d2b9c2 100644 --- a/dbconverter/src/mocks.cpp +++ b/dbconverter/src/mocks.cpp @@ -46,12 +46,7 @@ QString SettingsCache::getSafeConfigFilePath(QString /* configEntry */, QString { return defaultPath; } -SettingsCache::SettingsCache() - : settings{new QSettings("global.ini", QSettings::IniFormat, this)}, shortcutsSettings{nullptr}, - cardDatabaseSettings{new CardDatabaseSettings("", this)}, serversSettings{nullptr}, messageSettings{nullptr}, - gameFiltersSettings{nullptr}, layoutsSettings{nullptr}, downloadSettings{nullptr} -{ -} + void SettingsCache::setUseTearOffMenus(bool /* _useTearOffMenus */) { } @@ -450,11 +445,4 @@ void SettingsCache::setRoundCardCorners(bool /* _roundCardCorners */) void CardPictureLoader::clearPixmapCache(CardInfoPtr /* card */) { -} - -SettingsCache *settingsCache; - -SettingsCache &SettingsCache::instance() -{ - return *settingsCache; -} +} \ No newline at end of file diff --git a/dbconverter/src/mocks.h b/dbconverter/src/mocks.h index 497f76e72..929092bd7 100644 --- a/dbconverter/src/mocks.h +++ b/dbconverter/src/mocks.h @@ -10,8 +10,9 @@ #define PICTURELOADER_H +#include "../../cockatrice/src/client/settings/cache_settings.h" + #include -#include #include extern SettingsCache *settingsCache; diff --git a/libcockatrice_card/CMakeLists.txt b/libcockatrice_card/CMakeLists.txt index 7217f7bff..857376163 100644 --- a/libcockatrice_card/CMakeLists.txt +++ b/libcockatrice_card/CMakeLists.txt @@ -51,6 +51,7 @@ target_include_directories( target_link_libraries( libcockatrice_card - PUBLIC libcockatrice_settings + PUBLIC libcockatrice_interfaces + PUBLIC libcockatrice_utility PUBLIC ${QT_CORE_MODULE} ) diff --git a/libcockatrice_card/libcockatrice/card/card_info.cpp b/libcockatrice_card/libcockatrice/card/card_info.cpp index 4646b3890..4f1280d74 100644 --- a/libcockatrice_card/libcockatrice/card/card_info.cpp +++ b/libcockatrice_card/libcockatrice/card/card_info.cpp @@ -11,7 +11,6 @@ #include #include #include -#include #include class CardRelation; diff --git a/libcockatrice_card/libcockatrice/card/database/card_database.cpp b/libcockatrice_card/libcockatrice/card/database/card_database.cpp index 6ff5fe02c..7e23b4663 100644 --- a/libcockatrice_card/libcockatrice/card/database/card_database.cpp +++ b/libcockatrice_card/libcockatrice/card/database/card_database.cpp @@ -9,26 +9,28 @@ #include #include #include -#include #include #include -#include #include -CardDatabase::CardDatabase(QObject *parent) : QObject(parent), loadStatus(NotLoaded) +CardDatabase::CardDatabase(QObject *parent, + ICardPreferenceProvider *prefs, + ICardDatabasePathProvider *pathProvider, + ICardSetPriorityController *_setPriorityController) + : QObject(parent), setPriorityController(_setPriorityController), loadStatus(NotLoaded) { qRegisterMetaType("CardInfoPtr"); qRegisterMetaType("CardSetPtr"); // create loader and wire it up - loader = new CardDatabaseLoader(this, this); + loader = new CardDatabaseLoader(this, this, pathProvider, prefs); // re-emit loader signals (so other code doesn't need to know about internals) connect(loader, &CardDatabaseLoader::loadingFinished, this, &CardDatabase::cardDatabaseLoadingFinished); connect(loader, &CardDatabaseLoader::loadingFailed, this, &CardDatabase::cardDatabaseLoadingFailed); connect(loader, &CardDatabaseLoader::newSetsFound, this, &CardDatabase::cardDatabaseNewSetsFound); connect(loader, &CardDatabaseLoader::allNewSetsEnabled, this, &CardDatabase::cardDatabaseAllNewSetsEnabled); - querier = new CardDatabaseQuerier(this, this); + querier = new CardDatabaseQuerier(this, this, prefs); } CardDatabase::~CardDatabase() @@ -138,7 +140,7 @@ CardSetPtr CardDatabase::getSet(const QString &setName) if (sets.contains(setName)) { return sets.value(setName); } else { - CardSetPtr newSet = CardSet::newInstance(setName); + CardSetPtr newSet = CardSet::newInstance(setPriorityController, setName); sets.insert(setName, newSet); return newSet; } diff --git a/libcockatrice_card/libcockatrice/card/database/card_database.h b/libcockatrice_card/libcockatrice/card/database/card_database.h index 8c7a78ffe..9fd240d46 100644 --- a/libcockatrice_card/libcockatrice/card/database/card_database.h +++ b/libcockatrice_card/libcockatrice/card/database/card_database.h @@ -18,6 +18,7 @@ #include #include #include +#include #include #include @@ -27,6 +28,8 @@ class CardDatabase : public QObject { Q_OBJECT protected: + ICardSetPriorityController *setPriorityController; + /* * The cards, indexed by name. */ @@ -57,7 +60,10 @@ private: *removeCardMutex = new QBasicMutex(); public: - explicit CardDatabase(QObject *parent = nullptr); + explicit CardDatabase(QObject *parent = nullptr, + ICardPreferenceProvider *prefs = nullptr, + ICardDatabasePathProvider *pathProvider = nullptr, + ICardSetPriorityController *setPriorityController = nullptr); ~CardDatabase() override; void removeCard(CardInfoPtr card); diff --git a/libcockatrice_card/libcockatrice/card/database/card_database_loader.cpp b/libcockatrice_card/libcockatrice/card/database/card_database_loader.cpp index b1300e2a2..f56f6a0b5 100644 --- a/libcockatrice_card/libcockatrice/card/database/card_database_loader.cpp +++ b/libcockatrice_card/libcockatrice/card/database/card_database_loader.cpp @@ -8,12 +8,15 @@ #include #include #include -#include -CardDatabaseLoader::CardDatabaseLoader(QObject *parent, CardDatabase *db) : QObject(parent), database(db) +CardDatabaseLoader::CardDatabaseLoader(QObject *parent, + CardDatabase *db, + ICardDatabasePathProvider *_pathProvider, + ICardPreferenceProvider *_preferenceProvider) + : QObject(parent), database(db), pathProvider(_pathProvider) { // instantiate available parsers here and connect them to the database - availableParsers << new CockatriceXml4Parser; + availableParsers << new CockatriceXml4Parser(_preferenceProvider); availableParsers << new CockatriceXml3Parser; for (auto *p : availableParsers) { @@ -23,7 +26,7 @@ CardDatabaseLoader::CardDatabaseLoader(QObject *parent, CardDatabase *db) : QObj } // when SettingsCache's path changes, trigger reloads - connect(&SettingsCache::instance(), &SettingsCache::cardDatabasePathChanged, this, + connect(pathProvider, &ICardDatabasePathProvider::cardDatabasePathChanged, this, &CardDatabaseLoader::loadCardDatabases); } @@ -83,10 +86,9 @@ LoadStatus CardDatabaseLoader::loadCardDatabases() database->clear(); // remove old db - LoadStatus loadStatus = - loadCardDatabase(SettingsCache::instance().getCardDatabasePath()); // load main card database - loadCardDatabase(SettingsCache::instance().getTokenDatabasePath()); // load tokens database - loadCardDatabase(SettingsCache::instance().getSpoilerCardDatabasePath()); // load spoilers database + LoadStatus loadStatus = loadCardDatabase(pathProvider->getCardDatabasePath()); // load main card database + loadCardDatabase(pathProvider->getTokenDatabasePath()); // load tokens database + loadCardDatabase(pathProvider->getSpoilerCardDatabasePath()); // load spoilers database // find all custom card databases, recursively & following symlinks // then load them alphabetically @@ -117,7 +119,7 @@ LoadStatus CardDatabaseLoader::loadCardDatabases() QStringList CardDatabaseLoader::collectCustomDatabasePaths() const { - QDirIterator it(SettingsCache::instance().getCustomCardDatabasePath(), {"*.xml"}, QDir::Files, + QDirIterator it(pathProvider->getCustomCardDatabasePath(), {"*.xml"}, QDir::Files, QDirIterator::Subdirectories | QDirIterator::FollowSymlinks); QStringList paths; @@ -134,7 +136,7 @@ bool CardDatabaseLoader::saveCustomTokensToFile() return false; } - QString fileName = SettingsCache::instance().getCustomCardDatabasePath() + "/" + CardSet::TOKENS_SETNAME + ".xml"; + QString fileName = pathProvider->getCustomCardDatabasePath() + "/" + CardSet::TOKENS_SETNAME + ".xml"; SetNameMap tmpSets; CardSetPtr customTokensSet = database->getSet(CardSet::TOKENS_SETNAME); diff --git a/libcockatrice_card/libcockatrice/card/database/card_database_loader.h b/libcockatrice_card/libcockatrice/card/database/card_database_loader.h index 030ca56d5..0142b9fce 100644 --- a/libcockatrice_card/libcockatrice/card/database/card_database_loader.h +++ b/libcockatrice_card/libcockatrice/card/database/card_database_loader.h @@ -11,6 +11,8 @@ #include #include #include +#include +#include inline Q_LOGGING_CATEGORY(CardDatabaseLoadingLog, "card_database.loading"); inline Q_LOGGING_CATEGORY(CardDatabaseLoadingSuccessOrFailureLog, "card_database.loading.success_or_failure"); @@ -32,7 +34,10 @@ class CardDatabaseLoader : public QObject { Q_OBJECT public: - explicit CardDatabaseLoader(QObject *parent, CardDatabase *db); + explicit CardDatabaseLoader(QObject *parent, + CardDatabase *db, + ICardDatabasePathProvider *pathProvider, + ICardPreferenceProvider *preferenceProvider); ~CardDatabaseLoader() override; public slots: @@ -53,6 +58,8 @@ private: CardDatabase *database; // non-owning pointer to the container + ICardDatabasePathProvider *pathProvider; // pointer to the implementation providing the paths + // parsers QList availableParsers; diff --git a/libcockatrice_card/libcockatrice/card/database/card_database_manager.cpp b/libcockatrice_card/libcockatrice/card/database/card_database_manager.cpp index 4ffe0cc70..614b4a7f8 100644 --- a/libcockatrice_card/libcockatrice/card/database/card_database_manager.cpp +++ b/libcockatrice_card/libcockatrice/card/database/card_database_manager.cpp @@ -1,8 +1,31 @@ #include "card_database_manager.h" +#include +#include +#include + +ICardPreferenceProvider *CardDatabaseManager::cardPreferenceProvider = new NoopCardPreferenceProvider(); +ICardDatabasePathProvider *CardDatabaseManager::pathProvider = new NoopCardDatabasePathProvider(); +ICardSetPriorityController *CardDatabaseManager::setPriorityController = new NoopCardSetPriorityController(); + +void CardDatabaseManager::setCardPreferenceProvider(ICardPreferenceProvider *provider) +{ + cardPreferenceProvider = provider; +} + +void CardDatabaseManager::setCardDatabasePathProvider(ICardDatabasePathProvider *provider) +{ + pathProvider = provider; +} + +void CardDatabaseManager::setCardSetPriorityController(ICardSetPriorityController *controller) +{ + setPriorityController = controller; +} + CardDatabase *CardDatabaseManager::getInstance() { - static CardDatabase instance; // Created only once, on first access + static CardDatabase instance(nullptr, cardPreferenceProvider, pathProvider, setPriorityController); return &instance; } diff --git a/libcockatrice_card/libcockatrice/card/database/card_database_manager.h b/libcockatrice_card/libcockatrice/card/database/card_database_manager.h index 1962460fc..58503d2ff 100644 --- a/libcockatrice_card/libcockatrice/card/database/card_database_manager.h +++ b/libcockatrice_card/libcockatrice/card/database/card_database_manager.h @@ -17,6 +17,11 @@ public: CardDatabaseManager(const CardDatabaseManager &) = delete; CardDatabaseManager &operator=(const CardDatabaseManager &) = delete; + // To be called once, before instantiation of the manager + static void setCardPreferenceProvider(ICardPreferenceProvider *provider); + static void setCardDatabasePathProvider(ICardDatabasePathProvider *provider); + static void setCardSetPriorityController(ICardSetPriorityController *controller); + // Static method to access the singleton instance static CardDatabase *getInstance(); static CardDatabaseQuerier *query(); @@ -24,6 +29,9 @@ public: private: CardDatabaseManager() = default; // Private constructor ~CardDatabaseManager() = default; + static ICardPreferenceProvider *cardPreferenceProvider; + static ICardDatabasePathProvider *pathProvider; + static ICardSetPriorityController *setPriorityController; }; #endif // CARD_DATABASE_ACCESSOR_H diff --git a/libcockatrice_card/libcockatrice/card/database/card_database_querier.cpp b/libcockatrice_card/libcockatrice/card/database/card_database_querier.cpp index f422c51f9..65999e590 100644 --- a/libcockatrice_card/libcockatrice/card/database/card_database_querier.cpp +++ b/libcockatrice_card/libcockatrice/card/database/card_database_querier.cpp @@ -7,7 +7,10 @@ #include -CardDatabaseQuerier::CardDatabaseQuerier(QObject *_parent, const CardDatabase *_db) : QObject(_parent), db(_db) +CardDatabaseQuerier::CardDatabaseQuerier(QObject *_parent, + const CardDatabase *_db, + const ICardPreferenceProvider *prefs) + : QObject(_parent), db(_db), prefs(prefs) { } @@ -204,6 +207,17 @@ PrintingInfo CardDatabaseQuerier::getSpecificPrinting(const QString &cardName, return PrintingInfo(nullptr); } +/** + * Gets the card representing the preferred printing of the cardInfo + * + * @param cardName The cardName to find the preferred card and printing for + * @return A specific printing of a card + */ +ExactCard CardDatabaseQuerier::getPreferredCard(const QString &cardName) const +{ + return getPreferredCard(getCardInfo(cardName)); +} + /** * Gets the card representing the preferred printing of the cardInfo * @@ -236,6 +250,12 @@ PrintingInfo CardDatabaseQuerier::getPreferredPrinting(const CardInfoPtr &cardIn return PrintingInfo(nullptr); } + const auto &pinnedPrintingProviderId = prefs->getCardPreferenceOverride(cardInfo->getName()); + + if (!pinnedPrintingProviderId.isEmpty()) { + return getSpecificPrinting({cardInfo->getName(), pinnedPrintingProviderId}); + } + SetToPrintingsMap setMap = cardInfo->getSets(); if (setMap.empty()) { return PrintingInfo(nullptr); diff --git a/libcockatrice_card/libcockatrice/card/database/card_database_querier.h b/libcockatrice_card/libcockatrice/card/database/card_database_querier.h index cb440706b..052ed5c7f 100644 --- a/libcockatrice_card/libcockatrice/card/database/card_database_querier.h +++ b/libcockatrice_card/libcockatrice/card/database/card_database_querier.h @@ -11,6 +11,7 @@ #include "../printing/exact_card.h" #include +#include #include class CardDatabase; @@ -19,7 +20,7 @@ class CardDatabaseQuerier : public QObject Q_OBJECT public: - explicit CardDatabaseQuerier(QObject *parent, const CardDatabase *db); + explicit CardDatabaseQuerier(QObject *parent, const CardDatabase *db, const ICardPreferenceProvider *prefs); [[nodiscard]] CardInfoPtr getCardInfo(const QString &cardName) const; [[nodiscard]] QList getCardInfos(const QStringList &cardNames) const; @@ -46,6 +47,7 @@ public: [[nodiscard]] PrintingInfo getSpecificPrinting(const CardRef &cardRef) const; [[nodiscard]] PrintingInfo getSpecificPrinting(const QString &cardName, const QString &setCode, const QString &collectorNumber) const; + ExactCard getPreferredCard(const QString &cardName) const; [[nodiscard]] PrintingInfo findPrintingWithId(const CardInfoPtr &card, const QString &providerId) const; [[nodiscard]] QStringList getAllMainCardTypes() const; @@ -55,6 +57,8 @@ public: private: const CardDatabase *db; + const ICardPreferenceProvider *prefs; + CardInfoPtr lookupCardByName(const QString &name) const; }; diff --git a/libcockatrice_card/libcockatrice/card/database/parser/card_database_parser.cpp b/libcockatrice_card/libcockatrice/card/database/parser/card_database_parser.cpp index ac1372f7f..e9686f816 100644 --- a/libcockatrice_card/libcockatrice/card/database/parser/card_database_parser.cpp +++ b/libcockatrice_card/libcockatrice/card/database/parser/card_database_parser.cpp @@ -1,5 +1,7 @@ #include "card_database_parser.h" +#include + SetNameMap ICardDatabaseParser::sets; void ICardDatabaseParser::clearSetlist() @@ -17,7 +19,7 @@ CardSetPtr ICardDatabaseParser::internalAddSet(const QString &setName, return sets.value(setName); } - CardSetPtr newSet = CardSet::newInstance(setName); + CardSetPtr newSet = CardSet::newInstance(new NoopCardSetPriorityController(), setName); newSet->setLongName(longName); newSet->setSetType(setType); newSet->setReleaseDate(releaseDate); diff --git a/libcockatrice_card/libcockatrice/card/database/parser/cockatrice_xml_4.cpp b/libcockatrice_card/libcockatrice/card/database/parser/cockatrice_xml_4.cpp index 9c80014bf..92525d6e1 100644 --- a/libcockatrice_card/libcockatrice/card/database/parser/cockatrice_xml_4.cpp +++ b/libcockatrice_card/libcockatrice/card/database/parser/cockatrice_xml_4.cpp @@ -6,7 +6,6 @@ #include #include #include -#include #include #define COCKATRICE_XML4_TAGNAME "cockatrice_carddatabase" @@ -14,6 +13,11 @@ #define COCKATRICE_XML4_SCHEMALOCATION \ "https://raw.githubusercontent.com/Cockatrice/Cockatrice/master/doc/carddatabase_v4/cards.xsd" +CockatriceXml4Parser::CockatriceXml4Parser(ICardPreferenceProvider *_cardPreferenceProvider) + : cardPreferenceProvider(_cardPreferenceProvider) +{ +} + bool CockatriceXml4Parser::getCanParseFile(const QString &fileName, QIODevice &device) { qCInfo(CockatriceXml4Log) << "Trying to parse: " << fileName; @@ -132,7 +136,7 @@ QVariantHash CockatriceXml4Parser::loadCardPropertiesFromXml(QXmlStreamReader &x void CockatriceXml4Parser::loadCardsFromXml(QXmlStreamReader &xml) { - bool includeRebalancedCards = SettingsCache::instance().getIncludeRebalancedCards(); + bool includeRebalancedCards = cardPreferenceProvider->getIncludeRebalancedCards(); while (!xml.atEnd()) { if (xml.readNext() == QXmlStreamReader::EndElement) { break; diff --git a/libcockatrice_card/libcockatrice/card/database/parser/cockatrice_xml_4.h b/libcockatrice_card/libcockatrice/card/database/parser/cockatrice_xml_4.h index f438f94b2..40badbf49 100644 --- a/libcockatrice_card/libcockatrice/card/database/parser/cockatrice_xml_4.h +++ b/libcockatrice_card/libcockatrice/card/database/parser/cockatrice_xml_4.h @@ -11,6 +11,7 @@ #include #include +#include inline Q_LOGGING_CATEGORY(CockatriceXml4Log, "cockatrice_xml.xml_4_parser"); @@ -18,7 +19,7 @@ class CockatriceXml4Parser : public ICardDatabaseParser { Q_OBJECT public: - CockatriceXml4Parser() = default; + CockatriceXml4Parser(ICardPreferenceProvider *cardPreferenceProvider); ~CockatriceXml4Parser() override = default; bool getCanParseFile(const QString &name, QIODevice &device) override; void parseFile(QIODevice &device) override; @@ -29,6 +30,8 @@ public: const QString &sourceVersion = "unknown") override; private: + ICardPreferenceProvider *cardPreferenceProvider; + QVariantHash loadCardPropertiesFromXml(QXmlStreamReader &xml); void loadCardsFromXml(QXmlStreamReader &xml); void loadSetsFromXml(QXmlStreamReader &xml); diff --git a/libcockatrice_card/libcockatrice/card/set/card_set.cpp b/libcockatrice_card/libcockatrice/card/set/card_set.cpp index 6b4a8f764..20d0aced8 100644 --- a/libcockatrice_card/libcockatrice/card/set/card_set.cpp +++ b/libcockatrice_card/libcockatrice/card/set/card_set.cpp @@ -1,26 +1,30 @@ #include "card_set.h" -#include +#include +#include const char *CardSet::TOKENS_SETNAME = "TK"; -CardSet::CardSet(const QString &_shortName, +CardSet::CardSet(ICardSetPriorityController *_priorityController, + const QString &_shortName, const QString &_longName, const QString &_setType, const QDate &_releaseDate, const CardSet::Priority _priority) - : shortName(_shortName), longName(_longName), releaseDate(_releaseDate), setType(_setType), priority(_priority) + : priorityController(std::move(_priorityController)), shortName(_shortName), longName(_longName), + releaseDate(_releaseDate), setType(_setType), priority(_priority) { loadSetOptions(); } -CardSetPtr CardSet::newInstance(const QString &_shortName, +CardSetPtr CardSet::newInstance(ICardSetPriorityController *_priorityController, + const QString &_shortName, const QString &_longName, const QString &_setType, const QDate &_releaseDate, const Priority _priority) { - CardSetPtr ptr(new CardSet(_shortName, _longName, _setType, _releaseDate, _priority)); + CardSetPtr ptr(new CardSet(_priorityController, _shortName, _longName, _setType, _releaseDate, _priority)); // ptr->setSmartPointer(ptr); return ptr; } @@ -57,25 +61,25 @@ QString CardSet::getCorrectedShortName() const void CardSet::loadSetOptions() { - sortKey = SettingsCache::instance().cardDatabase().getSortKey(shortName); - enabled = SettingsCache::instance().cardDatabase().isEnabled(shortName); - isknown = SettingsCache::instance().cardDatabase().isKnown(shortName); + sortKey = priorityController->getSortKey(shortName); + enabled = priorityController->isEnabled(shortName); + isknown = priorityController->isKnown(shortName); } void CardSet::setSortKey(unsigned int _sortKey) { sortKey = _sortKey; - SettingsCache::instance().cardDatabase().setSortKey(shortName, _sortKey); + priorityController->setSortKey(shortName, _sortKey); } void CardSet::setEnabled(bool _enabled) { enabled = _enabled; - SettingsCache::instance().cardDatabase().setEnabled(shortName, _enabled); + priorityController->setEnabled(shortName, _enabled); } void CardSet::setIsKnown(bool _isknown) { isknown = _isknown; - SettingsCache::instance().cardDatabase().setIsKnown(shortName, _isknown); + priorityController->setIsKnown(shortName, _isknown); } \ No newline at end of file diff --git a/libcockatrice_card/libcockatrice/card/set/card_set.h b/libcockatrice_card/libcockatrice/card/set/card_set.h index fc4d42239..5967f9093 100644 --- a/libcockatrice_card/libcockatrice/card/set/card_set.h +++ b/libcockatrice_card/libcockatrice/card/set/card_set.h @@ -5,6 +5,7 @@ #include #include #include +#include class CardInfo; using CardInfoPtr = QSharedPointer; @@ -28,6 +29,7 @@ public: static const char *TOKENS_SETNAME; private: + QSharedPointer priorityController; QString shortName, longName; unsigned int sortKey; QDate releaseDate; @@ -36,13 +38,15 @@ private: bool enabled, isknown; public: - explicit CardSet(const QString &_shortName = QString(), + explicit CardSet(ICardSetPriorityController *priorityController, + const QString &_shortName = QString(), const QString &_longName = QString(), const QString &_setType = QString(), const QDate &_releaseDate = QDate(), const Priority _priority = PriorityFallback); - static CardSetPtr newInstance(const QString &_shortName = QString(), + static CardSetPtr newInstance(ICardSetPriorityController *priorityController, + const QString &_shortName = QString(), const QString &_longName = QString(), const QString &_setType = QString(), const QDate &_releaseDate = QDate(), diff --git a/libcockatrice_interfaces/CMakeLists.txt b/libcockatrice_interfaces/CMakeLists.txt new file mode 100644 index 000000000..4f34f7985 --- /dev/null +++ b/libcockatrice_interfaces/CMakeLists.txt @@ -0,0 +1,25 @@ +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTOUIC ON) +set(CMAKE_AUTORCC ON) + +set(HEADERS + libcockatrice/interfaces/interface_card_database_path_provider.h + libcockatrice/interfaces/interface_card_preference_provider.h + libcockatrice/interfaces/interface_card_set_priority_controller.h + libcockatrice/interfaces/interface_network_settings_provider.h + libcockatrice/interfaces/noop_card_database_path_provider.h + libcockatrice/interfaces/noop_card_preference_provider.h + libcockatrice/interfaces/noop_card_set_priority_controller.h +) + +if(Qt6_FOUND) + qt6_wrap_cpp(MOC_SOURCES ${HEADERS}) +elseif(Qt5_FOUND) + qt5_wrap_cpp(MOC_SOURCES ${HEADERS}) +endif() + +add_library(libcockatrice_interfaces STATIC ${MOC_SOURCES}) + +target_include_directories(libcockatrice_interfaces PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) + +target_link_libraries(libcockatrice_interfaces PUBLIC ${QT_CORE_MODULE}) diff --git a/libcockatrice_interfaces/libcockatrice/interfaces/interface_card_database_path_provider.h b/libcockatrice_interfaces/libcockatrice/interfaces/interface_card_database_path_provider.h new file mode 100644 index 000000000..f5e54a6f8 --- /dev/null +++ b/libcockatrice_interfaces/libcockatrice/interfaces/interface_card_database_path_provider.h @@ -0,0 +1,21 @@ +#ifndef COCKATRICE_INTERFACE_CARD_DATABASE_PATH_PROVIDER_H +#define COCKATRICE_INTERFACE_CARD_DATABASE_PATH_PROVIDER_H +#include + +class ICardDatabasePathProvider : public QObject +{ + Q_OBJECT + +public: + virtual ~ICardDatabasePathProvider() = default; + + virtual QString getCardDatabasePath() const = 0; + virtual QString getCustomCardDatabasePath() const = 0; + virtual QString getTokenDatabasePath() const = 0; + virtual QString getSpoilerCardDatabasePath() const = 0; + +signals: + void cardDatabasePathChanged(); +}; + +#endif // COCKATRICE_INTERFACE_CARD_DATABASE_PATH_PROVIDER_H diff --git a/libcockatrice_interfaces/libcockatrice/interfaces/interface_card_preference_provider.h b/libcockatrice_interfaces/libcockatrice/interfaces/interface_card_preference_provider.h new file mode 100644 index 000000000..7c0944f29 --- /dev/null +++ b/libcockatrice_interfaces/libcockatrice/interfaces/interface_card_preference_provider.h @@ -0,0 +1,14 @@ +#ifndef COCKATRICE_INTERFACE_CARD_PREFERENCE_PROVIDER_H +#define COCKATRICE_INTERFACE_CARD_PREFERENCE_PROVIDER_H + +#include + +class ICardPreferenceProvider +{ +public: + virtual ~ICardPreferenceProvider() = default; + virtual QString getCardPreferenceOverride(const QString &cardName) const = 0; + virtual bool getIncludeRebalancedCards() const = 0; +}; + +#endif // COCKATRICE_INTERFACE_CARD_PREFERENCE_PROVIDER_H diff --git a/libcockatrice_interfaces/libcockatrice/interfaces/interface_card_set_priority_controller.h b/libcockatrice_interfaces/libcockatrice/interfaces/interface_card_set_priority_controller.h new file mode 100644 index 000000000..8f8b7e62e --- /dev/null +++ b/libcockatrice_interfaces/libcockatrice/interfaces/interface_card_set_priority_controller.h @@ -0,0 +1,19 @@ +#ifndef COCKATRICE_INTERFACE_CARD_SET_PRIORITY_CONTROLLER_H +#define COCKATRICE_INTERFACE_CARD_SET_PRIORITY_CONTROLLER_H +#include + +class ICardSetPriorityController +{ +public: + virtual ~ICardSetPriorityController() = default; + + virtual void setSortKey(QString shortName, unsigned int sortKey) = 0; + virtual void setEnabled(QString shortName, bool enabled) = 0; + virtual void setIsKnown(QString shortName, bool isknown) = 0; + + virtual unsigned int getSortKey(QString shortName) = 0; + virtual bool isEnabled(QString shortName) = 0; + virtual bool isKnown(QString shortName) = 0; +}; + +#endif // COCKATRICE_INTERFACE_CARD_SET_PRIORITY_CONTROLLER_H diff --git a/libcockatrice_interfaces/libcockatrice/interfaces/interface_network_settings_provider.h b/libcockatrice_interfaces/libcockatrice/interfaces/interface_network_settings_provider.h new file mode 100644 index 000000000..bd136513d --- /dev/null +++ b/libcockatrice_interfaces/libcockatrice/interfaces/interface_network_settings_provider.h @@ -0,0 +1,20 @@ +#ifndef COCKATRICE_INETWORKSETTINGSPROVIDER_H +#define COCKATRICE_INETWORKSETTINGSPROVIDER_H +#include + +class INetworkSettingsProvider +{ +public: + virtual ~INetworkSettingsProvider() = default; + + virtual QString getClientID() = 0; + + [[nodiscard]] virtual int getTimeOut() const = 0; + [[nodiscard]] virtual int getKeepAlive() const = 0; + [[nodiscard]] virtual bool getNotifyAboutUpdates() const = 0; + + virtual void setKnownMissingFeatures(const QString &_knownMissingFeatures) = 0; + virtual QString getKnownMissingFeatures() = 0; +}; + +#endif // COCKATRICE_INETWORKSETTINGSPROVIDER_H diff --git a/libcockatrice_interfaces/libcockatrice/interfaces/noop_card_database_path_provider.h b/libcockatrice_interfaces/libcockatrice/interfaces/noop_card_database_path_provider.h new file mode 100644 index 000000000..fb3ab0cc3 --- /dev/null +++ b/libcockatrice_interfaces/libcockatrice/interfaces/noop_card_database_path_provider.h @@ -0,0 +1,26 @@ +#ifndef COCKATRICE_NOOP_CARD_DATABASE_PATH_PROVIDER_H +#define COCKATRICE_NOOP_CARD_DATABASE_PATH_PROVIDER_H +#include "interface_card_database_path_provider.h" + +class NoopCardDatabasePathProvider : public ICardDatabasePathProvider +{ +public: + QString getCardDatabasePath() const override + { + return ""; + } + QString getCustomCardDatabasePath() const override + { + return ""; + } + QString getTokenDatabasePath() const override + { + return ""; + } + QString getSpoilerCardDatabasePath() const override + { + return ""; + } +}; + +#endif // COCKATRICE_NOOP_CARD_DATABASE_PATH_PROVIDER_H diff --git a/libcockatrice_interfaces/libcockatrice/interfaces/noop_card_preference_provider.h b/libcockatrice_interfaces/libcockatrice/interfaces/noop_card_preference_provider.h new file mode 100644 index 000000000..9fc7e5bb4 --- /dev/null +++ b/libcockatrice_interfaces/libcockatrice/interfaces/noop_card_preference_provider.h @@ -0,0 +1,19 @@ +#ifndef COCKATRICE_NOOP_CARD_PREFERENCE_PROVIDER_H +#define COCKATRICE_NOOP_CARD_PREFERENCE_PROVIDER_H +#include "interface_card_preference_provider.h" + +class NoopCardPreferenceProvider : public ICardPreferenceProvider +{ +public: + QString getCardPreferenceOverride(const QString &) const override + { + return {}; + } + + bool getIncludeRebalancedCards() const override + { + return true; + } +}; + +#endif // COCKATRICE_NOOP_CARD_PREFERENCE_PROVIDER_H diff --git a/libcockatrice_interfaces/libcockatrice/interfaces/noop_card_set_priority_controller.h b/libcockatrice_interfaces/libcockatrice/interfaces/noop_card_set_priority_controller.h new file mode 100644 index 000000000..b2410781c --- /dev/null +++ b/libcockatrice_interfaces/libcockatrice/interfaces/noop_card_set_priority_controller.h @@ -0,0 +1,33 @@ +#ifndef COCKATRICE_NOOP_CARD_SET_PRIORITY_CONTROLLER_H +#define COCKATRICE_NOOP_CARD_SET_PRIORITY_CONTROLLER_H + +#include "interface_card_set_priority_controller.h" + +class NoopCardSetPriorityController : public ICardSetPriorityController +{ +public: + void setSortKey(QString /* shortName */, unsigned int /* sortKey */) + { + } + void setEnabled(QString /* shortName */, bool /* enabled */) + { + } + void setIsKnown(QString /* shortName */, bool /* isknown */) + { + } + + unsigned int getSortKey(QString /* shortName */) + { + return 0; + } + bool isEnabled(QString /* shortName */) + { + return true; + } + bool isKnown(QString /* shortName */) + { + return true; + } +}; + +#endif // COCKATRICE_NOOP_CARD_SET_PRIORITY_CONTROLLER_H diff --git a/libcockatrice_models/libcockatrice/models/deck_list/deck_list_model.cpp b/libcockatrice_models/libcockatrice/models/deck_list/deck_list_model.cpp index 01ae68a71..c34d2115e 100644 --- a/libcockatrice_models/libcockatrice/models/deck_list/deck_list_model.cpp +++ b/libcockatrice_models/libcockatrice/models/deck_list/deck_list_model.cpp @@ -11,7 +11,6 @@ #include #include #include -#include DeckListModel::DeckListModel(QObject *parent) : QAbstractItemModel(parent), lastKnownColumn(1), lastKnownOrder(Qt::AscendingOrder) diff --git a/libcockatrice_network/libcockatrice/network/client/remote/CMakeLists.txt b/libcockatrice_network/libcockatrice/network/client/remote/CMakeLists.txt index 01f438b08..d70065330 100644 --- a/libcockatrice_network/libcockatrice/network/client/remote/CMakeLists.txt +++ b/libcockatrice_network/libcockatrice/network/client/remote/CMakeLists.txt @@ -20,5 +20,5 @@ target_include_directories(libcockatrice_network_client_remote PUBLIC .) target_link_libraries( libcockatrice_network_client_remote PUBLIC ${COCKATRICE_QT_MODULES} libcockatrice_network_client_abstract - libcockatrice_settings libcockatrice_utility libcockatrice_protocol + libcockatrice_interfaces libcockatrice_utility libcockatrice_protocol ) diff --git a/libcockatrice_network/libcockatrice/network/client/remote/remote_client.cpp b/libcockatrice_network/libcockatrice/network/client/remote/remote_client.cpp index fdcbfae88..c0167a875 100644 --- a/libcockatrice_network/libcockatrice/network/client/remote/remote_client.cpp +++ b/libcockatrice_network/libcockatrice/network/client/remote/remote_client.cpp @@ -1,6 +1,5 @@ #include "remote_client.h" -#include "../../../../cockatrice/src/main.h" #include "version_string.h" #include @@ -11,6 +10,7 @@ #include #include #include +#include #include #include #include @@ -21,19 +21,18 @@ #include #include #include -#include #include static const unsigned int protocolVersion = 14; -RemoteClient::RemoteClient(QObject *parent) - : AbstractClient(parent), timeRunning(0), lastDataReceived(0), messageInProgress(false), handshakeStarted(false), - usingWebSocket(false), messageLength(0), hashedPassword() +RemoteClient::RemoteClient(QObject *parent, INetworkSettingsProvider *_networkSettingsProvider) + : AbstractClient(parent), networkSettingsProvider(_networkSettingsProvider), timeRunning(0), lastDataReceived(0), + messageInProgress(false), handshakeStarted(false), usingWebSocket(false), messageLength(0), hashedPassword() { clearNewClientFeatures(); - maxTimeout = SettingsCache::instance().getTimeOut(); - int keepalive = SettingsCache::instance().getKeepAlive(); + maxTimeout = networkSettingsProvider->getTimeOut(); + int keepalive = networkSettingsProvider->getKeepAlive(); timer = new QTimer(this); timer->setInterval(keepalive * 1000); connect(timer, &QTimer::timeout, this, &RemoteClient::ping); @@ -308,8 +307,8 @@ void RemoteClient::loginResponse(const Response &response) emit ignoreListReceived(ignoreList); if (newMissingFeatureFound(possibleMissingFeatures) && resp.missing_features_size() > 0 && - SettingsCache::instance().getNotifyAboutUpdates()) { - SettingsCache::instance().setKnownMissingFeatures(possibleMissingFeatures); + networkSettingsProvider->getNotifyAboutUpdates()) { + networkSettingsProvider->setKnownMissingFeatures(possibleMissingFeatures); emit notifyUserAboutUpdate(); } @@ -586,7 +585,7 @@ void RemoteClient::disconnectFromServer() QString RemoteClient::getSrvClientID(const QString &_hostname) { - QString srvClientID = SettingsCache::instance().getClientID(); + QString srvClientID = networkSettingsProvider->getClientID(); QHostInfo hostInfo = QHostInfo::fromName(_hostname); if (!hostInfo.error()) { QHostAddress hostAddress = hostInfo.addresses().first(); @@ -606,7 +605,7 @@ bool RemoteClient::newMissingFeatureFound(const QString &_serversMissingFeatures QStringList serversMissingFeaturesList = _serversMissingFeatures.split(","); for (const QString &feature : serversMissingFeaturesList) { if (!feature.isEmpty()) { - if (!SettingsCache::instance().getKnownMissingFeatures().contains(feature)) + if (!networkSettingsProvider->getKnownMissingFeatures().contains(feature)) return true; } } @@ -616,14 +615,14 @@ bool RemoteClient::newMissingFeatureFound(const QString &_serversMissingFeatures void RemoteClient::clearNewClientFeatures() { QString newKnownMissingFeatures; - QStringList existingKnownMissingFeatures = SettingsCache::instance().getKnownMissingFeatures().split(","); + QStringList existingKnownMissingFeatures = networkSettingsProvider->getKnownMissingFeatures().split(","); for (const QString &existingKnownFeature : existingKnownMissingFeatures) { if (!existingKnownFeature.isEmpty()) { if (!clientFeatures.contains(existingKnownFeature)) newKnownMissingFeatures.append("," + existingKnownFeature); } } - SettingsCache::instance().setKnownMissingFeatures(newKnownMissingFeatures); + networkSettingsProvider->setKnownMissingFeatures(newKnownMissingFeatures); } void RemoteClient::requestForgotPasswordToServer(const QString &hostname, unsigned int port, const QString &_userName) diff --git a/libcockatrice_network/libcockatrice/network/client/remote/remote_client.h b/libcockatrice_network/libcockatrice/network/client/remote/remote_client.h index d3984d5dd..939e88dfc 100644 --- a/libcockatrice_network/libcockatrice/network/client/remote/remote_client.h +++ b/libcockatrice_network/libcockatrice/network/client/remote/remote_client.h @@ -12,6 +12,7 @@ #include #include #include +#include #include inline Q_LOGGING_CATEGORY(RemoteClientLog, "remote_client"); @@ -97,6 +98,7 @@ private slots: void submitForgotPasswordChallengeResponse(const Response &response); private: + INetworkSettingsProvider *networkSettingsProvider; int maxTimeout; int timeRunning, lastDataReceived; QByteArray inputBuffer; @@ -120,7 +122,7 @@ protected slots: void sendCommandContainer(const CommandContainer &cont) override; public: - explicit RemoteClient(QObject *parent = nullptr); + explicit RemoteClient(QObject *parent = nullptr, INetworkSettingsProvider *networkSettingsProvider = nullptr); ~RemoteClient() override; QString peerName() const { diff --git a/libcockatrice_settings/CMakeLists.txt b/libcockatrice_settings/CMakeLists.txt index bacb397bf..3afe6e00a 100644 --- a/libcockatrice_settings/CMakeLists.txt +++ b/libcockatrice_settings/CMakeLists.txt @@ -3,8 +3,6 @@ set(CMAKE_AUTOUIC ON) set(CMAKE_AUTORCC ON) set(HEADERS - libcockatrice/settings/cache_settings.h - libcockatrice/settings/card_counter_settings.h libcockatrice/settings/card_database_settings.h libcockatrice/settings/card_override_settings.h libcockatrice/settings/debug_settings.h @@ -15,8 +13,6 @@ set(HEADERS libcockatrice/settings/recents_settings.h libcockatrice/settings/servers_settings.h libcockatrice/settings/settings_manager.h - libcockatrice/settings/shortcut_treeview.h - libcockatrice/settings/shortcuts_settings.h ) if(Qt6_FOUND) @@ -28,8 +24,6 @@ endif() add_library( libcockatrice_settings STATIC ${MOC_SOURCES} - libcockatrice/settings/cache_settings.cpp - libcockatrice/settings/card_counter_settings.cpp libcockatrice/settings/card_database_settings.cpp libcockatrice/settings/card_override_settings.cpp libcockatrice/settings/debug_settings.cpp @@ -40,8 +34,6 @@ add_library( libcockatrice/settings/recents_settings.cpp libcockatrice/settings/servers_settings.cpp libcockatrice/settings/settings_manager.cpp - libcockatrice/settings/shortcut_treeview.cpp - libcockatrice/settings/shortcuts_settings.cpp ) target_include_directories( @@ -50,4 +42,4 @@ target_include_directories( PUBLIC ${CMAKE_SOURCE_DIR}/cockatrice/src/client/network ) -target_link_libraries(libcockatrice_settings PUBLIC libcockatrice_utility ${COCKATRICE_QT_MODULES}) +target_link_libraries(libcockatrice_settings PUBLIC libcockatrice_card libcockatrice_utility ${QT_CORE_MODULE}) diff --git a/libcockatrice_settings/libcockatrice/settings/card_database_settings.h b/libcockatrice_settings/libcockatrice/settings/card_database_settings.h index 5bc7eb59f..8d45efbec 100644 --- a/libcockatrice_settings/libcockatrice/settings/card_database_settings.h +++ b/libcockatrice_settings/libcockatrice/settings/card_database_settings.h @@ -13,27 +13,24 @@ #include #include #include +#include -class CardDatabaseSettings : public SettingsManager +class CardDatabaseSettings : public SettingsManager, public ICardSetPriorityController { Q_OBJECT friend class SettingsCache; public: - void setSortKey(QString shortName, unsigned int sortKey); - void setEnabled(QString shortName, bool enabled); - void setIsKnown(QString shortName, bool isknown); + void setSortKey(QString shortName, unsigned int sortKey) override; + void setEnabled(QString shortName, bool enabled) override; + void setIsKnown(QString shortName, bool isknown) override; - unsigned int getSortKey(QString shortName); - bool isEnabled(QString shortName); - bool isKnown(QString shortName); -signals: - -public slots: + unsigned int getSortKey(QString shortName) override; + bool isEnabled(QString shortName) override; + bool isKnown(QString shortName) override; private: explicit CardDatabaseSettings(const QString &settingPath, QObject *parent = nullptr); - CardDatabaseSettings(const CardDatabaseSettings & /*other*/); }; #endif // CARDDATABASESETTINGS_H diff --git a/oracle/CMakeLists.txt b/oracle/CMakeLists.txt index 0331b287c..36001a566 100644 --- a/oracle/CMakeLists.txt +++ b/oracle/CMakeLists.txt @@ -23,6 +23,9 @@ set(oracle_SOURCES src/pagetemplates.cpp src/parsehelpers.cpp src/qt-json/json.cpp + ../cockatrice/src/client/settings/cache_settings.cpp + ../cockatrice/src/client/settings/card_counter_settings.cpp + ../cockatrice/src/client/settings/shortcuts_settings.cpp ../cockatrice/src/client/network/update/client/release_channel.cpp ../cockatrice/src/interface/theme_manager.cpp ../cockatrice/src/interface/widgets/quick_settings/settings_button_widget.cpp @@ -140,6 +143,7 @@ target_link_libraries( oracle PUBLIC libcockatrice_card PUBLIC libcockatrice_settings + PUBLIC libcockatrice_network PUBLIC ${ORACLE_QT_MODULES} ) diff --git a/oracle/src/main.cpp b/oracle/src/main.cpp index 3215f1d44..5def0c887 100644 --- a/oracle/src/main.cpp +++ b/oracle/src/main.cpp @@ -3,13 +3,13 @@ #include "interface/theme_manager.h" #include "oraclewizard.h" +#include <../../cockatrice/src/client/settings/cache_settings.h> #include #include #include #include #include #include -#include QTranslator *translator, *qtTranslator; ThemeManager *themeManager; diff --git a/oracle/src/oracleimporter.cpp b/oracle/src/oracleimporter.cpp index 204772857..ea4c35fda 100644 --- a/oracle/src/oracleimporter.cpp +++ b/oracle/src/oracleimporter.cpp @@ -1,5 +1,6 @@ #include "oracleimporter.h" +#include "client/settings/cache_settings.h" #include "parsehelpers.h" #include "qt-json/json.h" @@ -7,6 +8,7 @@ #include #include #include +#include #include #include @@ -463,13 +465,14 @@ int OracleImporter::startImport() { int setCards = 0, setIndex = 0; // add an empty set for tokens - CardSetPtr tokenSet = CardSet::newInstance(CardSet::TOKENS_SETNAME, tr("Dummy set containing tokens"), "Tokens"); + CardSetPtr tokenSet = CardSet::newInstance(SettingsCache::instance().cardDatabase(), CardSet::TOKENS_SETNAME, + tr("Dummy set containing tokens"), "Tokens"); sets.insert(CardSet::TOKENS_SETNAME, tokenSet); for (const SetToDownload &curSetToParse : allSets) { - CardSetPtr newSet = - CardSet::newInstance(curSetToParse.getShortName(), curSetToParse.getLongName(), curSetToParse.getSetType(), - curSetToParse.getReleaseDate(), curSetToParse.getPriority()); + CardSetPtr newSet = CardSet::newInstance(SettingsCache::instance().cardDatabase(), curSetToParse.getShortName(), + curSetToParse.getLongName(), curSetToParse.getSetType(), + curSetToParse.getReleaseDate(), curSetToParse.getPriority()); if (!sets.contains(newSet->getShortName())) sets.insert(newSet->getShortName(), newSet); @@ -488,7 +491,7 @@ int OracleImporter::startImport() bool OracleImporter::saveToFile(const QString &fileName, const QString &sourceUrl, const QString &sourceVersion) { - CockatriceXml4Parser parser; + CockatriceXml4Parser parser(new SettingsCardPreferenceProvider()); return parser.saveToFile(sets, cards, fileName, sourceUrl, sourceVersion); } diff --git a/oracle/src/oraclewizard.cpp b/oracle/src/oraclewizard.cpp index eeadfb8be..29988386b 100644 --- a/oracle/src/oraclewizard.cpp +++ b/oracle/src/oraclewizard.cpp @@ -1,5 +1,6 @@ #include "oraclewizard.h" +#include "client/settings/cache_settings.h" #include "main.h" #include "oracleimporter.h" #include "version_string.h" @@ -24,7 +25,6 @@ #include #include #include -#include #ifdef HAS_LZMA #include "lzma/decompress.h" diff --git a/tests/carddatabase/CMakeLists.txt b/tests/carddatabase/CMakeLists.txt index 4030cb124..35b18a061 100644 --- a/tests/carddatabase/CMakeLists.txt +++ b/tests/carddatabase/CMakeLists.txt @@ -21,7 +21,6 @@ add_executable(carddatabase_test ${MOCKS_SOURCES} ${VERSION_STRING_CPP} carddata target_link_libraries( carddatabase_test PRIVATE libcockatrice_card - PRIVATE libcockatrice_settings PRIVATE Threads::Threads PRIVATE ${GTEST_BOTH_LIBRARIES} PRIVATE ${TEST_QT_MODULES} @@ -46,7 +45,6 @@ add_executable( target_link_libraries( filter_string_test PRIVATE libcockatrice_card - PRIVATE libcockatrice_settings PRIVATE Threads::Threads PRIVATE ${GTEST_BOTH_LIBRARIES} PRIVATE ${TEST_QT_MODULES} diff --git a/tests/carddatabase/carddatabase_test.cpp b/tests/carddatabase/carddatabase_test.cpp index f3de287e5..3fa0e3834 100644 --- a/tests/carddatabase/carddatabase_test.cpp +++ b/tests/carddatabase/carddatabase_test.cpp @@ -1,14 +1,17 @@ #include "mocks.h" +#include "test_card_database_path_provider.h" #include "gtest/gtest.h" +#include +#include namespace { TEST(CardDatabaseTest, LoadXml) { - settingsCache = new SettingsCache; - CardDatabase *db = new CardDatabase; + CardDatabase *db = new CardDatabase(nullptr, new NoopCardPreferenceProvider(), new TestCardDatabasePathProvider(), + new NoopCardSetPriorityController()); // ensure the card database is empty at start ASSERT_EQ(0, db->getCardList().size()) << "Cards not empty at start"; diff --git a/tests/carddatabase/filter_string_test.cpp b/tests/carddatabase/filter_string_test.cpp index f0c7d9768..ed81109b0 100644 --- a/tests/carddatabase/filter_string_test.cpp +++ b/tests/carddatabase/filter_string_test.cpp @@ -1,8 +1,10 @@ #include "../../cockatrice/src/filters/filter_string.h" #include "mocks.h" +#include "test_card_database_path_provider.h" #include "gtest/gtest.h" -#include +#include +#include #define QUERY(name, card, query, match) \ TEST_F(CardQuery, name) \ @@ -18,10 +20,14 @@ class CardQuery : public ::testing::Test protected: void SetUp() override { - cat = CardDatabaseManager::query()->getCardBySimpleName("Cat"); - notDeadAfterAll = CardDatabaseManager::query()->getCardBySimpleName("Not Dead"); - truth = CardDatabaseManager::query()->getCardBySimpleName("Truth"); - doctor = CardDatabaseManager::query()->getCardBySimpleName("Doctor"); + CardDatabase *db = new CardDatabase(nullptr, new NoopCardPreferenceProvider(), + new TestCardDatabasePathProvider(), new NoopCardSetPriorityController()); + db->loadCardDatabases(); + + cat = db->query()->getCardBySimpleName("Cat"); + notDeadAfterAll = db->query()->getCardBySimpleName("Not Dead"); + truth = db->query()->getCardBySimpleName("Truth"); + doctor = db->query()->getCardBySimpleName("Doctor"); } // void TearDown() override {} @@ -69,9 +75,6 @@ QUERY(Color4, cat, "c!gw", false) int main(int argc, char **argv) { - settingsCache = new SettingsCache; - CardDatabaseManager::getInstance()->loadCardDatabases(); - ::testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); } diff --git a/tests/carddatabase/mocks.cpp b/tests/carddatabase/mocks.cpp index 7d46a68c2..5568ac84f 100644 --- a/tests/carddatabase/mocks.cpp +++ b/tests/carddatabase/mocks.cpp @@ -1,464 +1,6 @@ #include "mocks.h" -CardDatabaseSettings::CardDatabaseSettings(const QString &settingPath, QObject *parent) - : SettingsManager(settingPath + "cardDatabase.ini", parent) -{ -} -void CardDatabaseSettings::setSortKey(QString /* shortName */, unsigned int /* sortKey */) -{ -} -void CardDatabaseSettings::setEnabled(QString /* shortName */, bool /* enabled */) -{ -} -void CardDatabaseSettings::setIsKnown(QString /* shortName */, bool /* isknown */) -{ -} -unsigned int CardDatabaseSettings::getSortKey(QString /* shortName */) -{ - return 0; -}; -bool CardDatabaseSettings::isEnabled(QString /* shortName */) -{ - return true; -}; -bool CardDatabaseSettings::isKnown(QString /* shortName */) -{ - return true; -}; - -QString SettingsCache::getDataPath() -{ - return ""; -} -QString SettingsCache::getSettingsPath() -{ - return ""; -} -void SettingsCache::translateLegacySettings() -{ -} -QString SettingsCache::getSafeConfigPath(QString /* configEntry */, QString defaultPath) const -{ - return defaultPath; -} -QString SettingsCache::getSafeConfigFilePath(QString /* configEntry */, QString defaultPath) const -{ - return defaultPath; -} -SettingsCache::SettingsCache() - : settings{new QSettings("global.ini", QSettings::IniFormat, this)}, shortcutsSettings{nullptr}, - cardDatabaseSettings{new CardDatabaseSettings("", this)}, serversSettings{nullptr}, messageSettings{nullptr}, - gameFiltersSettings{nullptr}, layoutsSettings{nullptr}, downloadSettings{nullptr}, - cardDatabasePath{QString("%1/cards.xml").arg(CARDDB_DATADIR)}, - customCardDatabasePath{QString("%1/customsets/").arg(CARDDB_DATADIR)}, - spoilerDatabasePath{QString("%1/spoiler.xml").arg(CARDDB_DATADIR)}, - tokenDatabasePath{QString("%1/tokens.xml").arg(CARDDB_DATADIR)} -{ -} -void SettingsCache::setUseTearOffMenus(bool /* _useTearOffMenus */) -{ -} -void SettingsCache::setCardViewInitialRowsMax(int /* _cardViewInitialRowsMax */) -{ -} -void SettingsCache::setCardViewExpandedRowsMax(int /* value */) -{ -} -void SettingsCache::setCloseEmptyCardView(QT_STATE_CHANGED_T /* value */) -{ -} -void SettingsCache::setFocusCardViewSearchBar(QT_STATE_CHANGED_T /* value */) -{ -} -void SettingsCache::setKnownMissingFeatures(const QString & /* _knownMissingFeatures */) -{ -} -void SettingsCache::setCardInfoViewMode(const int /* _viewMode */) -{ -} -void SettingsCache::setHighlightWords(const QString & /* _highlightWords */) -{ -} -void SettingsCache::setMasterVolume(int /* _masterVolume */) -{ -} -void SettingsCache::setLeftJustified(const QT_STATE_CHANGED_T /* _leftJustified */) -{ -} -void SettingsCache::setCardScaling(const QT_STATE_CHANGED_T /* _scaleCards */) -{ -} -void SettingsCache::setStackCardOverlapPercent(const int /* _verticalCardOverlapPercent */) -{ -} -void SettingsCache::setShowMessagePopups(const QT_STATE_CHANGED_T /* _showMessagePopups */) -{ -} -void SettingsCache::setShowMentionPopups(const QT_STATE_CHANGED_T /* _showMentionPopus */) -{ -} -void SettingsCache::setRoomHistory(const QT_STATE_CHANGED_T /* _roomHistory */) -{ -} -void SettingsCache::setLang(const QString & /* _lang */) -{ -} -void SettingsCache::setShowTipsOnStartup(bool /* _showTipsOnStartup */) -{ -} -void SettingsCache::setSeenTips(const QList & /* _seenTips */) -{ -} -void SettingsCache::setDeckPath(const QString & /* _deckPath */) -{ -} -void SettingsCache::setFiltersPath(const QString & /*_filtersPath */) -{ -} -void SettingsCache::setReplaysPath(const QString & /* _replaysPath */) -{ -} -void SettingsCache::setThemesPath(const QString & /* _themesPath */) -{ -} -void SettingsCache::setPicsPath(const QString & /* _picsPath */) -{ -} -void SettingsCache::setCardDatabasePath(const QString & /* _cardDatabasePath */) -{ -} -void SettingsCache::setCustomCardDatabasePath(const QString & /* _customCardDatabasePath */) -{ -} -void SettingsCache::setSpoilerDatabasePath(const QString & /* _spoilerDatabasePath */) -{ -} -void SettingsCache::setTokenDatabasePath(const QString & /* _tokenDatabasePath */) -{ -} -void SettingsCache::setThemeName(const QString & /* _themeName */) -{ -} -void SettingsCache::setHomeTabBackgroundSource(const QString & /* _backgroundSource */) -{ -} -void SettingsCache::setHomeTabBackgroundShuffleFrequency(int /* frequency */) -{ -} -void SettingsCache::setTabVisualDeckStorageOpen(bool /*value*/) -{ -} -void SettingsCache::setTabServerOpen(bool /*value*/) -{ -} -void SettingsCache::setTabAccountOpen(bool /*value*/) -{ -} -void SettingsCache::setTabDeckStorageOpen(bool /*value*/) -{ -} -void SettingsCache::setTabReplaysOpen(bool /*value*/) -{ -} -void SettingsCache::setTabAdminOpen(bool /*value*/) -{ -} -void SettingsCache::setTabLogOpen(bool /*value*/) -{ -} -void SettingsCache::setPicDownload(QT_STATE_CHANGED_T /* _picDownload */) -{ -} -void SettingsCache::setShowStatusBar(bool /* value */) -{ -} -void SettingsCache::setNotificationsEnabled(QT_STATE_CHANGED_T /* _notificationsEnabled */) -{ -} -void SettingsCache::setSpectatorNotificationsEnabled(QT_STATE_CHANGED_T /* _spectatorNotificationsEnabled */) -{ -} -void SettingsCache::setBuddyConnectNotificationsEnabled(QT_STATE_CHANGED_T /* _buddyConnectNotificationsEnabled */) -{ -} -void SettingsCache::setDoubleClickToPlay(QT_STATE_CHANGED_T /* _doubleClickToPlay */) -{ -} -void SettingsCache::setClickPlaysAllSelected(QT_STATE_CHANGED_T /* _clickPlaysAllSelected */) -{ -} -void SettingsCache::setPlayToStack(QT_STATE_CHANGED_T /* _playToStack */) -{ -} -void SettingsCache::setStartingHandSize(int /* _startingHandSize */) -{ -} -void SettingsCache::setAnnotateTokens(QT_STATE_CHANGED_T /* _annotateTokens */) -{ -} -void SettingsCache::setTabGameSplitterSizes(const QByteArray & /* _tabGameSplitterSizes */) -{ -} -void SettingsCache::setShowShortcuts(QT_STATE_CHANGED_T /* _showShortcuts */) -{ -} -void SettingsCache::setDisplayCardNames(QT_STATE_CHANGED_T /* _displayCardNames */) -{ -} -void SettingsCache::setOverrideAllCardArtWithPersonalPreference(QT_STATE_CHANGED_T /* _overrideAllCardArt */) -{ -} -void SettingsCache::setBumpSetsWithCardsInDeckToTop(QT_STATE_CHANGED_T /* _bumpSetsWithCardsInDeckToTop */) -{ -} -void SettingsCache::setPrintingSelectorSortOrder(int /* _printingSelectorSortOrder */) -{ -} -void SettingsCache::setPrintingSelectorCardSize(int /* _printingSelectorCardSize */) -{ -} -void SettingsCache::setIncludeRebalancedCards(bool /* _includeRebalancedCards */) -{ -} -void SettingsCache::setPrintingSelectorNavigationButtonsVisible(QT_STATE_CHANGED_T /* _navigationButtonsVisible */) -{ -} -void SettingsCache::setDeckEditorBannerCardComboBoxVisible( - QT_STATE_CHANGED_T /* _deckEditorBannerCardComboBoxVisible */) -{ -} -void SettingsCache::setDeckEditorTagsWidgetVisible(QT_STATE_CHANGED_T /* _deckEditorTagsWidgetVisible */) -{ -} -void SettingsCache::setVisualDeckStorageSortingOrder(int /* _visualDeckStorageSortingOrder */) -{ -} -void SettingsCache::setVisualDeckStorageShowFolders(QT_STATE_CHANGED_T /* value */) -{ -} -void SettingsCache::setVisualDeckStorageShowTagFilter(QT_STATE_CHANGED_T /* _showTags */) -{ -} -void SettingsCache::setVisualDeckStorageDefaultTagsList(QStringList /* _defaultTagsList */) -{ -} -void SettingsCache::setVisualDeckStorageSearchFolderNames(QT_STATE_CHANGED_T /* value */) -{ -} -void SettingsCache::setVisualDeckStorageShowBannerCardComboBox(QT_STATE_CHANGED_T /* _showBannerCardComboBox */) -{ -} -void SettingsCache::setVisualDeckStorageShowTagsOnDeckPreviews(QT_STATE_CHANGED_T /* _showTags */) -{ -} -void SettingsCache::setVisualDeckStorageCardSize(int /* _visualDeckStorageCardSize */) -{ -} -void SettingsCache::setVisualDeckStorageDrawUnusedColorIdentities( - QT_STATE_CHANGED_T /* _visualDeckStorageDrawUnusedColorIdentities */) -{ -} -void SettingsCache::setVisualDeckStorageUnusedColorIdentitiesOpacity( - int /* _visualDeckStorageUnusedColorIdentitiesOpacity */) -{ -} -void SettingsCache::setVisualDeckStorageTooltipType(int /* value */) -{ -} -void SettingsCache::setVisualDeckStoragePromptForConversion(bool /* _visualDeckStoragePromptForConversion */) -{ -} -void SettingsCache::setVisualDeckStorageAlwaysConvert(bool /* _visualDeckStorageAlwaysConvert */) -{ -} -void SettingsCache::setVisualDeckStorageInGame(QT_STATE_CHANGED_T /* value */) -{ -} -void SettingsCache::setVisualDeckStorageSelectionAnimation(QT_STATE_CHANGED_T /* value */) -{ -} -void SettingsCache::setDefaultDeckEditorType(int /* value */) -{ -} -void SettingsCache::setVisualDatabaseDisplayFilterToMostRecentSetsEnabled(QT_STATE_CHANGED_T /* _enabled */) -{ -} -void SettingsCache::setVisualDatabaseDisplayFilterToMostRecentSetsAmount(int /* _amount */) -{ -} -void SettingsCache::setVisualDeckEditorSampleHandSize(int /* _amount */) -{ -} -void SettingsCache::setHorizontalHand(QT_STATE_CHANGED_T /* _horizontalHand */) -{ -} -void SettingsCache::setInvertVerticalCoordinate(QT_STATE_CHANGED_T /* _invertVerticalCoordinate */) -{ -} -void SettingsCache::setMinPlayersForMultiColumnLayout(int /* _minPlayersForMultiColumnLayout */) -{ -} -void SettingsCache::setTapAnimation(QT_STATE_CHANGED_T /* _tapAnimation */) -{ -} -void SettingsCache::setAutoRotateSidewaysLayoutCards(QT_STATE_CHANGED_T /* _autoRotateSidewaysLayoutCards */) -{ -} -void SettingsCache::setOpenDeckInNewTab(QT_STATE_CHANGED_T /* _openDeckInNewTab */) -{ -} -void SettingsCache::setRewindBufferingMs(int /* _rewindBufferingMs */) -{ -} -void SettingsCache::setChatMention(QT_STATE_CHANGED_T /* _chatMention */) -{ -} -void SettingsCache::setChatMentionCompleter(const QT_STATE_CHANGED_T /* _enableMentionCompleter */) -{ -} -void SettingsCache::setChatMentionForeground(QT_STATE_CHANGED_T /* _chatMentionForeground */) -{ -} -void SettingsCache::setChatHighlightForeground(QT_STATE_CHANGED_T /* _chatHighlightForeground */) -{ -} -void SettingsCache::setChatMentionColor(const QString & /* _chatMentionColor */) -{ -} -void SettingsCache::setChatHighlightColor(const QString & /* _chatHighlightColor */) -{ -} -void SettingsCache::setZoneViewGroupByIndex(int /* _zoneViewGroupByIndex */) -{ -} -void SettingsCache::setZoneViewSortByIndex(int /* _zoneViewSortByIndex */) -{ -} -void SettingsCache::setZoneViewPileView(QT_STATE_CHANGED_T /* _zoneViewPileView */) -{ -} -void SettingsCache::setSoundEnabled(QT_STATE_CHANGED_T /* _soundEnabled */) -{ -} -void SettingsCache::setSoundThemeName(const QString & /* _soundThemeName */) -{ -} -void SettingsCache::setIgnoreUnregisteredUsers(QT_STATE_CHANGED_T /* _ignoreUnregisteredUsers */) -{ -} -void SettingsCache::setIgnoreUnregisteredUserMessages(QT_STATE_CHANGED_T /* _ignoreUnregisteredUserMessages */) -{ -} -void SettingsCache::setMainWindowGeometry(const QByteArray & /* _mainWindowGeometry */) -{ -} -void SettingsCache::setTokenDialogGeometry(const QByteArray & /* _tokenDialogGeometry */) -{ -} -void SettingsCache::setSetsDialogGeometry(const QByteArray & /* _setsDialogGeometry */) -{ -} -void SettingsCache::setPixmapCacheSize(const int /* _pixmapCacheSize */) -{ -} -void SettingsCache::setNetworkCacheSizeInMB(const int /* _networkCacheSize */) -{ -} -void SettingsCache::setNetworkRedirectCacheTtl(const int /* _redirectCacheTtl */) -{ -} -void SettingsCache::setClientID(const QString & /* _clientID */) -{ -} -void SettingsCache::setClientVersion(const QString & /* _clientVersion */) -{ -} -QStringList SettingsCache::getCountries() const -{ - static QStringList countries = QStringList() << "us"; - return countries; -} -void SettingsCache::setGameDescription(const QString /* _gameDescription */) -{ -} -void SettingsCache::setMaxPlayers(const int /* _maxPlayers */) -{ -} -void SettingsCache::setGameTypes(const QString /* _gameTypes */) -{ -} -void SettingsCache::setOnlyBuddies(const bool /* _onlyBuddies */) -{ -} -void SettingsCache::setOnlyRegistered(const bool /* _onlyRegistered */) -{ -} -void SettingsCache::setSpectatorsAllowed(const bool /* _spectatorsAllowed */) -{ -} -void SettingsCache::setSpectatorsNeedPassword(const bool /* _spectatorsNeedPassword */) -{ -} -void SettingsCache::setSpectatorsCanTalk(const bool /* _spectatorsCanTalk */) -{ -} -void SettingsCache::setSpectatorsCanSeeEverything(const bool /* _spectatorsCanSeeEverything */) -{ -} -void SettingsCache::setCreateGameAsSpectator(const bool /* _createGameAsSpectator */) -{ -} -void SettingsCache::setDefaultStartingLifeTotal(const int /* _startingLifeTotal */) -{ -} -void SettingsCache::setShareDecklistsOnLoad(const bool /* _shareDecklistsOnLoad */) -{ -} -void SettingsCache::setRememberGameSettings(const bool /* _rememberGameSettings */) -{ -} -void SettingsCache::setCheckUpdatesOnStartup(QT_STATE_CHANGED_T /* value */) -{ -} -void SettingsCache::setStartupCardUpdateCheckPromptForUpdate(bool /* value */) -{ -} -void SettingsCache::setStartupCardUpdateCheckAlwaysUpdate(bool /* value */) -{ -} -void SettingsCache::setCardUpdateCheckInterval(int /* value */) -{ -} -void SettingsCache::setLastCardUpdateCheck(QDate /* value */) -{ -} -void SettingsCache::setNotifyAboutUpdate(QT_STATE_CHANGED_T /* _notifyaboutupdate */) -{ -} -void SettingsCache::setNotifyAboutNewVersion(QT_STATE_CHANGED_T /* _notifyaboutnewversion */) -{ -} -void SettingsCache::setDownloadSpoilerStatus(bool /* _spoilerStatus */) -{ -} -void SettingsCache::setUpdateReleaseChannelIndex(int /* value */) -{ -} -void SettingsCache::setMaxFontSize(int /* _max */) -{ -} -void SettingsCache::setRoundCardCorners(bool /* _roundCardCorners */) -{ -} - void CardPictureLoader::clearPixmapCache(CardInfoPtr /* card */) { } - -SettingsCache *settingsCache; - -SettingsCache &SettingsCache::instance() -{ - return *settingsCache; -} diff --git a/tests/carddatabase/mocks.h b/tests/carddatabase/mocks.h index 497f76e72..016642005 100644 --- a/tests/carddatabase/mocks.h +++ b/tests/carddatabase/mocks.h @@ -5,16 +5,9 @@ * with mocked objects. */ -#include -#include - #define PICTURELOADER_H #include -#include -#include - -extern SettingsCache *settingsCache; class CardPictureLoader { diff --git a/tests/carddatabase/test_card_database_path_provider.h b/tests/carddatabase/test_card_database_path_provider.h new file mode 100644 index 000000000..8fc8ef962 --- /dev/null +++ b/tests/carddatabase/test_card_database_path_provider.h @@ -0,0 +1,28 @@ +#ifndef COCKATRICE_TEST_CARD_DATABASE_PATH_PROVIDER_H +#define COCKATRICE_TEST_CARD_DATABASE_PATH_PROVIDER_H + +#include + +class TestCardDatabasePathProvider : public ICardDatabasePathProvider +{ + +public: + QString getCardDatabasePath() const override + { + return QString("%1/cards.xml").arg(CARDDB_DATADIR); + } + QString getCustomCardDatabasePath() const override + { + return QString("%1/customsets/").arg(CARDDB_DATADIR); + } + QString getTokenDatabasePath() const override + { + return QString("%1/tokens.xml").arg(CARDDB_DATADIR); + } + QString getSpoilerCardDatabasePath() const override + { + return QString("%1/spoiler.xml").arg(CARDDB_DATADIR); + } +}; + +#endif // COCKATRICE_TEST_CARD_DATABASE_PATH_PROVIDER_H