Merge branch 'master' into tooomm-qt5

This commit is contained in:
tooomm 2026-08-02 21:55:20 +02:00 • committed by GitHub
commit 4fba3c31f2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
275 changed files with 66660 additions and 44237 deletions

View file

@ -3,10 +3,21 @@ set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)
set(HEADERS
libcockatrice/interfaces/interface_cache_storage_settings_provider.h
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_cards_display_settings_provider.h
libcockatrice/interfaces/interface_chat_settings_provider.h
libcockatrice/interfaces/interface_game_settings_provider.h
libcockatrice/interfaces/interface_interface_settings_provider.h
libcockatrice/interfaces/interface_network_settings_provider.h
libcockatrice/interfaces/interface_paths_settings_provider.h
libcockatrice/interfaces/interface_personal_settings_provider.h
libcockatrice/interfaces/interface_sound_settings_provider.h
libcockatrice/interfaces/interface_tabs_settings_provider.h
libcockatrice/interfaces/interface_updates_settings_provider.h
libcockatrice/interfaces/interface_visual_deck_storage_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

View file

@ -0,0 +1,14 @@
#ifndef COCKATRICE_INTERFACE_CACHE_STORAGE_SETTINGS_PROVIDER_H
#define COCKATRICE_INTERFACE_CACHE_STORAGE_SETTINGS_PROVIDER_H
class ICacheStorageSettingsProvider
{
public:
virtual ~ICacheStorageSettingsProvider() = default;
[[nodiscard]] virtual int getPixmapCacheSize() const = 0;
[[nodiscard]] virtual int getNetworkCacheSizeInMB() const = 0;
[[nodiscard]] virtual int getRedirectCacheTtl() const = 0;
};
#endif // COCKATRICE_INTERFACE_CACHE_STORAGE_SETTINGS_PROVIDER_H

View file

@ -13,6 +13,22 @@ public:
bool enabled;
};
/**
* @brief Bundled per-set priority options, returned in a single call.
*
* Reading these individually (getSortKey/isEnabled/isKnown) is cheap for the
* noop controller but extremely expensive when backed by QSettings, which
* re-opens and re-parses the whole .ini on every access. Callers that need
* more than one option for the same set (notably CardSet construction during
* database load) should use getSetOptions() to avoid that cost.
*/
struct SetOptions
{
unsigned int sortKey = 0;
bool enabled = false;
bool isKnown = false;
};
virtual ~ICardSetPriorityController() = default;
virtual void setSortKey(QString shortName, unsigned int sortKey) = 0;
@ -23,6 +39,13 @@ public:
virtual bool isEnabled(QString shortName) const = 0;
virtual bool isKnown(QString shortName) const = 0;
/**
* @brief Returns the bundled priority options for a set in a single call.
* @param shortName The set's short name.
* @return The sort key, enabled and known flags for the set.
*/
virtual SetOptions getSetOptions(QString shortName) const = 0;
virtual void saveSets(const QVector<SetSaveData> &data) = 0;
};

View file

@ -0,0 +1,28 @@
#ifndef COCKATRICE_INTERFACE_CARDS_DISPLAY_SETTINGS_PROVIDER_H
#define COCKATRICE_INTERFACE_CARDS_DISPLAY_SETTINGS_PROVIDER_H
class ICardsDisplaySettingsProvider
{
public:
virtual ~ICardsDisplaySettingsProvider() = default;
[[nodiscard]] virtual bool getDisplayCardNames() const = 0;
[[nodiscard]] virtual bool getRoundCardCorners() const = 0;
[[nodiscard]] virtual bool getOverrideAllCardArtWithPersonalPreference() const = 0;
[[nodiscard]] virtual bool getBumpSetsWithCardsInDeckToTop() const = 0;
[[nodiscard]] virtual int getPrintingSelectorSortOrder() const = 0;
[[nodiscard]] virtual int getPrintingSelectorCardSize() const = 0;
[[nodiscard]] virtual bool getIncludeRebalancedCards() const = 0;
[[nodiscard]] virtual bool getPrintingSelectorNavigationButtonsVisible() const = 0;
[[nodiscard]] virtual bool getDeckEditorBannerCardComboBoxVisible() const = 0;
[[nodiscard]] virtual bool getDeckEditorTagsWidgetVisible() const = 0;
[[nodiscard]] virtual bool getTapAnimation() const = 0;
[[nodiscard]] virtual bool getAutoRotateSidewaysLayoutCards() const = 0;
[[nodiscard]] virtual bool getScaleCards() const = 0;
[[nodiscard]] virtual int getStackCardOverlapPercent() const = 0;
[[nodiscard]] virtual int getCardInfoViewMode() const = 0;
[[nodiscard]] virtual bool getShowShortcuts() const = 0;
[[nodiscard]] virtual bool getShowGameSelectorFilterToolbar() const = 0;
};
#endif // COCKATRICE_INTERFACE_CARDS_DISPLAY_SETTINGS_PROVIDER_H

