GCC Code Coverage Report
Directory: QGVCore/ Exec Total Coverage
File: QGVCore/QGVNode.h Lines: 0 1 0.0 %
Date: 2024-03-31 10:30:44 Branches: 0 0 - %

Line Branch Exec Source
1
/***************************************************************
2
QGVCore
3
Copyright (c) 2014, Bergont Nicolas, All rights reserved.
4
5
This library is free software; you can redistribute it and/or
6
modify it under the terms of the GNU Lesser General Public
7
License as published by the Free Software Foundation; either
8
version 3.0 of the License, or (at your option) any later version.
9
10
This library is distributed in the hope that it will be useful,
11
but WITHOUT ANY WARRANTY; without even the implied warranty of
12
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13
Lesser General Public License for more details.
14
15
You should have received a copy of the GNU Lesser General Public
16
License along with this library.
17
***************************************************************/
18
#ifndef QGVNODE_H
19
#define QGVNODE_H
20
21
#include <QGraphicsItem>
22
#include <QPen>
23
24
#include "qgv.h"
25
26
class QGVEdge;
27
class QGVScene;
28
class QGVNodePrivate;
29
30
/**
31
 * @brief Node item
32
 *
33
 */
34
class QGVCORE_EXPORT QGVNode : public QGraphicsItem {
35
 public:
36
  ~QGVNode();
37
38
  QString label() const;
39
  void setLabel(const QString &label);
40
41
  QRectF boundingRect() const;
42
  void paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
43
             QWidget *widget = 0);
44
  void setAttribute(const QString &label, const QString &value);
45
  QString getAttribute(const QString &name) const;
46
47
  QString posToAttributeString() const;
48
49
  void setIcon(const QImage &icon);
50
51
  enum { Type = UserType + 2 };
52
  int type() const { return Type; }
53
54
  void updateLayout();
55
56
 protected:
57
  QVariant itemChange(GraphicsItemChange change, const QVariant &value);
58
59
 private:
60
  friend class QGVScene;
61
  friend class QGVSubGraph;
62
  QGVNode(QGVNodePrivate *node, QGVScene *scene);
63
64
  // Not implemented in QGVNode.cpp
65
  //		QPainterPath makeShape(Agnode_t* node) const;
66
  //		QPolygonF makeShapeHelper(Agnode_t* node) const;
67
68
  QPainterPath _path;
69
  QPen _pen;
70
  QBrush _brush;
71
  QImage _icon;
72
73
  QGVScene *_scene;
74
  QGVNodePrivate *_node;
75
};
76
77
#endif  // QGVNODE_H