64 lines
1.5 KiB
C
64 lines
1.5 KiB
C
|
|
#ifndef DESIGNER_SCENE_H
|
||
|
|
#define DESIGNER_SCENE_H
|
||
|
|
|
||
|
|
#include <QGraphicsScene>
|
||
|
|
#include "basicGraphicsScene.h"
|
||
|
|
#include "dataFlowGraphModel.h"
|
||
|
|
|
||
|
|
class GraphicsItemGroup;
|
||
|
|
class DrawingPanel;
|
||
|
|
|
||
|
|
|
||
|
|
class DesignerScene : public BasicGraphicsScene
|
||
|
|
{
|
||
|
|
Q_OBJECT
|
||
|
|
|
||
|
|
public:
|
||
|
|
DesignerScene(DataFlowGraphModel &graphModel,QObject *parent = 0);
|
||
|
|
virtual ~DesignerScene();
|
||
|
|
|
||
|
|
void setGridVisible(bool);
|
||
|
|
void setView(QGraphicsView* view) { m_pView = view; }
|
||
|
|
QGraphicsView* getView() { return m_pView; }
|
||
|
|
void callParentEvent(QGraphicsSceneMouseEvent*);
|
||
|
|
|
||
|
|
GraphicsItemGroup* createGroup();
|
||
|
|
void destroyGroup();
|
||
|
|
|
||
|
|
signals:
|
||
|
|
void signalAddItem(QGraphicsItem*);
|
||
|
|
|
||
|
|
protected:
|
||
|
|
void drawBackground(QPainter*, const QRectF&) override;
|
||
|
|
void mousePressEvent(QGraphicsSceneMouseEvent*) override;
|
||
|
|
void mouseMoveEvent(QGraphicsSceneMouseEvent*) override;
|
||
|
|
void mouseReleaseEvent(QGraphicsSceneMouseEvent*) override;
|
||
|
|
void mouseDoubleClickEvent(QGraphicsSceneMouseEvent*) override;
|
||
|
|
void keyPressEvent(QKeyEvent*) override;
|
||
|
|
void keyReleaseEvent(QKeyEvent*) override;
|
||
|
|
|
||
|
|
private:
|
||
|
|
bool m_bGridVisible;
|
||
|
|
QGraphicsView* m_pView;
|
||
|
|
DrawingPanel* m_pDrawingPanel; //保存父指针
|
||
|
|
|
||
|
|
public:
|
||
|
|
std::vector<NodeId> selectedNodes() const;
|
||
|
|
|
||
|
|
public:
|
||
|
|
QMenu *createSceneMenu(QPointF const scenePos) override;
|
||
|
|
|
||
|
|
public Q_SLOTS:
|
||
|
|
bool save() const;
|
||
|
|
|
||
|
|
bool load();
|
||
|
|
|
||
|
|
Q_SIGNALS:
|
||
|
|
void sceneLoaded();
|
||
|
|
|
||
|
|
private:
|
||
|
|
DataFlowGraphModel &_graphModel;
|
||
|
|
};
|
||
|
|
|
||
|
|
#endif
|