#ifndef ITEM_H #define ITEM_H #include #include #include class Connection; class Item : public QGraphicsObject { Q_OBJECT public: enum AnchorType { Left, Right }; explicit Item(const QString &type, QGraphicsItem *parent = nullptr); QRectF boundingRect() const override; void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override; QPointF anchorPos(AnchorType type) const; void addConnection(Connection* conn); void removeConnection(Connection* conn); QList connections(); protected: QVariant itemChange(GraphicsItemChange change, const QVariant &value) override; private: QString type_; QColor color_; QList connections_; }; #endif // ITEM_H