#pragma once #include #include namespace QtNodes { class BasicGraphicsScene; class GraphicsView; } // namespace QtNodes class WarpGraphModel; class QTimer; class GraphEditorWidget : public QWidget { Q_OBJECT public: explicit GraphEditorWidget(warppipe::Client *client, QWidget *parent = nullptr); private slots: void onRefreshTimer(); void onContextMenuRequested(const QPoint &pos); private: void showCanvasContextMenu(const QPoint &screenPos, const QPointF &scenePos); void showNodeContextMenu(const QPoint &screenPos, uint32_t pwNodeId); void createVirtualNode(bool isSink, const QPointF &scenePos); warppipe::Client *m_client = nullptr; WarpGraphModel *m_model = nullptr; QtNodes::BasicGraphicsScene *m_scene = nullptr; QtNodes::GraphicsView *m_view = nullptr; QTimer *m_refreshTimer = nullptr; };