Cockatrice 2026-10-19-Development-3.1.2-beta.2
A 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
9#include <QCheckBox>
10#include <QComboBox>
11#include <QGraphicsProxyWidget>
12#include <QGraphicsWidget>
13#include <QLineEdit>
14#include <QList>
15#include <QPoint>
16#include <QPointF>
17#include <QPointer>
18#include <QRectF>
19#include <QtGlobal>
21#include <qtmetamacros.h>
22
23// IWYU pragma: keep
24// ServerInfo_Card appears inside QList<...> in signal and slot
25// signatures, which the moc-generated code needs to be complete.
26#include <libcockatrice/protocol/pb/serverinfo_card.pb.h>
27
28class ZoneViewZone;
29class PlayerLogic;
30class QScrollBar;
31class ServerInfo_Card;
32class QGraphicsSceneMouseEvent;
33class QGraphicsSceneWheelEvent;
34class QGraphicsView;
35class QWidget;
36class CardZoneLogic;
37
38class ScrollableGraphicsProxyWidget : public QGraphicsProxyWidget
39{
40 Q_OBJECT
41public slots:
42 void recieveWheelEvent(QGraphicsSceneWheelEvent *event)
43 {
44 wheelEvent(event);
45 }
46};
47
54class ZoneViewWidget : public QGraphicsWidget
55{
56 Q_OBJECT
57private:
59 QGraphicsWidget *zoneContainer;
60
61 QScrollBar *scrollBar;
63
64 QLineEdit searchEdit;
65 QComboBox groupBySelector;
66 QComboBox sortBySelector;
67 QCheckBox shuffleCheckBox;
69
73
74 bool draggingWindow = false;
77 QPointer<QGraphicsView> dragView;
78
79 void stopWindowDrag();
80 void startWindowDrag(QGraphicsSceneMouseEvent *event);
81 QRectF closeButtonRect(QWidget *styleWidget) const;
88 QGraphicsView *findDragView(QWidget *eventWidget) const;
98 QPointF
99 calcDraggedWindowPos(const QPoint &screenPos, const QPointF &scenePos, const QPointF &buttonDownScenePos) const;
100
101 void resizeScrollbar(qreal newZoneHeight);
102signals:
104private slots:
105 void processGroupBy(int value);
106 void processSortBy(int value);
108 void resizeToZoneContents(bool forceInitialHeight = false);
109 void handleScrollBarChange(int value);
110 void zoneDeleted();
111 void resizeEvent(QGraphicsSceneResizeEvent * /* event */) override;
112 void expandWindow();
113
114public:
116 CardZoneLogic *_origZone,
117 int numberCards = 0,
118 bool _revealZone = false,
119 bool _writeableRevealZone = false,
121 bool _isReversed = false);
123 {
124 return zone;
125 }
127 {
128 return player;
129 }
130 void retranslateUi();
131
132protected:
133 void closeEvent(QCloseEvent *event) override;
134 void initStyleOption(QStyleOption *option) const override;
135 bool windowFrameEvent(QEvent *event) override;
136 QVariant itemChange(GraphicsItemChange change, const QVariant &value) override;
137 void mouseMoveEvent(QGraphicsSceneMouseEvent *event) override;
138 void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override;
139 void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) override;
140};
141
142#endif
Definition card_zone_logic.h:27
Definition player_logic.h:56
Definition remote_connection_controller.h:20
Definition view_zone_widget.h:39
void recieveWheelEvent(QGraphicsSceneWheelEvent *event)
Definition view_zone_widget.h:42
void zoneDeleted()
Definition view_zone_widget.cpp:582
void initStyleOption(QStyleOption *option) const override
Definition view_zone_widget.cpp:588
QPointF dragStartItemPos
Definition view_zone_widget.h:76
ZoneViewWidget(PlayerLogic *_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:73
QCheckBox pileViewCheckBox
Definition view_zone_widget.h:68
bool windowFrameEvent(QEvent *event) override
Definition view_zone_widget.cpp:389
QScrollBar * scrollBar
Definition view_zone_widget.h:61
void processSortBy(int value)
Definition view_zone_widget.cpp:245
void startWindowDrag(QGraphicsSceneMouseEvent *event)
Definition view_zone_widget.cpp:307
QGraphicsWidget * zoneContainer
Definition view_zone_widget.h:59
void retranslateUi()
Definition view_zone_widget.cpp:266
void processSetPileView(QT_STATE_CHANGED_T value)
Definition view_zone_widget.cpp:260
void processGroupBy(int value)
Definition view_zone_widget.cpp:229
void resizeEvent(QGraphicsSceneResizeEvent *) override
Definition view_zone_widget.cpp:490
void resizeToZoneContents(bool forceInitialHeight=false)
Definition view_zone_widget.cpp:538
PlayerLogic * player
Definition view_zone_widget.h:72
void closePressed(ZoneViewWidget *zv)
QCheckBox shuffleCheckBox
Definition view_zone_widget.h:67
ScrollableGraphicsProxyWidget * scrollBarProxy
Definition view_zone_widget.h:62
ZoneViewZone * zone
Definition view_zone_widget.h:58
QPointer< QGraphicsView > dragView
Definition view_zone_widget.h:77
void expandWindow()
Definition view_zone_widget.cpp:600
QComboBox sortBySelector
Definition view_zone_widget.h:66
void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override
Definition view_zone_widget.cpp:457
void handleScrollBarChange(int value)
Definition view_zone_widget.cpp:564
void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) override
Definition view_zone_widget.cpp:625
bool draggingWindow
Definition view_zone_widget.h:74
QLineEdit searchEdit
Definition view_zone_widget.h:64
QVariant itemChange(GraphicsItemChange change, const QVariant &value) override
Definition view_zone_widget.cpp:468
void closeEvent(QCloseEvent *event) override
Definition view_zone_widget.cpp:569
PlayerLogic * getPlayer() const
Definition view_zone_widget.h:126
void stopWindowDrag()
Definition view_zone_widget.cpp:297
QComboBox groupBySelector
Definition view_zone_widget.h:65
int extraHeight
Definition view_zone_widget.h:71
bool canBeShuffled
Definition view_zone_widget.h:70
void resizeScrollbar(qreal newZoneHeight)
Definition view_zone_widget.cpp:496
QRectF closeButtonRect(QWidget *styleWidget) const
Definition view_zone_widget.cpp:318
void mouseMoveEvent(QGraphicsSceneMouseEvent *event) override
Definition view_zone_widget.cpp:445
QPointF calcDraggedWindowPos(const QPoint &screenPos, const QPointF &scenePos, const QPointF &buttonDownScenePos) const
Calculates the desired widget position while dragging.
Definition view_zone_widget.cpp:374
QPoint dragStartScreenPos
Definition view_zone_widget.h:75
QGraphicsView * findDragView(QWidget *eventWidget) const
Resolves the QGraphicsView to use for drag coordinate mapping.
Definition view_zone_widget.cpp:357
ZoneViewZone * getZone() const
Definition view_zone_widget.h:122
Definition view_zone.h:47
#define QT_STATE_CHANGED_T
Definition macros.h:11
Definition serverinfo_card.proto:5