View file

@ -0,0 +1,26 @@
#ifndef COCKATRICE_INTERFACE_CHAT_SETTINGS_PROVIDER_H
#define COCKATRICE_INTERFACE_CHAT_SETTINGS_PROVIDER_H
#include <QString>
class IChatSettingsProvider
{
public:
virtual ~IChatSettingsProvider() = default;
[[nodiscard]] virtual bool getChatMention() const = 0;
[[nodiscard]] virtual bool getChatMentionCompleter() const = 0;
[[nodiscard]] virtual QString getChatMentionColor() const = 0;
[[nodiscard]] virtual QString getChatHighlightColor() const = 0;
[[nodiscard]] virtual bool getChatMentionForeground() const = 0;
[[nodiscard]] virtual bool getChatHighlightForeground() const = 0;
[[nodiscard]] virtual bool getIgnoreUnregisteredUsers() const = 0;
[[nodiscard]] virtual bool getIgnoreUnregisteredUserMessages() const = 0;
[[nodiscard]] virtual bool getIgnoreNonBuddyUserMessages() const = 0;
[[nodiscard]] virtual bool getShowMessagePopup() const = 0;
[[nodiscard]] virtual bool getShowMentionPopup() const = 0;
[[nodiscard]] virtual bool getRoomHistory() const = 0;
[[nodiscard]] virtual QString getHighlightWords() const = 0;
};
#endif // COCKATRICE_INTERFACE_CHAT_SETTINGS_PROVIDER_H

View file

@ -0,0 +1,29 @@
#ifndef COCKATRICE_INTERFACE_GAME_SETTINGS_PROVIDER_H
#define COCKATRICE_INTERFACE_GAME_SETTINGS_PROVIDER_H
#include <QString>
class IGameSettingsProvider
{
public:
virtual ~IGameSettingsProvider() = default;
[[nodiscard]] virtual QString getGameDescription() const = 0;
[[nodiscard]] virtual int getMaxPlayers() const = 0;
[[nodiscard]] virtual QString getGameTypes() const = 0;
[[nodiscard]] virtual bool getOnlyBuddies() const = 0;
[[nodiscard]] virtual bool getOnlyRegistered() const = 0;
[[nodiscard]] virtual bool getSpectatorsAllowed() const = 0;
[[nodiscard]] virtual bool getSpectatorsNeedPassword() const = 0;
[[nodiscard]] virtual bool getSpectatorsCanTalk() const = 0;
[[nodiscard]] virtual bool getSpectatorsCanSeeEverything() const = 0;
[[nodiscard]] virtual bool getCreateGameAsSpectator() const = 0;
[[nodiscard]] virtual int getDefaultStartingLifeTotal() const = 0;
[[nodiscard]] virtual bool getShareDecklistsOnLoad() const = 0;
[[nodiscard]] virtual bool getRememberGameSettings() const = 0;
[[nodiscard]] virtual bool getLocalGameRememberSettings() const = 0;
[[nodiscard]] virtual int getLocalGameMaxPlayers() const = 0;
[[nodiscard]] virtual int getLocalGameStartingLifeTotal() const = 0;
};
#endif // COCKATRICE_INTERFACE_GAME_SETTINGS_PROVIDER_H

