Cockatrice 2026-09-01-Development-3.1.0-beta.10
A virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
dlg_select_set_for_cards.h
Go to the documentation of this file.
1
6
7#ifndef DLG_SELECT_SET_FOR_CARDS_H
8#define DLG_SELECT_SET_FOR_CARDS_H
9
10#include "../interface/widgets/general/layout_containers/flow_widget.h"
11
12#include <QCheckBox>
13#include <QDialog>
14#include <QLabel>
15#include <QListWidget>
16#include <QMap>
17#include <QScrollArea>
18#include <QVBoxLayout>
20
22class SetEntryWidget; // Forward declaration
23
24class DlgSelectSetForCards : public QDialog
25{
26 Q_OBJECT
27
28public:
29 explicit DlgSelectSetForCards(QWidget *parent, DeckStateManager *deckStateManager);
30 void retranslateUi();
31 void sortSetsByCount();
32 QMap<QString, QStringList> getCardsForSets();
33 QMap<QString, QStringList> getModifiedCards();
34 QVBoxLayout *listLayout;
35 QList<SetEntryWidget *> entry_widgets;
36 QMap<QString, QStringList> cardsForSets;
37
38signals:
42
43public slots:
44 void actOK();
45 void actClear();
47 void updateLayoutOrder();
48 void updateCardLists();
49 void dragEnterEvent(QDragEnterEvent *event) override;
50 void dropEvent(QDropEvent *event) override;
51
52private:
53 QVBoxLayout *layout;
55 QScrollArea *scrollArea;
56 QScrollArea *uneditedCardsArea;
59 QScrollArea *modifiedCardsArea;
62 QWidget *listContainer;
63 QListWidget *listWidget;
65 QMap<QString, SetEntryWidget *> setEntries;
66 QPushButton *clearButton;
68
69 QMap<QString, int> getSetsForCards();
70};
71
72class SetEntryWidget : public QWidget
73{
74 Q_OBJECT
75
76public:
77 explicit SetEntryWidget(DlgSelectSetForCards *parent, const QString &setName, int count);
78 void toggleExpansion();
79 void checkVisibility();
80 QStringList getAllCardsForSet();
81 void populateCardList();
83 [[nodiscard]] bool isChecked() const;
85 QString setName;
87
88public slots:
89 void mousePressEvent(QMouseEvent *event) override;
90 void enterEvent(QEnterEvent *event) override;
91 void leaveEvent(QEvent *event) override;
92 void dragMoveEvent(QDragMoveEvent *event) override;
93
94private:
95 QVBoxLayout *layout;
96 QCheckBox *checkBox;
97 QPushButton *expandButton;
98 QLabel *countLabel;
103 QVBoxLayout *cardListLayout;
104 QStringList possibleCards;
105 QStringList unusedCards;
106};
107
108#endif // DLG_SELECT_SET_FOR_CARDS_H
This class centralizes the management of the state of the deck in the deck editor tab....
Definition deck_state_manager.h:22
Definition dlg_select_set_for_cards.h:25
QMap< QString, QStringList > cardsForSets
Definition dlg_select_set_for_cards.h:36
QScrollArea * scrollArea
Definition dlg_select_set_for_cards.h:55
QMap< QString, QStringList > getModifiedCards()
Definition dlg_select_set_for_cards.cpp:372
void actClear()
Definition dlg_select_set_for_cards.cpp:187
QLabel * uneditedCardsLabel
Definition dlg_select_set_for_cards.h:58
QPushButton * setAllToPreferredButton
Definition dlg_select_set_for_cards.h:67
void sortSetsByCount()
Definition dlg_select_set_for_cards.cpp:206
FlowWidget * uneditedCardsFlowWidget
Definition dlg_select_set_for_cards.h:57
QListWidget * listWidget
Definition dlg_select_set_for_cards.h:63
DlgSelectSetForCards(QWidget *parent, DeckStateManager *deckStateManager)
Definition dlg_select_set_for_cards.cpp:25
QScrollArea * uneditedCardsArea
Definition dlg_select_set_for_cards.h:56
DeckStateManager * deckStateManager
Definition dlg_select_set_for_cards.h:64
QLabel * modifiedCardsLabel
Definition dlg_select_set_for_cards.h:61
void updateCardLists()
Definition dlg_select_set_for_cards.cpp:253
QPushButton * clearButton
Definition dlg_select_set_for_cards.h:66
QList< SetEntryWidget * > entry_widgets
Definition dlg_select_set_for_cards.h:35
FlowWidget * modifiedCardsFlowWidget
Definition dlg_select_set_for_cards.h:60
void dragEnterEvent(QDragEnterEvent *event) override
Definition dlg_select_set_for_cards.cpp:310
QVBoxLayout * listLayout
Definition dlg_select_set_for_cards.h:34
void updateLayoutOrder()
Definition dlg_select_set_for_cards.cpp:398
void actSetAllToPreferred()
Definition dlg_select_set_for_cards.cpp:196
QVBoxLayout * layout
Definition dlg_select_set_for_cards.h:53
QMap< QString, int > getSetsForCards()
Definition dlg_select_set_for_cards.cpp:232
void dropEvent(QDropEvent *event) override
Definition dlg_select_set_for_cards.cpp:320
void retranslateUi()
Definition dlg_select_set_for_cards.cpp:138
QLabel * instructionLabel
Definition dlg_select_set_for_cards.h:54
QWidget * listContainer
Definition dlg_select_set_for_cards.h:62
QScrollArea * modifiedCardsArea
Definition dlg_select_set_for_cards.h:59
QMap< QString, QStringList > getCardsForSets()
Definition dlg_select_set_for_cards.cpp:351
QMap< QString, SetEntryWidget * > setEntries
Definition dlg_select_set_for_cards.h:65
void actOK()
Definition dlg_select_set_for_cards.cpp:164
Definition flow_widget.h:22
Definition dlg_select_set_for_cards.h:73
QString setName
Definition dlg_select_set_for_cards.h:85
DlgSelectSetForCards * parent
Definition dlg_select_set_for_cards.h:84
QLabel * countLabel
Definition dlg_select_set_for_cards.h:98
QStringList getAllCardsForSet()
Definition dlg_select_set_for_cards.cpp:562
QStringList possibleCards
Definition dlg_select_set_for_cards.h:104
QVBoxLayout * layout
Definition dlg_select_set_for_cards.h:95
void updateCardDisplayWidgets()
Definition dlg_select_set_for_cards.cpp:598
QVBoxLayout * cardListLayout
Definition dlg_select_set_for_cards.h:103
QLabel * possibleCardsLabel
Definition dlg_select_set_for_cards.h:99
void mousePressEvent(QMouseEvent *event) override
Definition dlg_select_set_for_cards.cpp:454
void toggleExpansion()
Definition dlg_select_set_for_cards.cpp:538
bool isChecked() const
Definition dlg_select_set_for_cards.cpp:533
QStringList unusedCards
Definition dlg_select_set_for_cards.h:105
QLabel * alreadySelectedCardsLabel
Definition dlg_select_set_for_cards.h:101
void enterEvent(QEnterEvent *event) override
Definition dlg_select_set_for_cards.cpp:490
QCheckBox * checkBox
Definition dlg_select_set_for_cards.h:96
bool expanded
Definition dlg_select_set_for_cards.h:86
QPushButton * expandButton
Definition dlg_select_set_for_cards.h:97
void checkVisibility()
Definition dlg_select_set_for_cards.cpp:553
void populateCardList()
Definition dlg_select_set_for_cards.cpp:574
void leaveEvent(QEvent *event) override
Definition dlg_select_set_for_cards.cpp:501
FlowWidget * cardListContainer
Definition dlg_select_set_for_cards.h:100
FlowWidget * alreadySelectedCardListContainer
Definition dlg_select_set_for_cards.h:102
void dragMoveEvent(QDragMoveEvent *event) override
Definition dlg_select_set_for_cards.cpp:512
SetEntryWidget(DlgSelectSetForCards *parent, const QString &setName, int count)
Definition dlg_select_set_for_cards.cpp:411