00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef GLUONCREATOR_ABSTRACTUNDOCOMMAND_H
00021 #define GLUONCREATOR_ABSTRACTUNDOCOMMAND_H
00022
00023 #include <QUndoStack>
00024
00025 #include "gluoncreator_macros.h"
00026
00027 namespace GluonCore
00028 {
00029 class GluonObject;
00030 }
00031
00032 namespace GluonCreator
00033 {
00034
00035 class GLUONCREATOR_EXPORT AbstractUndoCommand : public QUndoCommand
00036 {
00037 public:
00038 AbstractUndoCommand( QUndoCommand* parent = 0 );
00039 virtual ~AbstractUndoCommand();
00040
00041 virtual void undo() = 0;
00042 virtual void redo() = 0;
00043 virtual int id() const;
00044
00045 GluonCore::GluonObject* object() const;
00046 QString commandName() const;
00047 QString commandDirection() const;
00048
00049 protected:
00050 void setObject( GluonCore::GluonObject* obj );
00051 void setCommandName( const QString& name );
00052 void setCommandDirection( const QString& direction );
00053
00054 private:
00055 class AbstractUndoCommandPrivate;
00056 AbstractUndoCommandPrivate* const d;
00057 };
00058 }
00059
00060 #endif // GLUONCREATOR_ABSTRACTUNDOCOMMAND_H