00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef COMMAND_H
00024 #define COMMAND_H
00025
00026 #include <QObject>
00027 #include <QUndoCommand>
00028 #include <QUndoStack>
00029 #include <QVariantList>
00030 #include <QPoint>
00031
00032 class HistoryStack;
00033 class ContextItem;
00034
00035 class Command : public QObject, public QUndoCommand
00036 {
00037 public :
00038 Command(ContextItem* item, const QString& des = "No description set!");
00039 Command(const QString& des = "No description set!");
00040 virtual ~Command();
00041
00042 virtual int begin_hold();
00043 virtual int finish_hold();
00044 virtual int prepare_actions();
00045 virtual int do_action();
00046 virtual int undo_action();
00047 virtual int jog();
00048 virtual void set_cursor_shape(int useX, int useY);
00049 virtual void cancel_action();
00050 virtual void set_collected_number(const QString& collected);
00051
00052 void undo() {undo_action();}
00053 void redo() {do_action();}
00054
00055 void set_valid(bool valid);
00056 void set_historable(bool historible);
00057 int push_to_history_stack();
00058
00059 static void process_command(Command* cmd);
00060
00061
00062 protected:
00063 bool m_isValid;
00064 bool m_isHistorable;
00065 QString m_description;
00066
00067 private:
00068 QUndoStack* m_historyStack;
00069 };
00070
00071
00072 #endif
00073
00074