View file

@ -0,0 +1,43 @@
#ifndef COCKATRICE_INTERFACE_INTERFACE_SETTINGS_PROVIDER_H
#define COCKATRICE_INTERFACE_INTERFACE_SETTINGS_PROVIDER_H
#include <QString>
class IInterfaceSettingsProvider
{
public:
virtual ~IInterfaceSettingsProvider() = default;
[[nodiscard]] virtual bool getUseTearOffMenus() const = 0;
[[nodiscard]] virtual int getCardViewInitialRowsMax() const = 0;
[[nodiscard]] virtual int getCardViewExpandedRowsMax() const = 0;
[[nodiscard]] virtual bool getCloseEmptyCardView() const = 0;
[[nodiscard]] virtual bool getFocusCardViewSearchBar() const = 0;
[[nodiscard]] virtual bool getKeepGameChatFocus() const = 0;
[[nodiscard]] virtual bool getNotificationsEnabled() const = 0;
[[nodiscard]] virtual bool getSpectatorNotificationsEnabled() const = 0;
[[nodiscard]] virtual bool getBuddyConnectNotificationsEnabled() const = 0;
[[nodiscard]] virtual bool getDoubleClickToPlay() const = 0;
[[nodiscard]] virtual bool getClickPlaysAllSelected() const = 0;
[[nodiscard]] virtual bool getPlayToStack() const = 0;
[[nodiscard]] virtual bool getDoNotDeleteArrowsInSubPhases() const = 0;
[[nodiscard]] virtual int getStartingHandSize() const = 0;
[[nodiscard]] virtual bool getAnnotateTokens() const = 0;
[[nodiscard]] virtual bool getShowDragSelectionCount() const = 0;
[[nodiscard]] virtual bool getShowTotalSelectionCount() const = 0;
[[nodiscard]] virtual int getTallyType() const = 0;
[[nodiscard]] virtual bool getHorizontalHand() const = 0;
[[nodiscard]] virtual bool getInvertVerticalCoordinate() const = 0;
[[nodiscard]] virtual int getMinPlayersForMultiColumnLayout() const = 0;
[[nodiscard]] virtual bool getOpenDeckInNewTab() const = 0;
[[nodiscard]] virtual int getRewindBufferingMs() const = 0;
[[nodiscard]] virtual qreal getFastForwardSpeed() const = 0;
[[nodiscard]] virtual bool getStyleUserList() const = 0;
[[nodiscard]] virtual bool getLeftJustified() const = 0;
[[nodiscard]] virtual int getZoneViewGroupByIndex() const = 0;
[[nodiscard]] virtual int getZoneViewSortByIndex() const = 0;
[[nodiscard]] virtual bool getZoneViewPileView() const = 0;
[[nodiscard]] virtual QString getKnownMissingFeatures() = 0;
};
#endif // COCKATRICE_INTERFACE_INTERFACE_SETTINGS_PROVIDER_H

View file

@ -0,0 +1,24 @@
#ifndef COCKATRICE_INTERFACE_PATHS_SETTINGS_PROVIDER_H
#define COCKATRICE_INTERFACE_PATHS_SETTINGS_PROVIDER_H
#include <QString>
class IPathsSettingsProvider
{
public:
virtual ~IPathsSettingsProvider() = default;
[[nodiscard]] virtual QString getDeckPath() const = 0;
[[nodiscard]] virtual QString getFiltersPath() const = 0;
[[nodiscard]] virtual QString getReplaysPath() const = 0;
[[nodiscard]] virtual QString getPicsPath() const = 0;
[[nodiscard]] virtual QString getCustomPicsPath() const = 0;
[[nodiscard]] virtual QString getThemesPath() const = 0;
[[nodiscard]] virtual QString getCardDatabasePath() const = 0;
[[nodiscard]] virtual QString getCustomCardDatabasePath() const = 0;
[[nodiscard]] virtual QString getTokenDatabasePath() const = 0;
[[nodiscard]] virtual QString getSpoilerCardDatabasePath() const = 0;
[[nodiscard]] virtual QString getRedirectCachePath() const = 0;
};
#endif // COCKATRICE_INTERFACE_PATHS_SETTINGS_PROVIDER_H

