#ifndef DESIGNER_SCENE_H #define DESIGNER_SCENE_H #include class GraphicsItemGroup; class DesignerScene : public QGraphicsScene { Q_OBJECT public: explicit DesignerScene(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; }; #endif