Cockatrice 2026-06-01-Development-3.1.0-beta.3
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#include "counter_state.h"
13
14#include <QGraphicsItem>
15#include <QInputDialog>
16
17class PlayerLogic;
18class QAction;
19class QKeyEvent;
20class QMenu;
21class QString;
22
23class AbstractCounter : public QObject, public QGraphicsItem, public AbstractPlayerComponent
24{
25 Q_OBJECT
26 Q_INTERFACES(QGraphicsItem)
27
28protected:
30 int id;
31 QString name;
32 int value;
33 QColor color;
34 int radius;
35 bool hovered = false;
37
38 void mousePressEvent(QGraphicsSceneMouseEvent *event) override;
39 void hoverEnterEvent(QGraphicsSceneHoverEvent *event) override;
40 void hoverLeaveEvent(QGraphicsSceneHoverEvent *event) override;
41
42private:
43 QAction *aSet = nullptr, *aDec = nullptr, *aInc = nullptr;
44 TearOffMenu *menu = nullptr;
45 bool dialogSemaphore = false;
46 bool deleteAfterDialog = false;
48 bool shortcutActive = false;
49
50private slots:
51 void refreshShortcuts();
52 void incrementCounter();
53 void setCounter();
54
55public:
59 bool useNameForShortcut = false,
60 QGraphicsItem *parent = nullptr);
61 ~AbstractCounter() override;
62
63 void retranslateUi() override;
64 void setShortcutsActive() override;
65 void setShortcutsInactive() override;
66 void delCounter();
67
68 QMenu *getMenu() const
69 {
70 return menu;
71 }
72 int getId() const
73 {
74 return id;
75 }
76 QString getName() const
77 {
78 return name;
79 }
80 QColor getColor() const
81 {
82 return color;
83 }
84 int getRadius() const
85 {
86 return radius;
87 }
88 int getValue() const
89 {
90 return value;
91 }
93 {
94 return shownInCounterArea;
95 }
96};
97
98class AbstractCounterDialog : public QInputDialog
99{
100 Q_OBJECT
101public:
102 AbstractCounterDialog(const QString &name, const QString &value, QWidget *parent = nullptr);
103
104protected:
105 bool eventFilter(QObject *obj, QEvent *event) override;
106 void changeValue(int diff);
107};
108
109#endif
Polymorphic interface for player-bound UI components managed by PlayerMenu.
void changeValue(int diff)
Definition abstract_counter.cpp:220
bool eventFilter(QObject *obj, QEvent *event) override
Definition abstract_counter.cpp:203
AbstractCounterDialog(const QString &name, const QString &value, QWidget *parent=nullptr)
Definition abstract_counter.cpp:194
QAction * aSet
Definition abstract_counter.h:43
void retranslateUi() override
Retranslate all user-visible strings. Called on language change.
Definition abstract_counter.cpp:82
int getValue() const
Definition abstract_counter.h:88
AbstractCounter(CounterState *state, PlayerLogic *player, bool shownInCounterArea, bool useNameForShortcut=false, QGraphicsItem *parent=nullptr)
Definition abstract_counter.cpp:20
int radius
Definition abstract_counter.h:34
bool hovered
Definition abstract_counter.h:35
void refreshShortcuts()
Definition abstract_counter.cpp:121
int value
Definition abstract_counter.h:32
bool getShownInCounterArea() const
Definition abstract_counter.h:92
int id
Definition abstract_counter.h:30
void setShortcutsActive() override
Bind keyboard shortcuts. Called when this player gains focus.
Definition abstract_counter.cpp:89
QColor color
Definition abstract_counter.h:33
QString name
Definition abstract_counter.h:31
int getId() const
Definition abstract_counter.h:72
void mousePressEvent(QGraphicsSceneMouseEvent *event) override
Definition abstract_counter.cpp:128
int getRadius() const
Definition abstract_counter.h:84
QMenu * getMenu() const
Definition abstract_counter.h:68
QAction * aDec
Definition abstract_counter.h:43
bool shownInCounterArea
Definition abstract_counter.h:47
~AbstractCounter() override
Definition abstract_counter.cpp:68
TearOffMenu * menu
Definition abstract_counter.h:44
void hoverLeaveEvent(QGraphicsSceneHoverEvent *event) override
Definition abstract_counter.cpp:153
void incrementCounter()
Definition abstract_counter.cpp:159
PlayerLogic * player
Definition abstract_counter.h:29
QAction * aInc
Definition abstract_counter.h:43
bool useNameForShortcut
Definition abstract_counter.h:36
QColor getColor() const
Definition abstract_counter.h:80
void setShortcutsInactive() override
Unbind keyboard shortcuts. Called when this player loses focus.
Definition abstract_counter.cpp:107
bool shortcutActive
Definition abstract_counter.h:48
void delCounter()
Definition abstract_counter.cpp:73
QString getName() const
Definition abstract_counter.h:76
void setCounter()
Definition abstract_counter.cpp:167
void hoverEnterEvent(QGraphicsSceneHoverEvent *event) override
Definition abstract_counter.cpp:148
bool dialogSemaphore
Definition abstract_counter.h:45
bool deleteAfterDialog
Definition abstract_counter.h:46
Interface for player-bound UI components that need shortcut and translation lifecycle management.
Definition abstract_player_component.h:18
Definition counter_state.h:10
Definition player_logic.h:65
Definition tearoff_menu.h:14