View file

@ -0,0 +1,30 @@
#ifndef COCKATRICE_INTERFACE_PERSONAL_SETTINGS_PROVIDER_H
#define COCKATRICE_INTERFACE_PERSONAL_SETTINGS_PROVIDER_H
#include <QDate>
#include <QList>
#include <QString>
class IPersonalSettingsProvider
{
public:
virtual ~IPersonalSettingsProvider() = default;
[[nodiscard]] virtual QString getLang() const = 0;
[[nodiscard]] virtual QString getClientID() = 0;
[[nodiscard]] virtual QString getClientVersion() = 0;
[[nodiscard]] virtual int getKeepAlive() const = 0;
[[nodiscard]] virtual int getTimeOut() const = 0;
[[nodiscard]] virtual bool getPicDownload() const = 0;
[[nodiscard]] virtual bool getShowStatusBar() const = 0;
[[nodiscard]] virtual int getMaxFontSize() const = 0;
[[nodiscard]] virtual QString getHighlightWords() const = 0;
[[nodiscard]] virtual QString getHomeTabBackgroundSource() const = 0;
[[nodiscard]] virtual int getHomeTabBackgroundShuffleFrequency() const = 0;
[[nodiscard]] virtual bool getHomeTabDisplayCardName() const = 0;
[[nodiscard]] virtual bool getShowTipsOnStartup() const = 0;
[[nodiscard]] virtual QList<int> getSeenTips() const = 0;
[[nodiscard]] virtual bool getDownloadSpoilersStatus() const = 0;
};
#endif // COCKATRICE_INTERFACE_PERSONAL_SETTINGS_PROVIDER_H

View file

@ -0,0 +1,16 @@
#ifndef COCKATRICE_INTERFACE_SOUND_SETTINGS_PROVIDER_H
#define COCKATRICE_INTERFACE_SOUND_SETTINGS_PROVIDER_H
#include <QString>
class ISoundSettingsProvider
{
public:
virtual ~ISoundSettingsProvider() = default;
[[nodiscard]] virtual bool getSoundEnabled() const = 0;
[[nodiscard]] virtual QString getSoundThemeName() const = 0;
[[nodiscard]] virtual int getMasterVolume() const = 0;
};
#endif // COCKATRICE_INTERFACE_SOUND_SETTINGS_PROVIDER_H

View file

@ -0,0 +1,18 @@
#ifndef COCKATRICE_INTERFACE_TABS_SETTINGS_PROVIDER_H
#define COCKATRICE_INTERFACE_TABS_SETTINGS_PROVIDER_H
class ITabsSettingsProvider
{
public:
virtual ~ITabsSettingsProvider() = default;
[[nodiscard]] virtual bool getTabVisualDeckStorageOpen() const = 0;
[[nodiscard]] virtual bool getTabServerOpen() const = 0;
[[nodiscard]] virtual bool getTabAccountOpen() const = 0;
[[nodiscard]] virtual bool getTabDeckStorageOpen() const = 0;
[[nodiscard]] virtual bool getTabReplaysOpen() const = 0;
[[nodiscard]] virtual bool getTabAdminOpen() const = 0;
[[nodiscard]] virtual bool getTabLogOpen() const = 0;
};
#endif // COCKATRICE_INTERFACE_TABS_SETTINGS_PROVIDER_H

View file

