Cockatrice 2026-09-01-Development-3.1.0-beta.10
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,
43 QItemSelectionModel *selectionModel,
44 CardDatabaseModel *_cardDatabaseModel = nullptr);
45 void retranslateUi();
46 void updateCompactMode();
48
49 void setDeckList(const DeckList &_deckListModel);
50
51 void setSelectionModel(QItemSelectionModel *model);
52 void onSelectionChanged(const QItemSelection &selected, const QItemSelection &deselected);
54 QItemSelectionModel *getSelectionModel() const
55 {
56 return selectionModel;
57 }
58
59 QLineEdit *searchBar;
61
62public slots:
63 void decklistDataChanged(QModelIndex topLeft, QModelIndex bottomRight);
64 void updateZoneWidgets();
66 void onCardAddition(const QModelIndex &parent, int first, int last);
67 void onCardRemoval(const QModelIndex &parent, int first, int last);
68 void constructZoneWidgetForIndex(QPersistentModelIndex persistent);
70
71signals:
72 void activeCardChanged(const ExactCard &activeCard);
73 void activeGroupCriteriaChanged(QString activeGroupCriteria);
74 void activeSortCriteriaChanged(QStringList activeSortCriteria);
75 void cardClicked(QMouseEvent *event, const ExactCard &card, const QString &zoneName);
78
79protected:
85
86protected slots:
87 void onHover(const ExactCard &hoveredCard);
88 void decklistModelReset();
89 void resizeEvent(QResizeEvent *event) override;
90
91private:
95 QItemSelectionModel *selectionModel;
96 QVBoxLayout *mainLayout;
101 QHBoxLayout *searchLayout;
102 QCompleter *completer;
106 QScrollArea *scrollArea;
110 // OverlapControlWidget *overlapControlWidget;
111 QHash<QPersistentModelIndex, QWidget *> indexToWidgetMap;
112};
113
114#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
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:100
void activeSortCriteriaChanged(QStringList activeSortCriteria)
void onCardAddition(const QModelIndex &parent, int first, int last)
Definition visual_deck_editor_widget.cpp:340
void cardAdditionRequested(const ExactCard &card)
void constructZoneWidgetsFromDeckListModel()
Definition visual_deck_editor_widget.cpp:286
VisualDeckEditorWidget(QWidget *parent, DeckListModel *deckListModel, QItemSelectionModel *selectionModel, CardDatabaseModel *_cardDatabaseModel=nullptr)
Definition visual_deck_editor_widget.cpp:30
CardSizeWidget * cardSizeWidget
Definition visual_deck_editor_widget.h:60
void decklistDataChanged(QModelIndex topLeft, QModelIndex bottomRight)
Definition visual_deck_editor_widget.cpp:377
VisualDeckEditorPlaceholderWidget * placeholderWidget
Definition visual_deck_editor_widget.h:109
void decklistModelReset()
Definition visual_deck_editor_widget.cpp:371
QVBoxLayout * mainLayout
Definition visual_deck_editor_widget.h:96
CompactPushButton * searchPushButton
Definition visual_deck_editor_widget.h:105
void initializeSearchBarAndCompleter()
Definition visual_deck_editor_widget.cpp:74
void clearAllDisplayWidgets()
Definition visual_deck_editor_widget.cpp:313
QItemSelectionModel * selectionModel
Definition visual_deck_editor_widget.h:95
QHBoxLayout * searchLayout
Definition visual_deck_editor_widget.h:101
void cardClicked(QMouseEvent *event, const ExactCard &card, const QString &zoneName)
void constructZoneWidgetForIndex(QPersistentModelIndex persistent)
Definition visual_deck_editor_widget.cpp:262
void initializeDisplayOptionsWidget()
Definition visual_deck_editor_widget.cpp:145
void onCardRemoval(const QModelIndex &parent, int first, int last)
Definition visual_deck_editor_widget.cpp:356
void onHover(const ExactCard &hoveredCard)
Definition visual_deck_editor_widget.cpp:391
CardDatabaseDisplayModel * cardDatabaseDisplayModel
Definition visual_deck_editor_widget.h:98
QHash< QPersistentModelIndex, QWidget * > indexToWidgetMap
Definition visual_deck_editor_widget.h:111
DeckListModel * deckListModel
Definition visual_deck_editor_widget.h:94
QItemSelectionModel * getSelectionModel() const
Definition visual_deck_editor_widget.h:54
QVBoxLayout * zoneContainerLayout
Definition visual_deck_editor_widget.h:108
void initializeDisplayOptionsAndSearchWidget()
Definition visual_deck_editor_widget.cpp:156
int expandedWidthAll
Definition visual_deck_editor_widget.h:92
int expandedWidthDisplayCompact
Definition visual_deck_editor_widget.h:93
void initializeScrollAreaAndZoneContainer()
Definition visual_deck_editor_widget.cpp:169
void setDeckList(const DeckList &_deckListModel)
void updatePlaceholderVisibility()
Definition visual_deck_editor_widget.cpp:251
void connectDeckListModel()
Definition visual_deck_editor_widget.cpp:193
void activeGroupCriteriaChanged(QString activeGroupCriteria)
void displayTypeChanged(DisplayType displayType)
void cleanupInvalidZones(DeckCardZoneDisplayWidget *displayWidget)
Definition visual_deck_editor_widget.cpp:324
void updateCompactMode()
Definition visual_deck_editor_widget.cpp:219
CardDatabaseModel * cardDatabaseModel
Definition visual_deck_editor_widget.h:97
void updateZoneWidgets()
Definition visual_deck_editor_widget.cpp:309
QScrollArea * scrollArea
Definition visual_deck_editor_widget.h:106
void onSelectionChanged(const QItemSelection &selected, const QItemSelection &deselected)
Definition visual_deck_editor_widget.cpp:423
QWidget * zoneContainer
Definition visual_deck_editor_widget.h:107
QCompleter * completer
Definition visual_deck_editor_widget.h:102
QLineEdit * searchBar
Definition visual_deck_editor_widget.h:59
void retranslateUi()
Definition visual_deck_editor_widget.cpp:201
CardCompleterProxyModel * proxyModel
Definition visual_deck_editor_widget.h:99
FlowWidget * displayOptionsAndSearch
Definition visual_deck_editor_widget.h:103
void activeCardChanged(const ExactCard &activeCard)
void setSelectionModel(QItemSelectionModel *model)
Definition visual_deck_editor_widget.cpp:405
VisualDeckDisplayOptionsWidget * displayOptionsWidget
Definition visual_deck_editor_widget.h:104
void resizeEvent(QResizeEvent *event) override
Definition visual_deck_editor_widget.cpp:213
DisplayType
Definition visual_deck_editor_widget.h:31
@ Overlap
Definition visual_deck_editor_widget.h:33
@ Flat
Definition visual_deck_editor_widget.h:32