linkablebezieritem.h
Go to the documentation of this file.
1 #ifndef LINKABLEBEZIERITEM_H
2 #define LINKABLEBEZIERITEM_H
3 
4 #include "ilinkable.h"
5 #include "views/customshape.h"
6 
7 namespace dnai
8 {
9  class GenericNode;
10 
12  {
13  public:
14  virtual ~LinkableBezierItem() = default;
15  LinkableBezierItem(QQuickItem *parent = nullptr);
16  ALinkable *getLinkable() const { return m_linkable; }
17  virtual QPointF getCanvasPos() const = 0;
18  virtual void updateLink() = 0;
19 
23  virtual void componentComplete() override = 0;
24  virtual GenericNode *getNode() const = 0;
25 
26  virtual const QColor &colorLink() const;
27 
28  void unlinkAll();
29 
30  protected:
32 
33  protected:
40  virtual LinkableBezierItem *findLinkableBezierItem(GenericNode *n, const QPointF &p) = 0;
41 
46  virtual void mouseMoveEvent(QMouseEvent *event) override;
51  virtual void mousePressEvent(QMouseEvent *event) override;
56  virtual void mouseReleaseEvent(QMouseEvent *event) override;
57 
58  virtual void afterRealease(Link *l);
59 
60  virtual void setHover();
61  virtual void setNormal();
62  virtual void setLink(Link *);
63 
64  enum LinkStatus {
68  };
69 
70  protected:
71  ALinkable *m_linkable;
74 
75  };
76 }
77 
78 #endif // LINKABLEBEZIERITEM_H
virtual const QColor & colorLink() const
Definition: customshape.h:10
ALinkable * m_linkable
Definition: linkablebezieritem.h:71
ALinkable * getLinkable() const
Definition: linkablebezieritem.h:16
virtual void setLink(Link *)
virtual void componentComplete() override=0
Make componentComplete Abstract.
virtual void mouseMoveEvent(QMouseEvent *event) override
Override mouseMoveEvent.
virtual LinkableBezierItem * findLinkableBezierItem(GenericNode *n, const QPointF &p)=0
return the IO under the point p of the Node n
LinkStatus m_status
Definition: linkablebezieritem.h:73
virtual void mouseReleaseEvent(QMouseEvent *event) override
Override mouseReleaseEvent.
views::BezierCurve * m_currentCurve
Definition: linkablebezieritem.h:31
virtual ~LinkableBezierItem()=default
virtual void mousePressEvent(QMouseEvent *event) override
Override mousePressEvent.
LinkStatus
Definition: linkablebezieritem.h:64
virtual void setNormal()
virtual void afterRealease(Link *l)
virtual void setHover()
virtual void updateLink()=0
Definition: linkablebezieritem.h:66
Definition: linkablebezieritem.h:65
Definition: linkablebezieritem.h:67
Definition: api.h:13
virtual GenericNode * getNode() const =0
virtual QPointF getCanvasPos() const =0
LinkableBezierItem(QQuickItem *parent=nullptr)
Definition: beziercurve.h:11
Definition: linkablebezieritem.h:11
LinkableBezierItem * m_currentHover
Definition: linkablebezieritem.h:72