#ifndef CONNECTIONPIXMAPITEM_H #define CONNECTIONPIXMAPITEM_H #include "mapconnection.h" #include #include #include class ConnectionPixmapItem : public QObject, public QGraphicsPixmapItem { Q_OBJECT public: ConnectionPixmapItem(MapConnection* connection, int originX, int originY); ConnectionPixmapItem(MapConnection* connection, QPoint origin); const QPointer connection; void setOrigin(int x, int y); void setOrigin(QPoint pos); void setEditable(bool editable); bool getEditable(); void setSelected(bool selected); void updatePos(); void render(bool ignoreCache = false); private: QPixmap basePixmap; qreal originX; qreal originY; bool selected = false; unsigned actionId = 0; static const int mWidth = 16; static const int mHeight = 16; protected: QVariant itemChange(GraphicsItemChange change, const QVariant &value) override; void mousePressEvent(QGraphicsSceneMouseEvent*) override; void mouseReleaseEvent(QGraphicsSceneMouseEvent*) override; void mouseDoubleClickEvent(QGraphicsSceneMouseEvent*) override; signals: void connectionItemDoubleClicked(MapConnection*); void selectionChanged(bool selected); }; #endif // CONNECTIONPIXMAPITEM_H