Cockatrice 2026-06-27-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
10#include "../card_dimensions.h"
11#include "arrow_target.h"
12#include "graphics_item_type.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 void rightClicked(AbstractCardItem *card, QPoint screenPos);
51 void selectionChanged(AbstractCardItem *card, bool selected);
52
53public:
54 enum
55 {
57 };
58 int type() const override
59 {
60 return Type;
61 }
62 explicit AbstractCardItem(QGraphicsItem *parent = nullptr,
63 const CardRef &cardRef = {},
64 PlayerLogic *_owner = nullptr,
65 int _id = -1);
66 ~AbstractCardItem() override;
67 QRectF boundingRect() const override;
68 QPainterPath shape() const override;
69 QSizeF getTranslatedSize(QPainter *painter) const;
70 void paintPicture(QPainter *painter, const QSizeF &translatedSize, int angle);
71 void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override;
73 {
74 return exactCard;
75 }
76 const CardInfo &getCardInfo() const;
77 int getId() const
78 {
79 return id;
80 }
81 void setId(int _id)
82 {
83 id = _id;
84 }
85 QString getName() const
86 {
87 return cardRef.name;
88 }
89 QString getProviderId() const
90 {
91 return cardRef.providerId;
92 }
93 void setCardRef(const CardRef &_cardRef);
95 {
96 return cardRef;
97 }
98 qreal getRealZValue() const
99 {
100 return realZValue;
101 }
102 void setRealZValue(qreal _zValue);
103 void setHovered(bool _hovered);
104 bool getIsHovered() const
105 {
106 return isHovered;
107 }
108 QString getColor() const
109 {
110 return color;
111 }
112 void setColor(const QString &_color);
113 bool getTapped() const
114 {
115 return tapped;
116 }
117 void setTapped(bool _tapped, bool canAnimate = false);
118 bool getFaceDown() const
119 {
120 return facedown;
121 }
122 void setFaceDown(bool _facedown);
123 void processHoverEvent();
125 {
126 emit deleteCardInfoPopup(cardRef.name);
127 }
128
129protected:
130 void transformPainter(QPainter *painter, const QSizeF &translatedSize, int angle);
131 void mousePressEvent(QGraphicsSceneMouseEvent *event) override;
132 void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override;
133 QVariant itemChange(QGraphicsItem::GraphicsItemChange change, const QVariant &value) override;
134 void cacheBgColor();
135};
136
137#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 playSelectedFaceDown(AbstractCardItem *card)
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:98
void setId(int _id)
Definition abstract_card_item.h:81
int type() const override
Definition abstract_card_item.h:58
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:118
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:124
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override
Definition abstract_card_item.cpp:179
void playSelected(AbstractCardItem *card)
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:108
CardRef getCardRef() const
Definition abstract_card_item.h:94
bool facedown
Definition abstract_card_item.h:27
bool getIsHovered() const
Definition abstract_card_item.h:104
void rightClicked(AbstractCardItem *card, QPoint screenPos)
void setColor(const QString &_color)
Definition abstract_card_item.cpp:242
QString getName() const
Definition abstract_card_item.h:85
ExactCard getCard() const
Definition abstract_card_item.h:72
@ Type
Definition abstract_card_item.h:56
QString getProviderId() const
Definition abstract_card_item.h:89
void showCardInfoPopup(const QPoint &pos, const CardRef &cardRef)
void hideSelected(AbstractCardItem *card)
QString color
Definition abstract_card_item.h:29
void processHoverEvent()
Definition abstract_card_item.cpp:336
QColor bgColor
Definition abstract_card_item.h:30
bool getTapped() const
Definition abstract_card_item.h:113
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
void selectionChanged(AbstractCardItem *card, bool selected)
int getId() const
Definition abstract_card_item.h:77
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:64
@ typeCard
Definition graphics_item_type.h:14
Definition card_ref.h:14