io.h
Go to the documentation of this file.
1 #ifndef IO_H
2 #define IO_H
3 
4 #include <QtQuick/qsgnode.h>
5 
6 #include "dnai/baseio.h"
7 #include "dnai/eventutilities.h"
8 #include "beziercurve.h"
9 #include "genericnode.h"
10 #include "linkablebezieritem.h"
12 
13 #include "dnai/enums/iotype.h"
14 
15 namespace dnai
16 {
17  namespace views
18  {
20  {
21  Q_OBJECT
22 
23  Q_PROPERTY(uint nbSegments READ nbSegments WRITE setNbSegments NOTIFY nbSegmentsChanged)
24  Q_PROPERTY(int type READ type WRITE setType NOTIFY typeChanged)
25  Q_PROPERTY(bool isLink READ isLink WRITE setIsLink NOTIFY isLinkChanged)
26  Q_PROPERTY(bool isHover READ isHover WRITE setIsHover NOTIFY isHoverChanged)
27  Q_PROPERTY(QColor curveColor READ curveColor WRITE setCurveColor NOTIFY curveColorChanged)
28 
29  bool m_isLink;
30 
31  bool m_isHover;
32 
33  QColor m_curveColor;
34 
35  public:
37 
38  public:
39  explicit Io(QQuickItem *parent = nullptr);
40  ~Io();
41 
45  virtual void refreshBackendIo();
46 
56  virtual QSGNode *updatePaintNode(QSGNode *, UpdatePaintNodeData *) override;
57 
58  virtual QPointF getCanvasPos() const override;
59 
60  virtual GenericNode *getNode() override;
61 
62  //Interface implementation
63  public:
64  virtual qreal scaleFactor() const override;
65  virtual QPointF scalePos() const override;
66  virtual QPointF realPos() const override;
67 
68  public:
69  uint nbSegments() const { return m_nbSegments; }
70  int type() const { return m_type; }
71 
72  public:
73  void setNbSegments(uint n);
74  void setType(int type);
75 
76  bool isLink() const;
77 
78  bool isHover() const;
79 
80  virtual const QColor &curveColor() const override;
81 
82  public slots:
83  virtual void setIsLink(bool isLink) override;
84 
85  virtual void setIsHover(bool isHover) override;
86 
87  void setCurveColor(const QColor &curveColor);
88 
89  void redrawLinks(const QColor &color);
90 
91  signals:
92  void nbSegmentsChanged(uint n);
93  void typeChanged(int type);
94  void linked(const QVariant &name, const QVariant &instructionModel);
95  void unlinked(const QVariant &name, const QVariant &instructionModel);
96 
97  void isLinkChanged(bool isLink);
98 
99  void isHoverChanged(bool isHover);
100 
101  void curveColorChanged(const QColor &curveColor);
102 
103  protected:
105 
108 
109  protected:
110  bool m_holdClick{};
111 
112 // virtual void setHover() override;
113 
114 // virtual void setLink(Link *l) override;
115 
116  };
117  }
118 }
119 
120 #endif // IO_H
void nbSegmentsChanged(uint n)
Definition: moc_io.cpp:285
virtual QPointF realPos() const override
Return the position without the scale applyed.
Definition: io.cpp:258
Definition: genericnode.h:13
void setCurveColor(const QColor &curveColor)
Definition: io.cpp:213
Definition: linkablebezieritem.h:15
void setType(int type)
Definition: io.cpp:170
void linked(const QVariant &name, const QVariant &instructionModel)
Definition: moc_io.cpp:299
bool isHover() const
Definition: io.h:19
void redrawLinks(const QColor &color)
Definition: io.cpp:263
virtual GenericNode * getNode() override
Definition: io.cpp:228
virtual qreal scaleFactor() const override
Return the current scale factor.
Definition: io.cpp:248
bool isLink() const
QColor m_curveColor
Definition: io.h:33
int type() const
Definition: io.h:70
uint m_nbSegments
Definition: io.h:104
This interface allow to create custom scale for inherited object.
Definition: iscalable.h:12
GenericNode * m_genericNode
Definition: io.h:107
bool m_holdClick
Definition: io.h:110
Definition: baseio.h:8
void curveColorChanged(const QColor &curveColor)
Definition: moc_io.cpp:327
virtual void setIsHover(bool isHover) override
Definition: io.cpp:204
enums::IoTypeRessouce::IoType m_type
Definition: io.h:106
virtual const QColor & curveColor() const override
IoType
define all the handle type by the application
Definition: iotype.h:17
virtual void refreshBackendIo()
Refresh BackendIo.
Definition: io.cpp:32
virtual QPointF scalePos() const override
Return the position with scale aplyed.
Definition: io.cpp:253
virtual QPointF getCanvasPos() const override
Definition: io.cpp:222
void isHoverChanged(bool isHover)
Definition: moc_io.cpp:320
uint nbSegments() const
Definition: io.h:69
Definition: api.h:13
void typeChanged(int type)
Definition: moc_io.cpp:292
void isLinkChanged(bool isLink)
Definition: moc_io.cpp:313
virtual QSGNode * updatePaintNode(QSGNode *, UpdatePaintNodeData *) override
return the current BaseIO
Definition: io.cpp:36
bool m_isLink
Definition: io.h:29
void setNbSegments(uint n)
Definition: io.cpp:161
void unlinked(const QVariant &name, const QVariant &instructionModel)
Definition: moc_io.cpp:306
virtual void setIsLink(bool isLink) override
Definition: io.cpp:195
static BaseIo * CurrentHover
Definition: io.h:36
bool m_isHover
Definition: io.h:31