Cockatrice 2026-01-14-Development-2.11.0-beta.46
A cross-platform virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
view_zone_widget.h
Go to the documentation of this file.
1
6#ifndef ZONEVIEWWIDGET_H
7#define ZONEVIEWWIDGET_H
8
10
11#include <QCheckBox>
12#include <QComboBox>
13#include <QGraphicsProxyWidget>
14#include <QGraphicsWidget>
15#include <QLineEdit>
16#include <QPointer>
18
19class QLabel;
20class QPushButton;
21class CardZone;
22class ZoneViewZone;
23class Player;
24class CardDatabase;
25class QScrollBar;
26class GameScene;
27class ServerInfo_Card;
28class QGraphicsSceneMouseEvent;
29class QGraphicsSceneWheelEvent;
30class QStyleOption;
31class QGraphicsView;
32class QWidget;
33
34class ScrollableGraphicsProxyWidget : public QGraphicsProxyWidget
35{
36 Q_OBJECT
37public slots:
38 void recieveWheelEvent(QGraphicsSceneWheelEvent *event)
39 {
40 wheelEvent(event);
41 }
42};
43
50class ZoneViewWidget : public QGraphicsWidget
51{
52 Q_OBJECT
53private:
55 QGraphicsWidget *zoneContainer;
56
57 QScrollBar *scrollBar;
59
60 QLineEdit searchEdit;
61 QComboBox groupBySelector;
62 QComboBox sortBySelector;
63 QCheckBox shuffleCheckBox;
65
69
70 bool draggingWindow = false;
73 QPointer<QGraphicsView> dragView;
74
75 void stopWindowDrag();
76 void startWindowDrag(QGraphicsSceneMouseEvent *event);
77 QRectF closeButtonRect(QWidget *styleWidget) const;
84 QGraphicsView *findDragView(QWidget *eventWidget) const;
94 QPointF
95 calcDraggedWindowPos(const QPoint &screenPos, const QPointF &scenePos, const QPointF &buttonDownScenePos) const;
96
97 void resizeScrollbar(qreal newZoneHeight);
98signals:
100private slots:
101 void processGroupBy(int value);
102 void processSortBy(int value);
104 void resizeToZoneContents(bool forceInitialHeight = false);
105 void handleScrollBarChange(int value);
106 void zoneDeleted();
107 void resizeEvent(QGraphicsSceneResizeEvent * /* event */) override;
108 void expandWindow();
109
110public:
111 ZoneViewWidget(Player *_player,
112 CardZoneLogic *_origZone,
113 int numberCards = 0,
114 bool _revealZone = false,
115 bool _writeableRevealZone = false,
116 const QList<const ServerInfo_Card *> &cardList = QList<const ServerInfo_Card *>(),
117 bool _isReversed = false);
119 {
120 return zone;
121 }
123 {
124 return player;
125 }
126 void retranslateUi();
127
128protected:
129 void closeEvent(QCloseEvent *event) override;
130 void initStyleOption(QStyleOption *option) const override;
131 bool windowFrameEvent(QEvent *event) override;
132 QVariant itemChange(GraphicsItemChange change, const QVariant &value) override;
133 void mouseMoveEvent(QGraphicsSceneMouseEvent *event) override;
134 void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override;
135 void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) override;
136};
137
138#endif
TODO: Document this.
Core in-memory container for card and set data.
Definition card_database.h:29
Definition card_zone_logic.h:26
Definition card_zone.h:26
Manages the game board display including players, zones, cards, and animations.
Definition game_scene.h:38
Definition player.h:65
Definition view_zone_widget.h:35
void recieveWheelEvent(QGraphicsSceneWheelEvent *event)
Definition view_zone_widget.h:38
void zoneDeleted()
Definition view_zone_widget.cpp:529
void initStyleOption(QStyleOption *option) const override
Definition view_zone_widget.cpp:535
QPointF dragStartItemPos
Definition view_zone_widget.h:72
QCheckBox pileViewCheckBox
Definition view_zone_widget.h:64
bool windowFrameEvent(QEvent *event) override
Definition view_zone_widget.cpp:340
QScrollBar * scrollBar
Definition view_zone_widget.h:57
void processSortBy(int value)
Definition view_zone_widget.cpp:200
void startWindowDrag(QGraphicsSceneMouseEvent *event)
Definition view_zone_widget.cpp:261
QGraphicsWidget * zoneContainer
Definition view_zone_widget.h:55
void retranslateUi()
Definition view_zone_widget.cpp:221
void processSetPileView(QT_STATE_CHANGED_T value)
Definition view_zone_widget.cpp:215
void processGroupBy(int value)
Definition view_zone_widget.cpp:184
Player * getPlayer() const
Definition view_zone_widget.h:122
void resizeEvent(QGraphicsSceneResizeEvent *) override
Definition view_zone_widget.cpp:439
void resizeToZoneContents(bool forceInitialHeight=false)
Definition view_zone_widget.cpp:487
Player * player
Definition view_zone_widget.h:68
void closePressed(ZoneViewWidget *zv)
QCheckBox shuffleCheckBox
Definition view_zone_widget.h:63
ScrollableGraphicsProxyWidget * scrollBarProxy
Definition view_zone_widget.h:58
ZoneViewZone * zone
Definition view_zone_widget.h:54
QPointer< QGraphicsView > dragView
Definition view_zone_widget.h:73
void expandWindow()
Definition view_zone_widget.cpp:546
QComboBox sortBySelector
Definition view_zone_widget.h:62
void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override
Definition view_zone_widget.cpp:407
void handleScrollBarChange(int value)
Definition view_zone_widget.cpp:512
void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) override
Definition view_zone_widget.cpp:571
bool draggingWindow
Definition view_zone_widget.h:70
ZoneViewWidget(Player *_player, CardZoneLogic *_origZone, int numberCards=0, bool _revealZone=false, bool _writeableRevealZone=false, const QList< const ServerInfo_Card * > &cardList=QList< const ServerInfo_Card * >(), bool _isReversed=false)
Definition view_zone_widget.cpp:39
QLineEdit searchEdit
Definition view_zone_widget.h:60
QVariant itemChange(GraphicsItemChange change, const QVariant &value) override
Definition view_zone_widget.cpp:418
void closeEvent(QCloseEvent *event) override
Definition view_zone_widget.cpp:517
void stopWindowDrag()
Definition view_zone_widget.cpp:252
QComboBox groupBySelector
Definition view_zone_widget.h:61
int extraHeight
Definition view_zone_widget.h:67
bool canBeShuffled
Definition view_zone_widget.h:66
void resizeScrollbar(qreal newZoneHeight)
Definition view_zone_widget.cpp:445
QRectF closeButtonRect(QWidget *styleWidget) const
Definition view_zone_widget.cpp:272
void mouseMoveEvent(QGraphicsSceneMouseEvent *event) override
Definition view_zone_widget.cpp:395
QPointF calcDraggedWindowPos(const QPoint &screenPos, const QPointF &scenePos, const QPointF &buttonDownScenePos) const
Calculates the desired widget position while dragging.
Definition view_zone_widget.cpp:325
QPoint dragStartScreenPos
Definition view_zone_widget.h:71
QGraphicsView * findDragView(QWidget *eventWidget) const
Resolves the QGraphicsView to use for drag coordinate mapping.
Definition view_zone_widget.cpp:310
ZoneViewZone * getZone() const
Definition view_zone_widget.h:118
Definition view_zone.h:35
#define QT_STATE_CHANGED_T
Definition macros.h:11