Cockatrice 2025-11-30-Development-2.11.0-beta.38
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
14
15#include <QCheckBox>
16#include <QListWidget>
17#include <QPushButton>
18#include <QWidget>
24#include <qscrollarea.h>
25
28enum class DisplayType
29{
32};
33
34class VisualDeckEditorWidget : public QWidget
35{
36 Q_OBJECT
37
38public:
39 explicit VisualDeckEditorWidget(QWidget *parent, DeckListModel *deckListModel, QItemSelectionModel *selectionModel);
40 void retranslateUi();
42 void resizeEvent(QResizeEvent *event) override;
43
44 void setDeckList(const DeckList &_deckListModel);
45
46 void setSelectionModel(QItemSelectionModel *model);
47 void onSelectionChanged(const QItemSelection &selected, const QItemSelection &deselected);
48 QItemSelectionModel *getSelectionModel() const
49 {
50 return selectionModel;
51 }
52
53 QLineEdit *searchBar;
55
56public slots:
57 void decklistDataChanged(QModelIndex topLeft, QModelIndex bottomRight);
58 void updateZoneWidgets();
60 void onCardAddition(const QModelIndex &parent, int first, int last);
61 void onCardRemoval(const QModelIndex &parent, int first, int last);
62 void constructZoneWidgetForIndex(QPersistentModelIndex persistent);
64
65signals:
66 void activeCardChanged(const ExactCard &activeCard);
67 void activeGroupCriteriaChanged(QString activeGroupCriteria);
68 void activeSortCriteriaChanged(QStringList activeSortCriteria);
69 void cardClicked(QMouseEvent *event, CardInfoPictureWithTextOverlayWidget *instance, QString zoneName);
72
73protected slots:
74 void onHover(const ExactCard &hoveredCard);
75 void onCardClick(QMouseEvent *event, CardInfoPictureWithTextOverlayWidget *instance, QString zoneName);
76 void decklistModelReset();
77
78private:
80 QItemSelectionModel *selectionModel;
81 QVBoxLayout *mainLayout;
85 QCompleter *completer;
89 QPushButton *searchPushButton;
90 QScrollArea *scrollArea;
91 QWidget *zoneContainer;
92 QVBoxLayout *zoneContainerLayout;
93 // OverlapControlWidget *overlapControlWidget;
94 QWidget *container;
95 QHash<QPersistentModelIndex, QWidget *> indexToWidgetMap;
96};
97
98#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:200
Represents a complete deck, including metadata, zones, cards, and sideboard plans.
Definition deck_list.h:127
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
void activeSortCriteriaChanged(QStringList activeSortCriteria)
QHBoxLayout * displayOptionsAndSearchLayout
Definition visual_deck_editor_widget.h:87
void onCardAddition(const QModelIndex &parent, int first, int last)
Definition visual_deck_editor_widget.cpp:236
void cardAdditionRequested(const ExactCard &card)
void constructZoneWidgetsFromDeckListModel()
Definition visual_deck_editor_widget.cpp:288
CardSizeWidget * cardSizeWidget
Definition visual_deck_editor_widget.h:54
void decklistDataChanged(QModelIndex topLeft, QModelIndex bottomRight)
Definition visual_deck_editor_widget.cpp:326
void decklistModelReset()
Definition visual_deck_editor_widget.cpp:320
VisualDeckEditorWidget(QWidget *parent, DeckListModel *deckListModel, QItemSelectionModel *selectionModel)
Definition visual_deck_editor_widget.cpp:29
QVBoxLayout * mainLayout
Definition visual_deck_editor_widget.h:81
void clearAllDisplayWidgets()
Definition visual_deck_editor_widget.cpp:215
QItemSelectionModel * selectionModel
Definition visual_deck_editor_widget.h:80
void constructZoneWidgetForIndex(QPersistentModelIndex persistent)
Definition visual_deck_editor_widget.cpp:265
QPushButton * searchPushButton
Definition visual_deck_editor_widget.h:89
QWidget * displayOptionsAndSearch
Definition visual_deck_editor_widget.h:86
void onCardRemoval(const QModelIndex &parent, int first, int last)
Definition visual_deck_editor_widget.cpp:251
void onHover(const ExactCard &hoveredCard)
Definition visual_deck_editor_widget.cpp:336
CardDatabaseDisplayModel * cardDatabaseDisplayModel
Definition visual_deck_editor_widget.h:83
QHash< QPersistentModelIndex, QWidget * > indexToWidgetMap
Definition visual_deck_editor_widget.h:95
DeckListModel * deckListModel
Definition visual_deck_editor_widget.h:79
QItemSelectionModel * getSelectionModel() const
Definition visual_deck_editor_widget.h:48
QVBoxLayout * zoneContainerLayout
Definition visual_deck_editor_widget.h:92
void setDeckList(const DeckList &_deckListModel)
void cardClicked(QMouseEvent *event, CardInfoPictureWithTextOverlayWidget *instance, QString zoneName)
void activeGroupCriteriaChanged(QString activeGroupCriteria)
void displayTypeChanged(DisplayType displayType)
void cleanupInvalidZones(DeckCardZoneDisplayWidget *displayWidget)
Definition visual_deck_editor_widget.cpp:225
CardDatabaseModel * cardDatabaseModel
Definition visual_deck_editor_widget.h:82
QWidget * container
Definition visual_deck_editor_widget.h:94
void updateZoneWidgets()
Definition visual_deck_editor_widget.cpp:310
QScrollArea * scrollArea
Definition visual_deck_editor_widget.h:90
void onSelectionChanged(const QItemSelection &selected, const QItemSelection &deselected)
Definition visual_deck_editor_widget.cpp:192
QWidget * zoneContainer
Definition visual_deck_editor_widget.h:91
QCompleter * completer
Definition visual_deck_editor_widget.h:85
QLineEdit * searchBar
Definition visual_deck_editor_widget.h:53
void retranslateUi()
Definition visual_deck_editor_widget.cpp:166
CardCompleterProxyModel * proxyModel
Definition visual_deck_editor_widget.h:84
void activeCardChanged(const ExactCard &activeCard)
void setSelectionModel(QItemSelectionModel *model)
Definition visual_deck_editor_widget.cpp:174
void onCardClick(QMouseEvent *event, CardInfoPictureWithTextOverlayWidget *instance, QString zoneName)
Definition visual_deck_editor_widget.cpp:350
VisualDeckDisplayOptionsWidget * displayOptionsWidget
Definition visual_deck_editor_widget.h:88
void resizeEvent(QResizeEvent *event) override
Definition visual_deck_editor_widget.cpp:314
TODO: Document this.
TODO: Document this.
DisplayType
Definition visual_deck_editor_widget.h:29
@ Overlap
Definition visual_deck_editor_widget.h:31
@ Flat
Definition visual_deck_editor_widget.h:30