Files

90 lines
1.4 KiB
C++
Raw Permalink Normal View History

2016-04-15 22:40:45 +02:00
#pragma once
#include <QtCore/QUuid>
2015-12-10 14:29:59 +01:00
#include <QtWidgets/QGraphicsObject>
class QGraphicsSceneMouseEvent;
2017-01-30 10:31:43 +01:00
namespace QtNodes
{
class FlowScene;
2015-12-10 14:29:59 +01:00
class Connection;
class ConnectionGeometry;
class Node;
2015-12-10 14:29:59 +01:00
/// Graphic Object for connection. Adds itself to scene
2015-12-10 14:29:59 +01:00
class ConnectionGraphicsObject
: public QGraphicsObject
{
Q_OBJECT
public:
ConnectionGraphicsObject(FlowScene &scene,
Connection &connection);
virtual
~ConnectionGraphicsObject();
2015-12-10 14:29:59 +01:00
enum { Type = UserType + 2 };
int
type() const override { return Type; }
2015-12-10 14:29:59 +01:00
public:
Connection&
connection();
2015-12-10 14:29:59 +01:00
QRectF
boundingRect() const override;
2015-12-11 14:53:53 +01:00
QPainterPath
shape() const override;
void
setGeometryChanged();
/// Updates the position of both ends
void
move();
void
lock(bool locked);
2015-12-10 14:29:59 +01:00
protected:
void
paint(QPainter* painter,
QStyleOptionGraphicsItem const* option,
QWidget* widget = 0) override;
2015-12-10 14:29:59 +01:00
void
mousePressEvent(QGraphicsSceneMouseEvent* event) override;
2015-12-11 12:47:50 +01:00
void
mouseMoveEvent(QGraphicsSceneMouseEvent* event) override;
2015-12-10 14:29:59 +01:00
void
mouseReleaseEvent(QGraphicsSceneMouseEvent* event) override;
2015-12-10 14:29:59 +01:00
void
hoverEnterEvent(QGraphicsSceneHoverEvent* event) override;
2015-12-11 14:53:53 +01:00
void
hoverLeaveEvent(QGraphicsSceneHoverEvent* event) override;
2015-12-10 14:29:59 +01:00
private:
void
addGraphicsEffect();
private:
FlowScene & _scene;
Connection& _connection;
2015-12-10 14:29:59 +01:00
};
2017-01-30 10:31:43 +01:00
}