diff --git a/README.md b/README.md
index 3e415fa23..b1233f749 100644
--- a/README.md
+++ b/README.md
@@ -46,7 +46,8 @@ Latest beta version:
- [Magic-Token](https://github.com/Cockatrice/Magic-Token): MtG token data to use in Cockatrice
- [Magic-Spoiler](https://github.com/Cockatrice/Magic-Spoiler): Script to generate MtG spoiler data from [MTGJSON](https://github.com/mtgjson/mtgjson) to use in Cockatrice
-- [cockatrice.github.io](https://github.com/Cockatrice/cockatrice.github.io): Code of the official webpage of the Cockatrice project
+- [cockatrice.github.io](https://github.com/Cockatrice/cockatrice.github.io): Code of the official Cockatrice webpage
+- [Cockatrice @Flathub](https://github.com/flathub/io.github.Cockatrice.cockatrice): Configuration for our Linux `flatpak` package
# Community Resources [](https://discord.gg/3Z9yzmA)
@@ -54,6 +55,7 @@ Latest beta version:
Join our [Discord community](https://discord.gg/3Z9yzmA) to connect with other projet contributors (`#dev` channel) or fellow users of the app. Come here to talk about the application, features, or just to hang out.
- [Official Website](https://cockatrice.github.io)
- [Official Wiki](https://github.com/Cockatrice/Cockatrice/wiki)
+- [Official Code Documentation](https://cockatrice.github.io/docs)
- [Official Discord](https://discord.gg/3Z9yzmA)
- [reddit r/Cockatrice](https://reddit.com/r/cockatrice)
diff --git a/cockatrice/CMakeLists.txt b/cockatrice/CMakeLists.txt
index 522300346..c9fa80e6b 100644
--- a/cockatrice/CMakeLists.txt
+++ b/cockatrice/CMakeLists.txt
@@ -19,7 +19,10 @@ set(cockatrice_SOURCES
src/client/settings/card_counter_settings.cpp
src/client/settings/shortcut_treeview.cpp
src/client/settings/shortcuts_settings.cpp
+ src/interface/deck_loader/card_node_function.cpp
+ src/interface/deck_loader/deck_file_format.cpp
src/interface/deck_loader/deck_loader.cpp
+ src/interface/deck_loader/loaded_deck.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
@@ -142,6 +145,7 @@ set(cockatrice_SOURCES
src/interface/widgets/cards/deck_card_zone_display_widget.cpp
src/interface/widgets/cards/deck_preview_card_picture_widget.cpp
src/interface/widgets/deck_analytics/deck_analytics_widget.cpp
+ src/interface/widgets/deck_analytics/deck_list_statistics_analyzer.cpp
src/interface/widgets/deck_analytics/mana_base_widget.cpp
src/interface/widgets/deck_analytics/mana_curve_widget.cpp
src/interface/widgets/deck_analytics/mana_devotion_widget.cpp
@@ -153,8 +157,10 @@ set(cockatrice_SOURCES
src/interface/widgets/deck_editor/deck_editor_printing_selector_dock_widget.cpp
src/interface/widgets/deck_editor/deck_list_style_proxy.cpp
src/interface/widgets/general/background_sources.cpp
+ src/interface/widgets/general/display/background_plate_widget.cpp
src/interface/widgets/general/display/banner_widget.cpp
src/interface/widgets/general/display/bar_widget.cpp
+ src/interface/widgets/general/display/color_bar.cpp
src/interface/widgets/general/display/dynamic_font_size_label.cpp
src/interface/widgets/general/display/dynamic_font_size_push_button.cpp
src/interface/widgets/general/display/labeled_input.cpp
@@ -196,12 +202,14 @@ set(cockatrice_SOURCES
src/interface/widgets/utility/sequence_edit.cpp
src/interface/widgets/visual_database_display/visual_database_display_color_filter_widget.cpp
src/interface/widgets/visual_database_display/visual_database_display_filter_save_load_widget.cpp
+ src/interface/widgets/visual_database_display/visual_database_display_format_legality_filter_widget.cpp
src/interface/widgets/visual_database_display/visual_database_display_main_type_filter_widget.cpp
src/interface/widgets/visual_database_display/visual_database_display_name_filter_widget.cpp
src/interface/widgets/visual_database_display/visual_database_display_set_filter_widget.cpp
src/interface/widgets/visual_database_display/visual_database_display_sub_type_filter_widget.cpp
src/interface/widgets/visual_database_display/visual_database_display_widget.cpp
src/interface/widgets/visual_database_display/visual_database_filter_display_widget.cpp
+ src/interface/widgets/visual_deck_editor/visual_deck_display_options_widget.cpp
src/interface/widgets/visual_deck_editor/visual_deck_editor_sample_hand_widget.cpp
src/interface/widgets/visual_deck_editor/visual_deck_editor_widget.cpp
src/interface/widgets/visual_deck_storage/deck_preview/deck_preview_color_identity_filter_widget.cpp
@@ -220,6 +228,19 @@ set(cockatrice_SOURCES
src/interface/window_main.cpp
src/main.cpp
src/interface/widgets/tabs/abstract_tab_deck_editor.cpp
+ src/interface/widgets/tabs/api/archidekt/tab_archidekt.cpp
+ src/interface/widgets/tabs/api/archidekt/api_response/archidekt_deck_listing_api_response.cpp
+ src/interface/widgets/tabs/api/archidekt/api_response/card/archidekt_api_response_card.cpp
+ src/interface/widgets/tabs/api/archidekt/api_response/card/archidekt_api_response_card_entry.cpp
+ src/interface/widgets/tabs/api/archidekt/api_response/card/archidekt_api_response_edition.cpp
+ src/interface/widgets/tabs/api/archidekt/api_response/deck/archidekt_api_response_deck.cpp
+ src/interface/widgets/tabs/api/archidekt/api_response/deck/archidekt_api_response_deck_category.cpp
+ src/interface/widgets/tabs/api/archidekt/api_response/deck_listings/archidekt_api_response_deck_listing_container.cpp
+ src/interface/widgets/tabs/api/archidekt/api_response/deck_listings/archidekt_api_response_deck_owner.cpp
+ src/interface/widgets/tabs/api/archidekt/display/archidekt_api_response_deck_display_widget.cpp
+ src/interface/widgets/tabs/api/archidekt/display/archidekt_api_response_deck_entry_display_widget.cpp
+ src/interface/widgets/tabs/api/archidekt/display/archidekt_api_response_deck_listings_display_widget.cpp
+ src/interface/widgets/tabs/api/archidekt/display/archidekt_deck_preview_image_display_widget.cpp
src/interface/widgets/tabs/api/edhrec/api_response/archidekt_links/edhrec_api_response_archidekt_links.cpp
src/interface/widgets/tabs/api/edhrec/api_response/average_deck/edhrec_average_deck_api_response.cpp
src/interface/widgets/tabs/api/edhrec/api_response/average_deck/edhrec_deck_api_response.cpp
diff --git a/cockatrice/resources/config/qtlogging.ini b/cockatrice/resources/config/qtlogging.ini
index 083d7234e..20aa206ce 100644
--- a/cockatrice/resources/config/qtlogging.ini
+++ b/cockatrice/resources/config/qtlogging.ini
@@ -1,6 +1,10 @@
[Rules]
# The default log level is info
*.debug = false
+#*.info = true
+#*.warning = true
+#*.critical = true
+#*.fatal = true
# Uncomment a rule to see debug level logs for that category,
# or set = false to disable logging
diff --git a/cockatrice/resources/usericons/pawn_donator_double.svg b/cockatrice/resources/usericons/pawn_donator_double.svg
index f0dba08b2..30b353652 100644
--- a/cockatrice/resources/usericons/pawn_donator_double.svg
+++ b/cockatrice/resources/usericons/pawn_donator_double.svg
@@ -350,11 +350,11 @@
style="fill-opacity:1;stroke:black;stroke-width:2.78220296;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="M 49.84375 1.71875 C 36.719738 1.71875 26.0625 12.375988 26.0625 25.5 C 26.0625 32.977454 29.538325 39.612734 34.9375 43.96875 C 24.439951 49.943698 17.919149 62.196126 14.3125 75.65625 C 9.0380874 95.34065 30.224013 98.21875 49.84375 98.21875 C 69.463486 98.21875 90.549327 94.96715 85.375 75.65625 C 81.693381 61.916246 75.224585 49.827177 64.8125 43.9375 C 70.181573 39.580662 73.59375 32.953205 73.59375 25.5 C 73.59375 12.375988 62.967762 1.71875 49.84375 1.71875 z "
transform="translate(0,952.36218)"
- id="right" />
+ id="left" />
+ id="left" />
+ id="left" />
#include
-#include
#include
#include
#include
#include
#include
-#include
+#include
+#include
DeckStatsInterface::DeckStatsInterface(CardDatabase &_cardDatabase, QObject *parent)
: QObject(parent), cardDatabase(_cardDatabase)
@@ -63,6 +63,7 @@ void DeckStatsInterface::analyzeDeck(DeckList *deck)
QNetworkRequest request(QUrl("https://deckstats.net/index.php"));
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
+ request.setHeader(QNetworkRequest::UserAgentHeader, QString("Cockatrice %1").arg(VERSION_STRING));
manager->post(request, data);
}
diff --git a/cockatrice/src/client/network/interfaces/deck_stats_interface.h b/cockatrice/src/client/network/interfaces/deck_stats_interface.h
index f621fff7c..fd1691a8b 100644
--- a/cockatrice/src/client/network/interfaces/deck_stats_interface.h
+++ b/cockatrice/src/client/network/interfaces/deck_stats_interface.h
@@ -7,7 +7,6 @@
#ifndef DECKSTATS_INTERFACE_H
#define DECKSTATS_INTERFACE_H
-#include
#include
#include
diff --git a/cockatrice/src/client/network/interfaces/tapped_out_interface.cpp b/cockatrice/src/client/network/interfaces/tapped_out_interface.cpp
index d18d811b0..137c7728c 100644
--- a/cockatrice/src/client/network/interfaces/tapped_out_interface.cpp
+++ b/cockatrice/src/client/network/interfaces/tapped_out_interface.cpp
@@ -2,13 +2,13 @@
#include
#include
-#include
#include
#include
#include
#include
#include
-#include
+#include
+#include
TappedOutInterface::TappedOutInterface(CardDatabase &_cardDatabase, QObject *parent)
: QObject(parent), cardDatabase(_cardDatabase)
@@ -88,6 +88,7 @@ void TappedOutInterface::analyzeDeck(DeckList *deck)
QNetworkRequest request(QUrl("https://tappedout.net/mtg-decks/paste/"));
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
+ request.setHeader(QNetworkRequest::UserAgentHeader, QString("Cockatrice %1").arg(VERSION_STRING));
manager->post(request, data);
}
diff --git a/cockatrice/src/client/network/interfaces/tapped_out_interface.h b/cockatrice/src/client/network/interfaces/tapped_out_interface.h
index e4e9498a3..056d7fd9a 100644
--- a/cockatrice/src/client/network/interfaces/tapped_out_interface.h
+++ b/cockatrice/src/client/network/interfaces/tapped_out_interface.h
@@ -7,8 +7,6 @@
#ifndef TAPPEDOUT_INTERFACE_H
#define TAPPEDOUT_INTERFACE_H
-#include
-#include
#include
#include
diff --git a/cockatrice/src/client/network/parsers/interface_json_deck_parser.h b/cockatrice/src/client/network/parsers/interface_json_deck_parser.h
index 8ac05a84b..e0fe4967a 100644
--- a/cockatrice/src/client/network/parsers/interface_json_deck_parser.h
+++ b/cockatrice/src/client/network/parsers/interface_json_deck_parser.h
@@ -6,6 +6,8 @@
#ifndef INTERFACE_JSON_DECK_PARSER_H
#define INTERFACE_JSON_DECK_PARSER_H
+
+#include "../../../interface/deck_loader/card_node_function.h"
#include "../../../interface/deck_loader/deck_loader.h"
#include
@@ -48,7 +50,7 @@ public:
}
loader->getDeckList()->loadFromStream_Plain(outStream, false);
- DeckLoader::resolveSetNameAndNumberToProviderID(loader->getDeckList());
+ loader->getDeckList()->forEachCard(CardNodeFunction::ResolveProviderId());
return loader;
}
@@ -95,7 +97,7 @@ public:
}
loader->getDeckList()->loadFromStream_Plain(outStream, false);
- DeckLoader::resolveSetNameAndNumberToProviderID(loader->getDeckList());
+ loader->getDeckList()->forEachCard(CardNodeFunction::ResolveProviderId());
QJsonObject commandersObj = obj.value("commanders").toObject();
if (!commandersObj.isEmpty()) {
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 cfd4cbbf8..7194c46e5 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
@@ -4,18 +4,17 @@
#include "../../../../main.h"
#include "../../../settings/cache_settings.h"
-#include
#include
#include
#include
#include
#include
-#include
#include
#include
#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"
@@ -41,7 +40,9 @@ void SpoilerBackgroundUpdater::startSpoilerDownloadProcess(QString url, bool sav
void SpoilerBackgroundUpdater::downloadFromURL(QUrl url, bool saveResults)
{
auto *nam = new QNetworkAccessManager(this);
- QNetworkReply *reply = nam->get(QNetworkRequest(url));
+ auto request = QNetworkRequest(url);
+ request.setHeader(QNetworkRequest::UserAgentHeader, QString("Cockatrice %1").arg(VERSION_STRING));
+ QNetworkReply *reply = nam->get(request);
if (saveResults) {
// This will write out to the file (used for spoiler.xml)
diff --git a/cockatrice/src/client/network/update/card_spoiler/spoiler_background_updater.h b/cockatrice/src/client/network/update/card_spoiler/spoiler_background_updater.h
index 387f93820..a2feb5ccf 100644
--- a/cockatrice/src/client/network/update/card_spoiler/spoiler_background_updater.h
+++ b/cockatrice/src/client/network/update/card_spoiler/spoiler_background_updater.h
@@ -22,7 +22,7 @@ public:
inline QString getCardUpdaterBinaryName()
{
return "oracle";
- };
+ }
QByteArray getHash(const QString fileName);
QByteArray getHash(QByteArray data);
static bool deleteSpoilerFile();
diff --git a/cockatrice/src/client/network/update/client/update_downloader.cpp b/cockatrice/src/client/network/update/client/update_downloader.cpp
index 40186bec4..c0f3e945c 100644
--- a/cockatrice/src/client/network/update/client/update_downloader.cpp
+++ b/cockatrice/src/client/network/update/client/update_downloader.cpp
@@ -1,6 +1,5 @@
#include "update_downloader.h"
-#include
#include
UpdateDownloader::UpdateDownloader(QObject *parent) : QObject(parent), response(nullptr)
diff --git a/cockatrice/src/client/network/update/client/update_downloader.h b/cockatrice/src/client/network/update/client/update_downloader.h
index 4f79f3f6d..d70759038 100644
--- a/cockatrice/src/client/network/update/client/update_downloader.h
+++ b/cockatrice/src/client/network/update/client/update_downloader.h
@@ -7,9 +7,7 @@
#ifndef COCKATRICE_UPDATEDOWNLOADER_H
#define COCKATRICE_UPDATEDOWNLOADER_H
-#include
#include
-#include
#include
class UpdateDownloader : public QObject
diff --git a/cockatrice/src/client/settings/cache_settings.cpp b/cockatrice/src/client/settings/cache_settings.cpp
index 7b8458726..7a518df67 100644
--- a/cockatrice/src/client/settings/cache_settings.cpp
+++ b/cockatrice/src/client/settings/cache_settings.cpp
@@ -310,10 +310,15 @@ SettingsCache::SettingsCache()
settings->value("interface/visualdeckstorageselectionanimation", true).toBool();
defaultDeckEditorType = settings->value("interface/defaultDeckEditorType", 1).toInt();
visualDatabaseDisplayFilterToMostRecentSetsEnabled =
- settings->value("interface/visualdatabasedisplayfiltertomostrecentsetsenabled", true).toBool();
+ settings->value("interface/visualdatabasedisplayfiltertomostrecentsetsenabled", false).toBool();
visualDatabaseDisplayFilterToMostRecentSetsAmount =
settings->value("interface/visualdatabasedisplayfiltertomostrecentsetsamount", 10).toInt();
visualDeckEditorSampleHandSize = settings->value("interface/visualdeckeditorsamplehandsize", 7).toInt();
+ visualDeckEditorCardSize = settings->value("interface/visualdeckeditorcardsize", 100).toInt();
+ visualDatabaseDisplayCardSize = settings->value("interface/visualdatabasedisplaycardsize", 100).toInt();
+ edhrecCardSize = settings->value("interface/edhreccardsize", 100).toInt();
+ archidektPreviewSize = settings->value("interface/archidektpreviewsize", 100).toInt();
+
horizontalHand = settings->value("hand/horizontal", true).toBool();
invertVerticalCoordinate = settings->value("table/invert_vertical", false).toBool();
minPlayersForMultiColumnLayout = settings->value("interface/min_players_multicolumn", 4).toInt();
@@ -863,6 +868,34 @@ void SettingsCache::setVisualDeckStorageSelectionAnimation(QT_STATE_CHANGED_T va
emit visualDeckStorageSelectionAnimationChanged(visualDeckStorageSelectionAnimation);
}
+void SettingsCache::setVisualDeckEditorCardSize(int _visualDeckEditorCardSize)
+{
+ visualDeckEditorCardSize = _visualDeckEditorCardSize;
+ settings->setValue("interface/visualdeckeditorcardsize", visualDeckEditorCardSize);
+ emit visualDeckEditorCardSizeChanged();
+}
+
+void SettingsCache::setVisualDatabaseDisplayCardSize(int _visualDatabaseDisplayCardSize)
+{
+ visualDatabaseDisplayCardSize = _visualDatabaseDisplayCardSize;
+ settings->setValue("interface/visualdatabasedisplaycardsize", visualDatabaseDisplayCardSize);
+ emit visualDatabaseDisplayCardSizeChanged();
+}
+
+void SettingsCache::setEDHRecCardSize(int _edhrecCardSize)
+{
+ edhrecCardSize = _edhrecCardSize;
+ settings->setValue("interface/edhreccardsize", edhrecCardSize);
+ emit edhRecCardSizeChanged();
+}
+
+void SettingsCache::setArchidektPreviewCardSize(int _archidektPreviewCardSize)
+{
+ archidektPreviewSize = _archidektPreviewCardSize;
+ settings->setValue("interface/archidektpreviewsize", archidektPreviewSize);
+ emit archidektPreviewSizeChanged();
+}
+
void SettingsCache::setDefaultDeckEditorType(int value)
{
defaultDeckEditorType = value;
diff --git a/cockatrice/src/client/settings/cache_settings.h b/cockatrice/src/client/settings/cache_settings.h
index eb504e387..df68ce0c4 100644
--- a/cockatrice/src/client/settings/cache_settings.h
+++ b/cockatrice/src/client/settings/cache_settings.h
@@ -11,7 +11,6 @@
#include
#include
-#include
#include
#include
#include
@@ -167,6 +166,10 @@ signals:
void visualDatabaseDisplayFilterToMostRecentSetsEnabledChanged(bool enabled);
void visualDatabaseDisplayFilterToMostRecentSetsAmountChanged(int amount);
void visualDeckEditorSampleHandSizeAmountChanged(int amount);
+ void visualDeckEditorCardSizeChanged();
+ void visualDatabaseDisplayCardSizeChanged();
+ void edhRecCardSizeChanged();
+ void archidektPreviewSizeChanged();
void horizontalHandChanged();
void handJustificationChanged();
void invertVerticalCoordinateChanged();
@@ -250,6 +253,10 @@ private:
QStringList visualDeckStorageDefaultTagsList;
bool visualDeckStorageSearchFolderNames;
int visualDeckStorageCardSize;
+ int visualDeckEditorCardSize;
+ int visualDatabaseDisplayCardSize;
+ int edhrecCardSize;
+ int archidektPreviewSize;
bool visualDeckStorageDrawUnusedColorIdentities;
int visualDeckStorageUnusedColorIdentitiesOpacity;
int visualDeckStorageTooltipType;
@@ -317,8 +324,8 @@ private:
int keepalive;
int timeout;
void translateLegacySettings();
- QString getSafeConfigPath(QString configEntry, QString defaultPath) const;
- QString getSafeConfigFilePath(QString configEntry, QString defaultPath) const;
+ [[nodiscard]] QString getSafeConfigPath(QString configEntry, QString defaultPath) const;
+ [[nodiscard]] QString getSafeConfigFilePath(QString configEntry, QString defaultPath) const;
void loadPaths();
bool rememberGameSettings;
QList releaseChannels;
@@ -330,137 +337,137 @@ public:
SettingsCache();
QString getDataPath();
QString getSettingsPath();
- QString getCachePath() const;
- QString getNetworkCachePath() const;
- const QByteArray &getMainWindowGeometry() const
+ [[nodiscard]] QString getCachePath() const;
+ [[nodiscard]] QString getNetworkCachePath() const;
+ [[nodiscard]] const QByteArray &getMainWindowGeometry() const
{
return mainWindowGeometry;
}
- const QByteArray &getTokenDialogGeometry() const
+ [[nodiscard]] const QByteArray &getTokenDialogGeometry() const
{
return tokenDialogGeometry;
}
- const QByteArray &getSetsDialogGeometry() const
+ [[nodiscard]] const QByteArray &getSetsDialogGeometry() const
{
return setsDialogGeometry;
}
- QString getLang() const
+ [[nodiscard]] QString getLang() const
{
return lang;
}
- QString getDeckPath() const
+ [[nodiscard]] QString getDeckPath() const
{
return deckPath;
}
- QString getFiltersPath() const
+ [[nodiscard]] QString getFiltersPath() const
{
return filtersPath;
}
- QString getReplaysPath() const
+ [[nodiscard]] QString getReplaysPath() const
{
return replaysPath;
}
- QString getThemesPath() const
+ [[nodiscard]] QString getThemesPath() const
{
return themesPath;
}
- QString getPicsPath() const
+ [[nodiscard]] QString getPicsPath() const
{
return picsPath;
}
- QString getRedirectCachePath() const
+ [[nodiscard]] QString getRedirectCachePath() const
{
return redirectCachePath;
}
- QString getCustomPicsPath() const
+ [[nodiscard]] QString getCustomPicsPath() const
{
return customPicsPath;
}
- QString getCustomCardDatabasePath() const override
+ [[nodiscard]] QString getCustomCardDatabasePath() const override
{
return customCardDatabasePath;
}
- QString getCardDatabasePath() const override
+ [[nodiscard]] QString getCardDatabasePath() const override
{
return cardDatabasePath;
}
- QString getSpoilerCardDatabasePath() const override
+ [[nodiscard]] QString getSpoilerCardDatabasePath() const override
{
return spoilerDatabasePath;
}
- QString getTokenDatabasePath() const override
+ [[nodiscard]] QString getTokenDatabasePath() const override
{
return tokenDatabasePath;
}
- QString getThemeName() const
+ [[nodiscard]] QString getThemeName() const
{
return themeName;
}
- QString getHomeTabBackgroundSource() const
+ [[nodiscard]] QString getHomeTabBackgroundSource() const
{
return homeTabBackgroundSource;
}
- int getHomeTabBackgroundShuffleFrequency() const
+ [[nodiscard]] int getHomeTabBackgroundShuffleFrequency() const
{
return homeTabBackgroundShuffleFrequency;
}
- bool getTabVisualDeckStorageOpen() const
+ [[nodiscard]] bool getTabVisualDeckStorageOpen() const
{
return tabVisualDeckStorageOpen;
}
- bool getTabServerOpen() const
+ [[nodiscard]] bool getTabServerOpen() const
{
return tabServerOpen;
}
- bool getTabAccountOpen() const
+ [[nodiscard]] bool getTabAccountOpen() const
{
return tabAccountOpen;
}
- bool getTabDeckStorageOpen() const
+ [[nodiscard]] bool getTabDeckStorageOpen() const
{
return tabDeckStorageOpen;
}
- bool getTabReplaysOpen() const
+ [[nodiscard]] bool getTabReplaysOpen() const
{
return tabReplaysOpen;
}
- bool getTabAdminOpen() const
+ [[nodiscard]] bool getTabAdminOpen() const
{
return tabAdminOpen;
}
- bool getTabLogOpen() const
+ [[nodiscard]] bool getTabLogOpen() const
{
return tabLogOpen;
}
- QString getChatMentionColor() const
+ [[nodiscard]] QString getChatMentionColor() const
{
return chatMentionColor;
}
- QString getChatHighlightColor() const
+ [[nodiscard]] QString getChatHighlightColor() const
{
return chatHighlightColor;
}
- bool getPicDownload() const
+ [[nodiscard]] bool getPicDownload() const
{
return picDownload;
}
- bool getShowStatusBar() const
+ [[nodiscard]] bool getShowStatusBar() const
{
return showStatusBar;
}
- bool getNotificationsEnabled() const
+ [[nodiscard]] bool getNotificationsEnabled() const
{
return notificationsEnabled;
}
- bool getSpectatorNotificationsEnabled() const
+ [[nodiscard]] bool getSpectatorNotificationsEnabled() const
{
return spectatorNotificationsEnabled;
}
- bool getBuddyConnectNotificationsEnabled() const
+ [[nodiscard]] bool getBuddyConnectNotificationsEnabled() const
{
return buddyConnectNotificationsEnabled;
}
- bool getCheckUpdatesOnStartup() const
+ [[nodiscard]] bool getCheckUpdatesOnStartup() const
{
return checkUpdatesOnStartup;
}
@@ -472,247 +479,263 @@ public:
{
return startupCardUpdateCheckAlwaysUpdate;
}
- int getCardUpdateCheckInterval() const
+ [[nodiscard]] int getCardUpdateCheckInterval() const
{
return cardUpdateCheckInterval;
}
- QDate getLastCardUpdateCheck() const
+ [[nodiscard]] QDate getLastCardUpdateCheck() const
{
return lastCardUpdateCheck;
}
- bool getCardUpdateCheckRequired() const
+ [[nodiscard]] bool getCardUpdateCheckRequired() const
{
return getLastCardUpdateCheck().daysTo(QDateTime::currentDateTime().date()) >= getCardUpdateCheckInterval() &&
getLastCardUpdateCheck() != QDateTime::currentDateTime().date();
}
- bool getNotifyAboutUpdates() const override
+ [[nodiscard]] bool getNotifyAboutUpdates() const override
{
return notifyAboutUpdates;
}
- bool getNotifyAboutNewVersion() const
+ [[nodiscard]] bool getNotifyAboutNewVersion() const
{
return notifyAboutNewVersion;
}
- bool getShowTipsOnStartup() const
+ [[nodiscard]] bool getShowTipsOnStartup() const
{
return showTipsOnStartup;
}
- QList getSeenTips() const
+ [[nodiscard]] QList getSeenTips() const
{
return seenTips;
}
- int getUpdateReleaseChannelIndex() const
+ [[nodiscard]] int getUpdateReleaseChannelIndex() const
{
return updateReleaseChannel;
}
- ReleaseChannel *getUpdateReleaseChannel() const
+ [[nodiscard]] ReleaseChannel *getUpdateReleaseChannel() const
{
return releaseChannels.at(qMax(0, updateReleaseChannel));
}
- QList getUpdateReleaseChannels() const
+ [[nodiscard]] QList getUpdateReleaseChannels() const
{
return releaseChannels;
}
- bool getDoubleClickToPlay() const
+ [[nodiscard]] bool getDoubleClickToPlay() const
{
return doubleClickToPlay;
}
- bool getClickPlaysAllSelected() const
+ [[nodiscard]] bool getClickPlaysAllSelected() const
{
return clickPlaysAllSelected;
}
- bool getPlayToStack() const
+ [[nodiscard]] bool getPlayToStack() const
{
return playToStack;
}
- bool getDoNotDeleteArrowsInSubPhases() const
+ [[nodiscard]] bool getDoNotDeleteArrowsInSubPhases() const
{
return doNotDeleteArrowsInSubPhases;
}
- int getStartingHandSize() const
+ [[nodiscard]] int getStartingHandSize() const
{
return startingHandSize;
}
- bool getAnnotateTokens() const
+ [[nodiscard]] bool getAnnotateTokens() const
{
return annotateTokens;
}
- QByteArray getTabGameSplitterSizes() const
+ [[nodiscard]] QByteArray getTabGameSplitterSizes() const
{
return tabGameSplitterSizes;
}
- bool getShowShortcuts() const
+ [[nodiscard]] bool getShowShortcuts() const
{
return showShortcuts;
}
- bool getDisplayCardNames() const
+ [[nodiscard]] bool getDisplayCardNames() const
{
return displayCardNames;
}
- bool getOverrideAllCardArtWithPersonalPreference() const
+ [[nodiscard]] bool getOverrideAllCardArtWithPersonalPreference() const
{
return overrideAllCardArtWithPersonalPreference;
}
- bool getBumpSetsWithCardsInDeckToTop() const
+ [[nodiscard]] bool getBumpSetsWithCardsInDeckToTop() const
{
return bumpSetsWithCardsInDeckToTop;
}
- int getPrintingSelectorSortOrder() const
+ [[nodiscard]] int getPrintingSelectorSortOrder() const
{
return printingSelectorSortOrder;
}
- int getPrintingSelectorCardSize() const
+ [[nodiscard]] int getPrintingSelectorCardSize() const
{
return printingSelectorCardSize;
}
- bool getIncludeRebalancedCards() const
+ [[nodiscard]] bool getIncludeRebalancedCards() const
{
return includeRebalancedCards;
}
- bool getPrintingSelectorNavigationButtonsVisible() const
+ [[nodiscard]] bool getPrintingSelectorNavigationButtonsVisible() const
{
return printingSelectorNavigationButtonsVisible;
}
- bool getDeckEditorBannerCardComboBoxVisible() const
+ [[nodiscard]] bool getDeckEditorBannerCardComboBoxVisible() const
{
return deckEditorBannerCardComboBoxVisible;
}
- bool getDeckEditorTagsWidgetVisible() const
+ [[nodiscard]] bool getDeckEditorTagsWidgetVisible() const
{
return deckEditorTagsWidgetVisible;
}
- int getVisualDeckStorageSortingOrder() const
+ [[nodiscard]] int getVisualDeckStorageSortingOrder() const
{
return visualDeckStorageSortingOrder;
}
- bool getVisualDeckStorageShowFolders() const
+ [[nodiscard]] bool getVisualDeckStorageShowFolders() const
{
return visualDeckStorageShowFolders;
}
- bool getVisualDeckStorageShowTagFilter() const
+ [[nodiscard]] bool getVisualDeckStorageShowTagFilter() const
{
return visualDeckStorageShowTagFilter;
}
- QStringList getVisualDeckStorageDefaultTagsList() const
+ [[nodiscard]] QStringList getVisualDeckStorageDefaultTagsList() const
{
return visualDeckStorageDefaultTagsList;
}
- bool getVisualDeckStorageSearchFolderNames() const
+ [[nodiscard]] bool getVisualDeckStorageSearchFolderNames() const
{
return visualDeckStorageSearchFolderNames;
}
- bool getVisualDeckStorageShowBannerCardComboBox() const
+ [[nodiscard]] bool getVisualDeckStorageShowBannerCardComboBox() const
{
return visualDeckStorageShowBannerCardComboBox;
}
- bool getVisualDeckStorageShowTagsOnDeckPreviews() const
+ [[nodiscard]] bool getVisualDeckStorageShowTagsOnDeckPreviews() const
{
return visualDeckStorageShowTagsOnDeckPreviews;
}
- int getVisualDeckStorageCardSize() const
+ [[nodiscard]] int getVisualDeckStorageCardSize() const
{
return visualDeckStorageCardSize;
}
- bool getVisualDeckStorageDrawUnusedColorIdentities() const
+ [[nodiscard]] bool getVisualDeckStorageDrawUnusedColorIdentities() const
{
return visualDeckStorageDrawUnusedColorIdentities;
}
- int getVisualDeckStorageUnusedColorIdentitiesOpacity() const
+ [[nodiscard]] int getVisualDeckStorageUnusedColorIdentitiesOpacity() const
{
return visualDeckStorageUnusedColorIdentitiesOpacity;
}
- int getVisualDeckStorageTooltipType() const
+ [[nodiscard]] int getVisualDeckStorageTooltipType() const
{
return visualDeckStorageTooltipType;
}
- bool getVisualDeckStoragePromptForConversion() const
+ [[nodiscard]] bool getVisualDeckStoragePromptForConversion() const
{
return visualDeckStoragePromptForConversion;
}
- bool getVisualDeckStorageAlwaysConvert() const
+ [[nodiscard]] bool getVisualDeckStorageAlwaysConvert() const
{
return visualDeckStorageAlwaysConvert;
}
- bool getVisualDeckStorageInGame() const
+ [[nodiscard]] bool getVisualDeckStorageInGame() const
{
return visualDeckStorageInGame;
}
- bool getVisualDeckStorageSelectionAnimation() const
+ [[nodiscard]] bool getVisualDeckStorageSelectionAnimation() const
{
return visualDeckStorageSelectionAnimation;
}
- int getDefaultDeckEditorType() const
+ [[nodiscard]] int getVisualDeckEditorCardSize() const
+ {
+ return visualDeckEditorCardSize;
+ }
+ [[nodiscard]] int getVisualDatabaseDisplayCardSize() const
+ {
+ return visualDatabaseDisplayCardSize;
+ }
+ [[nodiscard]] int getEDHRecCardSize() const
+ {
+ return edhrecCardSize;
+ }
+ [[nodiscard]] int getArchidektPreviewSize() const
+ {
+ return archidektPreviewSize;
+ }
+ [[nodiscard]] int getDefaultDeckEditorType() const
{
return defaultDeckEditorType;
}
- bool getVisualDatabaseDisplayFilterToMostRecentSetsEnabled() const
+ [[nodiscard]] bool getVisualDatabaseDisplayFilterToMostRecentSetsEnabled() const
{
return visualDatabaseDisplayFilterToMostRecentSetsEnabled;
}
- int getVisualDatabaseDisplayFilterToMostRecentSetsAmount() const
+ [[nodiscard]] int getVisualDatabaseDisplayFilterToMostRecentSetsAmount() const
{
return visualDatabaseDisplayFilterToMostRecentSetsAmount;
}
- int getVisualDeckEditorSampleHandSize() const
+ [[nodiscard]] int getVisualDeckEditorSampleHandSize() const
{
return visualDeckEditorSampleHandSize;
}
- bool getHorizontalHand() const
+ [[nodiscard]] bool getHorizontalHand() const
{
return horizontalHand;
}
- bool getInvertVerticalCoordinate() const
+ [[nodiscard]] bool getInvertVerticalCoordinate() const
{
return invertVerticalCoordinate;
}
- int getMinPlayersForMultiColumnLayout() const
+ [[nodiscard]] int getMinPlayersForMultiColumnLayout() const
{
return minPlayersForMultiColumnLayout;
}
- bool getTapAnimation() const
+ [[nodiscard]] bool getTapAnimation() const
{
return tapAnimation;
}
- bool getAutoRotateSidewaysLayoutCards() const
+ [[nodiscard]] bool getAutoRotateSidewaysLayoutCards() const
{
return autoRotateSidewaysLayoutCards;
}
- bool getOpenDeckInNewTab() const
+ [[nodiscard]] bool getOpenDeckInNewTab() const
{
return openDeckInNewTab;
}
- int getRewindBufferingMs() const
+ [[nodiscard]] int getRewindBufferingMs() const
{
return rewindBufferingMs;
}
- bool getChatMention() const
+ [[nodiscard]] bool getChatMention() const
{
return chatMention;
}
- bool getChatMentionCompleter() const
+ [[nodiscard]] bool getChatMentionCompleter() const
{
return chatMentionCompleter;
}
- bool getChatMentionForeground() const
+ [[nodiscard]] bool getChatMentionForeground() const
{
return chatMentionForeground;
}
- bool getChatHighlightForeground() const
+ [[nodiscard]] bool getChatHighlightForeground() const
{
return chatHighlightForeground;
}
/**
* Currently selected index for the `Group by X` QComboBox
*/
- int getZoneViewGroupByIndex() const
+ [[nodiscard]] int getZoneViewGroupByIndex() const
{
return zoneViewGroupByIndex;
}
/**
* Currently selected index for the `Sort by X` QComboBox
*/
- int getZoneViewSortByIndex() const
+ [[nodiscard]] int getZoneViewSortByIndex() const
{
return zoneViewSortByIndex;
}
@@ -720,136 +743,136 @@ public:
Returns if the view should be sorted into pile view.
@return zoneViewPileView if the view should be sorted into pile view.
*/
- bool getZoneViewPileView() const
+ [[nodiscard]] bool getZoneViewPileView() const
{
return zoneViewPileView;
}
- bool getSoundEnabled() const
+ [[nodiscard]] bool getSoundEnabled() const
{
return soundEnabled;
}
- QString getSoundThemeName() const
+ [[nodiscard]] QString getSoundThemeName() const
{
return soundThemeName;
}
- bool getIgnoreUnregisteredUsers() const
+ [[nodiscard]] bool getIgnoreUnregisteredUsers() const
{
return ignoreUnregisteredUsers;
}
- bool getIgnoreUnregisteredUserMessages() const
+ [[nodiscard]] bool getIgnoreUnregisteredUserMessages() const
{
return ignoreUnregisteredUserMessages;
}
- int getPixmapCacheSize() const
+ [[nodiscard]] int getPixmapCacheSize() const
{
return pixmapCacheSize;
}
- int getNetworkCacheSizeInMB() const
+ [[nodiscard]] int getNetworkCacheSizeInMB() const
{
return networkCacheSize;
}
- int getRedirectCacheTtl() const
+ [[nodiscard]] int getRedirectCacheTtl() const
{
return redirectCacheTtl;
}
- bool getScaleCards() const
+ [[nodiscard]] bool getScaleCards() const
{
return scaleCards;
}
- int getStackCardOverlapPercent() const
+ [[nodiscard]] int getStackCardOverlapPercent() const
{
return verticalCardOverlapPercent;
}
- bool getShowMessagePopup() const
+ [[nodiscard]] bool getShowMessagePopup() const
{
return showMessagePopups;
}
- bool getShowMentionPopup() const
+ [[nodiscard]] bool getShowMentionPopup() const
{
return showMentionPopups;
}
- bool getRoomHistory() const
+ [[nodiscard]] bool getRoomHistory() const
{
return roomHistory;
}
- bool getLeftJustified() const
+ [[nodiscard]] bool getLeftJustified() const
{
return leftJustified;
}
- int getMasterVolume() const
+ [[nodiscard]] int getMasterVolume() const
{
return masterVolume;
}
- int getCardInfoViewMode() const
+ [[nodiscard]] int getCardInfoViewMode() const
{
return cardInfoViewMode;
}
- QStringList getCountries() const;
- QString getHighlightWords() const
+ [[nodiscard]] QStringList getCountries() const;
+ [[nodiscard]] QString getHighlightWords() const
{
return highlightWords;
}
- QString getGameDescription() const
+ [[nodiscard]] QString getGameDescription() const
{
return gameDescription;
}
- int getMaxPlayers() const
+ [[nodiscard]] int getMaxPlayers() const
{
return maxPlayers;
}
- QString getGameTypes() const
+ [[nodiscard]] QString getGameTypes() const
{
return gameTypes;
}
- bool getOnlyBuddies() const
+ [[nodiscard]] bool getOnlyBuddies() const
{
return onlyBuddies;
}
- bool getOnlyRegistered() const
+ [[nodiscard]] bool getOnlyRegistered() const
{
return onlyRegistered;
}
- bool getSpectatorsAllowed() const
+ [[nodiscard]] bool getSpectatorsAllowed() const
{
return spectatorsAllowed;
}
- bool getSpectatorsNeedPassword() const
+ [[nodiscard]] bool getSpectatorsNeedPassword() const
{
return spectatorsNeedPassword;
}
- bool getSpectatorsCanTalk() const
+ [[nodiscard]] bool getSpectatorsCanTalk() const
{
return spectatorsCanTalk;
}
- bool getSpectatorsCanSeeEverything() const
+ [[nodiscard]] bool getSpectatorsCanSeeEverything() const
{
return spectatorsCanSeeEverything;
}
- int getDefaultStartingLifeTotal() const
+ [[nodiscard]] int getDefaultStartingLifeTotal() const
{
return defaultStartingLifeTotal;
}
- bool getShareDecklistsOnLoad() const
+ [[nodiscard]] bool getShareDecklistsOnLoad() const
{
return shareDecklistsOnLoad;
}
- bool getCreateGameAsSpectator() const
+ [[nodiscard]] bool getCreateGameAsSpectator() const
{
return createGameAsSpectator;
}
- bool getRememberGameSettings() const
+ [[nodiscard]] bool getRememberGameSettings() const
{
return rememberGameSettings;
}
- int getKeepAlive() const override
+ [[nodiscard]] int getKeepAlive() const override
{
return keepalive;
}
- int getTimeOut() const override
+ [[nodiscard]] int getTimeOut() const override
{
return timeout;
}
- int getMaxFontSize() const
+ [[nodiscard]] int getMaxFontSize() const
{
return maxFontSize;
}
@@ -877,73 +900,73 @@ public:
{
return useTearOffMenus;
}
- int getCardViewInitialRowsMax() const
+ [[nodiscard]] int getCardViewInitialRowsMax() const
{
return cardViewInitialRowsMax;
}
- int getCardViewExpandedRowsMax() const
+ [[nodiscard]] int getCardViewExpandedRowsMax() const
{
return cardViewExpandedRowsMax;
}
- bool getCloseEmptyCardView() const
+ [[nodiscard]] bool getCloseEmptyCardView() const
{
return closeEmptyCardView;
}
- bool getFocusCardViewSearchBar() const
+ [[nodiscard]] bool getFocusCardViewSearchBar() const
{
return focusCardViewSearchBar;
}
- ShortcutsSettings &shortcuts() const
+ [[nodiscard]] ShortcutsSettings &shortcuts() const
{
return *shortcutsSettings;
}
- CardDatabaseSettings *cardDatabase() const
+ [[nodiscard]] CardDatabaseSettings *cardDatabase() const
{
return cardDatabaseSettings;
}
- ServersSettings &servers() const
+ [[nodiscard]] ServersSettings &servers() const
{
return *serversSettings;
}
- MessageSettings &messages() const
+ [[nodiscard]] MessageSettings &messages() const
{
return *messageSettings;
}
- GameFiltersSettings &gameFilters() const
+ [[nodiscard]] GameFiltersSettings &gameFilters() const
{
return *gameFiltersSettings;
}
- LayoutsSettings &layouts() const
+ [[nodiscard]] LayoutsSettings &layouts() const
{
return *layoutsSettings;
}
- DownloadSettings &downloads() const
+ [[nodiscard]] DownloadSettings &downloads() const
{
return *downloadSettings;
}
- RecentsSettings &recents() const
+ [[nodiscard]] RecentsSettings &recents() const
{
return *recentsSettings;
}
- CardOverrideSettings &cardOverrides() const
+ [[nodiscard]] CardOverrideSettings &cardOverrides() const
{
return *cardOverrideSettings;
}
- DebugSettings &debug() const
+ [[nodiscard]] DebugSettings &debug() const
{
return *debugSettings;
}
- CardCounterSettings &cardCounters() const;
+ [[nodiscard]] CardCounterSettings &cardCounters() const;
- bool getIsPortableBuild() const
+ [[nodiscard]] bool getIsPortableBuild() const
{
return isPortableBuild;
}
- bool getDownloadSpoilersStatus() const
+ [[nodiscard]] bool getDownloadSpoilersStatus() const
{
return mbDownloadSpoilers;
}
- bool getRoundCardCorners() const
+ [[nodiscard]] bool getRoundCardCorners() const
{
return roundCardCorners;
}
@@ -1018,6 +1041,10 @@ public slots:
void setVisualDeckStorageAlwaysConvert(bool _visualDeckStorageAlwaysConvert);
void setVisualDeckStorageInGame(QT_STATE_CHANGED_T value);
void setVisualDeckStorageSelectionAnimation(QT_STATE_CHANGED_T value);
+ void setVisualDeckEditorCardSize(int _visualDeckEditorCardSize);
+ void setVisualDatabaseDisplayCardSize(int _visualDatabaseDisplayCardSize);
+ void setEDHRecCardSize(int _EDHRecCardSize);
+ void setArchidektPreviewCardSize(int _archidektPreviewCardSize);
void setDefaultDeckEditorType(int value);
void setVisualDatabaseDisplayFilterToMostRecentSetsEnabled(QT_STATE_CHANGED_T _enabled);
void setVisualDatabaseDisplayFilterToMostRecentSetsAmount(int _amount);
diff --git a/cockatrice/src/client/settings/card_counter_settings.h b/cockatrice/src/client/settings/card_counter_settings.h
index f2c1c1d43..b1d467d67 100644
--- a/cockatrice/src/client/settings/card_counter_settings.h
+++ b/cockatrice/src/client/settings/card_counter_settings.h
@@ -7,7 +7,6 @@
#ifndef CARD_COUNTER_SETTINGS_H
#define CARD_COUNTER_SETTINGS_H
-#include
#include
class QSettings;
@@ -20,9 +19,9 @@ class CardCounterSettings : public SettingsManager
public:
CardCounterSettings(const QString &settingsPath, QObject *parent = nullptr);
- QColor color(int counterId) const;
+ [[nodiscard]] QColor color(int counterId) const;
- QString displayName(int counterId) const;
+ [[nodiscard]] QString displayName(int counterId) const;
public slots:
void setColor(int counterId, const QColor &color);
diff --git a/cockatrice/src/client/settings/shortcut_treeview.h b/cockatrice/src/client/settings/shortcut_treeview.h
index 229bf2ed2..8d74a6f1e 100644
--- a/cockatrice/src/client/settings/shortcut_treeview.h
+++ b/cockatrice/src/client/settings/shortcut_treeview.h
@@ -7,7 +7,6 @@
#ifndef SHORTCUT_TREEVIEW_H
#define SHORTCUT_TREEVIEW_H
-#include
#include
#include
#include
@@ -22,7 +21,7 @@ public:
explicit ShortcutFilterProxyModel(QObject *parent = nullptr);
protected:
- bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const override;
+ [[nodiscard]] bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const override;
};
class ShortcutTreeView : public QTreeView
diff --git a/cockatrice/src/client/settings/shortcuts_settings.h b/cockatrice/src/client/settings/shortcuts_settings.h
index 31e90bdc7..736f0c896 100644
--- a/cockatrice/src/client/settings/shortcuts_settings.h
+++ b/cockatrice/src/client/settings/shortcuts_settings.h
@@ -99,15 +99,15 @@ public:
void setSequence(const QList &_sequence)
{
QList::operator=(_sequence);
- };
- QString getName() const
+ }
+ [[nodiscard]] QString getName() const
{
return QApplication::translate("shortcutsTab", name.toUtf8().data());
- };
- QString getGroupName() const
+ }
+ [[nodiscard]] QString getGroupName() const
{
return ShortcutGroup::getGroupName(group);
- };
+ }
private:
QString name;
@@ -120,24 +120,24 @@ class ShortcutsSettings : public QObject
public:
explicit ShortcutsSettings(const QString &settingsFilePath, QObject *parent = nullptr);
- ShortcutKey getDefaultShortcut(const QString &name) const;
- ShortcutKey getShortcut(const QString &name) const;
- QKeySequence getSingleShortcut(const QString &name) const;
- QString getDefaultShortcutString(const QString &name) const;
- QString getShortcutString(const QString &name) const;
- QString getShortcutFriendlyName(const QString &shortcutName) const;
- QList getAllShortcutKeys() const
+ [[nodiscard]] ShortcutKey getDefaultShortcut(const QString &name) const;
+ [[nodiscard]] ShortcutKey getShortcut(const QString &name) const;
+ [[nodiscard]] QKeySequence getSingleShortcut(const QString &name) const;
+ [[nodiscard]] QString getDefaultShortcutString(const QString &name) const;
+ [[nodiscard]] QString getShortcutString(const QString &name) const;
+ [[nodiscard]] QString getShortcutFriendlyName(const QString &shortcutName) const;
+ [[nodiscard]] QList getAllShortcutKeys() const
{
return shortCuts.keys();
- };
+ }
void setShortcuts(const QString &name, const QList &Sequence);
void setShortcuts(const QString &name, const QKeySequence &Sequence);
void setShortcuts(const QString &name, const QString &sequences);
- bool isKeyAllowed(const QString &name, const QString &sequences) const;
- bool isValid(const QString &name, const QString &sequences) const;
- QStringList findOverlaps(const QString &name, const QString &sequences) const;
+ [[nodiscard]] bool isKeyAllowed(const QString &name, const QString &sequences) const;
+ [[nodiscard]] bool isValid(const QString &name, const QString &sequences) const;
+ [[nodiscard]] QStringList findOverlaps(const QString &name, const QString &sequences) const;
void resetAllShortcuts();
void clearAllShortcuts();
@@ -152,8 +152,8 @@ private:
QString settingsFilePath;
QHash shortCuts;
- QString stringifySequence(const QList &Sequence) const;
- QList parseSequenceString(const QString &stringSequence) const;
+ [[nodiscard]] QString stringifySequence(const QList &Sequence) const;
+ [[nodiscard]] QList parseSequenceString(const QString &stringSequence) const;
const QHash defaultShortCuts = {
{"MainWindow/aCheckCardUpdates", ShortcutKey(QT_TRANSLATE_NOOP("shortcutsTab", "Check for Card Updates..."),
diff --git a/cockatrice/src/database/interface/settings_card_preference_provider.h b/cockatrice/src/database/interface/settings_card_preference_provider.h
index 4197bb53c..6c31b9d6d 100644
--- a/cockatrice/src/database/interface/settings_card_preference_provider.h
+++ b/cockatrice/src/database/interface/settings_card_preference_provider.h
@@ -7,15 +7,15 @@
class SettingsCardPreferenceProvider : public ICardPreferenceProvider
{
public:
- QString getCardPreferenceOverride(const QString &cardName) const override
+ [[nodiscard]] QString getCardPreferenceOverride(const QString &cardName) const override
{
return SettingsCache::instance().cardOverrides().getCardPreferenceOverride(cardName);
}
- bool getIncludeRebalancedCards() const override
+ [[nodiscard]] bool getIncludeRebalancedCards() const override
{
return SettingsCache::instance().getIncludeRebalancedCards();
- };
+ }
};
#endif // COCKATRICE_SETTINGS_CARD_PREFERENCE_PROVIDER_H
diff --git a/cockatrice/src/filters/deck_filter_string.cpp b/cockatrice/src/filters/deck_filter_string.cpp
index c9adc17e9..dfc54afe0 100644
--- a/cockatrice/src/filters/deck_filter_string.cpp
+++ b/cockatrice/src/filters/deck_filter_string.cpp
@@ -1,5 +1,6 @@
#include "deck_filter_string.h"
+#include
#include
#include
#include
@@ -117,12 +118,13 @@ static void setupParserRules()
return [=](const DeckPreviewWidget *deck, const ExtraDeckSearchInfo &) -> bool {
int count = 0;
- deck->deckLoader->getDeckList()->forEachCard([&](InnerDecklistNode *, const DecklistCardNode *node) {
+ auto cardNodes = deck->deckLoader->getDeckList()->getCardNodes();
+ for (auto node : cardNodes) {
auto cardInfoPtr = CardDatabaseManager::query()->getCardInfo(node->getName());
if (!cardInfoPtr.isNull() && cardFilter.check(cardInfoPtr)) {
count += node->getNumber();
}
- });
+ }
return numberMatcher(count);
};
};
diff --git a/cockatrice/src/filters/deck_filter_string.h b/cockatrice/src/filters/deck_filter_string.h
index 15782b3ad..1b43d770d 100644
--- a/cockatrice/src/filters/deck_filter_string.h
+++ b/cockatrice/src/filters/deck_filter_string.h
@@ -10,10 +10,8 @@
#include "../interface/widgets/visual_deck_storage/deck_preview/deck_preview_widget.h"
#include
-#include
#include
#include
-#include
inline Q_LOGGING_CATEGORY(DeckFilterStringLog, "deck_filter_string");
@@ -40,7 +38,7 @@ public:
return filter(deck, info);
}
- bool valid() const
+ [[nodiscard]] bool valid() const
{
return _error.isEmpty();
}
diff --git a/cockatrice/src/filters/filter_tree_model.h b/cockatrice/src/filters/filter_tree_model.h
index ce6eb85fc..c6666a838 100644
--- a/cockatrice/src/filters/filter_tree_model.h
+++ b/cockatrice/src/filters/filter_tree_model.h
@@ -24,8 +24,8 @@ public slots:
void addFilter(const CardFilter *f);
void removeFilter(const CardFilter *f);
void clearFiltersOfType(CardFilter::Attr filterType);
- QList getFiltersOfType(CardFilter::Attr filterType) const;
- QList allFilters() const;
+ [[nodiscard]] QList getFiltersOfType(CardFilter::Attr filterType) const;
+ [[nodiscard]] QList allFilters() const;
private slots:
void proxyBeginInsertRow(const FilterTreeNode *, int);
@@ -34,23 +34,23 @@ private slots:
void proxyEndRemoveRow(const FilterTreeNode *, int);
private:
- FilterTreeNode *indexToNode(const QModelIndex &idx) const;
+ [[nodiscard]] FilterTreeNode *indexToNode(const QModelIndex &idx) const;
QModelIndex nodeIndex(const FilterTreeNode *node, int row, int column) const;
public:
FilterTreeModel(QObject *parent = nullptr);
~FilterTreeModel() override;
- FilterTree *filterTree() const
+ [[nodiscard]] FilterTree *filterTree() const
{
return fTree;
}
- int rowCount(const QModelIndex &parent = QModelIndex()) const override;
- int columnCount(const QModelIndex & /*parent*/ = QModelIndex()) const override;
- QVariant data(const QModelIndex &index, int role) const override;
+ [[nodiscard]] int rowCount(const QModelIndex &parent = QModelIndex()) const override;
+ [[nodiscard]] int columnCount(const QModelIndex & /*parent*/ = QModelIndex()) const override;
+ [[nodiscard]] QVariant data(const QModelIndex &index, int role) const override;
bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) override;
- Qt::ItemFlags flags(const QModelIndex &index) const override;
- QModelIndex parent(const QModelIndex &ind) const override;
- QModelIndex index(int row, int column, const QModelIndex &parent) const override;
+ [[nodiscard]] Qt::ItemFlags flags(const QModelIndex &index) const override;
+ [[nodiscard]] QModelIndex parent(const QModelIndex &ind) const override;
+ [[nodiscard]] QModelIndex index(int row, int column, const QModelIndex &parent) const override;
bool removeRows(int row, int count, const QModelIndex &parent) override;
void clear();
};
diff --git a/cockatrice/src/game/board/abstract_counter.cpp b/cockatrice/src/game/board/abstract_counter.cpp
index 985c78ad2..08d19ec8a 100644
--- a/cockatrice/src/game/board/abstract_counter.cpp
+++ b/cockatrice/src/game/board/abstract_counter.cpp
@@ -3,15 +3,14 @@
#include "../../client/settings/cache_settings.h"
#include "../../interface/widgets/tabs/tab_game.h"
#include "../player/player.h"
+#include "../player/player_actions.h"
#include "translate_counter_name.h"
#include
#include
-#include
#include
#include
#include
-#include
#include
#include
#include
diff --git a/cockatrice/src/game/board/arrow_item.cpp b/cockatrice/src/game/board/arrow_item.cpp
index d5d0ebfe0..1352b3a05 100644
--- a/cockatrice/src/game/board/arrow_item.cpp
+++ b/cockatrice/src/game/board/arrow_item.cpp
@@ -3,6 +3,7 @@
#include "../../client/settings/cache_settings.h"
#include "../player/player.h"
+#include "../player/player_actions.h"
#include "../player/player_target.h"
#include "../zones/card_zone.h"
#include "card_item.h"
diff --git a/cockatrice/src/game/board/card_item.cpp b/cockatrice/src/game/board/card_item.cpp
index e786b5329..34c2f9a98 100644
--- a/cockatrice/src/game/board/card_item.cpp
+++ b/cockatrice/src/game/board/card_item.cpp
@@ -5,7 +5,7 @@
#include "../game_scene.h"
#include "../phase.h"
#include "../player/player.h"
-#include "../zones/card_zone.h"
+#include "../player/player_actions.h"
#include "../zones/logic/view_zone_logic.h"
#include "../zones/table_zone.h"
#include "../zones/view_zone.h"
diff --git a/cockatrice/src/game/deckview/deck_view.cpp b/cockatrice/src/game/deckview/deck_view.cpp
index 64e9abc46..383545cf3 100644
--- a/cockatrice/src/game/deckview/deck_view.cpp
+++ b/cockatrice/src/game/deckview/deck_view.cpp
@@ -10,7 +10,7 @@
#include
#include
#include
-#include
+#include
DeckViewCardDragItem::DeckViewCardDragItem(DeckViewCard *_item,
const QPointF &_hotSpot,
@@ -343,10 +343,7 @@ void DeckViewScene::rebuildTree()
if (!deck)
return;
- InnerDecklistNode *listRoot = deck->getRoot();
- for (int i = 0; i < listRoot->size(); i++) {
- auto *currentZone = dynamic_cast(listRoot->at(i));
-
+ for (auto *currentZone : deck->getZoneNodes()) {
DeckViewCardContainer *container = cardContainers.value(currentZone->getName(), 0);
if (!container) {
container = new DeckViewCardContainer(currentZone->getName());
diff --git a/cockatrice/src/game/deckview/deck_view.h b/cockatrice/src/game/deckview/deck_view.h
index 027d0fafd..5abc558bd 100644
--- a/cockatrice/src/game/deckview/deck_view.h
+++ b/cockatrice/src/game/deckview/deck_view.h
@@ -9,11 +9,8 @@
#include "../board/abstract_card_drag_item.h"
-#include
#include
#include
-#include
-#include
#include
class DeckList;
diff --git a/cockatrice/src/game/deckview/deck_view_container.cpp b/cockatrice/src/game/deckview/deck_view_container.cpp
index da24aa814..5d4a07bdf 100644
--- a/cockatrice/src/game/deckview/deck_view_container.cpp
+++ b/cockatrice/src/game/deckview/deck_view_container.cpp
@@ -8,13 +8,9 @@
#include "../../interface/widgets/dialogs/dlg_load_deck_from_website.h"
#include "../../interface/widgets/dialogs/dlg_load_remote_deck.h"
#include "../../interface/widgets/tabs/tab_game.h"
-#include "../game_scene.h"
#include "deck_view.h"
#include
-#include
-#include
-#include
#include
#include
#include
@@ -263,7 +259,7 @@ void DeckViewContainer::loadLocalDeck()
void DeckViewContainer::loadDeckFromFile(const QString &filePath)
{
- DeckLoader::FileFormat fmt = DeckLoader::getFormatFromName(filePath);
+ DeckFileFormat::Format fmt = DeckFileFormat::getFormatFromName(filePath);
DeckLoader deck(this);
bool success = deck.loadFromFile(filePath, fmt, true);
diff --git a/cockatrice/src/game/dialogs/dlg_create_token.cpp b/cockatrice/src/game/dialogs/dlg_create_token.cpp
index 6594e339d..1f6f9b08c 100644
--- a/cockatrice/src/game/dialogs/dlg_create_token.cpp
+++ b/cockatrice/src/game/dialogs/dlg_create_token.cpp
@@ -16,7 +16,6 @@
#include
#include
#include
-#include
#include
#include
#include
diff --git a/cockatrice/src/game/dialogs/dlg_create_token.h b/cockatrice/src/game/dialogs/dlg_create_token.h
index 8235aa4cc..9a18f1a57 100644
--- a/cockatrice/src/game/dialogs/dlg_create_token.h
+++ b/cockatrice/src/game/dialogs/dlg_create_token.h
@@ -8,7 +8,6 @@
#define DLG_CREATETOKEN_H
#include
-#include
class QLabel;
class QLineEdit;
diff --git a/cockatrice/src/game/game_event_handler.cpp b/cockatrice/src/game/game_event_handler.cpp
index 1cb47f368..7bfc4da75 100644
--- a/cockatrice/src/game/game_event_handler.cpp
+++ b/cockatrice/src/game/game_event_handler.cpp
@@ -15,7 +15,6 @@
#include
#include
#include
-#include
#include
#include
#include
diff --git a/cockatrice/src/game/game_scene.cpp b/cockatrice/src/game/game_scene.cpp
index 2175f4aa2..77037cd6e 100644
--- a/cockatrice/src/game/game_scene.cpp
+++ b/cockatrice/src/game/game_scene.cpp
@@ -8,7 +8,6 @@
#include "zones/view_zone.h"
#include "zones/view_zone_widget.h"
-#include
#include
#include
#include
diff --git a/cockatrice/src/game/game_state.h b/cockatrice/src/game/game_state.h
index b5d6a6572..54f6d9276 100644
--- a/cockatrice/src/game/game_state.h
+++ b/cockatrice/src/game/game_state.h
@@ -7,10 +7,8 @@
#ifndef COCKATRICE_GAME_STATE_H
#define COCKATRICE_GAME_STATE_H
-#include
#include
#include
-#include
class AbstractGame;
class ServerInfo_PlayerProperties;
diff --git a/cockatrice/src/game/log/message_log_widget.cpp b/cockatrice/src/game/log/message_log_widget.cpp
index d4af5d00d..1ff3e32ff 100644
--- a/cockatrice/src/game/log/message_log_widget.cpp
+++ b/cockatrice/src/game/log/message_log_widget.cpp
@@ -6,12 +6,10 @@
#include "../board/translate_counter_name.h"
#include "../phase.h"
#include "../player/player.h"
-#include "../zones/card_zone.h"
#include <../../client/settings/card_counter_settings.h>
#include
#include
-#include
#include
static const QString TABLE_ZONE_NAME = "table";
diff --git a/cockatrice/src/game/log/message_log_widget.h b/cockatrice/src/game/log/message_log_widget.h
index a185cb288..369debd33 100644
--- a/cockatrice/src/game/log/message_log_widget.h
+++ b/cockatrice/src/game/log/message_log_widget.h
@@ -7,12 +7,9 @@
#ifndef MESSAGELOGWIDGET_H
#define MESSAGELOGWIDGET_H
-#include "../../client/translation.h"
#include "../../interface/widgets/server/chat_view/chat_view.h"
#include "../zones/logic/card_zone_logic.h"
-#include
-
class AbstractGame;
class CardItem;
class GameEventContext;
diff --git a/cockatrice/src/game/player/menu/grave_menu.cpp b/cockatrice/src/game/player/menu/grave_menu.cpp
index 47d01bc77..d4faca42b 100644
--- a/cockatrice/src/game/player/menu/grave_menu.cpp
+++ b/cockatrice/src/game/player/menu/grave_menu.cpp
@@ -3,7 +3,6 @@
#include "../../abstract_game.h"
#include "../player.h"
#include "../player_actions.h"
-#include "grave_menu.h"
#include
#include
diff --git a/cockatrice/src/game/player/menu/player_menu.cpp b/cockatrice/src/game/player/menu/player_menu.cpp
index 82747d482..3016a727f 100644
--- a/cockatrice/src/game/player/menu/player_menu.cpp
+++ b/cockatrice/src/game/player/menu/player_menu.cpp
@@ -3,12 +3,11 @@
#include "../../../interface/widgets/tabs/tab_game.h"
#include "../../board/card_item.h"
#include "../../zones/hand_zone.h"
-#include "../card_menu_action_type.h"
-#include "../player_actions.h"
+#include "../../zones/pile_zone.h"
+#include "../../zones/table_zone.h"
#include "card_menu.h"
#include "hand_menu.h"
-#include
#include
PlayerMenu::PlayerMenu(Player *_player) : player(_player)
diff --git a/cockatrice/src/game/player/menu/sideboard_menu.cpp b/cockatrice/src/game/player/menu/sideboard_menu.cpp
index bfc40cfd3..beaabfcc6 100644
--- a/cockatrice/src/game/player/menu/sideboard_menu.cpp
+++ b/cockatrice/src/game/player/menu/sideboard_menu.cpp
@@ -1,6 +1,7 @@
#include "sideboard_menu.h"
#include "../player.h"
+#include "../player_actions.h"
SideboardMenu::SideboardMenu(Player *player, QMenu *playerMenu) : QMenu(playerMenu)
{
diff --git a/cockatrice/src/game/player/menu/utility_menu.cpp b/cockatrice/src/game/player/menu/utility_menu.cpp
index 15128defe..ab14d629a 100644
--- a/cockatrice/src/game/player/menu/utility_menu.cpp
+++ b/cockatrice/src/game/player/menu/utility_menu.cpp
@@ -1,9 +1,13 @@
#include "utility_menu.h"
+#include "../../../interface/deck_loader/deck_loader.h"
#include "../player.h"
#include "../player_actions.h"
#include "player_menu.h"
+#include
+#include
+
UtilityMenu::UtilityMenu(Player *_player, QMenu *playerMenu) : QMenu(playerMenu), player(_player)
{
PlayerActions *playerActions = player->getPlayerActions();
@@ -62,15 +66,13 @@ void UtilityMenu::populatePredefinedTokensMenu()
return;
}
- InnerDecklistNode *tokenZone =
- dynamic_cast(_deck->getDeckList()->getRoot()->findChild(DECK_ZONE_TOKENS));
+ auto tokenCardNodes = _deck->getDeckList()->getCardNodes({DECK_ZONE_TOKENS});
- if (tokenZone) {
- if (!tokenZone->empty())
- setEnabled(true);
+ if (!tokenCardNodes.isEmpty()) {
+ setEnabled(true);
- for (int i = 0; i < tokenZone->size(); ++i) {
- const QString tokenName = tokenZone->at(i)->getName();
+ for (int i = 0; i < tokenCardNodes.size(); ++i) {
+ const QString tokenName = tokenCardNodes[i]->getName();
predefinedTokens.append(tokenName);
QAction *a = addAction(tokenName);
if (i < 10) {
diff --git a/cockatrice/src/game/player/player.cpp b/cockatrice/src/game/player/player.cpp
index ffb26c26e..efce40cd7 100644
--- a/cockatrice/src/game/player/player.cpp
+++ b/cockatrice/src/game/player/player.cpp
@@ -11,7 +11,7 @@
#include "../zones/pile_zone.h"
#include "../zones/stack_zone.h"
#include "../zones/table_zone.h"
-#include "../zones/view_zone.h"
+#include "player_actions.h"
#include "player_target.h"
#include
diff --git a/cockatrice/src/game/player/player.h b/cockatrice/src/game/player/player.h
index 0751abb14..0a4fc9e69 100644
--- a/cockatrice/src/game/player/player.h
+++ b/cockatrice/src/game/player/player.h
@@ -9,9 +9,11 @@
#include "../../game_graphics/board/abstract_graphics_item.h"
#include "../../interface/widgets/menus/tearoff_menu.h"
-#include "../dialogs/dlg_create_token.h"
+#include "../zones/logic/hand_zone_logic.h"
+#include "../zones/logic/pile_zone_logic.h"
+#include "../zones/logic/stack_zone_logic.h"
+#include "../zones/logic/table_zone_logic.h"
#include "menu/player_menu.h"
-#include "player_actions.h"
#include "player_area.h"
#include "player_event_handler.h"
#include "player_graphics_item.h"
@@ -20,9 +22,7 @@
#include
#include
#include
-#include
#include
-#include
#include
#include
#include
@@ -113,7 +113,7 @@ public:
[[nodiscard]] PlayerActions *getPlayerActions() const
{
return playerActions;
- };
+ }
[[nodiscard]] PlayerEventHandler *getPlayerEventHandler() const
{
@@ -123,7 +123,7 @@ public:
[[nodiscard]] PlayerInfo *getPlayerInfo() const
{
return playerInfo;
- };
+ }
[[nodiscard]] PlayerMenu *getPlayerMenu() const
{
diff --git a/cockatrice/src/game/player/player_actions.cpp b/cockatrice/src/game/player/player_actions.cpp
index e6efaf854..058fdb510 100644
--- a/cockatrice/src/game/player/player_actions.cpp
+++ b/cockatrice/src/game/player/player_actions.cpp
@@ -5,14 +5,15 @@
#include "../board/card_item.h"
#include "../dialogs/dlg_move_top_cards_until.h"
#include "../dialogs/dlg_roll_dice.h"
+#include "../zones/hand_zone.h"
#include "../zones/logic/view_zone_logic.h"
+#include "../zones/table_zone.h"
#include "card_menu_action_type.h"
#include
#include
#include
#include
-#include
#include
#include
#include
diff --git a/cockatrice/src/game/player/player_actions.h b/cockatrice/src/game/player/player_actions.h
index 9c775691c..e0f86e4fc 100644
--- a/cockatrice/src/game/player/player_actions.h
+++ b/cockatrice/src/game/player/player_actions.h
@@ -7,6 +7,7 @@
#ifndef COCKATRICE_PLAYER_ACTIONS_H
#define COCKATRICE_PLAYER_ACTIONS_H
+#include "../dialogs/dlg_create_token.h"
#include "event_processing_options.h"
#include "player.h"
diff --git a/cockatrice/src/game/player/player_event_handler.cpp b/cockatrice/src/game/player/player_event_handler.cpp
index 972229489..4cf814d86 100644
--- a/cockatrice/src/game/player/player_event_handler.cpp
+++ b/cockatrice/src/game/player/player_event_handler.cpp
@@ -6,6 +6,7 @@
#include "../board/card_list.h"
#include "../zones/view_zone.h"
#include "player.h"
+#include "player_actions.h"
#include
#include
diff --git a/cockatrice/src/game/player/player_graphics_item.cpp b/cockatrice/src/game/player/player_graphics_item.cpp
index 27fbc82c8..30648c926 100644
--- a/cockatrice/src/game/player/player_graphics_item.cpp
+++ b/cockatrice/src/game/player/player_graphics_item.cpp
@@ -1,7 +1,12 @@
#include "player_graphics_item.h"
#include "../../interface/widgets/tabs/tab_game.h"
+#include "../board/abstract_card_item.h"
#include "../hand_counter.h"
+#include "../zones/hand_zone.h"
+#include "../zones/pile_zone.h"
+#include "../zones/stack_zone.h"
+#include "../zones/table_zone.h"
PlayerGraphicsItem::PlayerGraphicsItem(Player *_player) : player(_player)
{
diff --git a/cockatrice/src/game/player/player_info.h b/cockatrice/src/game/player/player_info.h
index d60c245e2..2e9b49d6d 100644
--- a/cockatrice/src/game/player/player_info.h
+++ b/cockatrice/src/game/player/player_info.h
@@ -7,11 +7,6 @@
#ifndef COCKATRICE_PLAYER_INFO_H
#define COCKATRICE_PLAYER_INFO_H
-#include "../../interface/deck_loader/deck_loader.h"
-#include "../zones/hand_zone.h"
-#include "../zones/pile_zone.h"
-#include "../zones/stack_zone.h"
-#include "../zones/table_zone.h"
#include "player_target.h"
#include
diff --git a/cockatrice/src/game/player/player_list_widget.cpp b/cockatrice/src/game/player/player_list_widget.cpp
index 7cf7c34a6..9506e0729 100644
--- a/cockatrice/src/game/player/player_list_widget.cpp
+++ b/cockatrice/src/game/player/player_list_widget.cpp
@@ -4,15 +4,11 @@
#include "../../interface/widgets/server/user/user_context_menu.h"
#include "../../interface/widgets/server/user/user_list_manager.h"
#include "../../interface/widgets/server/user/user_list_widget.h"
-#include "../../interface/widgets/tabs/tab_account.h"
#include "../../interface/widgets/tabs/tab_game.h"
#include "../../interface/widgets/tabs/tab_supervisor.h"
-#include
#include
-#include
#include
-#include
#include
#include
#include
diff --git a/cockatrice/src/game/player/player_target.h b/cockatrice/src/game/player/player_target.h
index aaa0f0610..b60464e12 100644
--- a/cockatrice/src/game/player/player_target.h
+++ b/cockatrice/src/game/player/player_target.h
@@ -11,7 +11,6 @@
#include "../board/abstract_counter.h"
#include "../board/arrow_target.h"
-#include
#include
class Player;
diff --git a/cockatrice/src/game/zones/hand_zone.cpp b/cockatrice/src/game/zones/hand_zone.cpp
index 860881f38..cc3b44910 100644
--- a/cockatrice/src/game/zones/hand_zone.cpp
+++ b/cockatrice/src/game/zones/hand_zone.cpp
@@ -5,6 +5,7 @@
#include "../board/card_drag_item.h"
#include "../board/card_item.h"
#include "../player/player.h"
+#include "../player/player_actions.h"
#include
#include
diff --git a/cockatrice/src/game/zones/logic/card_zone_logic.cpp b/cockatrice/src/game/zones/logic/card_zone_logic.cpp
index b5869489a..bd32eab3e 100644
--- a/cockatrice/src/game/zones/logic/card_zone_logic.cpp
+++ b/cockatrice/src/game/zones/logic/card_zone_logic.cpp
@@ -2,7 +2,7 @@
#include "../../board/card_item.h"
#include "../../player/player.h"
-#include "../pile_zone.h"
+#include "../../player/player_actions.h"
#include "../view_zone.h"
#include "view_zone_logic.h"
@@ -10,7 +10,6 @@
#include
#include
#include
-#include
/**
* @param _player the player that the zone belongs to
@@ -148,17 +147,24 @@ void CardZoneLogic::moveAllToZone()
void CardZoneLogic::clearContents()
{
- for (int i = 0; i < cards.size(); i++) {
+ // First gather the cards into a safe temporary list.
+ const CardList toClear = cards;
+
+ // Detach and notify attached cards and zones *before* deleting anything.
+ for (CardItem *card : toClear) {
// If an incorrectly implemented server doesn't return attached cards to whom they belong before dropping a
// player, we have to return them to avoid a crash.
-
- const QList &attachedCards = cards[i]->getAttachedCards();
- for (auto attachedCard : attachedCards) {
+ const QList &attachedCards = card->getAttachedCards();
+ for (CardItem *attachedCard : attachedCards) {
emit attachedCard->getZone()->cardAdded(attachedCard);
}
-
- player->deleteCard(cards.at(i));
}
+
+ // Now request deletions after all manipulations are done.
+ for (CardItem *card : toClear) {
+ player->deleteCard(card);
+ }
+
cards.clear();
emit cardCountChanged();
}
diff --git a/cockatrice/src/game/zones/logic/card_zone_logic.h b/cockatrice/src/game/zones/logic/card_zone_logic.h
index 4d02b7dd1..1aa46effd 100644
--- a/cockatrice/src/game/zones/logic/card_zone_logic.h
+++ b/cockatrice/src/game/zones/logic/card_zone_logic.h
@@ -52,7 +52,7 @@ public:
void rawInsertCard(CardItem *card, int index)
{
cards.insert(index, card);
- };
+ }
[[nodiscard]] const CardList &getCards() const
{
diff --git a/cockatrice/src/game/zones/pile_zone.cpp b/cockatrice/src/game/zones/pile_zone.cpp
index cafb29038..2d1390826 100644
--- a/cockatrice/src/game/zones/pile_zone.cpp
+++ b/cockatrice/src/game/zones/pile_zone.cpp
@@ -3,6 +3,7 @@
#include "../board/card_drag_item.h"
#include "../board/card_item.h"
#include "../player/player.h"
+#include "../player/player_actions.h"
#include "logic/pile_zone_logic.h"
#include "view_zone.h"
diff --git a/cockatrice/src/game/zones/stack_zone.cpp b/cockatrice/src/game/zones/stack_zone.cpp
index 0c0501705..820008b27 100644
--- a/cockatrice/src/game/zones/stack_zone.cpp
+++ b/cockatrice/src/game/zones/stack_zone.cpp
@@ -6,10 +6,10 @@
#include "../board/card_drag_item.h"
#include "../board/card_item.h"
#include "../player/player.h"
+#include "../player/player_actions.h"
#include "logic/stack_zone_logic.h"
#include
-#include
#include
StackZone::StackZone(StackZoneLogic *_logic, int _zoneHeight, QGraphicsItem *parent)
diff --git a/cockatrice/src/game/zones/table_zone.cpp b/cockatrice/src/game/zones/table_zone.cpp
index 55aaeaa39..c76514350 100644
--- a/cockatrice/src/game/zones/table_zone.cpp
+++ b/cockatrice/src/game/zones/table_zone.cpp
@@ -6,11 +6,11 @@
#include "../board/card_drag_item.h"
#include "../board/card_item.h"
#include "../player/player.h"
+#include "../player/player_actions.h"
#include "logic/table_zone_logic.h"
#include
#include
-#include
#include
#include
#include
diff --git a/cockatrice/src/game/zones/view_zone.cpp b/cockatrice/src/game/zones/view_zone.cpp
index d5eea9dfe..4ae25989e 100644
--- a/cockatrice/src/game/zones/view_zone.cpp
+++ b/cockatrice/src/game/zones/view_zone.cpp
@@ -3,6 +3,7 @@
#include "../board/card_drag_item.h"
#include "../board/card_item.h"
#include "../player/player.h"
+#include "../player/player_actions.h"
#include "logic/view_zone_logic.h"
#include
@@ -10,7 +11,6 @@
#include
#include
#include
-#include
#include
#include
#include
diff --git a/cockatrice/src/game/zones/view_zone_widget.cpp b/cockatrice/src/game/zones/view_zone_widget.cpp
index e2f242883..91abb4663 100644
--- a/cockatrice/src/game/zones/view_zone_widget.cpp
+++ b/cockatrice/src/game/zones/view_zone_widget.cpp
@@ -6,6 +6,7 @@
#include "../board/card_item.h"
#include "../game_scene.h"
#include "../player/player.h"
+#include "../player/player_actions.h"
#include "view_zone.h"
#include
@@ -16,7 +17,6 @@
#include
#include
#include
-#include
#include
/**
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 296355940..06a0476c9 100644
--- a/cockatrice/src/interface/card_picture_loader/card_picture_loader.cpp
+++ b/cockatrice/src/interface/card_picture_loader/card_picture_loader.cpp
@@ -9,7 +9,6 @@
#include
#include
#include
-#include
#include
#include
#include
diff --git a/cockatrice/src/interface/card_picture_loader/card_picture_loader.h b/cockatrice/src/interface/card_picture_loader/card_picture_loader.h
index 29bdf26c8..4000fd99a 100644
--- a/cockatrice/src/interface/card_picture_loader/card_picture_loader.h
+++ b/cockatrice/src/interface/card_picture_loader/card_picture_loader.h
@@ -5,7 +5,6 @@
#include "card_picture_loader_worker.h"
#include
-#include
inline Q_LOGGING_CATEGORY(CardPictureLoaderLog, "card_picture_loader");
inline Q_LOGGING_CATEGORY(CardPictureLoaderCardBackCacheFailLog, "card_picture_loader.card_back_cache_fail");
diff --git a/cockatrice/src/interface/card_picture_loader/card_picture_loader_local.h b/cockatrice/src/interface/card_picture_loader/card_picture_loader_local.h
index 84f16cc38..44163d1db 100644
--- a/cockatrice/src/interface/card_picture_loader/card_picture_loader_local.h
+++ b/cockatrice/src/interface/card_picture_loader/card_picture_loader_local.h
@@ -1,8 +1,6 @@
#ifndef PICTURE_LOADER_LOCAL_H
#define PICTURE_LOADER_LOCAL_H
-#include
-#include
#include
#include
@@ -42,7 +40,7 @@ public:
*
* Uses a set of name variants and folder paths to attempt to locate the correct image.
*/
- QImage tryLoad(const ExactCard &toLoad) const;
+ [[nodiscard]] QImage tryLoad(const ExactCard &toLoad) const;
private:
QString picsPath; ///< Path to standard card image folder
@@ -72,10 +70,10 @@ private:
* Uses several filename patterns to match card images, in order from
* most-specific to least-specific.
*/
- QImage tryLoadCardImageFromDisk(const QString &setName,
- const QString &correctedCardName,
- const QString &collectorNumber,
- const QString &providerId) const;
+ [[nodiscard]] QImage tryLoadCardImageFromDisk(const QString &setName,
+ const QString &correctedCardName,
+ const QString &collectorNumber,
+ const QString &providerId) const;
private slots:
/**
diff --git a/cockatrice/src/interface/card_picture_loader/card_picture_loader_request_status_display_widget.h b/cockatrice/src/interface/card_picture_loader/card_picture_loader_request_status_display_widget.h
index 2e3233c2d..c9a272b68 100644
--- a/cockatrice/src/interface/card_picture_loader/card_picture_loader_request_status_display_widget.h
+++ b/cockatrice/src/interface/card_picture_loader/card_picture_loader_request_status_display_widget.h
@@ -1,11 +1,11 @@
#ifndef PICTURE_LOADER_REQUEST_STATUS_DISPLAY_WIDGET_H
#define PICTURE_LOADER_REQUEST_STATUS_DISPLAY_WIDGET_H
-#include "card_picture_loader_worker_work.h"
-
#include
#include
+#include
#include
+#include
/**
* @class CardPictureLoaderRequestStatusDisplayWidget
diff --git a/cockatrice/src/interface/card_picture_loader/card_picture_loader_status_bar.h b/cockatrice/src/interface/card_picture_loader/card_picture_loader_status_bar.h
index cb469269c..7f1f509db 100644
--- a/cockatrice/src/interface/card_picture_loader/card_picture_loader_status_bar.h
+++ b/cockatrice/src/interface/card_picture_loader/card_picture_loader_status_bar.h
@@ -6,7 +6,6 @@
#include
#include
-#include
#include
/**
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 a2da3c953..77fddc9de 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
@@ -9,8 +9,8 @@
#include
#include
#include
-#include
#include
+#include
static constexpr int MAX_REQUESTS_PER_SEC = 10;
@@ -87,6 +87,7 @@ QNetworkReply *CardPictureLoaderWorker::makeRequest(const QUrl &url, CardPicture
}
QNetworkRequest req(url);
+ req.setHeader(QNetworkRequest::UserAgentHeader, QString("Cockatrice %1").arg(VERSION_STRING));
if (!picDownload) {
req.setAttribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::AlwaysCache);
}
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 e74103419..d5aac645e 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
@@ -7,11 +7,9 @@
#include
#include
#include
-#include
#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.h b/cockatrice/src/interface/card_picture_loader/card_picture_to_load.h
index b0a555c86..b57e57644 100644
--- a/cockatrice/src/interface/card_picture_loader/card_picture_to_load.h
+++ b/cockatrice/src/interface/card_picture_loader/card_picture_to_load.h
@@ -1,7 +1,6 @@
#ifndef PICTURE_TO_LOAD_H
#define PICTURE_TO_LOAD_H
-#include
#include
inline Q_LOGGING_CATEGORY(CardPictureToLoadLog, "card_picture_loader.picture_to_load");
diff --git a/cockatrice/src/interface/deck_loader/card_node_function.cpp b/cockatrice/src/interface/deck_loader/card_node_function.cpp
new file mode 100644
index 000000000..9441fe428
--- /dev/null
+++ b/cockatrice/src/interface/deck_loader/card_node_function.cpp
@@ -0,0 +1,40 @@
+#include "card_node_function.h"
+
+#include