X-Git-Url: https://git.sven.stormbind.net/?a=blobdiff_plain;f=src%2Fflagobj.cpp;fp=src%2Fflagobj.cpp;h=db217f8698e953f9cad86e10a713fe8a383b3682;hb=d483bd8e6523c23c6f1d8908a2e0611c2bc9ff4f;hp=0000000000000000000000000000000000000000;hpb=7dfa3fe589d1722d49681f42cdb0bf1e6efb5223;p=sven%2Fvym.git diff --git a/src/flagobj.cpp b/src/flagobj.cpp new file mode 100644 index 0000000..db217f8 --- /dev/null +++ b/src/flagobj.cpp @@ -0,0 +1,81 @@ +#include + +#include "flagobj.h" + +///////////////////////////////////////////////////////////////// +// FlagObj +///////////////////////////////////////////////////////////////// +FlagObj::FlagObj(QGraphicsItem *parent) : MapObj(parent) +{ + // qDebug() << "Const FlagObj this=" << this; + init(); +} + +FlagObj::~FlagObj() +{ + // qDebug() << "Destr FlagObj this=" << this << " " << name; + if (imageObj) + delete (imageObj); +} + +void FlagObj::init() +{ + imageObj = new ImageObj(parentItem()); + avis = true; +} + +void FlagObj::move(double x, double y) +{ + MapObj::move(x, y); + imageObj->setPos(QPointF(x, y)); + positionBBox(); +} + +void FlagObj::moveBy(double x, double y) +{ + move(x + absPos.x(), y + absPos.y()); +} + +void FlagObj::setZValue(double z) { imageObj->setZValue(z); } + +void FlagObj::setVisibility(bool v) +{ + MapObj::setVisibility(v); + if (v) + imageObj->setVisibility(true); + else + imageObj->setVisibility(false); +} + +void FlagObj::loadImage(ImageObj *io) +{ + prepareGeometryChange(); + + imageObj->copy(io); // Creates deep copy of pixmap or svg! + calcBBoxSize(); + positionBBox(); +} + +void FlagObj::setUuid(const QUuid &id) { uid = id; } + +const QUuid FlagObj::getUuid() { return uid; } + +void FlagObj::setAlwaysVisible(bool b) { avis = b; } + +bool FlagObj::isAlwaysVisible() { return avis; } + +void FlagObj::positionBBox() +{ + bbox.moveTopLeft(absPos); + clickPoly = QPolygonF(bbox); +} + +void FlagObj::calcBBoxSize() +{ + if (visible) + bbox.setSize(QSizeF(imageObj->boundingRect().width(), + imageObj->boundingRect().height())); + else + bbox.setSize(QSizeF(0, 0)); + clickPoly = QPolygonF(bbox); +}