Cockatrice 2026-01-14-Development-2.11.0-beta.46
A cross-platform 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#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
91 void enterEvent(QEnterEvent *event) override;
92#else
93 void enterEvent(QEvent *event) override;
94#endif
95 void leaveEvent(QEvent *event) override;
96 void dragMoveEvent(QDragMoveEvent *event) override;
97
98private:
99 QVBoxLayout *layout;
100 QCheckBox *checkBox;
101 QPushButton *expandButton;
102 QLabel *countLabel;
107 QVBoxLayout *cardListLayout;
108 QStringList possibleCards;
109 QStringList unusedCards;
110};
111
112#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:374
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:252
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:309
QVBoxLayout * listLayout
Definition dlg_select_set_for_cards.h:34
void updateLayoutOrder()
Definition dlg_select_set_for_cards.cpp:400
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:319
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:354
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:20
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:102
QStringList getAllCardsForSet()
Definition dlg_select_set_for_cards.cpp:568
QStringList possibleCards
Definition dlg_select_set_for_cards.h:108
QVBoxLayout * layout
Definition dlg_select_set_for_cards.h:99
void updateCardDisplayWidgets()
Definition dlg_select_set_for_cards.cpp:604
QVBoxLayout * cardListLayout
Definition dlg_select_set_for_cards.h:107
QLabel * possibleCardsLabel
Definition dlg_select_set_for_cards.h:103
void mousePressEvent(QMouseEvent *event) override
Definition dlg_select_set_for_cards.cpp:456
void toggleExpansion()
Definition dlg_select_set_for_cards.cpp:544
bool isChecked() const
Definition dlg_select_set_for_cards.cpp:539
QStringList unusedCards
Definition dlg_select_set_for_cards.h:109
QLabel * alreadySelectedCardsLabel
Definition dlg_select_set_for_cards.h:105
void enterEvent(QEnterEvent *event) override
Definition dlg_select_set_for_cards.cpp:493
QCheckBox * checkBox
Definition dlg_select_set_for_cards.h:100
bool expanded
Definition dlg_select_set_for_cards.h:86
QPushButton * expandButton
Definition dlg_select_set_for_cards.h:101
void checkVisibility()
Definition dlg_select_set_for_cards.cpp:559
void populateCardList()
Definition dlg_select_set_for_cards.cpp:580
void leaveEvent(QEvent *event) override
Definition dlg_select_set_for_cards.cpp:507
FlowWidget * cardListContainer
Definition dlg_select_set_for_cards.h:104
FlowWidget * alreadySelectedCardListContainer
Definition dlg_select_set_for_cards.h:106
void dragMoveEvent(QDragMoveEvent *event) override
Definition dlg_select_set_for_cards.cpp:518
SetEntryWidget(DlgSelectSetForCards *parent, const QString &setName, int count)
Definition dlg_select_set_for_cards.cpp:413