From 24969ad87c0bb8dea02a0328118c2c5a0d2d379e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Br=C3=BCbach?= Date: Wed, 1 Oct 2025 00:37:04 +0200 Subject: [PATCH] Lint! Took 20 seconds --- cockatrice/src/card/card_info.h | 180 +++++++++++++++++++++++++------- oracle/src/oracleimporter.cpp | 1 - 2 files changed, 143 insertions(+), 38 deletions(-) diff --git a/cockatrice/src/card/card_info.h b/cockatrice/src/card/card_info.h index 8252da1f9..b9b5e62c4 100644 --- a/cockatrice/src/card/card_info.h +++ b/cockatrice/src/card/card_info.h @@ -36,38 +36,56 @@ typedef QHash SetNameMap; Q_DECLARE_METATYPE(CardInfoPtr) +/** + * @class CardInfo + * @ingroup Cards + * + * @brief Represents a card and its associated metadata, properties, and relationships. + * + * CardInfo holds both static information (name, text, flags) and dynamic data + * (properties, set memberships, relationships). It also integrates with + * signals/slots, allowing observers to react to property or visual updates. + * + * Each CardInfo may belong to multiple sets through its printings, and can + * be related to other cards through defined relationships. + */ class CardInfo : public QObject { Q_OBJECT + private: - CardInfoPtr smartThis; - // The card name - QString name; - // The name without punctuation or capitalization, for better card name recognition. - QString simpleName; - // card text - QString text; - // whether this is not a "real" card but a token - bool isToken; - // basic card properties; common for all the sets - QVariantHash properties; - // the cards i'm related to - QList relatedCards; - // the card i'm reverse-related to - QList reverseRelatedCards; - // the cards thare are reverse-related to me - QList reverseRelatedCardsToMe; - // card sets - SetToPrintingsMap setsToPrintings; - // cached set names - QString setsNames; - // positioning properties; used by UI - bool cipt; - bool landscapeOrientation; - int tableRow; - bool upsideDownArt; + CardInfoPtr smartThis; ///< Smart pointer to self for safe cross-references. + QString name; ///< Full name of the card. + QString simpleName; ///< Simplified name for fuzzy matching. + QString text; ///< Text description or rules text of the card. + bool isToken; ///< Whether this card is a token or not. + QVariantHash properties; ///< Key-value store of dynamic card properties. + QList relatedCards; ///< Forward references to related cards. + QList reverseRelatedCards; ///< Cards that refer back to this card. + QList reverseRelatedCardsToMe; ///< Cards that consider this card as related. + SetToPrintingsMap setsToPrintings; ///< Mapping from set names to printing variations. + QString setsNames; ///< Cached, human-readable list of set names. + bool cipt; ///< Positioning flag used by UI. + 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: + /** + * @brief Constructs a CardInfo with full initialization. + * + * @param _name The name of the card. + * @param _text Rules text or description of the card. + * @param _isToken Flag indicating whether the card is a token. + * @param _properties Arbitrary key-value properties. + * @param _relatedCards Forward references to related cards. + * @param _reverseRelatedCards Backward references to related cards. + * @param _sets Map of set names to printing information. + * @param _cipt UI positioning flag. + * @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, const QString &_text, bool _isToken, @@ -79,6 +97,14 @@ public: bool _landscapeOrientation, int _tableRow, bool _upsideDownArt); + + /** + * @brief Copy constructor for CardInfo. + * + * Performs a deep copy of properties, sets, and related card lists. + * + * @param other Another CardInfo to copy. + */ CardInfo(const CardInfo &other) : QObject(other.parent()), name(other.name), simpleName(other.simpleName), text(other.text), isToken(other.isToken), properties(other.properties), relatedCards(other.relatedCards), @@ -88,8 +114,32 @@ public: { } + /** + * @brief Creates a new instance with only the card name. + * + * All other fields are set to defaults. + * + * @param _name The card name. + * @return Shared pointer to the new CardInfo instance. + */ static CardInfoPtr newInstance(const QString &_name); + /** + * @brief Creates a new instance with full initialization. + * + * @param _name Name of the card. + * @param _text Rules text or description. + * @param _isToken Token flag. + * @param _properties Arbitrary properties. + * @param _relatedCards Forward relationships. + * @param _reverseRelatedCards Reverse relationships. + * @param _sets Printing information per set. + * @param _cipt UI positioning flag. + * @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. + */ static CardInfoPtr newInstance(const QString &_name, const QString &_text, bool _isToken, @@ -102,20 +152,33 @@ public: int _tableRow, bool _upsideDownArt); + /** + * @brief Clones the current CardInfo instance. + * + * Uses the copy constructor and ensures the smart pointer is properly set. + * + * @return Shared pointer to the cloned CardInfo. + */ CardInfoPtr clone() const { - // Use the copy constructor to create a new instance CardInfoPtr newCardInfo = CardInfoPtr(new CardInfo(*this)); newCardInfo->setSmartPointer(newCardInfo); // Set the smart pointer for the new instance return newCardInfo; } + /** + * @brief Sets the internal smart pointer to self. + * + * Used internally to allow safe cross-references among CardInfo and CardSet. + * + * @param _ptr Shared pointer pointing to this instance. + */ void setSmartPointer(CardInfoPtr _ptr) { smartThis = std::move(_ptr); } - // basic properties + /** @name Basic Properties Accessors */ //@{ inline const QString &getName() const { return name; @@ -124,7 +187,6 @@ public: { return simpleName; } - const QString &getText() const { return text; @@ -134,7 +196,6 @@ public: text = _text; emit cardInfoChanged(smartThis); } - bool getIsToken() const { return isToken; @@ -164,8 +225,9 @@ public: { return setsNames; } + //@} - // related cards + /** @name Related Cards Accessors */ //@{ const QList &getRelatedCards() const { return relatedCards; @@ -190,8 +252,9 @@ public: { reverseRelatedCardsToMe.append(cardRelation); } + //@} - // positioning + /** @name UI Positioning */ //@{ bool getCipt() const { return cipt; @@ -213,8 +276,9 @@ public: return upsideDownArt; } const QChar getColorChar() const; + //@} - // Back-compatibility methods. Remove ASAP + /** @name Legacy/Convenience Property Accessors */ //@{ const QString getCardType() const; void setCardType(const QString &value); const QString getCmc() const; @@ -225,24 +289,66 @@ public: const QString getManaCost() const; const QString getPowTough() const; void setPowTough(const QString &value); + //@} + /** + * @brief Returns a version of the card name safe for file storage or fuzzy matching. + * + * Removes invalid characters, replaces spacing markers, and normalizes diacritics. + * + * @return Corrected card name as a QString. + */ QString getCorrectedName() const; + + /** + * @brief Adds a printing to a specific set. + * + * Updates the mapping and refreshes the cached list of set names. + * + * @param _set The set to which the card should be added. + * @param _info Optional printing information. + */ void addToSet(const CardSetPtr &_set, PrintingInfo _info = PrintingInfo()); + + /** + * @brief Combines legality properties from a provided map. + * + * Useful for merging format legality flags from multiple sources. + * + * @param props Key-value mapping of format legalities. + */ void combineLegalities(const QVariantHash &props); + + /** + * @brief Refreshes the cached, human-readable list of set names. + * + * Typically called after adding or modifying set memberships. + */ void refreshCachedSetNames(); /** - * Simplify a name to have no punctuation and lowercase all letters, for - * less strict name-matching. + * @brief Simplifies a name for fuzzy matching. + * + * Converts to lowercase, removes punctuation/spacing. + * + * @param name Original name string. + * @return Simplified name string. */ static QString simplifyName(const QString &name); signals: /** - * Emit this when a pixmap for this card finishes loading. - * @param printing The specific printing the pixmap is for. + * @brief Emitted when a pixmap for this card has been updated or finished loading. + * + * @param printing Specific printing for which the pixmap has updated. */ void pixmapUpdated(const PrintingInfo &printing); + + /** + * @brief Emitted when card properties or state have changed. + * + * @param card Shared pointer to the CardInfo instance that changed. + */ void cardInfoChanged(CardInfoPtr card); }; #endif diff --git a/oracle/src/oracleimporter.cpp b/oracle/src/oracleimporter.cpp index 598306f00..0c53c4ad9 100644 --- a/oracle/src/oracleimporter.cpp +++ b/oracle/src/oracleimporter.cpp @@ -1,6 +1,5 @@ #include "oracleimporter.h" -#include #include "database/parser/cockatrice_xml_4.h" #include "parsehelpers.h" #include "qt-json/json.h"