Cockatrice 2026-03-05-Development-2.11.0-beta.54
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
12#include "../card_size_widget.h"
13
14#include <QItemSelectionModel>
15#include <QLabel>
16#include <QVBoxLayout>
17#include <QWidget>
19
20class CardGroupDisplayWidget : public QWidget
21{
22 Q_OBJECT
23
24public:
25 CardGroupDisplayWidget(QWidget *parent,
27 QItemSelectionModel *selectionModel,
28 QPersistentModelIndex trackedIndex,
29 QString zoneName,
30 QString cardGroupCategory,
31 QString activeGroupCriteria,
32 QStringList activeSortCriteria,
33 int bannerOpacity,
35 void onSelectionChanged(const QItemSelection &selected, const QItemSelection &deselected);
36 void refreshSelectionForIndex(const QPersistentModelIndex &persistent);
38
40 QItemSelectionModel *selectionModel;
41 QPersistentModelIndex trackedIndex;
42 QMap<QPersistentModelIndex, QList<QWidget *>> indexToWidgetMap;
43 QString zoneName;
46 QStringList activeSortCriteria;
48
49public slots:
50 void mousePressEvent(QMouseEvent *event) override;
51 void onClick(QMouseEvent *event, CardInfoPictureWithTextOverlayWidget *card);
52 void onHover(const ExactCard &card);
53 virtual QWidget *constructWidgetForIndex(QPersistentModelIndex index);
54 virtual void updateCardDisplays();
55 virtual void onCardAddition(const QModelIndex &parent, int first, int last);
56 virtual void onCardRemoval(const QModelIndex &parent, int first, int last);
57 void onDataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &roles);
59 void resizeEvent(QResizeEvent *event) override;
60
61signals:
62 void cardClicked(QMouseEvent *event, CardInfoPictureWithTextOverlayWidget *card);
63 void cardHovered(const ExactCard &card);
64 void cleanupRequested(CardGroupDisplayWidget *cardGroupDisplayWidget);
65
66protected:
67 QVBoxLayout *layout;
69
70 virtual QWidget *getLayoutParent()
71 {
72 return this;
73 }
74
75 virtual void addToLayout(QWidget *toAdd)
76 {
77 layout->addWidget(toAdd);
78 }
79
80 virtual void insertIntoLayout(QWidget *toInsert, int insertAt)
81 {
82 layout->insertWidget(insertAt, toInsert);
83 }
84
85 virtual void removeFromLayout(QWidget *toRemove)
86 {
87 layout->removeWidget(toRemove);
88 }
89};
90#endif // CARD_GROUP_DISPLAY_WIDGET_H
TODO: Document this.
TODO: Document this.
Definition banner_widget.h:17
QItemSelectionModel * selectionModel
Definition card_group_display_widget.h:40
virtual void onCardAddition(const QModelIndex &parent, int first, int last)
Definition card_group_display_widget.cpp:215
virtual void addToLayout(QWidget *toAdd)
Definition card_group_display_widget.h:75
QString activeGroupCriteria
Definition card_group_display_widget.h:45
QVBoxLayout * layout
Definition card_group_display_widget.h:67
void onActiveSortCriteriaChanged(QStringList activeSortCriteria)
Definition card_group_display_widget.cpp:352
CardSizeWidget * cardSizeWidget
Definition card_group_display_widget.h:47
virtual QWidget * getLayoutParent()
Definition card_group_display_widget.h:70
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:10
void onSelectionChanged(const QItemSelection &selected, const QItemSelection &deselected)
Definition card_group_display_widget.cpp:71
void cardClicked(QMouseEvent *event, CardInfoPictureWithTextOverlayWidget *card)
virtual void insertIntoLayout(QWidget *toInsert, int insertAt)
Definition card_group_display_widget.h:80
void cardHovered(const ExactCard &card)
QPersistentModelIndex trackedIndex
Definition card_group_display_widget.h:41
void clearAllDisplayWidgets()
Definition card_group_display_widget.cpp:199
void cleanupRequested(CardGroupDisplayWidget *cardGroupDisplayWidget)
void mousePressEvent(QMouseEvent *event) override
Definition card_group_display_widget.cpp:53
QStringList activeSortCriteria
Definition card_group_display_widget.h:46
virtual void onCardRemoval(const QModelIndex &parent, int first, int last)
Definition card_group_display_widget.cpp:240
virtual void removeFromLayout(QWidget *toRemove)
Definition card_group_display_widget.h:85
QString cardGroupCategory
Definition card_group_display_widget.h:44
DeckListModel * deckListModel
Definition card_group_display_widget.h:39
void onClick(QMouseEvent *event, CardInfoPictureWithTextOverlayWidget *card)
Definition card_group_display_widget.cpp:61
void resizeEvent(QResizeEvent *event) override
Definition card_group_display_widget.cpp:44
virtual QWidget * constructWidgetForIndex(QPersistentModelIndex index)
Definition card_group_display_widget.cpp:146
virtual void updateCardDisplays()
Definition card_group_display_widget.cpp:165
BannerWidget * banner
Definition card_group_display_widget.h:68
void onHover(const ExactCard &card)
Definition card_group_display_widget.cpp:66
void onDataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector< int > &roles)
Definition card_group_display_widget.cpp:274
QString zoneName
Definition card_group_display_widget.h:43
void refreshSelectionForIndex(const QPersistentModelIndex &persistent)
Definition card_group_display_widget.cpp:114
QMap< QPersistentModelIndex, QList< QWidget * > > indexToWidgetMap
Definition card_group_display_widget.h:42
Definition card_info_picture_with_text_overlay_widget.h:18
A widget for adjusting card sizes using a slider.
Definition card_size_widget.h:21
Qt model representing a decklist for use in views (tree/table).
Definition deck_list_model.h:214
Represents a specific card instance, defined by its CardInfo and a particular printing.
Definition exact_card.h:19