Cockatrice 2026-06-01-Development-3.1.0-beta.3
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 PlayerLogic;
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 PlayerLogic *_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 bool getIsHovered() const
100 {
101 return isHovered;
102 }
103 QString getColor() const
104 {
105 return color;
106 }
107 void setColor(const QString &_color);
108 bool getTapped() const
109 {
110 return tapped;
111 }
112 void setTapped(bool _tapped, bool canAnimate = false);
113 bool getFaceDown() const
114 {
115 return facedown;
116 }
117 void setFaceDown(bool _facedown);
118 void processHoverEvent();
120 {
121 emit deleteCardInfoPopup(cardRef.name);
122 }
123
124protected:
125 void transformPainter(QPainter *painter, const QSizeF &translatedSize, int angle);
126 void mousePressEvent(QGraphicsSceneMouseEvent *event) override;
127 void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override;
128 QVariant itemChange(QGraphicsItem::GraphicsItemChange change, const QVariant &value) override;
129 void cacheBgColor();
130};
131
132#endif
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:302
QVariant itemChange(QGraphicsItem::GraphicsItemChange change, const QVariant &value) override
Definition abstract_card_item.cpp:341
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:283
void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override
Definition abstract_card_item.cpp:326
void cardShiftClicked(QString cardName)
QSizeF getTranslatedSize(QPainter *painter) const
Definition abstract_card_item.cpp:96
QRectF boundingRect() const override
Definition abstract_card_item.cpp:40
bool getFaceDown() const
Definition abstract_card_item.h:113
void mousePressEvent(QGraphicsSceneMouseEvent *event) override
Definition abstract_card_item.cpp:308
int id
Definition abstract_card_item.h:24
void transformPainter(QPainter *painter, const QSizeF &translatedSize, int angle)
Definition abstract_card_item.cpp:102
void pixmapUpdated()
Definition abstract_card_item.cpp:53
AbstractCardItem(QGraphicsItem *parent=nullptr, const CardRef &cardRef={}, PlayerLogic *_owner=nullptr, int _id=-1)
Definition abstract_card_item.cpp:16
void hovered(AbstractCardItem *card)
void setRealZValue(qreal _zValue)
Definition abstract_card_item.cpp:85
void deleteCardInfoPopup()
Definition abstract_card_item.h:119
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override
Definition abstract_card_item.cpp:179
void cacheBgColor()
Definition abstract_card_item.cpp:249
void sigPixmapUpdated()
void paintPicture(QPainter *painter, const QSizeF &translatedSize, int angle)
Definition abstract_card_item.cpp:121
QString getColor() const
Definition abstract_card_item.h:103
CardRef getCardRef() const
Definition abstract_card_item.h:89
bool facedown
Definition abstract_card_item.h:27
bool getIsHovered() const
Definition abstract_card_item.h:99
void setColor(const QString &_color)
Definition abstract_card_item.cpp:242
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:336
QColor bgColor
Definition abstract_card_item.h:30
bool getTapped() const
Definition abstract_card_item.h:108
void setCardRef(const CardRef &_cardRef)
Definition abstract_card_item.cpp:204
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:219
int getId() const
Definition abstract_card_item.h:72
int tapAngle
Definition abstract_card_item.h:28
ArrowTarget(PlayerLogic *_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_logic.h:65
@ typeCard
Definition graphics_item_type.h:14
Definition card_ref.h:14