Cockatrice 2026-01-14-Development-2.11.0-beta.46
A cross-platform virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
visual_deck_editor_widget.h
Go to the documentation of this file.
1
6
7#ifndef VISUAL_DECK_EDITOR_H
8#define VISUAL_DECK_EDITOR_H
9
15
16#include <QCheckBox>
17#include <QListWidget>
18#include <QPushButton>
19#include <QWidget>
25#include <qscrollarea.h>
26
29enum class DisplayType
30{
33};
34
35class VisualDeckEditorWidget : public QWidget
36{
37 Q_OBJECT
38
39public:
40 explicit VisualDeckEditorWidget(QWidget *parent, DeckListModel *deckListModel, QItemSelectionModel *selectionModel);
41 void retranslateUi();
43
44 void setDeckList(const DeckList &_deckListModel);
45
46 void setSelectionModel(QItemSelectionModel *model);
47 void onSelectionChanged(const QItemSelection &selected, const QItemSelection &deselected);
49 QItemSelectionModel *getSelectionModel() const
50 {
51 return selectionModel;
52 }
53
54 QLineEdit *searchBar;
56
57public slots:
58 void decklistDataChanged(QModelIndex topLeft, QModelIndex bottomRight);
59 void updateZoneWidgets();
61 void onCardAddition(const QModelIndex &parent, int first, int last);
62 void onCardRemoval(const QModelIndex &parent, int first, int last);
63 void constructZoneWidgetForIndex(QPersistentModelIndex persistent);
65
66signals:
67 void activeCardChanged(const ExactCard &activeCard);
68 void activeGroupCriteriaChanged(QString activeGroupCriteria);
69 void activeSortCriteriaChanged(QStringList activeSortCriteria);
70 void cardClicked(QMouseEvent *event, CardInfoPictureWithTextOverlayWidget *instance, QString zoneName);
73
74protected:
80
81protected slots:
82 void onHover(const ExactCard &hoveredCard);
83 void onCardClick(QMouseEvent *event, CardInfoPictureWithTextOverlayWidget *instance, QString zoneName);
84 void decklistModelReset();
85
86private:
88 QItemSelectionModel *selectionModel;
89 QVBoxLayout *mainLayout;
93 QCompleter *completer;
97 QPushButton *searchPushButton;
98 QScrollArea *scrollArea;
99 QWidget *zoneContainer;
102 // OverlapControlWidget *overlapControlWidget;
103 QHash<QPersistentModelIndex, QWidget *> indexToWidgetMap;
104};
105
106#endif // VISUAL_DECK_EDITOR_H
TODO: Document this.
The CardDatabaseDisplayModel is a QSortFilterProxyModel that allows applying filters and sorting to a...
The CardDatabaseModel maps the cardList contained in the CardDatabase as a QAbstractListModel.
TODO: Document this.
Definition card_completer_proxy_model.h:13
Definition card_database_display_model.h:17
Definition card_database_model.h:16
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
Definition deck_card_zone_display_widget.h:22
Qt model representing a decklist for use in views (tree/table).
Definition deck_list_model.h:214
Represents a complete deck, including metadata, zones, cards, and sideboard plans.
Definition deck_list.h:63
Represents a specific card instance, defined by its CardInfo and a particular printing.
Definition exact_card.h:19
A widget that controls how deck cards are displayed in the visual deck editor.
Definition visual_deck_display_options_widget.h:28
Definition visual_deck_editor_placeholder_widget.h:9
void activeSortCriteriaChanged(QStringList activeSortCriteria)
QHBoxLayout * displayOptionsAndSearchLayout
Definition visual_deck_editor_widget.h:95
void onCardAddition(const QModelIndex &parent, int first, int last)
Definition visual_deck_editor_widget.cpp:305
void cardAdditionRequested(const ExactCard &card)
void constructZoneWidgetsFromDeckListModel()
Definition visual_deck_editor_widget.cpp:251
CardSizeWidget * cardSizeWidget
Definition visual_deck_editor_widget.h:55
void decklistDataChanged(QModelIndex topLeft, QModelIndex bottomRight)
Definition visual_deck_editor_widget.cpp:342
VisualDeckEditorPlaceholderWidget * placeholderWidget
Definition visual_deck_editor_widget.h:101
void decklistModelReset()
Definition visual_deck_editor_widget.cpp:336
VisualDeckEditorWidget(QWidget *parent, DeckListModel *deckListModel, QItemSelectionModel *selectionModel)
Definition visual_deck_editor_widget.cpp:29
QVBoxLayout * mainLayout
Definition visual_deck_editor_widget.h:89
void initializeSearchBarAndCompleter()
Definition visual_deck_editor_widget.cpp:70
void clearAllDisplayWidgets()
Definition visual_deck_editor_widget.cpp:278
QItemSelectionModel * selectionModel
Definition visual_deck_editor_widget.h:88
void constructZoneWidgetForIndex(QPersistentModelIndex persistent)
Definition visual_deck_editor_widget.cpp:227
QPushButton * searchPushButton
Definition visual_deck_editor_widget.h:97
void initializeDisplayOptionsWidget()
Definition visual_deck_editor_widget.cpp:145
QWidget * displayOptionsAndSearch
Definition visual_deck_editor_widget.h:94
void onCardRemoval(const QModelIndex &parent, int first, int last)
Definition visual_deck_editor_widget.cpp:321
void onHover(const ExactCard &hoveredCard)
Definition visual_deck_editor_widget.cpp:363
CardDatabaseDisplayModel * cardDatabaseDisplayModel
Definition visual_deck_editor_widget.h:91
QHash< QPersistentModelIndex, QWidget * > indexToWidgetMap
Definition visual_deck_editor_widget.h:103
DeckListModel * deckListModel
Definition visual_deck_editor_widget.h:87
QItemSelectionModel * getSelectionModel() const
Definition visual_deck_editor_widget.h:49
QVBoxLayout * zoneContainerLayout
Definition visual_deck_editor_widget.h:100
void initializeDisplayOptionsAndSearchWidget()
Definition visual_deck_editor_widget.cpp:156
void initializeScrollAreaAndZoneContainer()
Definition visual_deck_editor_widget.cpp:172
void setDeckList(const DeckList &_deckListModel)
void cardClicked(QMouseEvent *event, CardInfoPictureWithTextOverlayWidget *instance, QString zoneName)
void updatePlaceholderVisibility()
Definition visual_deck_editor_widget.cpp:216
void connectDeckListModel()
Definition visual_deck_editor_widget.cpp:196
void activeGroupCriteriaChanged(QString activeGroupCriteria)
void displayTypeChanged(DisplayType displayType)
void cleanupInvalidZones(DeckCardZoneDisplayWidget *displayWidget)
Definition visual_deck_editor_widget.cpp:289
CardDatabaseModel * cardDatabaseModel
Definition visual_deck_editor_widget.h:90
void updateZoneWidgets()
Definition visual_deck_editor_widget.cpp:274
QScrollArea * scrollArea
Definition visual_deck_editor_widget.h:98
void onSelectionChanged(const QItemSelection &selected, const QItemSelection &deselected)
Definition visual_deck_editor_widget.cpp:395
QWidget * zoneContainer
Definition visual_deck_editor_widget.h:99
QCompleter * completer
Definition visual_deck_editor_widget.h:93
QLineEdit * searchBar
Definition visual_deck_editor_widget.h:54
void retranslateUi()
Definition visual_deck_editor_widget.cpp:204
CardCompleterProxyModel * proxyModel
Definition visual_deck_editor_widget.h:92
void activeCardChanged(const ExactCard &activeCard)
void setSelectionModel(QItemSelectionModel *model)
Definition visual_deck_editor_widget.cpp:377
void onCardClick(QMouseEvent *event, CardInfoPictureWithTextOverlayWidget *instance, QString zoneName)
Definition visual_deck_editor_widget.cpp:356
VisualDeckDisplayOptionsWidget * displayOptionsWidget
Definition visual_deck_editor_widget.h:96
TODO: Document this.
TODO: Document this.
DisplayType
Definition visual_deck_editor_widget.h:30
@ Overlap
Definition visual_deck_editor_widget.h:32
@ Flat
Definition visual_deck_editor_widget.h:31