Canorus  0.7
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
undo.h
Go to the documentation of this file.
1 
8 #ifndef UNDO_H_
9 #define UNDO_H_
10 
11 class CAUndoCommand;
12 class CADocument;
13 
14 #include <QHash>
15 #include <QList>
16 
17 class CAUndo {
18 public:
19  CAUndo();
20  virtual ~CAUndo();
21 
22  bool canUndo( CADocument* );
23  bool canRedo( CADocument* );
24  void undo( CADocument* );
25  void redo( CADocument* );
26  inline bool containsUndoStack( CADocument *d ) { return _undoStack.contains(d); }
27  void createUndoStack( CADocument *d );
28  inline QList<CAUndoCommand*> *undoStack( CADocument* d ) { return _undoStack[d]; }
29  inline int& undoIndex( CADocument* d ) { return _undoIndex[undoStack(d)]; }
30  inline void removeUndoStack( CADocument *d ) { _undoStack.remove(d); }
31  void deleteUndoStack( CADocument *doc );
32  void createUndoCommand( CADocument *d, QString text );
33  void pushUndoCommand();
38  QList<CADocument*> getAllDocuments( CADocument *d );
39 private:
40  void clearUndoCommand();
41  CAUndoCommand *_undoCommand; // current undo command created to be put on the undo stack
42 
43  QHash< CADocument*, QList<CAUndoCommand*>* > _undoStack;
44  QHash< QList<CAUndoCommand*>*, int > _undoIndex;
45 };
46 
47 #endif /* UNDO_H_ */
CAUndoCommand * undoCommand(CADocument *d)
void changeDocument(CADocument *, CADocument *)
Definition: undo.cpp:193
void clearUndoCommand()
Definition: undo.cpp:169
Undo/Redo support.
Definition: undo.h:17
void removeUndoStack(CADocument *d)
Definition: undo.h:30
QList< CAUndoCommand * > * undoStack(CADocument *d)
Definition: undo.h:28
Internal Undo/Redo command.
Definition: undocommand.h:16
QList< CADocument * > getAllDocuments(CADocument *d)
Definition: undo.cpp:206
void createUndoCommand(CADocument *d, QString text)
Definition: undo.cpp:183
Class which represents the current document.
Definition: document.h:19
void updateLastUndoCommand(CAUndoCommand *c)
CAUndo()
Definition: undo.cpp:41
void deleteUndoStack(CADocument *doc)
Definition: undo.cpp:83
QHash< QList< CAUndoCommand * > *, int > _undoIndex
Definition: undo.h:44
void pushUndoCommand()
Definition: undo.cpp:105
void undo(CADocument *)
Definition: undo.cpp:61
void createUndoStack(CADocument *d)
Definition: undo.cpp:52
QHash< CADocument *, QList< CAUndoCommand * > * > _undoStack
Definition: undo.h:43
CAUndoCommand * _undoCommand
Definition: undo.h:41
bool canRedo(CADocument *)
Definition: undo.cpp:156
CAUndoCommand * redoCommand(CADocument *d)
void redo(CADocument *)
Definition: undo.cpp:72
virtual ~CAUndo()
Definition: undo.cpp:45
bool canUndo(CADocument *)
Definition: undo.cpp:141
int & undoIndex(CADocument *d)
Definition: undo.h:29
bool containsUndoStack(CADocument *d)
Definition: undo.h:26