flow.h
Go to the documentation of this file.
1 #ifndef FLOW_H
2 #define FLOW_H
3 
4 #include "linkablebezieritem.h"
5 #include "dnai/baselinkable.h"
6 #include "dnai/enums/flowtype.h"
8 
9 namespace dnai
10 {
11  namespace views
12  {
13  class FlowBackend : public BaseLinkable
14  {
15  public:
16  explicit FlowBackend(enums::FlowTypeRessouce::FlowType t, QQuickItem *parent);
17 
22 
23  Link *connect(ALinkable* linkable, BezierCurve* curve) override;
24 
25  Link *asyncConnect(ALinkable* linkable) override;
26 
27  protected:
29  };
30 
31  class Flow : public LinkableBezierItem
32  {
33  Q_OBJECT
35  Q_PROPERTY(bool isLink READ isLink WRITE setIsLink NOTIFY isLinkChanged)
36  Q_PROPERTY(bool isHover READ isHover WRITE setIsHover NOTIFY isHoverChanged)
37  Q_PROPERTY(QColor curveColor READ curveColor WRITE setCurveColor NOTIFY curveColorChanged)
38 
39  public:
40  explicit Flow(QQuickItem *parent = nullptr);
41  virtual QSGNode *updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *) override;
42 
43  public:
44  enums::FlowTypeRessouce::FlowType typeFlow() const { return m_typeFlow; }
45 
46  public:
51  virtual void componentComplete() override;
52 
59  virtual LinkableBezierItem *findLinkableBezierItem(GenericNode *n, const QPointF &p) override;
60  virtual void updateLink() override;
61  virtual GenericNode *getNode() override;
62 
63 // virtual void setHover() override;
64 // virtual void setLink(Link *) override;
65 
66  QPointF getCanvasPos() const override;
67  void unlinkAll() override;
68  void asyncUnlinkAll() override;
69 
70  bool isLink() const;
71 
72  bool isHover() const;
73 
74  virtual const QColor &curveColor() const override;
75 
76  public slots:
77  virtual void setIsLink(bool isLink) override;
78 
79  virtual void setIsHover(bool isHover) override;
80 
81  void setCurveColor(const QColor &colorCurve);
82 
83  signals:
85  void linked(int outindex, const QVariant &instructionModel);
86  void unlinked(int outindex, const QVariant &instructionModel);
87 
88  void isLinkChanged(bool isLink);
89 
90  void isHoverChanged(bool isHover);
91 
92  void curveColorChanged(const QColor &colorCurve);
93 
94  private:
97 
98  bool m_isLink;
99 
100  bool m_isHover;
101 
102  QColor m_colorCurve;
103 
104  protected:
105  void mousePressEvent(QMouseEvent* event) override;
106  virtual void afterRealease(Link *l) override;
107  };
108  }
109 }
110 
111 
112 #endif // FLOW_H
Definition: genericnode.h:13
Definition: linkablebezieritem.h:15
void isHoverChanged(bool isHover)
Definition: moc_flow.cpp:300
void linked(int outindex, const QVariant &instructionModel)
Definition: moc_flow.cpp:279
QColor m_colorCurve
Definition: flow.h:102
Link * asyncConnect(ALinkable *linkable) override
Definition: flow.cpp:39
enums::FlowTypeRessouce::FlowType typeFlow() const
Definition: flow.h:44
Definition: baselinkable.h:8
virtual const QColor & curveColor() const override
QQuickItem * parent() const
Definition: baselinkable.h:60
virtual void componentComplete() override
Override componentComplete, and init some values.
Definition: flow.cpp:193
bool isHover() const
Definition: flow.h:31
bool m_isHover
Definition: flow.h:100
bool m_isLink
Definition: flow.h:98
virtual GenericNode * getNode() override
Definition: flow.cpp:276
virtual LinkableBezierItem * findLinkableBezierItem(GenericNode *n, const QPointF &p) override
Override findIo, return the IO under the point p of the Node n.
Definition: flow.cpp:250
Link * connect(ALinkable *linkable, BezierCurve *curve) override
Definition: flow.cpp:23
virtual QSGNode * updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *) override
Definition: flow.cpp:82
enums::FlowTypeRessouce::FlowType getType() const
return the IOType
Definition: flow.cpp:18
GenericNode * m_genericNode
Definition: flow.h:96
enums::FlowTypeRessouce::FlowType m_typeFlow
Definition: flow.h:28
void asyncUnlinkAll() override
Definition: flow.cpp:228
void unlinkAll() override
Definition: flow.cpp:222
FlowBackend(enums::FlowTypeRessouce::FlowType t, QQuickItem *parent)
Definition: flow.cpp:12
Definition: api.h:13
void curveColorChanged(const QColor &colorCurve)
Definition: moc_flow.cpp:307
virtual void afterRealease(Link *l) override
Definition: flow.cpp:315
void setTypeFlow(enums::FlowTypeRessouce::FlowType t)
Definition: flow.cpp:182
enums::FlowTypeRessouce::FlowType m_typeFlow
Definition: flow.h:95
Definition: beziercurve.h:11
virtual void setIsLink(bool isLink) override
Definition: flow.cpp:330
FlowType
Enum of available type for a flow.
Definition: flowtype.h:18
void unlinked(int outindex, const QVariant &instructionModel)
Definition: moc_flow.cpp:286
void mousePressEvent(QMouseEvent *event) override
Override mousePressEvent.
Definition: flow.cpp:323
Definition: flow.h:13
bool isLink() const
void setCurveColor(const QColor &colorCurve)
Definition: flow.cpp:359
QPointF getCanvasPos() const override
Definition: flow.cpp:216
virtual void setIsHover(bool isHover) override
Definition: flow.cpp:344
void isLinkChanged(bool isLink)
Definition: moc_flow.cpp:293
void typeFlowChanged(enums::FlowTypeRessouce::FlowType t)
Definition: moc_flow.cpp:272
virtual void updateLink() override
Definition: flow.cpp:265