[Refactor] Move LoadedDeck and DeckFileFormat data types into libcockatrice_deck_list (#7424)

Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
This commit is contained in:
BruebachL 2026-10-31 18:44:11 +01:00 • committed by GitHub
parent 85fd052fdb
commit 6f0c5dca12
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
32 changed files with 51 additions and 35 deletions

View file

@ -1,11 +0,0 @@
#include "deck_file_format.h"
#include <qnamespace.h>
DeckFileFormat::Format DeckFileFormat::getFormatFromName(const QString &fileName)
{
if (fileName.endsWith(".cod", Qt::CaseInsensitive)) {
return Cockatrice;
}
return PlainText;
}

View file

@ -1,36 +0,0 @@
#ifndef COCKATRICE_DECK_FILE_FORMAT_H
#define COCKATRICE_DECK_FILE_FORMAT_H
#include <QString>
namespace DeckFileFormat
{
/**
* The deck file formats that Cockatrice supports.
*/
enum Format
{
/**
* Plaintext deck files, a format that is intended to be widely supported among different programs.
* This format does not support Cockatrice specific features such as banner cards or tags.
*/
PlainText,
/**
* This is Cockatrice's native deck file format, and supports deck metadata such as banner cards and tags.
* Stored as .cod files.
*/
Cockatrice
};
/**
* Determines what deck file format the given filename corresponds to.
*
* @param fileName The filename
* @return The deck format
*/
Format getFormatFromName(const QString &fileName);
} // namespace DeckFileFormat
#endif // COCKATRICE_DECK_FILE_FORMAT_H

View file

@ -7,13 +7,14 @@
#ifndef DECK_LOADER_H
#define DECK_LOADER_H
#include "deck_file_format.h"
#include "loaded_deck.h"
#include <QLoggingCategory>
#include <QObject>
#include <QPrinter>
#include <QString>
#include <QStringList>
#include <QTextCursor>
#include <libcockatrice/deck_list/deck_list.h>
#include <libcockatrice/deck_list/loaded_deck.h>
#include <optional>
#include <qtmetamacros.h>

View file

@ -1,11 +0,0 @@
#include "loaded_deck.h"
bool LoadedDeck::LoadInfo::isEmpty() const
{
return fileName.isEmpty() && remoteDeckId == NON_REMOTE_ID;
}
bool LoadedDeck::isEmpty() const
{
return deckList.isEmpty() && lastLoadInfo.isEmpty();
}

View file

@ -1,39 +0,0 @@
#ifndef COCKATRICE_LOADED_DECK_H
#define COCKATRICE_LOADED_DECK_H
#include "deck_file_format.h"
#include "libcockatrice/deck_list/deck_list.h"
#include <QString>
/**
* @brief Represents a deck that was loaded from somewhere.
* Contains the DeckList itself, as well as info about where it was loaded from.
*/
struct LoadedDeck
{
/**
* @brief Information about where the deck was loaded from.
*
* For local decks, the remoteDeckId field will always be -1.
* For remote decks, fileName will be empty and fileFormat will always be CockatriceFormat
*/
struct LoadInfo
{
static constexpr int NON_REMOTE_ID = -1;
QString fileName = "";
DeckFileFormat::Format fileFormat = DeckFileFormat::Cockatrice;
int remoteDeckId = NON_REMOTE_ID;
bool isEmpty() const;
};
DeckList deckList; ///< The decklist itself
LoadInfo lastLoadInfo = {}; ///< info about where the deck was loaded from
bool isEmpty() const;
};
#endif // COCKATRICE_LOADED_DECK_H

View file

@ -1,14 +1,14 @@
#include "intent_open_local_deck.h"
#include "../deck_loader/deck_file_format.h"
#include "../deck_loader/deck_loader.h"
#include "../deck_loader/loaded_deck.h"
#include "../widgets/tabs/tab_supervisor.h"
#include "intent_wait_for_database_load.h"
#include "libcockatrice/card/database/card_database.h"
#include "libcockatrice/card/database/card_database_loader.h"
#include <libcockatrice/card/database/card_database_manager.h>
#include <libcockatrice/deck_list/deck_file_format.h>
#include <libcockatrice/deck_list/loaded_deck.h>
#include <optional>
IntentOpenLocalDeck::IntentOpenLocalDeck(TabSupervisor *_tabSupervisor, const QString &_file)

View file

@ -1,7 +1,6 @@
#ifndef COCKATRICE_INTENT_OPEN_SHARED_DECK_H
#define COCKATRICE_INTENT_OPEN_SHARED_DECK_H
#include "../deck_loader/loaded_deck.h"
#include "contexts/context_open_deck.h"
#include "intent.h"
@ -9,6 +8,7 @@
#include <QMap>
#include <QScopedPointer>
#include <QString>
#include <libcockatrice/deck_list/loaded_deck.h>
#include <memory>
#include <qtmetamacros.h>

View file

@ -1,7 +1,6 @@
#include "deck_state_manager.h"
#include "../../../client/settings/cache_settings.h"
#include "../../deck_loader/loaded_deck.h"
#include "deck_list_model.h"
#include "libcockatrice/card/card_info.h"
#include "libcockatrice/card/database/card_database_querier.h"
@ -18,6 +17,7 @@
#include <QVariant>
#include <libcockatrice/card/database/card_database_manager.h>
#include <libcockatrice/deck_list/deck_list_history_manager.h>
#include <libcockatrice/deck_list/loaded_deck.h>
#include <libcockatrice/deck_list/tree/inner_deck_list_node.h>
#include <libcockatrice/settings/cards_display_settings.h>
#include <qnamespace.h>

View file

@ -1,7 +1,7 @@
#ifndef COCKATRICE_DECK_STATE_MANAGER_H
#define COCKATRICE_DECK_STATE_MANAGER_H
#include "../../deck_loader/loaded_deck.h"
#include "deck_list_model.h"
#include <QModelIndex>
#include <QObject>
@ -10,6 +10,7 @@
#include <QStringList>
#include <functional>
#include <libcockatrice/deck_list/deck_list.h>
#include <libcockatrice/deck_list/loaded_deck.h>
#include <qtmetamacros.h>
class DeckListHistoryManager;

View file

@ -1,7 +1,6 @@
#include "dlg_convert_deck_to_cod_format.h"
#include "../../../client/settings/cache_settings.h"
#include "../../deck_loader/deck_file_format.h"
#include <QCheckBox>
#include <QDialogButtonBox>
@ -12,6 +11,7 @@
#include <QMessageBox>
#include <QObject>
#include <QVBoxLayout>
#include <libcockatrice/deck_list/deck_file_format.h>
#include <libcockatrice/settings/visual_deck_storage_settings.h>
#include <libcockatrice/utility/qt_utils.h>

View file

@ -10,8 +10,10 @@
#include "libcockatrice/deck_list/deck_list.h"
#include <QCheckBox>
#include <QDialog>
#include <QString>
#include <libcockatrice/deck_list/loaded_deck.h>
#include <qtmetamacros.h>
class QPlainTextEdit;

View file

@ -2,9 +2,7 @@
#include "../../../client/settings/cache_settings.h"
#include "../../../interface/widgets/tabs/tab_supervisor.h"
#include "../../deck_loader/deck_file_format.h"
#include "../../deck_loader/deck_loader.h"
#include "../../deck_loader/loaded_deck.h"
#include "../../pixel_map_generator.h"
#include "../../theme_config.h"
#include "../../theme_manager.h"
@ -57,6 +55,8 @@
#include <QtGlobal>
#include <algorithm>
#include <libcockatrice/card/database/card_database_manager.h>
#include <libcockatrice/deck_list/deck_file_format.h>
#include <libcockatrice/deck_list/loaded_deck.h>
#include <libcockatrice/network/client/remote/remote_client.h>
#include <libcockatrice/settings/appearance_settings.h>
#include <libcockatrice/settings/paths_settings.h>

View file

@ -11,9 +11,7 @@
#include "../../../client/settings/cache_settings.h"
#include "../../../client/settings/shortcuts_settings.h"
#include "../../deck_loader/deck_file_format.h"
#include "../../deck_loader/deck_loader.h"
#include "../../deck_loader/loaded_deck.h"
#include "../cards/additional_info/deck_color_identity.h"
#include "../cards/card_info_frame_widget.h"
#include "../client/network/interfaces/deck_stats_interface.h"
@ -55,6 +53,8 @@
#include <QUrl>
#include <google/protobuf/stubs/port.h>
#include <libcockatrice/card/database/card_database_manager.h>
#include <libcockatrice/deck_list/deck_file_format.h>
#include <libcockatrice/deck_list/loaded_deck.h>
#include <libcockatrice/models/database/card_database_model.h>
#include <libcockatrice/network/client/abstract/abstract_client.h>
#include <libcockatrice/protocol/pb/command_deck_upload.pb.h>

View file

@ -2,7 +2,6 @@
#include "../../../../../../client/settings/cache_settings.h"
#include "../../../../../deck_loader/card_node_function.h"
#include "../../../../../deck_loader/loaded_deck.h"
#include "../../../../cards/deck_card_zone_display_widget.h"
#include "../../../../visual_deck_editor/visual_deck_display_options_widget.h"
#include "../../../../visual_deck_editor/visual_deck_editor_widget.h"
@ -30,6 +29,7 @@
#include <QVariant>
#include <functional>
#include <libcockatrice/card/import/card_name_normalizer.h>
#include <libcockatrice/deck_list/loaded_deck.h>
#include <libcockatrice/settings/cards_display_settings.h>
#include <libcockatrice/utility/qt_utils.h>
#include <qlogging.h>

View file

@ -1,7 +1,6 @@
#include "tab_edhrec_main.h"
#include "../../../../../client/settings/cache_settings.h"
#include "../../../../deck_loader/loaded_deck.h"
#include "../../../cards/card_size_widget.h"
#include "../../../quick_settings/settings_button_widget.h"
#include "../../../utility/completer_utils.h"
@ -28,6 +27,7 @@
#include <QRegularExpression>
#include <libcockatrice/card/database/card_database_manager.h>
#include <libcockatrice/card/database/card_database_querier.h>
#include <libcockatrice/deck_list/loaded_deck.h>
#include <libcockatrice/models/database/card/card_completer_proxy_model.h>
#include <libcockatrice/models/database/card/card_search_model.h>
#include <libcockatrice/models/database/card_database_display_model.h>

View file

@ -1,9 +1,7 @@
#include "tab_deck_storage.h"
#include "../../../client/settings/cache_settings.h"
#include "../../deck_loader/deck_file_format.h"
#include "../../deck_loader/deck_loader.h"
#include "../../deck_loader/loaded_deck.h"
#include "../../pixel_map_generator.h"
#include "../cards/additional_info/deck_color_identity.h"
#include "../deck_share/deck_share_utils.h"
@ -49,7 +47,9 @@
#include <QtGlobal>
#include <algorithm>
#include <libcockatrice/card/database/card_database_manager.h>
#include <libcockatrice/deck_list/deck_file_format.h>
#include <libcockatrice/deck_list/deck_list.h>
#include <libcockatrice/deck_list/loaded_deck.h>
#include <libcockatrice/protocol/pb/command_deck_del.pb.h>
#include <libcockatrice/protocol/pb/command_deck_del_dir.pb.h>
#include <libcockatrice/protocol/pb/command_deck_download.pb.h>

View file

@ -2,7 +2,6 @@
#include "../../../client/settings/cache_settings.h"
#include "../../deck_loader/deck_loader.h"
#include "../../deck_loader/loaded_deck.h"
#include "../cards/card_size_widget.h"
#include "../general/layout_containers/flow_widget.h"
#include "../visual_deck_storage/deck_preview/deck_preview_color_identity_filter_widget.h"
@ -28,6 +27,7 @@
#include <QVBoxLayout>
#include <QWidget>
#include <functional>
#include <libcockatrice/deck_list/loaded_deck.h>
#include <libcockatrice/network/client/abstract/abstract_client.h>
#include <libcockatrice/protocol/pb/command_deck_download_public.pb.h>
#include <libcockatrice/protocol/pb/response.pb.h>

View file

@ -5,7 +5,6 @@
#include "../../../game/abstract_game.h"
#include "../../../game/game_event_handler.h"
#include "../../../game/game_meta_info.h"
#include "../../deck_loader/loaded_deck.h"
#include "../../intents/contexts/context_connect_to_server.h"
#include "../../intents/contexts/context_join_game.h"
#include "../../intents/contexts/context_join_room.h"
@ -63,6 +62,7 @@
#include <QStyleOption>
#include <QSystemTrayIcon>
#include <QTabBar>
#include <libcockatrice/deck_list/loaded_deck.h>
#include <libcockatrice/network/client/abstract/abstract_client.h>
#include <libcockatrice/network/client/remote/remote_client.h>
#include <libcockatrice/protocol/pb/event_game_joined.pb.h>

View file

@ -2,7 +2,6 @@
#include "../../../../client/settings/cache_settings.h"
#include "../../../../client/settings/shortcuts_settings.h"
#include "../../../deck_loader/loaded_deck.h"
#include "../../deck_editor/deck_editor_card_database_dock_widget.h"
#include "../../deck_editor/deck_editor_card_info_dock_widget.h"
#include "../../deck_editor/deck_editor_deck_dock_widget.h"
@ -44,6 +43,7 @@
#include <QVBoxLayout>
#include <QWidget>
#include <functional>
#include <libcockatrice/deck_list/loaded_deck.h>
#include <libcockatrice/models/deck_list/deck_list_model.h>
#include <libcockatrice/settings/deck_editor_settings.h>
#include <libcockatrice/settings/layouts_settings.h>

View file

@ -1,9 +1,7 @@
#include "tab_deck_storage_visual.h"
#include "../../../../client/settings/cache_settings.h"
#include "../../../deck_loader/deck_file_format.h"
#include "../../../deck_loader/deck_loader.h"
#include "../../../deck_loader/loaded_deck.h"
#include "../../cards/additional_info/deck_color_identity.h"
#include "../../deck_share/deck_share_utils.h"
#include "../../deck_share/share_bar_widget.h"
@ -17,7 +15,9 @@
#include <QWidget>
#include <QtGlobal>
#include <libcockatrice/card/database/card_database_manager.h>
#include <libcockatrice/deck_list/deck_file_format.h>
#include <libcockatrice/deck_list/deck_list.h>
#include <libcockatrice/deck_list/loaded_deck.h>
#include <libcockatrice/network/client/abstract/abstract_client.h>
#include <libcockatrice/protocol/pb/command_deck_share_create.pb.h>
#include <libcockatrice/protocol/pb/response.pb.h>

View file

@ -1,9 +1,7 @@
#include "deck_preview_deck_tags_display_widget.h"
#include "../../../../client/settings/cache_settings.h"
#include "../../../deck_loader/deck_file_format.h"
#include "../../../deck_loader/deck_loader.h"
#include "../../../deck_loader/loaded_deck.h"
#include "../../general/layout_containers/flow_widget.h"
#include "deck_preview_tag_addition_widget.h"
#include "deck_preview_tag_dialog.h"
@ -16,6 +14,8 @@
#include <QHBoxLayout>
#include <QPointer>
#include <QSizePolicy>
#include <libcockatrice/deck_list/deck_file_format.h>
#include <libcockatrice/deck_list/loaded_deck.h>
#include <libcockatrice/settings/paths_settings.h>
#include <libcockatrice/utility/qt_utils.h>
#include <optional>

View file

@ -3,7 +3,6 @@
#include "../../../../client/settings/cache_settings.h"
#include "../../../../interface/widgets/dialogs/dlg_convert_deck_to_cod_format.h"
#include "../../../deck_loader/deck_loader.h"
#include "../../../deck_loader/loaded_deck.h"
#include "../../cards/additional_info/color_identity_widget.h"
#include "../../cards/deck_preview_card_picture_widget.h"
#include "../visual_deck_storage_model.h"
@ -45,6 +44,7 @@
#include <compare>
#include <functional>
#include <libcockatrice/card/database/card_database_manager.h>
#include <libcockatrice/deck_list/loaded_deck.h>
#include <libcockatrice/settings/visual_deck_storage_settings.h>
#include <qnamespace.h>
#include <utility>

View file

@ -1,8 +1,6 @@
#include "visual_deck_storage_model.h"
#include "../../deck_loader/deck_file_format.h"
#include "../../deck_loader/deck_loader.h"
#include "../../deck_loader/loaded_deck.h"
#include "../cards/additional_info/deck_color_identity.h"
#include "libcockatrice/deck_list/deck_list.h"
@ -21,6 +19,8 @@
#include <QtConcurrentRun>
#include <compare>
#include <libcockatrice/card/database/card_database_manager.h>
#include <libcockatrice/deck_list/deck_file_format.h>
#include <libcockatrice/deck_list/loaded_deck.h>
#include <libcockatrice/utility/card_ref.h>
#include <optional>
#include <utility>

View file

@ -13,7 +13,6 @@
#ifndef VISUAL_DECK_STORAGE_MODEL_H
#define VISUAL_DECK_STORAGE_MODEL_H
#include "../../deck_loader/loaded_deck.h"
#include "libcockatrice/utility/card_ref.h"
#include <QAbstractListModel>
@ -24,6 +23,9 @@
#include <QString>
#include <QStringList>
#include <QVector>
#include <libcockatrice/deck_list/deck_list.h>
#include <libcockatrice/deck_list/loaded_deck.h>
#include <optional>
#include <qnamespace.h>
#include <qtmetamacros.h>

View file

@ -1,7 +1,6 @@
#include "visual_deck_storage_sort_filter_proxy_model.h"
#include "../../../client/settings/cache_settings.h"
#include "../../deck_loader/loaded_deck.h"
#include "../../filters/deck_filter_string.h"
#include "visual_deck_storage_model.h"
@ -16,6 +15,7 @@
#include <algorithm>
#include <compare>
#include <libcockatrice/card/card_localization.h>
#include <libcockatrice/deck_list/loaded_deck.h>
#include <libcockatrice/settings/cards_display_settings.h>
VisualDeckStorageSortFilterProxyModel::VisualDeckStorageSortFilterProxyModel(QObject *parent)