Cockatrice 2025-11-30-Development-2.11.0-beta.38
A cross-platform 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
11
12#include <QGraphicsItem>
13#include <QInputDialog>
14
15class Player;
16class QAction;
17class QKeyEvent;
18class QMenu;
19class QString;
20
21class AbstractCounter : public QObject, public QGraphicsItem
22{
23 Q_OBJECT
24 Q_INTERFACES(QGraphicsItem)
25
26protected:
28 int id;
29 QString name;
30 int value;
32
33 void mousePressEvent(QGraphicsSceneMouseEvent *event) override;
34 void hoverEnterEvent(QGraphicsSceneHoverEvent *event) override;
35 void hoverLeaveEvent(QGraphicsSceneHoverEvent *event) override;
36
37private:
38 QAction *aSet, *aDec, *aInc;
43
44private slots:
45 void refreshShortcuts();
46 void incrementCounter();
47 void setCounter();
48
49public:
50 AbstractCounter(Player *_player,
51 int _id,
52 const QString &_name,
53 bool _shownInCounterArea,
54 int _value,
55 bool _useNameForShortcut = false,
56 QGraphicsItem *parent = nullptr);
57 ~AbstractCounter() override;
58
59 void retranslateUi();
60 void setValue(int _value);
61 void setShortcutsActive();
63 void delCounter();
64
65 QMenu *getMenu() const
66 {
67 return menu;
68 }
69
70 int getId() const
71 {
72 return id;
73 }
74 QString getName() const
75 {
76 return name;
77 }
79 {
80 return shownInCounterArea;
81 }
82 int getValue() const
83 {
84 return value;
85 }
86};
87
88class AbstractCounterDialog : public QInputDialog
89{
90 Q_OBJECT
91public:
92 AbstractCounterDialog(const QString &name, const QString &value, QWidget *parent = nullptr);
93
94protected:
95 bool eventFilter(QObject *obj, QEvent *event) override;
96 void changeValue(int diff);
97};
98
99#endif
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:38
int getValue() const
Definition abstract_counter.h:82
void setShortcutsInactive()
Definition abstract_counter.cpp:108
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:31
void refreshShortcuts()
Definition abstract_counter.cpp:122
int value
Definition abstract_counter.h:30
bool getShownInCounterArea() const
Definition abstract_counter.h:78
int id
Definition abstract_counter.h:28
QString name
Definition abstract_counter.h:29
int getId() const
Definition abstract_counter.h:70
void mousePressEvent(QGraphicsSceneMouseEvent *event) override
Definition abstract_counter.cpp:135
QMenu * getMenu() const
Definition abstract_counter.h:65
QAction * aDec
Definition abstract_counter.h:38
bool shownInCounterArea
Definition abstract_counter.h:41
~AbstractCounter() override
Definition abstract_counter.cpp:65
void setValue(int _value)
Definition abstract_counter.cpp:129
TearOffMenu * menu
Definition abstract_counter.h:39
void hoverLeaveEvent(QGraphicsSceneHoverEvent *event) override
Definition abstract_counter.cpp:165
void incrementCounter()
Definition abstract_counter.cpp:171
QAction * aInc
Definition abstract_counter.h:38
bool useNameForShortcut
Definition abstract_counter.h:31
Player * player
Definition abstract_counter.h:27
bool shortcutActive
Definition abstract_counter.h:42
void setShortcutsActive()
Definition abstract_counter.cpp:85
void delCounter()
Definition abstract_counter.cpp:70
QString getName() const
Definition abstract_counter.h:74
void setCounter()
Definition abstract_counter.cpp:180
void hoverEnterEvent(QGraphicsSceneHoverEvent *event) override
Definition abstract_counter.cpp:159
bool dialogSemaphore
Definition abstract_counter.h:40
bool deleteAfterDialog
Definition abstract_counter.h:40
void retranslateUi()
Definition abstract_counter.cpp:78
Definition player.h:65
Definition tearoff_menu.h:14
TODO: Document this.