|
- #ifndef ITEM_H
- #define ITEM_H
-
- #include <QGraphicsObject>
- #include <QColor>
- #include <QList>
- #include <QAction>
-
- 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;
- QPointF anchorPos(AnchorType type) const;
- void addConnection(Connection* conn);
- void removeConnection(Connection* conn);
- QList<Connection*> connections();
- QString itemType();
- void setRegisterId(const QString& id) { registerId_ = id; }
- QString registerId() const { return registerId_; }
-
-
- signals:
- void requestCopy(Item*);
- void requestDelete(Item*);
- void requestBindRegister(Item*);
-
- protected:
- virtual void MenuActions(QMenu *menu);
- virtual void addMenuActions(QMenu *menu);
- virtual void handleMenuAction(QAction *action);
- QVariant itemChange(GraphicsItemChange change, const QVariant &value) override;
- void contextMenuEvent(QGraphicsSceneContextMenuEvent *event) override;
- QString type_;
- QList<Connection*> connections_;
- QString registerId_;
- };
-
- #endif // ITEM_H
|