Canorus 0.0
undo.h
Go to the documentation of this file.
1
8#ifndef UNDO_H_
9#define UNDO_H_
10
11class CAUndoCommand;
12class CADocument;
13
14#include <QHash>
15#include <QList>
16
17class CAUndo {
18public:
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 );
39private:
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_ */
Class which represents the current document.
Definition: document.h:19
Internal Undo/Redo command.
Definition: undocommand.h:16
Undo/Redo support.
Definition: undo.h:17
QList< CADocument * > getAllDocuments(CADocument *d)
Definition: undo.cpp:206
void removeUndoStack(CADocument *d)
Definition: undo.h:30
CAUndoCommand * _undoCommand
Definition: undo.h:41
void deleteUndoStack(CADocument *doc)
Definition: undo.cpp:83
void changeDocument(CADocument *, CADocument *)
Definition: undo.cpp:193
QHash< CADocument *, QList< CAUndoCommand * > * > _undoStack
Definition: undo.h:43
void pushUndoCommand()
Definition: undo.cpp:105
void clearUndoCommand()
Definition: undo.cpp:169
void createUndoCommand(CADocument *d, QString text)
Definition: undo.cpp:183
CAUndoCommand * redoCommand(CADocument *d)
bool canUndo(CADocument *)
Definition: undo.cpp:141
CAUndo()
Definition: undo.cpp:41
CAUndoCommand * undoCommand(CADocument *d)
void updateLastUndoCommand(CAUndoCommand *c)
bool containsUndoStack(CADocument *d)
Definition: undo.h:26
bool canRedo(CADocument *)
Definition: undo.cpp:156
void redo(CADocument *)
Definition: undo.cpp:72
void undo(CADocument *)
Definition: undo.cpp:61
virtual ~CAUndo()
Definition: undo.cpp:45
QList< CAUndoCommand * > * undoStack(CADocument *d)
Definition: undo.h:28
int & undoIndex(CADocument *d)
Definition: undo.h:29
void createUndoStack(CADocument *d)
Definition: undo.cpp:52
QHash< QList< CAUndoCommand * > *, int > _undoIndex
Definition: undo.h:44