@ -0,0 +1,23 @@
#ifndef COCKATRICE_INTERFACE_UPDATES_SETTINGS_PROVIDER_H
#define COCKATRICE_INTERFACE_UPDATES_SETTINGS_PROVIDER_H
#include <QDate>
class IUpdatesSettingsProvider
{
public:
virtual ~IUpdatesSettingsProvider() = default;
[[nodiscard]] virtual bool getCheckUpdatesOnStartup() const = 0;
[[nodiscard]] virtual bool getStartupCardUpdateCheckPromptForUpdate() = 0;
[[nodiscard]] virtual bool getStartupCardUpdateCheckAlwaysUpdate() = 0;
[[nodiscard]] virtual int getCardUpdateCheckInterval() const = 0;
[[nodiscard]] virtual QDate getLastCardUpdateCheck() const = 0;
[[nodiscard]] virtual bool getCardUpdateCheckRequired() const = 0;
[[nodiscard]] virtual bool getAlwaysEnableNewSets() const = 0;
[[nodiscard]] virtual bool getNotifyAboutUpdates() const = 0;
[[nodiscard]] virtual bool getNotifyAboutNewVersion() const = 0;
[[nodiscard]] virtual int getUpdateReleaseChannelIndex() const = 0;
};
#endif // COCKATRICE_INTERFACE_UPDATES_SETTINGS_PROVIDER_H

View file

@ -0,0 +1,37 @@
#ifndef COCKATRICE_INTERFACE_VISUAL_DECK_STORAGE_SETTINGS_PROVIDER_H
#define COCKATRICE_INTERFACE_VISUAL_DECK_STORAGE_SETTINGS_PROVIDER_H
#include <QStringList>
class IVisualDeckStorageSettingsProvider
{
public:
virtual ~IVisualDeckStorageSettingsProvider() = default;
[[nodiscard]] virtual int getVisualDeckStorageSortingOrder() const = 0;
[[nodiscard]] virtual bool getVisualDeckStorageShowFolders() const = 0;
[[nodiscard]] virtual bool getVisualDeckStorageShowTagFilter() const = 0;
[[nodiscard]] virtual QStringList getVisualDeckStorageDefaultTagsList() const = 0;
[[nodiscard]] virtual bool getVisualDeckStorageSearchFolderNames() const = 0;
[[nodiscard]] virtual bool getVisualDeckStorageShowColorIdentity() const = 0;
[[nodiscard]] virtual bool getVisualDeckStorageShowBannerCardComboBox() const = 0;
[[nodiscard]] virtual bool getVisualDeckStorageShowTagsOnDeckPreviews() const = 0;
[[nodiscard]] virtual int getVisualDeckStorageCardSize() const = 0;
[[nodiscard]] virtual bool getVisualDeckStorageDrawUnusedColorIdentities() const = 0;
[[nodiscard]] virtual int getVisualDeckStorageUnusedColorIdentitiesOpacity() const = 0;
[[nodiscard]] virtual int getVisualDeckStorageTooltipType() const = 0;
[[nodiscard]] virtual bool getVisualDeckStoragePromptForConversion() const = 0;
[[nodiscard]] virtual bool getVisualDeckStorageAlwaysConvert() const = 0;
[[nodiscard]] virtual bool getVisualDeckStorageInGame() const = 0;
[[nodiscard]] virtual bool getVisualDeckStorageSelectionAnimation() const = 0;
[[nodiscard]] virtual int getVisualDeckEditorCardSize() const = 0;
[[nodiscard]] virtual int getVisualDeckEditorSampleHandSize() const = 0;
[[nodiscard]] virtual int getVisualDatabaseDisplayCardSize() const = 0;
[[nodiscard]] virtual bool getVisualDatabaseDisplayFilterToMostRecentSetsEnabled() const = 0;
[[nodiscard]] virtual int getVisualDatabaseDisplayFilterToMostRecentSetsAmount() const = 0;
[[nodiscard]] virtual int getEDHRecCardSize() const = 0;
[[nodiscard]] virtual int getArchidektPreviewSize() const = 0;
[[nodiscard]] virtual int getDefaultDeckEditorType() const = 0;
};
#endif // COCKATRICE_INTERFACE_VISUAL_DECK_STORAGE_SETTINGS_PROVIDER_H

View file

@ -29,6 +29,11 @@ public:
return true;
}
SetOptions getSetOptions(QString /* shortName */) const override
{
return {0, true, true};
}
void saveSets(const QVector<SetSaveData> & /* data */) override
{
}