Canorus  0.0
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_ */
CAUndo::removeUndoStack
void removeUndoStack(CADocument *d)
Definition: undo.h:30
CAUndo::~CAUndo
virtual ~CAUndo()
Definition: undo.cpp:45
undocommand.h
CAUndoCommand::getUndoDocument
CADocument * getUndoDocument()
Definition: undocommand.h:25
CAUndo::getAllDocuments
QList< CADocument * > getAllDocuments(CADocument *d)
Definition: undo.cpp:206
CAUndo::containsUndoStack
bool containsUndoStack(CADocument *d)
Definition: undo.h:26
CAUndo::undoIndex
int & undoIndex(CADocument *d)
Definition: undo.h:29
CAUndo::updateLastUndoCommand
void updateLastUndoCommand(CAUndoCommand *c)
CADocument
Class which represents the current document.
Definition: document.h:19
document.h
CAUndo::deleteUndoStack
void deleteUndoStack(CADocument *doc)
Definition: undo.cpp:83
CAUndo::_undoIndex
QHash< QList< CAUndoCommand * > *, int > _undoIndex
Definition: undo.h:44
CAUndo
Undo/Redo support.
Definition: undo.h:17
CAUndo::pushUndoCommand
void pushUndoCommand()
Definition: undo.cpp:105
CAUndo::undoStack
QList< CAUndoCommand * > * undoStack(CADocument *d)
Definition: undo.h:28
CAUndo::createUndoCommand
void createUndoCommand(CADocument *d, QString text)
Definition: undo.cpp:183
CAUndoCommand::setRedoDocument
void setRedoDocument(CADocument *doc)
Definition: undocommand.h:28
undo.h
CAUndo::undo
void undo(CADocument *)
Definition: undo.cpp:61
CAUndo::createUndoStack
void createUndoStack(CADocument *d)
Definition: undo.cpp:52
CAUndo::CAUndo
CAUndo()
Definition: undo.cpp:41
CAUndo::_undoCommand
CAUndoCommand * _undoCommand
Definition: undo.h:41
CAUndo::canRedo
bool canRedo(CADocument *)
Definition: undo.cpp:156
CAUndoCommand::getRedoDocument
CADocument * getRedoDocument()
Definition: undocommand.h:27
CAUndo::redo
void redo(CADocument *)
Definition: undo.cpp:72
CAUndo::canUndo
bool canUndo(CADocument *)
Definition: undo.cpp:141
CAUndo::undoCommand
CAUndoCommand * undoCommand(CADocument *d)
CAUndo::changeDocument
void changeDocument(CADocument *, CADocument *)
Definition: undo.cpp:193
CAUndoCommand
Internal Undo/Redo command.
Definition: undocommand.h:16
CADocument::setModified
void setModified(bool m)
Definition: document.h:71
CAUndo::_undoStack
QHash< CADocument *, QList< CAUndoCommand * > * > _undoStack
Definition: undo.h:43
CAUndo::clearUndoCommand
void clearUndoCommand()
Definition: undo.cpp:169
CAUndo::redoCommand
CAUndoCommand * redoCommand(CADocument *d)