line.h
Go to the documentation of this file.
1 #ifndef LINE_H
2 #define LINE_H
3 
4 #include <QtQuick/QQuickItem>
5 #include <QtQuick/qsgnode.h>
6 #include <QColor>
7 
8 namespace dnai
9 {
10  namespace views
11  {
12  class Line : public QQuickItem
13  {
14  Q_OBJECT
15 
16  Q_PROPERTY(QPointF p1 READ p1 WRITE setP1 NOTIFY p1Changed)
17  Q_PROPERTY(QPointF p2 READ p2 WRITE setP2 NOTIFY p2Changed)
18 
19  Q_PROPERTY(int lineWidth READ lineWidth WRITE setLineWidth NOTIFY lineWidthChanged)
20  Q_PROPERTY(QColor lineColor READ lineColor WRITE setLineColor NOTIFY lineColorChanged)
21  public:
22  explicit Line(QQuickItem *parent = nullptr);
23  Line(const QPointF &p1, const QPointF &p2, QQuickItem *parent = nullptr);
24  Line(const QPointF &p1, const QPointF &p2, int lineWidth, QQuickItem *parent = nullptr);
25  Line(const QPointF &p1, const QPointF &p2, int lineWidth, const QColor &color, QQuickItem *parent = nullptr);
26  ~Line();
27 
32  virtual QSGNode *updatePaintNode(QSGNode *, UpdatePaintNodeData *) override;
41  static QSGGeometryNode *CreateRawLine(const QPointF &p1, const QPointF &p2, int lineWidth, const QColor &color);
42 
43  public:
44  QPointF p1() const { return m_p1; }
45  QPointF p2() const { return m_p2; }
46  int lineWidth() const { return m_lineWidth; }
47  QColor lineColor() const { return m_lineColor; }
48 
49  public:
50  void setP1(const QPointF &p);
51  void setP2(const QPointF &p);
52  void setLineWidth(int lw);
53  void setLineColor(const QColor &color);
54 
55 
56  signals:
57  void p1Changed(const QPointF &p);
58  void p2Changed(const QPointF &p);
59  void lineWidthChanged(int lw);
60  void lineColorChanged(const QColor &color);
61 
62  private:
63  QPointF m_p1;
64  QPointF m_p2;
66  QColor m_lineColor;
67  };
68  }
69 }
70 
71 #endif // LINE_H
QPointF p2() const
Definition: line.h:45
static QSGGeometryNode * CreateRawLine(const QPointF &p1, const QPointF &p2, int lineWidth, const QColor &color)
Static function Draw and return a Line.
Definition: line.cpp:100
int m_lineWidth
Definition: line.h:65
QPointF m_p2
Definition: line.h:64
void lineColorChanged(const QColor &color)
Definition: moc_line.cpp:241
int lineWidth() const
Definition: line.h:46
QPointF m_p1
Definition: line.h:63
void setP2(const QPointF &p)
Definition: line.cpp:70
QPointF p1() const
Definition: line.h:44
virtual QSGNode * updatePaintNode(QSGNode *, UpdatePaintNodeData *) override
Override updatePaintNode and draw a Line.
Definition: line.cpp:119
QColor lineColor() const
Definition: line.h:47
Definition: api.h:13
void p1Changed(const QPointF &p)
Definition: moc_line.cpp:220
void p2Changed(const QPointF &p)
Definition: moc_line.cpp:227
void setLineColor(const QColor &color)
Definition: line.cpp:90
QColor m_lineColor
Definition: line.h:66
void lineWidthChanged(int lw)
Definition: moc_line.cpp:234
Definition: line.h:12
void setLineWidth(int lw)
Definition: line.cpp:80
void setP1(const QPointF &p)
Definition: line.cpp:60