refactor CardInfo

This commit is contained in:
RickyRister 2025-11-15 00:48:43 -08:00
parent 827f22ed37
commit 5734f51f3f
2 changed files with 30 additions and 54 deletions

View file

@ -26,13 +26,9 @@ CardInfo::CardInfo(const QString &_name,
const QList<CardRelation *> &_relatedCards, const QList<CardRelation *> &_relatedCards,
const QList<CardRelation *> &_reverseRelatedCards, const QList<CardRelation *> &_reverseRelatedCards,
SetToPrintingsMap _sets, SetToPrintingsMap _sets,
bool _cipt, const UiAttributes _uiAttributes)
bool _landscapeOrientation,
int _tableRow,
bool _upsideDownArt)
: name(_name), text(_text), isToken(_isToken), properties(std::move(_properties)), relatedCards(_relatedCards), : name(_name), text(_text), isToken(_isToken), properties(std::move(_properties)), relatedCards(_relatedCards),
reverseRelatedCards(_reverseRelatedCards), setsToPrintings(std::move(_sets)), cipt(_cipt), reverseRelatedCards(_reverseRelatedCards), setsToPrintings(std::move(_sets)), uiAttributes(_uiAttributes)
landscapeOrientation(_landscapeOrientation), tableRow(_tableRow), upsideDownArt(_upsideDownArt)
{ {
simpleName = CardInfo::simplifyName(name); simpleName = CardInfo::simplifyName(name);
@ -41,8 +37,7 @@ CardInfo::CardInfo(const QString &_name,
CardInfoPtr CardInfo::newInstance(const QString &_name) CardInfoPtr CardInfo::newInstance(const QString &_name)
{ {
return newInstance(_name, QString(), false, QVariantHash(), QList<CardRelation *>(), QList<CardRelation *>(), return newInstance(_name, "", false, {}, {}, {}, {}, {});
SetToPrintingsMap(), false, false, 0, false);
} }
CardInfoPtr CardInfo::newInstance(const QString &_name, CardInfoPtr CardInfo::newInstance(const QString &_name,
@ -52,13 +47,10 @@ CardInfoPtr CardInfo::newInstance(const QString &_name,
const QList<CardRelation *> &_relatedCards, const QList<CardRelation *> &_relatedCards,
const QList<CardRelation *> &_reverseRelatedCards, const QList<CardRelation *> &_reverseRelatedCards,
SetToPrintingsMap _sets, SetToPrintingsMap _sets,
bool _cipt, const UiAttributes _uiAttributes)
bool _landscapeOrientation,
int _tableRow,
bool _upsideDownArt)
{ {
CardInfoPtr ptr(new CardInfo(_name, _text, _isToken, std::move(_properties), _relatedCards, _reverseRelatedCards, CardInfoPtr ptr(new CardInfo(_name, _text, _isToken, std::move(_properties), _relatedCards, _reverseRelatedCards,
_sets, _cipt, _landscapeOrientation, _tableRow, _upsideDownArt)); _sets, _uiAttributes));
ptr->setSmartPointer(ptr); ptr->setSmartPointer(ptr);
for (const auto &printings : _sets) { for (const auto &printings : _sets) {

View file

@ -47,6 +47,21 @@ class CardInfo : public QObject
{ {
Q_OBJECT Q_OBJECT
public:
/**
* @class CardInfo::UiAttributes
* @ingroup Cards
*
* @brief Attributes of the card that affect display and game logic.
*/
struct UiAttributes
{
bool cipt = false; ///< Positioning flag used by UI.
bool landscapeOrientation = false; ///< Orientation flag for rendering.
int tableRow = 0; ///< Row index in a table or visual representation.
bool upsideDownArt = false; ///< Whether artwork is flipped for visual purposes.
};
private: private:
/** @name Private Card Properties /** @name Private Card Properties
* @anchor PrivateCardProperties * @anchor PrivateCardProperties
@ -63,10 +78,7 @@ private:
QList<CardRelation *> reverseRelatedCardsToMe; ///< Cards that consider this card as related. QList<CardRelation *> reverseRelatedCardsToMe; ///< Cards that consider this card as related.
SetToPrintingsMap setsToPrintings; ///< Mapping from set names to printing variations. SetToPrintingsMap setsToPrintings; ///< Mapping from set names to printing variations.
QString setsNames; ///< Cached, human-readable list of set names. QString setsNames; ///< Cached, human-readable list of set names.
bool cipt; ///< Positioning flag used by UI. UiAttributes uiAttributes; ///< Attributes that affect display and game logic
bool landscapeOrientation; ///< Orientation flag for rendering.
int tableRow; ///< Row index in a table or visual representation.
bool upsideDownArt; ///< Whether artwork is flipped for visual purposes.
///@} ///@}
public: public:
@ -80,10 +92,7 @@ public:
* @param _relatedCards Forward references to related cards. * @param _relatedCards Forward references to related cards.
* @param _reverseRelatedCards Backward references to related cards. * @param _reverseRelatedCards Backward references to related cards.
* @param _sets Map of set names to printing information. * @param _sets Map of set names to printing information.
* @param _cipt UI positioning flag. * @param _uiAttributes Attributes that affect display and game logic
* @param _landscapeOrientation UI rendering orientation.
* @param _tableRow Row index for table placement.
* @param _upsideDownArt Whether the artwork should be displayed upside down.
*/ */
explicit CardInfo(const QString &_name, explicit CardInfo(const QString &_name,
const QString &_text, const QString &_text,
@ -92,10 +101,7 @@ public:
const QList<CardRelation *> &_relatedCards, const QList<CardRelation *> &_relatedCards,
const QList<CardRelation *> &_reverseRelatedCards, const QList<CardRelation *> &_reverseRelatedCards,
SetToPrintingsMap _sets, SetToPrintingsMap _sets,
bool _cipt, UiAttributes _uiAttributes);
bool _landscapeOrientation,
int _tableRow,
bool _upsideDownArt);
/** /**
* @brief Copy constructor for CardInfo. * @brief Copy constructor for CardInfo.
@ -108,8 +114,7 @@ public:
: QObject(other.parent()), name(other.name), simpleName(other.simpleName), text(other.text), : QObject(other.parent()), name(other.name), simpleName(other.simpleName), text(other.text),
isToken(other.isToken), properties(other.properties), relatedCards(other.relatedCards), isToken(other.isToken), properties(other.properties), relatedCards(other.relatedCards),
reverseRelatedCards(other.reverseRelatedCards), reverseRelatedCardsToMe(other.reverseRelatedCardsToMe), reverseRelatedCards(other.reverseRelatedCards), reverseRelatedCardsToMe(other.reverseRelatedCardsToMe),
setsToPrintings(other.setsToPrintings), setsNames(other.setsNames), cipt(other.cipt), setsToPrintings(other.setsToPrintings), setsNames(other.setsNames), uiAttributes(other.uiAttributes)
landscapeOrientation(other.landscapeOrientation), tableRow(other.tableRow), upsideDownArt(other.upsideDownArt)
{ {
} }
@ -133,10 +138,7 @@ public:
* @param _relatedCards Forward relationships. * @param _relatedCards Forward relationships.
* @param _reverseRelatedCards Reverse relationships. * @param _reverseRelatedCards Reverse relationships.
* @param _sets Printing information per set. * @param _sets Printing information per set.
* @param _cipt UI positioning flag. * @param _uiAttributes Attributes that affect display and game logic
* @param _landscapeOrientation UI rendering orientation.
* @param _tableRow Row index for table placement.
* @param _upsideDownArt Artwork orientation flag.
* @return Shared pointer to the new CardInfo instance. * @return Shared pointer to the new CardInfo instance.
*/ */
static CardInfoPtr newInstance(const QString &_name, static CardInfoPtr newInstance(const QString &_name,
@ -146,10 +148,7 @@ public:
const QList<CardRelation *> &_relatedCards, const QList<CardRelation *> &_relatedCards,
const QList<CardRelation *> &_reverseRelatedCards, const QList<CardRelation *> &_reverseRelatedCards,
SetToPrintingsMap _sets, SetToPrintingsMap _sets,
bool _cipt, UiAttributes _uiAttributes);
bool _landscapeOrientation,
int _tableRow,
bool _upsideDownArt);
/** /**
* @brief Clones the current CardInfo instance. * @brief Clones the current CardInfo instance.
@ -254,29 +253,14 @@ public:
//@} //@}
/** @name UI Positioning */ //@{ /** @name UI Positioning */ //@{
bool getCipt() const const UiAttributes &getUiAttributes() const
{ {
return cipt; return uiAttributes;
} }
bool getLandscapeOrientation() const
{
return landscapeOrientation;
}
int getTableRow() const
{
return tableRow;
}
void setTableRow(int _tableRow)
{
tableRow = _tableRow;
}
bool getUpsideDownArt() const
{
return upsideDownArt;
}
const QChar getColorChar() const;
//@} //@}
const QChar getColorChar() const;
/** @name Legacy/Convenience Property Accessors */ //@{ /** @name Legacy/Convenience Property Accessors */ //@{
const QString getCardType() const; const QString getCardType() const;
void setCardType(const QString &value); void setCardType(const QString &value);