74 lines
2.1 KiB
C++
74 lines
2.1 KiB
C++
#ifndef ZONEVIEWERZONE_H
|
|
#define ZONEVIEWERZONE_H
|
|
|
|
#include "selectzone.h"
|
|
|
|
#include <QGraphicsLayoutItem>
|
|
|
|
class ZoneViewWidget;
|
|
class Response;
|
|
class ServerInfo_Card;
|
|
class QGraphicsSceneWheelEvent;
|
|
|
|
class ZoneViewZone : public SelectZone, public QGraphicsLayoutItem
|
|
{
|
|
Q_OBJECT
|
|
Q_INTERFACES(QGraphicsLayoutItem)
|
|
private:
|
|
QRectF bRect, optimumRect;
|
|
int minRows, numberCards;
|
|
void handleDropEvent(const QList<CardDragItem *> &dragItems, CardZone *startZone, const QPoint &dropPoint);
|
|
CardZone *origZone;
|
|
bool revealZone, writeableRevealZone;
|
|
bool sortByName, sortByType;
|
|
bool pileView;
|
|
|
|
public:
|
|
ZoneViewZone(Player *_p,
|
|
CardZone *_origZone,
|
|
int _numberCards = -1,
|
|
bool _revealZone = false,
|
|
bool _writeableRevealZone = false,
|
|
QGraphicsItem *parent = nullptr);
|
|
~ZoneViewZone();
|
|
QRectF boundingRect() const;
|
|
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
|
|
void reorganizeCards();
|
|
void initializeCards(const QList<const ServerInfo_Card *> &cardList = QList<const ServerInfo_Card *>());
|
|
void removeCard(int position);
|
|
int getNumberCards() const
|
|
{
|
|
return numberCards;
|
|
}
|
|
void setGeometry(const QRectF &rect);
|
|
QRectF getOptimumRect() const
|
|
{
|
|
return optimumRect;
|
|
}
|
|
bool getRevealZone() const
|
|
{
|
|
return revealZone;
|
|
}
|
|
bool getWriteableRevealZone() const
|
|
{
|
|
return writeableRevealZone;
|
|
}
|
|
void setWriteableRevealZone(bool _writeableRevealZone);
|
|
public slots:
|
|
void setSortByName(int _sortByName);
|
|
void setSortByType(int _sortByType);
|
|
void setPileView(int _pileView);
|
|
private slots:
|
|
void zoneDumpReceived(const Response &r);
|
|
signals:
|
|
void beingDeleted();
|
|
void optimumRectChanged();
|
|
void wheelEventReceived(QGraphicsSceneWheelEvent *event);
|
|
|
|
protected:
|
|
void addCardImpl(CardItem *card, int x, int y);
|
|
QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const;
|
|
void wheelEvent(QGraphicsSceneWheelEvent *event);
|
|
};
|
|
|
|
#endif
|