Cockatrice 2026-04-21-Development-2.11.0-beta.61
A virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
abstract_card_item.h
Go to the documentation of this file.
1
6
7#ifndef ABSTRACTCARDITEM_H
8#define ABSTRACTCARDITEM_H
9
11#include "../card_dimensions.h"
12#include "arrow_target.h"
13
16
17class Player;
18
20{
21 Q_OBJECT
22protected:
24 int id;
26 bool tapped;
29 QString color;
30 QColor bgColor;
31
32private:
35private slots:
36 void pixmapUpdated();
37
38public slots:
39 void refreshCardInfo();
40
41signals:
43 void showCardInfoPopup(const QPoint &pos, const CardRef &cardRef);
44 void deleteCardInfoPopup(QString cardName);
46 void cardShiftClicked(QString cardName);
47
48public:
49 enum
50 {
52 };
53 int type() const override
54 {
55 return Type;
56 }
57 explicit AbstractCardItem(QGraphicsItem *parent = nullptr,
58 const CardRef &cardRef = {},
59 Player *_owner = nullptr,
60 int _id = -1);
61 ~AbstractCardItem() override;
62 QRectF boundingRect() const override;
63 QPainterPath shape() const override;
64 QSizeF getTranslatedSize(QPainter *painter) const;
65 void paintPicture(QPainter *painter, const QSizeF &translatedSize, int angle);
66 void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override;
68 {
69 return exactCard;
70 }
71 const CardInfo &getCardInfo() const;
72 int getId() const
73 {
74 return id;
75 }
76 void setId(int _id)
77 {
78 id = _id;
79 }
80 QString getName() const
81 {
82 return cardRef.name;
83 }
84 QString getProviderId() const
85 {
86 return cardRef.providerId;
87 }
88 void setCardRef(const CardRef &_cardRef);
90 {
91 return cardRef;
92 }
93 qreal getRealZValue() const
94 {
95 return realZValue;
96 }
97 void setRealZValue(qreal _zValue);
98 void setHovered(bool _hovered);
99 QString getColor() const
100 {
101 return color;
102 }
103 void setColor(const QString &_color);
104 bool getTapped() const
105 {
106 return tapped;
107 }
108 void setTapped(bool _tapped, bool canAnimate = false);
109 bool getFaceDown() const
110 {
111 return facedown;
112 }
113 void setFaceDown(bool _facedown);
114 void processHoverEvent();
116 {
117 emit deleteCardInfoPopup(cardRef.name);
118 }
119
120protected:
121 void transformPainter(QPainter *painter, const QSizeF &translatedSize, int angle);
122 void mousePressEvent(QGraphicsSceneMouseEvent *event) override;
123 void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override;
124 QVariant itemChange(QGraphicsItem::GraphicsItemChange change, const QVariant &value) override;
125 void cacheBgColor();
126};
127
128#endif
TODO: Document this.
Canonical card dimension constants for layout and Z-value calculations.
qreal realZValue
Definition abstract_card_item.h:34
~AbstractCardItem() override
Definition abstract_card_item.cpp:35
void setFaceDown(bool _facedown)
Definition abstract_card_item.cpp:284
QVariant itemChange(QGraphicsItem::GraphicsItemChange change, const QVariant &value) override
Definition abstract_card_item.cpp:321
bool tapped
Definition abstract_card_item.h:26
CardRef cardRef
Definition abstract_card_item.h:25
qreal getRealZValue() const
Definition abstract_card_item.h:93
void setId(int _id)
Definition abstract_card_item.h:76
int type() const override
Definition abstract_card_item.h:53
QPainterPath shape() const override
Definition abstract_card_item.cpp:45
void refreshCardInfo()
Definition abstract_card_item.cpp:59
void deleteCardInfoPopup(QString cardName)
void setTapped(bool _tapped, bool canAnimate=false)
Definition abstract_card_item.cpp:266
void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override
Definition abstract_card_item.cpp:307
void cardShiftClicked(QString cardName)
QSizeF getTranslatedSize(QPainter *painter) const
Definition abstract_card_item.cpp:91
QRectF boundingRect() const override
Definition abstract_card_item.cpp:40
AbstractCardItem(QGraphicsItem *parent=nullptr, const CardRef &cardRef={}, Player *_owner=nullptr, int _id=-1)
Definition abstract_card_item.cpp:16
bool getFaceDown() const
Definition abstract_card_item.h:109
void mousePressEvent(QGraphicsSceneMouseEvent *event) override
Definition abstract_card_item.cpp:290
int id
Definition abstract_card_item.h:24
void transformPainter(QPainter *painter, const QSizeF &translatedSize, int angle)
Definition abstract_card_item.cpp:97
void pixmapUpdated()
Definition abstract_card_item.cpp:53
void hovered(AbstractCardItem *card)
void setRealZValue(qreal _zValue)
Definition abstract_card_item.cpp:85
void deleteCardInfoPopup()
Definition abstract_card_item.h:115
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override
Definition abstract_card_item.cpp:173
void cacheBgColor()
Definition abstract_card_item.cpp:232
void sigPixmapUpdated()
void paintPicture(QPainter *painter, const QSizeF &translatedSize, int angle)
Definition abstract_card_item.cpp:116
QString getColor() const
Definition abstract_card_item.h:99
CardRef getCardRef() const
Definition abstract_card_item.h:89
bool facedown
Definition abstract_card_item.h:27
void setColor(const QString &_color)
Definition abstract_card_item.cpp:225
QString getName() const
Definition abstract_card_item.h:80
ExactCard getCard() const
Definition abstract_card_item.h:67
QString getProviderId() const
Definition abstract_card_item.h:84
void showCardInfoPopup(const QPoint &pos, const CardRef &cardRef)
QString color
Definition abstract_card_item.h:29
@ Type
Definition abstract_card_item.h:51
void processHoverEvent()
Definition abstract_card_item.cpp:316
QColor bgColor
Definition abstract_card_item.h:30
bool getTapped() const
Definition abstract_card_item.h:104
void setCardRef(const CardRef &_cardRef)
Definition abstract_card_item.cpp:196
bool isHovered
Definition abstract_card_item.h:33
const CardInfo & getCardInfo() const
Definition abstract_card_item.cpp:80
ExactCard exactCard
Definition abstract_card_item.h:23
void setHovered(bool _hovered)
Definition abstract_card_item.cpp:211
int getId() const
Definition abstract_card_item.h:72
int tapAngle
Definition abstract_card_item.h:28
ArrowTarget(Player *_owner, QGraphicsItem *parent=nullptr)
Definition arrow_target.cpp:6
Represents a card and its associated metadata, properties, and relationships.
Definition card_info.h:49
Represents a specific card instance, defined by its CardInfo and a particular printing.
Definition exact_card.h:19
Definition player.h:66
TODO: Document this.
@ typeCard
Definition graphics_item_type.h:14
Definition card_ref.h:14