Cockatrice 2026-10-19-Development-3.1.2-beta.2
A virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
card_group_display_widget.h
Go to the documentation of this file.
1
6
7#ifndef CARD_GROUP_DISPLAY_WIDGET_H
8#define CARD_GROUP_DISPLAY_WIDGET_H
9
10#include <QList>
11#include <QMap>
12#include <QMouseEvent>
13#include <QPersistentModelIndex>
14#include <QString>
15#include <QStringList>
16#include <QVBoxLayout>
17#include <QVector>
18#include <QWidget>
19#include <qtmetamacros.h>
20
21class BannerWidget;
22class CardSizeWidget;
23class DeckListModel;
24class ExactCard;
25class QItemSelection;
26class QItemSelectionModel;
27class QModelIndex;
28
29class CardGroupDisplayWidget : public QWidget
30{
31 Q_OBJECT
32
33public:
34 CardGroupDisplayWidget(QWidget *parent,
36 QItemSelectionModel *selectionModel,
37 QPersistentModelIndex trackedIndex,
38 QString zoneName,
39 QString cardGroupCategory,
40 QString activeGroupCriteria,
41 QStringList activeSortCriteria,
42 int bannerOpacity,
44 void onSelectionChanged(const QItemSelection &selected, const QItemSelection &deselected);
45 void refreshSelectionForIndex(const QPersistentModelIndex &persistent);
47 void addCardWidgets(const QPersistentModelIndex &persistent);
48
50 QItemSelectionModel *selectionModel;
51 QPersistentModelIndex trackedIndex;
53 QString zoneName;
56 QStringList activeSortCriteria;
58
59public slots:
60 void mousePressEvent(QMouseEvent *event) override;
61 virtual QWidget *constructWidgetForIndex(QPersistentModelIndex index);
62 virtual void updateCardDisplays();
63 virtual void onCardAddition(const QModelIndex &parent, int first, int last);
64 virtual void onCardRemoval(const QModelIndex &parent, int first, int last);
65 void onDataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &roles);
67 void updateCardCount();
68 void resizeEvent(QResizeEvent *event) override;
69
70signals:
71 void cardClicked(QMouseEvent *event, const ExactCard &card);
72 void cardHovered(const ExactCard &card);
73 void cleanupRequested(CardGroupDisplayWidget *cardGroupDisplayWidget);
74
75protected:
76 QVBoxLayout *layout;
78
79 virtual QWidget *getLayoutParent()
80 {
81 return this;
82 }
83
84 virtual void addToLayout(QWidget *toAdd)
85 {
86 layout->addWidget(toAdd);
87 }
88
89 virtual void insertIntoLayout(QWidget *toInsert, int insertAt)
90 {
91 layout->insertWidget(insertAt, toInsert);
92 }
93
94 virtual void removeFromLayout(QWidget *toRemove)
95 {
96 layout->removeWidget(toRemove);
97 }
98};
99#endif // CARD_GROUP_DISPLAY_WIDGET_H
Definition banner_widget.h:19
QItemSelectionModel * selectionModel
Definition card_group_display_widget.h:50
virtual void onCardAddition(const QModelIndex &parent, int first, int last)
Definition card_group_display_widget.cpp:238
virtual void addToLayout(QWidget *toAdd)
Definition card_group_display_widget.h:84
QString activeGroupCriteria
Definition card_group_display_widget.h:55
QVBoxLayout * layout
Definition card_group_display_widget.h:76
void onActiveSortCriteriaChanged(QStringList activeSortCriteria)
Definition card_group_display_widget.cpp:375
CardSizeWidget * cardSizeWidget
Definition card_group_display_widget.h:57
virtual QWidget * getLayoutParent()
Definition card_group_display_widget.h:79
CardGroupDisplayWidget(QWidget *parent, DeckListModel *deckListModel, QItemSelectionModel *selectionModel, QPersistentModelIndex trackedIndex, QString zoneName, QString cardGroupCategory, QString activeGroupCriteria, QStringList activeSortCriteria, int bannerOpacity, CardSizeWidget *cardSizeWidget)
Definition card_group_display_widget.cpp:32
void onSelectionChanged(const QItemSelection &selected, const QItemSelection &deselected)
Definition card_group_display_widget.cpp:91
virtual void insertIntoLayout(QWidget *toInsert, int insertAt)
Definition card_group_display_widget.h:89
void cardHovered(const ExactCard &card)
QPersistentModelIndex trackedIndex
Definition card_group_display_widget.h:51
void clearAllDisplayWidgets()
Definition card_group_display_widget.cpp:222
void cleanupRequested(CardGroupDisplayWidget *cardGroupDisplayWidget)
void mousePressEvent(QMouseEvent *event) override
Definition card_group_display_widget.cpp:83
QStringList activeSortCriteria
Definition card_group_display_widget.h:56
void cardClicked(QMouseEvent *event, const ExactCard &card)
virtual void onCardRemoval(const QModelIndex &parent, int first, int last)
Definition card_group_display_widget.cpp:263
virtual void removeFromLayout(QWidget *toRemove)
Definition card_group_display_widget.h:94
QString cardGroupCategory
Definition card_group_display_widget.h:54
void updateCardCount()
Definition card_group_display_widget.cpp:383
DeckListModel * deckListModel
Definition card_group_display_widget.h:49
void resizeEvent(QResizeEvent *event) override
Definition card_group_display_widget.cpp:74
virtual QWidget * constructWidgetForIndex(QPersistentModelIndex index)
Definition card_group_display_widget.cpp:167
void addCardWidgets(const QPersistentModelIndex &persistent)
Definition card_group_display_widget.cpp:211
virtual void updateCardDisplays()
Definition card_group_display_widget.cpp:186
BannerWidget * banner
Definition card_group_display_widget.h:77
void onDataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector< int > &roles)
Definition card_group_display_widget.cpp:297
QString zoneName
Definition card_group_display_widget.h:53
void refreshSelectionForIndex(const QPersistentModelIndex &persistent)
Definition card_group_display_widget.cpp:135
QMap< QPersistentModelIndex, QList< QWidget * > > indexToWidgetMap
Definition card_group_display_widget.h:52
A widget for adjusting card sizes using a slider.
Definition card_size_widget.h:23
Qt model representing a decklist for use in views (tree/table).
Definition deck_list_model.h:228
Represents a specific card instance, defined by its CardInfo and a particular printing.
Definition exact_card.h:24
Definition game.h:18