Cockatrice 2025-11-30-Development-2.11.0-beta.38
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
21class SetEntryWidget; // Forward declaration
22
23class DlgSelectSetForCards : public QDialog
24{
25 Q_OBJECT
26
27public:
28 explicit DlgSelectSetForCards(QWidget *parent, DeckListModel *_model);
29 void retranslateUi();
30 void sortSetsByCount();
31 QMap<QString, QStringList> getCardsForSets();
32 QMap<QString, QStringList> getModifiedCards();
33 QVBoxLayout *listLayout;
34 QList<SetEntryWidget *> entry_widgets;
35 QMap<QString, QStringList> cardsForSets;
36
37signals:
40
41public slots:
42 void actOK();
43 void actClear();
45 void updateLayoutOrder();
46 void updateCardLists();
47 void dragEnterEvent(QDragEnterEvent *event) override;
48 void dropEvent(QDropEvent *event) override;
49
50private:
51 QVBoxLayout *layout;
53 QScrollArea *scrollArea;
54 QScrollArea *uneditedCardsArea;
57 QScrollArea *modifiedCardsArea;
60 QWidget *listContainer;
61 QListWidget *listWidget;
63 QMap<QString, SetEntryWidget *> setEntries;
64 QPushButton *clearButton;
66
67 QMap<QString, int> getSetsForCards();
68};
69
70class SetEntryWidget : public QWidget
71{
72 Q_OBJECT
73
74public:
75 explicit SetEntryWidget(DlgSelectSetForCards *parent, const QString &setName, int count);
76 void toggleExpansion();
77 void checkVisibility();
78 QStringList getAllCardsForSet();
79 void populateCardList();
81 [[nodiscard]] bool isChecked() const;
83 QString setName;
85
86public slots:
87 void mousePressEvent(QMouseEvent *event) override;
88#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
89 void enterEvent(QEnterEvent *event) override;
90#else
91 void enterEvent(QEvent *event) override;
92#endif
93 void leaveEvent(QEvent *event) override;
94 void dragMoveEvent(QDragMoveEvent *event) override;
95
96private:
97 QVBoxLayout *layout;
98 QCheckBox *checkBox;
99 QPushButton *expandButton;
100 QLabel *countLabel;
105 QVBoxLayout *cardListLayout;
106 QStringList possibleCards;
107 QStringList unusedCards;
108};
109
110#endif // DLG_SELECT_SET_FOR_CARDS_H
Qt model representing a decklist for use in views (tree/table).
Definition deck_list_model.h:200
Definition dlg_select_set_for_cards.h:24
QMap< QString, QStringList > cardsForSets
Definition dlg_select_set_for_cards.h:35
QScrollArea * scrollArea
Definition dlg_select_set_for_cards.h:53
QMap< QString, QStringList > getModifiedCards()
Definition dlg_select_set_for_cards.cpp:360
void actClear()
Definition dlg_select_set_for_cards.cpp:163
QLabel * uneditedCardsLabel
Definition dlg_select_set_for_cards.h:56
DeckListModel * model
Definition dlg_select_set_for_cards.h:62
QPushButton * setAllToPreferredButton
Definition dlg_select_set_for_cards.h:65
void sortSetsByCount()
Definition dlg_select_set_for_cards.cpp:176
FlowWidget * uneditedCardsFlowWidget
Definition dlg_select_set_for_cards.h:55
QListWidget * listWidget
Definition dlg_select_set_for_cards.h:61
QScrollArea * uneditedCardsArea
Definition dlg_select_set_for_cards.h:54
QLabel * modifiedCardsLabel
Definition dlg_select_set_for_cards.h:59
void updateCardLists()
Definition dlg_select_set_for_cards.cpp:228
QPushButton * clearButton
Definition dlg_select_set_for_cards.h:64
QList< SetEntryWidget * > entry_widgets
Definition dlg_select_set_for_cards.h:34
FlowWidget * modifiedCardsFlowWidget
Definition dlg_select_set_for_cards.h:58
void dragEnterEvent(QDragEnterEvent *event) override
Definition dlg_select_set_for_cards.cpp:289
QVBoxLayout * listLayout
Definition dlg_select_set_for_cards.h:33
DlgSelectSetForCards(QWidget *parent, DeckListModel *_model)
Definition dlg_select_set_for_cards.cpp:23
void updateLayoutOrder()
Definition dlg_select_set_for_cards.cpp:386
void actSetAllToPreferred()
Definition dlg_select_set_for_cards.cpp:169
QVBoxLayout * layout
Definition dlg_select_set_for_cards.h:51
QMap< QString, int > getSetsForCards()
Definition dlg_select_set_for_cards.cpp:202
void dropEvent(QDropEvent *event) override
Definition dlg_select_set_for_cards.cpp:299
void retranslateUi()
Definition dlg_select_set_for_cards.cpp:135
QLabel * instructionLabel
Definition dlg_select_set_for_cards.h:52
QWidget * listContainer
Definition dlg_select_set_for_cards.h:60
QScrollArea * modifiedCardsArea
Definition dlg_select_set_for_cards.h:57
QMap< QString, QStringList > getCardsForSets()
Definition dlg_select_set_for_cards.cpp:334
QMap< QString, SetEntryWidget * > setEntries
Definition dlg_select_set_for_cards.h:63
void actOK()
Definition dlg_select_set_for_cards.cpp:145
Definition flow_widget.h:20
Definition dlg_select_set_for_cards.h:71
QString setName
Definition dlg_select_set_for_cards.h:83
DlgSelectSetForCards * parent
Definition dlg_select_set_for_cards.h:82
QLabel * countLabel
Definition dlg_select_set_for_cards.h:100
QStringList getAllCardsForSet()
Definition dlg_select_set_for_cards.cpp:554
QStringList possibleCards
Definition dlg_select_set_for_cards.h:106
QVBoxLayout * layout
Definition dlg_select_set_for_cards.h:97
void updateCardDisplayWidgets()
Definition dlg_select_set_for_cards.cpp:590
QVBoxLayout * cardListLayout
Definition dlg_select_set_for_cards.h:105
QLabel * possibleCardsLabel
Definition dlg_select_set_for_cards.h:101
void mousePressEvent(QMouseEvent *event) override
Definition dlg_select_set_for_cards.cpp:442
void toggleExpansion()
Definition dlg_select_set_for_cards.cpp:530
bool isChecked() const
Definition dlg_select_set_for_cards.cpp:525
QStringList unusedCards
Definition dlg_select_set_for_cards.h:107
QLabel * alreadySelectedCardsLabel
Definition dlg_select_set_for_cards.h:103
void enterEvent(QEnterEvent *event) override
Definition dlg_select_set_for_cards.cpp:479
QCheckBox * checkBox
Definition dlg_select_set_for_cards.h:98
bool expanded
Definition dlg_select_set_for_cards.h:84
QPushButton * expandButton
Definition dlg_select_set_for_cards.h:99
void checkVisibility()
Definition dlg_select_set_for_cards.cpp:545
void populateCardList()
Definition dlg_select_set_for_cards.cpp:566
void leaveEvent(QEvent *event) override
Definition dlg_select_set_for_cards.cpp:493
FlowWidget * cardListContainer
Definition dlg_select_set_for_cards.h:102
FlowWidget * alreadySelectedCardListContainer
Definition dlg_select_set_for_cards.h:104
void dragMoveEvent(QDragMoveEvent *event) override
Definition dlg_select_set_for_cards.cpp:504
SetEntryWidget(DlgSelectSetForCards *parent, const QString &setName, int count)
Definition dlg_select_set_for_cards.cpp:399