genericnode.h
Go to the documentation of this file.
1 #ifndef GENERICNODE_H
2 #define GENERICNODE_H
3 
4 #include "roundedrectangle.h"
5 #include "flow.h"
6 #include "canvasnode.h"
7 #include "dnai/focusmanager.h"
9 
10 namespace dnai
11 {
12  namespace views {
13  class GenericNode : public QQuickItem
14  {
15  Q_OBJECT
16 
17  /* Q_PROPERTY(bool flowIn READ flowIn WRITE setFlowIn NOTIFY flowInChanged)
18  Q_PROPERTY(bool flowOut READ flowOut WRITE setFlowOut NOTIFY flowOutChanged)*/
19  /*Q_PROPERTY(dnai::views::Flow *flowInItem READ flowInItem WRITE setFlowInItem NOTIFY flowInItemChanged)
20  Q_PROPERTY(dnai::views::Flow *flowOutItem READ flowOutItem WRITE setFlowOutItem NOTIFY flowOutItemChanged)*/
22  Q_PROPERTY(dnai::views::RoundedRectangle *content READ content WRITE setContent NOTIFY contentChanged)
23  Q_PROPERTY(bool selected READ selected CONSTANT)
24 
25  public:
26  explicit GenericNode(QQuickItem *parent = nullptr);
27  void createLink(models::gui::IoLink *link, GenericNode *n2);
28  void createFlowLink(models::gui::FlowLink* link, GenericNode* n2);
29  void unlinkFlow(quint32 pin);
30  void unlinkIo(quint32 in);
31 
32 
37  virtual QSGNode *updatePaintNode(QSGNode *, UpdatePaintNodeData *) override;
38  virtual void componentComplete() override;
39  void resetBorderColor() const;
40  void move(const QPointF &vec);
41  const QPointF &startPos() const { return m_startPos; }
42  static void resetSelected();
43  //virtual bool contains(const QPointF &point) const override;
44 
45  public:
50 
51  public:
52  //bool flowIn() const { return m_flowIn; }
53  //bool flowOut() const { return m_flowOut; }
54  //Flow *flowInItem() const { return m_flowInItem; }
55  //Flow *flowOutItem() const { return m_flowOutItem; }
56  RoundedRectangle *header() const { return m_header; }
57  RoundedRectangle *content() const { return m_content; }
58  bool selected() const;
59 
60  public:
61  Q_INVOKABLE void clear();
62 
63  public:
64  /*void setFlowIn(bool f);
65  void setFlowOut(bool f);
66  void setFlowInItem(Flow *f);
67  void setFlowOutItem(Flow *f);*/
68  void setHeader(RoundedRectangle *h);
70 
71  signals:
72  /* void flowInChanged(bool f);
73  void flowOutChanged(bool f);
74  void flowInItemChanged(Flow *f);
75  void flowOutItemChanged(Flow *f);*/
78 
79  private:
80  //bool m_flowIn;
81  //bool m_flowOut;
82  //Flow *m_flowInItem;
83  //Flow *m_flowOutItem;
86 
87  private:
92 
93  QPointF m_offset;
94  bool m_holdClik;
95  QPointF m_startPos;
98 
99  private:
100  void updateInputs();
101  void updateOutputs();
102  void updateFlowsIn();
103  void updateFlowsOut();
104 
105  protected:
110  virtual void mouseMoveEvent(QMouseEvent *event) override;
115  virtual void mousePressEvent(QMouseEvent *event) override;
120  virtual void mouseReleaseEvent(QMouseEvent *event) override;
121  };
122  }
123 }
124 
125 #endif // GENERICNODE_H
Definition: genericnode.h:13
void resetBorderColor() const
Definition: genericnode.cpp:237
void updateOutputs()
Definition: genericnode.cpp:148
void unlinkFlow(quint32 pin)
Definition: genericnode.cpp:81
void contentChanged(RoundedRectangle *c)
Definition: moc_genericnode.cpp:235
RoundedRectangle * content() const
Definition: genericnode.h:57
virtual void componentComplete() override
Definition: genericnode.cpp:292
void move(const QPointF &vec)
Definition: genericnode.cpp:254
virtual void mouseReleaseEvent(QMouseEvent *event) override
Override mouseReleaseEvent.
Definition: genericnode.cpp:267
FocusManagerIo & outputs()
Definition: genericnode.h:47
void setHeader(RoundedRectangle *h)
Definition: genericnode.cpp:117
bool m_holdClik
Definition: genericnode.h:94
virtual void mouseMoveEvent(QMouseEvent *event) override
Override mouseMoveEvent.
Definition: genericnode.cpp:243
RoundedRectangle * header() const
Definition: genericnode.h:56
CanvasNode * m_canvas
Definition: genericnode.h:96
Definition: roundedrectangle.h:11
FocusManagerIo m_flowsOut
Definition: genericnode.h:90
Definition: focusmanager.h:42
RoundedRectangle * m_header
Definition: genericnode.h:84
static void resetSelected()
Definition: genericnode.cpp:202
void setContent(RoundedRectangle *c)
Definition: genericnode.cpp:126
FocusManagerIo m_outputs
Definition: genericnode.h:89
FocusManagerIo m_flowsIn
Definition: genericnode.h:91
void createLink(models::gui::IoLink *link, GenericNode *n2)
Definition: genericnode.cpp:33
FocusManagerIo & flowsOut()
Definition: genericnode.h:49
void updateFlowsIn()
Definition: genericnode.cpp:161
virtual void mousePressEvent(QMouseEvent *event) override
Override mousePressEvent.
Definition: genericnode.cpp:187
Q_INVOKABLE void clear()
Definition: genericnode.cpp:214
void updateInputs()
Definition: genericnode.cpp:135
QPointF m_offset
Definition: genericnode.h:93
FocusManagerIo m_inputs
Definition: genericnode.h:88
virtual QSGNode * updatePaintNode(QSGNode *, UpdatePaintNodeData *) override
Override updatePaintNode and draw a beautifull Node.
Definition: genericnode.cpp:278
const QPointF & startPos() const
Definition: genericnode.h:41
QPointF m_startPos
Definition: genericnode.h:95
void unlinkIo(quint32 in)
Definition: genericnode.cpp:76
FocusManagerIo & flowsIn()
Definition: genericnode.h:48
FocusManagerIo & inputs()
Definition: genericnode.h:46
Definition: api.h:13
void updateFlowsOut()
Definition: genericnode.cpp:174
static GenericNode * m_selected
Definition: genericnode.h:97
Definition: canvasnode.h:13
RoundedRectangle * m_content
Definition: genericnode.h:85
void headerChanged(RoundedRectangle *h)
Definition: moc_genericnode.cpp:228
void createFlowLink(models::gui::FlowLink *link, GenericNode *n2)
Definition: genericnode.cpp:65