12#include <QGraphicsView>
14#include <libcockatrice/protocol/pb/move_card_to_zone.pb.h>
32 const QString &_originZone = QString());
34 void paint(QPainter *painter,
const QStyleOptionGraphicsItem *option, QWidget *widget)
override;
78 [[nodiscard]]
int type()
const override
84 void paint(QPainter *painter,
const QStyleOptionGraphicsItem *option, QWidget *widget)
override;
87 [[nodiscard]]
const QList<DeckViewCard *> &
getCards()
const
91 [[nodiscard]]
const QString &
getName()
const
155 explicit DeckView(QWidget *parent =
nullptr);
AbstractCardDragItem(AbstractCardItem *_item, const QPointF &_hotSpot, AbstractCardDragItem *parentDrag=0)
Definition abstract_card_drag_item.cpp:14
Definition abstract_card_item.h:22
CardRef cardRef
Definition abstract_card_item.h:27
AbstractCardItem(QGraphicsItem *parent=nullptr, const CardRef &cardRef={}, Player *_owner=nullptr, int _id=-1)
Definition abstract_card_item.cpp:15
Represents a card and its associated metadata, properties, and relationships.
Definition card_info.h:46
Represents a complete deck, including metadata, zones, cards, and sideboard plans.
Definition deck_list.h:127
Definition deck_view.h:60
static bool sortCardsByName(DeckViewCard *c1, DeckViewCard *c2)
Definition deck_view.cpp:271
const QString & getName() const
Definition deck_view.h:91
const QList< DeckViewCard * > & getCards() const
Definition deck_view.h:87
qreal height
Definition deck_view.h:70
qreal width
Definition deck_view.h:70
QRectF boundingRect() const override
Definition deck_view.cpp:176
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override
Definition deck_view.cpp:181
void addCard(DeckViewCard *card)
Definition deck_view.cpp:218
QSizeF calculateBoundingRect(const QList< QPair< int, int > > &rowsAndCols) const
Definition deck_view.cpp:256
int getCardTypeTextWidth() const
Definition deck_view.cpp:239
static const int paddingY
Definition deck_view.h:63
QString name
Definition deck_view.h:66
QList< QPair< int, int > > currentRowsAndCols
Definition deck_view.h:69
QMultiMap< QString, DeckViewCard * > cardsByType
Definition deck_view.h:68
QList< QPair< int, int > > getRowsAndCols() const
Definition deck_view.cpp:230
QList< DeckViewCard * > cards
Definition deck_view.h:67
void setWidth(qreal _width)
Definition deck_view.cpp:303
DeckViewCardContainer(const QString &_name)
Definition deck_view.cpp:171
@ Type
Definition deck_view.h:76
int type() const override
Definition deck_view.h:78
static const int separatorY
Definition deck_view.h:62
void rearrangeItems(const QList< QPair< int, int > > &rowsAndCols)
Definition deck_view.cpp:278
void removeCard(DeckViewCard *card)
Definition deck_view.cpp:224
Definition deck_view.h:46
void updatePosition(const QPointF &cursorScenePos) override
Definition deck_view.cpp:22
DeckViewCardDragItem(DeckViewCard *_item, const QPointF &_hotSpot, AbstractCardDragItem *parentDrag=0)
Definition deck_view.cpp:15
DeckViewCardContainer * currentZone
Definition deck_view.h:48
void handleDrop(DeckViewCardContainer *target)
Definition deck_view.cpp:42
void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override
Definition deck_view.cpp:51
Definition deck_view.h:24
DeckViewCard(QGraphicsItem *parent=nullptr, const CardRef &cardRef={}, const QString &_originZone=QString())
Definition deck_view.cpp:71
DeckViewCardDragItem * dragItem
Definition deck_view.h:27
void mouseMoveEvent(QGraphicsSceneMouseEvent *event) override
Definition deck_view.cpp:103
const QString & getOriginZone() const
Definition deck_view.h:35
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override
Definition deck_view.cpp:88
~DeckViewCard() override
Definition deck_view.cpp:83
QString originZone
Definition deck_view.h:26
void hoverEnterEvent(QGraphicsSceneHoverEvent *event) override
Definition deck_view.cpp:165
Definition deck_view.h:103
void setDeck(const DeckList &_deck)
Definition deck_view.cpp:328
DeckViewScene(QObject *parent=nullptr)
Definition deck_view.cpp:310
void applySideboardPlan(const QList< MoveCard_ToZone > &plan)
Definition deck_view.cpp:371
void rebuildTree()
Definition deck_view.cpp:339
void resetSideboardPlan()
Definition deck_view.cpp:486
void setLocked(bool _locked)
Definition deck_view.h:119
DeckList * deck
Definition deck_view.h:111
bool getLocked() const
Definition deck_view.h:123
void updateContents()
Definition deck_view.cpp:461
void clearContents()
Definition deck_view.cpp:320
bool locked
Definition deck_view.h:110
QMap< QString, DeckViewCardContainer * > cardContainers
Definition deck_view.h:112
void rearrangeItems()
Definition deck_view.cpp:396
qreal optimalAspectRatio
Definition deck_view.h:113
QList< MoveCard_ToZone > getSideboardPlan() const
Definition deck_view.cpp:467
~DeckViewScene() override
Definition deck_view.cpp:314
void setOptimalAspectRatio(qreal _optimalAspectRatio)
Definition deck_view.h:129
void sideboardPlanChanged()
void newCardAdded(AbstractCardItem *card)
DeckView(QWidget *parent=nullptr)
Definition deck_view.cpp:492
DeckViewScene * deckViewScene
Definition deck_view.h:144
void updateSceneRect(const QRectF &rect)
Definition deck_view.cpp:513
QList< MoveCard_ToZone > getSideboardPlan() const
Definition deck_view.h:162
void setLocked(bool _locked)
Definition deck_view.h:158
void newCardAdded(AbstractCardItem *card)
void clearDeck()
Definition deck_view.cpp:523
void resizeEvent(QResizeEvent *event) override
Definition deck_view.cpp:506
void setDeck(const DeckList &_deck)
Definition deck_view.cpp:518
void resetSideboardPlan()
Definition deck_view.cpp:528
void sideboardPlanChanged()
void mouseDoubleClickEvent(QMouseEvent *event) override
Definition deck_view.cpp:133
Represents a container node in the deck list hierarchy (zones and groupings).
Definition inner_deck_list_node.h:62
@ typeDeckViewCardContainer
Definition graphics_item_type.h:18