14#include <QGraphicsItem>
15#include <QGraphicsScene>
16#include <QGraphicsView>
26#include <libcockatrice/protocol/pb/move_card_to_zone.pb.h>
27#include <qtmetamacros.h>
45 const QString &_originZone = QString());
47 void paint(QPainter *painter,
const QStyleOptionGraphicsItem *option, QWidget *widget)
override;
95 [[nodiscard]]
int type()
const override
101 void paint(QPainter *painter,
const QStyleOptionGraphicsItem *option, QWidget *widget)
override;
172 explicit DeckView(QWidget *parent =
nullptr);
Base class for graphical card items, providing shared rendering, identity, and interaction logic.
AbstractCardDragItem(AbstractCardItem *_item, const QPointF &_hotSpot, AbstractCardDragItem *parentDrag=0)
Definition abstract_card_drag_item.cpp:22
Definition abstract_card_item.h:29
CardRef cardRef
Definition abstract_card_item.h:34
AbstractCardItem(QGraphicsItem *parent=nullptr, const CardRef &cardRef={}, PlayerLogic *_owner=nullptr, int _id=-1)
Definition abstract_card_item.cpp:45
Represents a complete deck, including metadata, zones, cards, and sideboard plans.
Definition deck_list.h:67
Definition deck_view.h:77
static bool sortCardsByName(DeckViewCard *c1, DeckViewCard *c2)
Definition deck_view.cpp:326
const QString & getName() const
Definition deck_view.h:108
const QList< DeckViewCard * > & getCards() const
Definition deck_view.h:104
qreal height
Definition deck_view.h:87
qreal width
Definition deck_view.h:87
QRectF boundingRect() const override
Definition deck_view.cpp:229
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override
Definition deck_view.cpp:234
void addCard(DeckViewCard *card)
Definition deck_view.cpp:271
QSizeF calculateBoundingRect(const QList< QPair< int, int > > &rowsAndCols) const
Definition deck_view.cpp:310
int getCardTypeTextWidth() const
Definition deck_view.cpp:293
static const int paddingY
Definition deck_view.h:80
QString name
Definition deck_view.h:83
QList< QPair< int, int > > currentRowsAndCols
Definition deck_view.h:86
@ Type
Definition deck_view.h:93
QMultiMap< QString, DeckViewCard * > cardsByType
Definition deck_view.h:85
QList< QPair< int, int > > getRowsAndCols() const
Definition deck_view.cpp:283
QList< DeckViewCard * > cards
Definition deck_view.h:84
void setWidth(qreal _width)
Definition deck_view.cpp:360
DeckViewCardContainer(const QString &_name)
Definition deck_view.cpp:224
int type() const override
Definition deck_view.h:95
static const int separatorY
Definition deck_view.h:79
void rearrangeItems(const QList< QPair< int, int > > &rowsAndCols)
Definition deck_view.cpp:334
void removeCard(DeckViewCard *card)
Definition deck_view.cpp:277
Definition deck_view.h:63
void updatePosition(const QPointF &cursorScenePos) override
Definition deck_view.cpp:54
DeckViewCardDragItem(DeckViewCard *_item, const QPointF &_hotSpot, AbstractCardDragItem *parentDrag=0)
Definition deck_view.cpp:47
DeckViewCardContainer * currentZone
Definition deck_view.h:65
void handleDrop(DeckViewCardContainer *target)
Definition deck_view.cpp:78
void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override
Definition deck_view.cpp:87
Definition deck_view.h:37
DeckViewCard(QGraphicsItem *parent=nullptr, const CardRef &cardRef={}, const QString &_originZone=QString())
Definition deck_view.cpp:107
DeckViewCardDragItem * dragItem
Definition deck_view.h:40
bool doubleClickActsOnSelection() const override
Whether a double-click on this item acts on the whole selection.
Definition deck_view.h:52
void mouseMoveEvent(QGraphicsSceneMouseEvent *event) override
Definition deck_view.cpp:142
const QString & getOriginZone() const
Definition deck_view.h:48
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override
Definition deck_view.cpp:125
QString originZone
Definition deck_view.h:39
void hoverEnterEvent(QGraphicsSceneHoverEvent *event) override
Definition deck_view.cpp:218
Definition deck_view.h:120
void setDeck(const DeckList &_deck)
Definition deck_view.cpp:386
DeckViewScene(QObject *parent=nullptr)
Definition deck_view.cpp:367
void applySideboardPlan(const QList< MoveCard_ToZone > &plan)
Definition deck_view.cpp:437
void rebuildTree()
Definition deck_view.cpp:398
void resetSideboardPlan()
Definition deck_view.cpp:562
void setLocked(bool _locked)
Definition deck_view.h:136
DeckList * deck
Definition deck_view.h:128
bool getLocked() const
Definition deck_view.h:140
void updateContents()
Definition deck_view.cpp:536
void clearContents()
Definition deck_view.cpp:377
bool locked
Definition deck_view.h:127
QMap< QString, DeckViewCardContainer * > cardContainers
Definition deck_view.h:129
void rearrangeItems()
Definition deck_view.cpp:465
qreal optimalAspectRatio
Definition deck_view.h:130
QList< MoveCard_ToZone > getSideboardPlan() const
Definition deck_view.cpp:542
void setOptimalAspectRatio(qreal _optimalAspectRatio)
Definition deck_view.h:146
void sideboardPlanChanged()
void newCardAdded(AbstractCardItem *card)
DeckView(QWidget *parent=nullptr)
Definition deck_view.cpp:568
DeckViewScene * deckViewScene
Definition deck_view.h:161
void updateSceneRect(const QRectF &rect)
Definition deck_view.cpp:589
QList< MoveCard_ToZone > getSideboardPlan() const
Definition deck_view.h:179
void setLocked(bool _locked)
Definition deck_view.h:175
void newCardAdded(AbstractCardItem *card)
void clearDeck()
Definition deck_view.cpp:599
void resizeEvent(QResizeEvent *event) override
Definition deck_view.cpp:582
void setDeck(const DeckList &_deck)
Definition deck_view.cpp:594
void resetSideboardPlan()
Definition deck_view.cpp:604
void sideboardPlanChanged()
void mouseDoubleClickEvent(QMouseEvent *event) override
Definition deck_view.cpp:175
Definition remote_connection_controller.h:20
@ typeDeckViewCardContainer
Definition graphics_item_type.h:18