mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-07-09 17:44:01 -07:00
[DeckLoader] Extract LoadedDeck struct
This commit is contained in:
parent
d3302d521f
commit
d5a29d1421
4 changed files with 74 additions and 23 deletions
|
|
@ -20,6 +20,7 @@ set(cockatrice_SOURCES
|
||||||
src/client/settings/shortcut_treeview.cpp
|
src/client/settings/shortcut_treeview.cpp
|
||||||
src/client/settings/shortcuts_settings.cpp
|
src/client/settings/shortcuts_settings.cpp
|
||||||
src/interface/deck_loader/deck_loader.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_connect.cpp
|
||||||
src/interface/widgets/dialogs/dlg_convert_deck_to_cod_format.cpp
|
src/interface/widgets/dialogs/dlg_convert_deck_to_cod_format.cpp
|
||||||
src/interface/widgets/dialogs/dlg_create_game.cpp
|
src/interface/widgets/dialogs/dlg_create_game.cpp
|
||||||
|
|
|
||||||
|
|
@ -7,14 +7,16 @@
|
||||||
#ifndef DECK_LOADER_H
|
#ifndef DECK_LOADER_H
|
||||||
#define DECK_LOADER_H
|
#define DECK_LOADER_H
|
||||||
|
|
||||||
|
#include "loaded_deck.h"
|
||||||
|
|
||||||
#include <QLoggingCategory>
|
#include <QLoggingCategory>
|
||||||
#include <QPrinter>
|
#include <QPrinter>
|
||||||
#include <QTextCursor>
|
#include <QTextCursor>
|
||||||
#include <libcockatrice/deck_list/deck_list.h>
|
#include <libcockatrice/deck_list/deck_list.h>
|
||||||
|
|
||||||
inline Q_LOGGING_CATEGORY(DeckLoaderLog, "deck_loader")
|
inline Q_LOGGING_CATEGORY(DeckLoaderLog, "deck_loader");
|
||||||
|
|
||||||
class DeckLoader : public QObject
|
class DeckLoader : public QObject
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
signals:
|
signals:
|
||||||
|
|
@ -22,27 +24,6 @@ signals:
|
||||||
void loadFinished(bool success);
|
void loadFinished(bool success);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
enum FileFormat
|
|
||||||
{
|
|
||||||
PlainTextFormat,
|
|
||||||
CockatriceFormat
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @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 = "";
|
|
||||||
FileFormat fileFormat = CockatriceFormat;
|
|
||||||
int remoteDeckId = NON_REMOTE_ID;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Supported file extensions for decklist files
|
* Supported file extensions for decklist files
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
19
cockatrice/src/interface/deck_loader/loaded_deck.cpp
Normal file
19
cockatrice/src/interface/deck_loader/loaded_deck.cpp
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
#include "loaded_deck.h"
|
||||||
|
|
||||||
|
LoadedDeck::FileFormat LoadedDeck::getFormatFromName(const QString &fileName)
|
||||||
|
{
|
||||||
|
if (fileName.endsWith(".cod", Qt::CaseInsensitive)) {
|
||||||
|
return CockatriceFormat;
|
||||||
|
}
|
||||||
|
return PlainTextFormat;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool LoadedDeck::LoadInfo::isEmpty() const
|
||||||
|
{
|
||||||
|
return fileName.isEmpty() && remoteDeckId == NON_REMOTE_ID;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool LoadedDeck::isEmpty() const
|
||||||
|
{
|
||||||
|
return deckList.isEmpty() && lastLoadInfo.isEmpty();
|
||||||
|
}
|
||||||
50
cockatrice/src/interface/deck_loader/loaded_deck.h
Normal file
50
cockatrice/src/interface/deck_loader/loaded_deck.h
Normal file
|
|
@ -0,0 +1,50 @@
|
||||||
|
#ifndef COCKATRICE_LOADED_DECK_H
|
||||||
|
#define COCKATRICE_LOADED_DECK_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
|
||||||
|
{
|
||||||
|
enum FileFormat
|
||||||
|
{
|
||||||
|
PlainTextFormat,
|
||||||
|
CockatriceFormat
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determines what deck file format the given filename corresponds to.
|
||||||
|
*
|
||||||
|
* @param fileName The filename
|
||||||
|
* @return The deck format
|
||||||
|
*/
|
||||||
|
static FileFormat getFormatFromName(const QString &fileName);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @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 = "";
|
||||||
|
FileFormat fileFormat = CockatriceFormat;
|
||||||
|
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
|
||||||
Loading…
Add table
Add a link
Reference in a new issue