Cockatrice 2025-11-30-Development-2.11.0-beta.38
A cross-platform virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
view_zone.h
Go to the documentation of this file.
1
6
7#ifndef ZONEVIEWERZONE_H
8#define ZONEVIEWERZONE_H
9
11#include "select_zone.h"
12
13#include <QGraphicsLayoutItem>
14#include <QLoggingCategory>
16#include <libcockatrice/protocol/pb/commands.pb.h>
17
18inline Q_LOGGING_CATEGORY(ViewZoneLog, "view_zone");
19
20class ZoneViewWidget;
21class Response;
22class ServerInfo_Card;
23class QGraphicsSceneWheelEvent;
24
34class ZoneViewZone : public SelectZone, public QGraphicsLayoutItem
35{
36 Q_OBJECT
37 Q_INTERFACES(QGraphicsLayoutItem)
38private:
39 static constexpr int HORIZONTAL_PADDING = 12;
40 static constexpr int VERTICAL_PADDING = 5;
41
47
48 struct GridSize
49 {
50 int rows;
51 int cols;
52 };
53
55
56 void
57 handleDropEvent(const QList<CardDragItem *> &dragItems, CardZoneLogic *startZone, const QPoint &dropPoint) override;
58
59public:
60 ZoneViewZone(ZoneViewZoneLogic *_logic, QGraphicsItem *parent);
61 [[nodiscard]] QRectF boundingRect() const override;
62 void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override;
63 void reorganizeCards() override;
64 void initializeCards(const QList<const ServerInfo_Card *> &cardList = QList<const ServerInfo_Card *>());
65 void setGeometry(const QRectF &rect) override;
66 [[nodiscard]] QRectF getOptimumRect() const
67 {
68 return optimumRect;
69 }
70public slots:
71 void addToViews();
72 void removeFromViews();
73 void close();
74 void setFilterString(const QString &_filterString);
75 void setGroupBy(CardList::SortOption _groupBy);
76 void setSortBy(CardList::SortOption _sortBy);
77 void setPileView(int _pileView);
78private slots:
79 void zoneDumpReceived(const Response &r);
80signals:
81 void closed();
83 void wheelEventReceived(QGraphicsSceneWheelEvent *event);
84
85protected:
86 [[nodiscard]] QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const override;
87 void wheelEvent(QGraphicsSceneWheelEvent *event) override;
88};
89
90#endif
Definition card_list.h:18
SortOption
Definition card_list.h:24
@ NoSort
Definition card_list.h:25
Definition card_zone_logic.h:26
Definition filter_string.h:34
SelectZone(CardZoneLogic *logic, QGraphicsItem *parent=nullptr)
Definition select_zone.cpp:35
Definition view_zone_widget.h:49
Definition view_zone_logic.h:12
void wheelEventReceived(QGraphicsSceneWheelEvent *event)
static constexpr int VERTICAL_PADDING
Definition view_zone.h:40
QRectF getOptimumRect() const
Definition view_zone.h:66
CardList::SortOption sortBy
Definition view_zone.h:45
bool pileView
Definition view_zone.h:46
CardList::SortOption groupBy
Definition view_zone.h:45
QRectF optimumRect
Definition view_zone.h:42
QRectF boundingRect() const override
Definition view_zone.cpp:57
void wheelEvent(QGraphicsSceneWheelEvent *event) override
Definition view_zone.cpp:300
static constexpr int HORIZONTAL_PADDING
Definition view_zone.h:39
void handleDropEvent(const QList< CardDragItem * > &dragItems, CardZoneLogic *startZone, const QPoint &dropPoint) override
Definition view_zone.cpp:269
void removeFromViews()
Definition view_zone.cpp:38
int minRows
Definition view_zone.h:43
ZoneViewZone(ZoneViewZoneLogic *_logic, QGraphicsItem *parent)
Definition view_zone.cpp:23
void setSortBy(CardList::SortOption _sortBy)
Definition view_zone.cpp:257
void close()
Definition view_zone.cpp:47
GridSize positionCardsForDisplay(CardList &cards, CardList::SortOption pileOption=CardList::NoSort)
Sets the position of each card to the proper position for the view.
Definition view_zone.cpp:180
void initializeCards(const QList< const ServerInfo_Card * > &cardList=QList< const ServerInfo_Card * >())
Definition view_zone.cpp:69
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override
Definition view_zone.cpp:62
void reorganizeCards() override
Definition view_zone.cpp:119
QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint=QSizeF()) const override
Definition view_zone.cpp:295
FilterString filterString
Definition view_zone.h:44
void addToViews()
Definition view_zone.cpp:33
void optimumRectChanged()
void setGeometry(const QRectF &rect) override
Definition view_zone.cpp:288
void zoneDumpReceived(const Response &r)
Definition view_zone.cpp:101
void setGroupBy(CardList::SortOption _groupBy)
Definition view_zone.cpp:251
void setFilterString(const QString &_filterString)
Definition view_zone.cpp:245
QRectF bRect
Definition view_zone.h:42
void setPileView(int _pileView)
Definition view_zone.cpp:263
TODO: Document this.
TODO: Document this.
Definition view_zone.h:49
int cols
Definition view_zone.h:51
int rows
Definition view_zone.h:50
Q_LOGGING_CATEGORY(ViewZoneLog, "view_zone")
TODO: Document this.