90 lines
1.4 KiB
C++
90 lines
1.4 KiB
C++
|
#pragma once
|
|||
|
|
|||
|
#include <QtCore/QUuid>
|
|||
|
|
|||
|
#include <QtWidgets/QGraphicsObject>
|
|||
|
|
|||
|
class QGraphicsSceneMouseEvent;
|
|||
|
|
|||
|
namespace QtNodes
|
|||
|
{
|
|||
|
|
|||
|
class FlowScene;
|
|||
|
class Connection;
|
|||
|
class ConnectionGeometry;
|
|||
|
class Node;
|
|||
|
|
|||
|
/// Graphic Object for connection. Adds itself to scene
|
|||
|
class ConnectionGraphicsObject
|
|||
|
: public QGraphicsObject
|
|||
|
{
|
|||
|
Q_OBJECT
|
|||
|
|
|||
|
public:
|
|||
|
|
|||
|
ConnectionGraphicsObject(FlowScene& scene,
|
|||
|
Connection& connection);
|
|||
|
|
|||
|
virtual
|
|||
|
~ConnectionGraphicsObject();
|
|||
|
|
|||
|
enum { Type = UserType + 2 };
|
|||
|
int
|
|||
|
type() const override { return Type; }
|
|||
|
|
|||
|
public:
|
|||
|
|
|||
|
Connection&
|
|||
|
connection();
|
|||
|
|
|||
|
QRectF
|
|||
|
boundingRect() const override;
|
|||
|
|
|||
|
QPainterPath
|
|||
|
shape() const override;
|
|||
|
|
|||
|
void
|
|||
|
setGeometryChanged();
|
|||
|
|
|||
|
/// Updates the position of both ends
|
|||
|
void
|
|||
|
move();
|
|||
|
|
|||
|
void
|
|||
|
lock(bool locked);
|
|||
|
|
|||
|
protected:
|
|||
|
|
|||
|
void
|
|||
|
paint(QPainter* painter,
|
|||
|
QStyleOptionGraphicsItem const* option,
|
|||
|
QWidget* widget = 0) override;
|
|||
|
|
|||
|
void
|
|||
|
mousePressEvent(QGraphicsSceneMouseEvent* event) override;
|
|||
|
|
|||
|
void
|
|||
|
mouseMoveEvent(QGraphicsSceneMouseEvent* event) override;
|
|||
|
|
|||
|
void
|
|||
|
mouseReleaseEvent(QGraphicsSceneMouseEvent* event) override;
|
|||
|
|
|||
|
void
|
|||
|
hoverEnterEvent(QGraphicsSceneHoverEvent* event) override;
|
|||
|
|
|||
|
void
|
|||
|
hoverLeaveEvent(QGraphicsSceneHoverEvent* event) override;
|
|||
|
|
|||
|
private:
|
|||
|
|
|||
|
void
|
|||
|
addGraphicsEffect();
|
|||
|
|
|||
|
private:
|
|||
|
|
|||
|
FlowScene& _scene;
|
|||
|
|
|||
|
Connection& _connection;
|
|||
|
};
|
|||
|
}
|