/** *\file operationCommand.h * *\brief 用来实现“撤销/重做”的操作指令,继承自QUndoCommand * *\author dsc */ #ifndef OPERATIONCOMMAND_H #define OPERATIONCOMMAND_H #include #include class AddItemCommand : public QUndoCommand { public: explicit AddItemCommand(QGraphicsItem* item, QGraphicsScene* graphicsScene, QUndoCommand* parent = 0); ~AddItemCommand(); public: void undo() override; void redo() override; private: QGraphicsItem* m_pItem; QPointF m_itemPos; QGraphicsScene* m_pGraphicsScene; }; class DeleteItemCommand : public QUndoCommand { public: explicit DeleteItemCommand(QGraphicsScene* graphicsScene, QUndoCommand* parent = 0); ~DeleteItemCommand(); public: void undo() override; void redo() override; private: QList m_listItem; QGraphicsScene* m_pGraphicsScene; }; #endif