#include <QGraphicsItem>
#include "node.h"
-Edge::Edge(Node *startNode, Node *endNode) : m_startNode(startNode), m_endNode(endNode), m_weight(1)
+Edge::Edge(Node *startNode, Node *endNode, QGraphicsObject *parent) : QGraphicsObject(parent), m_startNode(startNode), m_endNode(endNode), m_weight(1)
{
}
QLineF line(sourcePoint, destPoint);
// Draw the line itself
- painter->setPen(QPen(m_color, 1, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
+ painter->setPen(QPen(m_color, penWidth, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
painter->drawLine(line);
// Draw the arrows
public:
enum { Type = UserType + 2};
- Edge(Node *startNode, Node *endNode);
+ Edge(Node *startNode, Node *endNode, QGraphicsObject *parent = 0);
int type() const
{
Node *m_endNode;
static const int arrowSize = 10;
+ static const int penWidth = 3;
};
QDataStream &operator<<(QDataStream &s, const Edge &edge);
class EdgeModel : public QAbstractTableModel
{
- friend Graph;
+ friend class Graph;
Q_OBJECT
public:
explicit EdgeModel(Graph *graph, QObject *parent = 0);
class Graph : public QGraphicsScene
{
- friend NodeModel;
- friend EdgeModel;
+ friend class NodeModel;
+ friend class EdgeModel;
Q_OBJECT
Q_PROPERTY(Mode mode READ mode WRITE setMode)
Q_PROPERTY(bool addBothEdges READ addBothEdges WRITE setAddBothEdges)
{
QApplication a(argc, argv);
MainWindow w;
- w.show();
+ w.show();
return a.exec();
}
setCorner(Qt::BottomRightCorner, Qt::RightDockWidgetArea);
+ ui->graphView->setRenderHint(QPainter::Antialiasing);
+
// QItemEditorCreatorBase *colorListCreator = new QStandardItemEditorCreator<ColorListEditor>();
// QItemEditorFactory::defaultFactory()->registerEditor(QVariant::Color, colorListCreator);
class Node : public QGraphicsObject
{
- friend Graph;
+ friend class Graph;
Q_OBJECT
Q_PROPERTY(QString label READ label WRITE setLabel)
Q_PROPERTY(QColor color READ color WRITE setColor)
class NodeModel : public QAbstractTableModel
{
- friend Graph;
+ friend class Graph;
Q_OBJECT
public:
explicit NodeModel(Graph *graph, QObject *parent = 0);