Cockatrice 2026-06-01-Development-3.1.0-beta.3
A 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
16
17#include <QCheckBox>
18#include <QListWidget>
19#include <QPushButton>
20#include <QWidget>
26#include <qscrollarea.h>
27
30enum class DisplayType
31{
34};
35
36class VisualDeckEditorWidget : public QWidget
37{
38 Q_OBJECT
39
40public:
41 explicit VisualDeckEditorWidget(QWidget *parent, DeckListModel *deckListModel, QItemSelectionModel *selectionModel);
42 void retranslateUi();
43 void updateCompactMode();
45
46 void setDeckList(const DeckList &_deckListModel);
47
48 void setSelectionModel(QItemSelectionModel *model);
49 void onSelectionChanged(const QItemSelection &selected, const QItemSelection &deselected);
51 QItemSelectionModel *getSelectionModel() const
52 {
53 return selectionModel;
54 }
55
56 QLineEdit *searchBar;
58
59public slots:
60 void decklistDataChanged(QModelIndex topLeft, QModelIndex bottomRight);
61 void updateZoneWidgets();
63 void onCardAddition(const QModelIndex &parent, int first, int last);
64 void onCardRemoval(const QModelIndex &parent, int first, int last);
65 void constructZoneWidgetForIndex(QPersistentModelIndex persistent);
67
68signals:
69 void activeCardChanged(const ExactCard &activeCard);
70 void activeGroupCriteriaChanged(QString activeGroupCriteria);
71 void activeSortCriteriaChanged(QStringList activeSortCriteria);
72 void cardClicked(QMouseEvent *event, CardInfoPictureWithTextOverlayWidget *instance, QString zoneName);
75
76protected:
82
83protected slots:
84 void onHover(const ExactCard &hoveredCard);
85 void onCardClick(QMouseEvent *event, CardInfoPictureWithTextOverlayWidget *instance, QString zoneName);
86 void decklistModelReset();
87 void resizeEvent(QResizeEvent *event) override;
88
89private:
93 QItemSelectionModel *selectionModel;
94 QVBoxLayout *mainLayout;
99 QHBoxLayout *searchLayout;
100 QCompleter *completer;
104 QScrollArea *scrollArea;
108 // OverlapControlWidget *overlapControlWidget;
109 QHash<QPersistentModelIndex, QWidget *> indexToWidgetMap;
110};
111
112#endif // VISUAL_DECK_EDITOR_H
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.
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 compact_push_button.h:7
Definition deck_card_zone_display_widget.h:22
Qt model representing a decklist for use in views (tree/table).
Definition deck_list_model.h:217
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
Definition flow_widget.h:22
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
QWidget * searchContainer
Definition visual_deck_editor_widget.h:98
void activeSortCriteriaChanged(QStringList activeSortCriteria)
void onCardAddition(const QModelIndex &parent, int first, int last)
Definition visual_deck_editor_widget.cpp:353
void cardAdditionRequested(const ExactCard &card)
void constructZoneWidgetsFromDeckListModel()
Definition visual_deck_editor_widget.cpp:299
CardSizeWidget * cardSizeWidget
Definition visual_deck_editor_widget.h:57
void decklistDataChanged(QModelIndex topLeft, QModelIndex bottomRight)
Definition visual_deck_editor_widget.cpp:390
VisualDeckEditorPlaceholderWidget * placeholderWidget
Definition visual_deck_editor_widget.h:107
void decklistModelReset()
Definition visual_deck_editor_widget.cpp:384
VisualDeckEditorWidget(QWidget *parent, DeckListModel *deckListModel, QItemSelectionModel *selectionModel)
Definition visual_deck_editor_widget.cpp:30
QVBoxLayout * mainLayout
Definition visual_deck_editor_widget.h:94
CompactPushButton * searchPushButton
Definition visual_deck_editor_widget.h:103
void initializeSearchBarAndCompleter()
Definition visual_deck_editor_widget.cpp:71
void clearAllDisplayWidgets()
Definition visual_deck_editor_widget.cpp:326
QItemSelectionModel * selectionModel
Definition visual_deck_editor_widget.h:93
QHBoxLayout * searchLayout
Definition visual_deck_editor_widget.h:99
void constructZoneWidgetForIndex(QPersistentModelIndex persistent)
Definition visual_deck_editor_widget.cpp:275
void initializeDisplayOptionsWidget()
Definition visual_deck_editor_widget.cpp:158
void onCardRemoval(const QModelIndex &parent, int first, int last)
Definition visual_deck_editor_widget.cpp:369
void onHover(const ExactCard &hoveredCard)
Definition visual_deck_editor_widget.cpp:411
CardDatabaseDisplayModel * cardDatabaseDisplayModel
Definition visual_deck_editor_widget.h:96
QHash< QPersistentModelIndex, QWidget * > indexToWidgetMap
Definition visual_deck_editor_widget.h:109
DeckListModel * deckListModel
Definition visual_deck_editor_widget.h:92
QItemSelectionModel * getSelectionModel() const
Definition visual_deck_editor_widget.h:51
QVBoxLayout * zoneContainerLayout
Definition visual_deck_editor_widget.h:106
void initializeDisplayOptionsAndSearchWidget()
Definition visual_deck_editor_widget.cpp:169
int expandedWidthAll
Definition visual_deck_editor_widget.h:90
int expandedWidthDisplayCompact
Definition visual_deck_editor_widget.h:91
void initializeScrollAreaAndZoneContainer()
Definition visual_deck_editor_widget.cpp:182
void setDeckList(const DeckList &_deckListModel)
void cardClicked(QMouseEvent *event, CardInfoPictureWithTextOverlayWidget *instance, QString zoneName)
void updatePlaceholderVisibility()
Definition visual_deck_editor_widget.cpp:264
void connectDeckListModel()
Definition visual_deck_editor_widget.cpp:206
void activeGroupCriteriaChanged(QString activeGroupCriteria)
void displayTypeChanged(DisplayType displayType)
void cleanupInvalidZones(DeckCardZoneDisplayWidget *displayWidget)
Definition visual_deck_editor_widget.cpp:337
void updateCompactMode()
Definition visual_deck_editor_widget.cpp:232
CardDatabaseModel * cardDatabaseModel
Definition visual_deck_editor_widget.h:95
void updateZoneWidgets()
Definition visual_deck_editor_widget.cpp:322
QScrollArea * scrollArea
Definition visual_deck_editor_widget.h:104
void onSelectionChanged(const QItemSelection &selected, const QItemSelection &deselected)
Definition visual_deck_editor_widget.cpp:443
QWidget * zoneContainer
Definition visual_deck_editor_widget.h:105
QCompleter * completer
Definition visual_deck_editor_widget.h:100
QLineEdit * searchBar
Definition visual_deck_editor_widget.h:56
void retranslateUi()
Definition visual_deck_editor_widget.cpp:214
CardCompleterProxyModel * proxyModel
Definition visual_deck_editor_widget.h:97
FlowWidget * displayOptionsAndSearch
Definition visual_deck_editor_widget.h:101
void activeCardChanged(const ExactCard &activeCard)
void setSelectionModel(QItemSelectionModel *model)
Definition visual_deck_editor_widget.cpp:425
void onCardClick(QMouseEvent *event, CardInfoPictureWithTextOverlayWidget *instance, QString zoneName)
Definition visual_deck_editor_widget.cpp:404
VisualDeckDisplayOptionsWidget * displayOptionsWidget
Definition visual_deck_editor_widget.h:102
void resizeEvent(QResizeEvent *event) override
Definition visual_deck_editor_widget.cpp:226
DisplayType
Definition visual_deck_editor_widget.h:31
@ Overlap
Definition visual_deck_editor_widget.h:33
@ Flat
Definition visual_deck_editor_widget.h:32