Cockatrice 2026-04-21-Development-2.11.0-beta.61
A virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
abstract_counter.h
Go to the documentation of this file.
1
6
7#ifndef COUNTER_H
8#define COUNTER_H
9
12
13#include <QGraphicsItem>
14#include <QInputDialog>
15
16class Player;
17class QAction;
18class QKeyEvent;
19class QMenu;
20class QString;
21
22class AbstractCounter : public QObject, public QGraphicsItem, public AbstractPlayerComponent
23{
24 Q_OBJECT
25 Q_INTERFACES(QGraphicsItem)
26
27protected:
29 int id;
30 QString name;
31 int value;
33
34 void mousePressEvent(QGraphicsSceneMouseEvent *event) override;
35 void hoverEnterEvent(QGraphicsSceneHoverEvent *event) override;
36 void hoverLeaveEvent(QGraphicsSceneHoverEvent *event) override;
37
38private:
39 QAction *aSet, *aDec, *aInc;
44
45private slots:
46 void refreshShortcuts();
47 void incrementCounter();
48 void setCounter();
49
50public:
51 AbstractCounter(Player *_player,
52 int _id,
53 const QString &_name,
54 bool _shownInCounterArea,
55 int _value,
56 bool _useNameForShortcut = false,
57 QGraphicsItem *parent = nullptr);
58 ~AbstractCounter() override;
59
60 void retranslateUi() override;
61 void setValue(int _value);
62 void setShortcutsActive() override;
63 void setShortcutsInactive() override;
64 void delCounter();
65
66 QMenu *getMenu() const
67 {
68 return menu;
69 }
70
71 int getId() const
72 {
73 return id;
74 }
75 QString getName() const
76 {
77 return name;
78 }
80 {
81 return shownInCounterArea;
82 }
83 int getValue() const
84 {
85 return value;
86 }
87};
88
89class AbstractCounterDialog : public QInputDialog
90{
91 Q_OBJECT
92public:
93 AbstractCounterDialog(const QString &name, const QString &value, QWidget *parent = nullptr);
94
95protected:
96 bool eventFilter(QObject *obj, QEvent *event) override;
97 void changeValue(int diff);
98};
99
100#endif
Polymorphic interface for player-bound UI components managed by PlayerMenu.
void changeValue(int diff)
Definition abstract_counter.cpp:230
bool eventFilter(QObject *obj, QEvent *event) override
Definition abstract_counter.cpp:213
AbstractCounterDialog(const QString &name, const QString &value, QWidget *parent=nullptr)
Definition abstract_counter.cpp:204
QAction * aSet
Definition abstract_counter.h:39
void retranslateUi() override
Retranslate all user-visible strings. Called on language change.
Definition abstract_counter.cpp:78
int getValue() const
Definition abstract_counter.h:83
AbstractCounter(Player *_player, int _id, const QString &_name, bool _shownInCounterArea, int _value, bool _useNameForShortcut=false, QGraphicsItem *parent=nullptr)
Definition abstract_counter.cpp:19
bool hovered
Definition abstract_counter.h:32
void refreshShortcuts()
Definition abstract_counter.cpp:122
int value
Definition abstract_counter.h:31
bool getShownInCounterArea() const
Definition abstract_counter.h:79
int id
Definition abstract_counter.h:29
void setShortcutsActive() override
Bind keyboard shortcuts. Called when this player gains focus.
Definition abstract_counter.cpp:85
QString name
Definition abstract_counter.h:30
int getId() const
Definition abstract_counter.h:71
void mousePressEvent(QGraphicsSceneMouseEvent *event) override
Definition abstract_counter.cpp:135
QMenu * getMenu() const
Definition abstract_counter.h:66
QAction * aDec
Definition abstract_counter.h:39
bool shownInCounterArea
Definition abstract_counter.h:42
~AbstractCounter() override
Definition abstract_counter.cpp:65
void setValue(int _value)
Definition abstract_counter.cpp:129
TearOffMenu * menu
Definition abstract_counter.h:40
void hoverLeaveEvent(QGraphicsSceneHoverEvent *event) override
Definition abstract_counter.cpp:165
void incrementCounter()
Definition abstract_counter.cpp:171
QAction * aInc
Definition abstract_counter.h:39
bool useNameForShortcut
Definition abstract_counter.h:32
Player * player
Definition abstract_counter.h:28
void setShortcutsInactive() override
Unbind keyboard shortcuts. Called when this player loses focus.
Definition abstract_counter.cpp:108
bool shortcutActive
Definition abstract_counter.h:43
void delCounter()
Definition abstract_counter.cpp:70
QString getName() const
Definition abstract_counter.h:75
void setCounter()
Definition abstract_counter.cpp:180
void hoverEnterEvent(QGraphicsSceneHoverEvent *event) override
Definition abstract_counter.cpp:159
bool dialogSemaphore
Definition abstract_counter.h:41
bool deleteAfterDialog
Definition abstract_counter.h:41
Interface for player-bound UI components that need shortcut and translation lifecycle management.
Definition abstract_player_component.h:18
Definition player.h:66
Definition tearoff_menu.h:14
TODO: Document this.