|
virtual const char * | GetClassName () |
|
virtual int | IsA (const char *type) |
|
void | PrintSelf (ostream &os, vtkIndent indent) override |
|
virtual bool | GetIgnoreIsolatedChanges () |
| Get/Set if all modifications triggered when not within a Begin/End block should be added to the undo stack or not. More...
|
|
virtual void | SetIgnoreIsolatedChanges (bool) |
|
void | SetUndoStack (vtkSMUndoStack *) override |
| Overridden to add observers to not record changes when the stack is being undone/redone. More...
|
|
void | OnStateChange (vtkSMSession *session, vtkTypeUInt32 globalId, const vtkSMMessage *previousState, const vtkSMMessage *newState) override |
| Overridden to filter unwanted event and manage auto undoset creation. More...
|
|
void | PrintSelf (ostream &os, vtkIndent indent) override |
|
virtual void | Begin (const char *label) |
| Begins monitoring of the vtkSMProxyManager for undoable operations. More...
|
|
virtual void | End () |
| Stops monitoring of the vtkSMProxyManager for undoable operations. More...
|
|
virtual void | PushToStack () |
| If any undoable changes were recorded by the builder, this will push the vtkUndoSet formed on to the UndoStack. More...
|
|
virtual void | Clear () |
| Discard all recorded changes that haven't been pushed on the UndoStack. More...
|
|
virtual bool | Add (vtkUndoElement *element) |
| One can add arbitrary elements to the active undo set. More...
|
|
virtual void | OnCreateObject (vtkSMSession *session, vtkSMMessage *newState) |
|
void | EndAndPushToStack () |
| Convenience method call End(); PushToStack(); in that order. More...
|
|
virtual vtkSMUndoStack * | GetUndoStack () |
| Get/Set the undo stack that this builder will build. More...
|
|
virtual void | SetIgnoreAllChanges (bool) |
| If IgnoreAllChanges is true, any server manager changes will be ignored even if the changes happened within a Begin()-End() call. More...
|
|
virtual bool | GetIgnoreAllChanges () |
| If IgnoreAllChanges is true, any server manager changes will be ignored even if the changes happened within a Begin()-End() call. More...
|
|
| vtkBaseTypeMacro (vtkObject, vtkObjectBase) |
|
virtual void | DebugOn () |
|
virtual void | DebugOff () |
|
bool | GetDebug () |
|
void | SetDebug (bool debugFlag) |
|
virtual void | Modified () |
|
virtual vtkMTimeType | GetMTime () |
|
void | RemoveObserver (unsigned long tag) |
|
void | RemoveObservers (unsigned long event) |
|
void | RemoveObservers (const char *event) |
|
void | RemoveAllObservers () |
|
int | HasObserver (unsigned long event) |
|
int | HasObserver (const char *event) |
|
int | InvokeEvent (unsigned long event) |
|
int | InvokeEvent (const char *event) |
|
unsigned long | AddObserver (unsigned long event, vtkCommand *, float priority=0.0f) |
|
unsigned long | AddObserver (const char *event, vtkCommand *, float priority=0.0f) |
|
vtkCommand * | GetCommand (unsigned long tag) |
|
void | RemoveObserver (vtkCommand *) |
|
void | RemoveObservers (unsigned long event, vtkCommand *) |
|
void | RemoveObservers (const char *event, vtkCommand *) |
|
int | HasObserver (unsigned long event, vtkCommand *) |
|
int | HasObserver (const char *event, vtkCommand *) |
|
unsigned long | AddObserver (unsigned long event, U observer, void(T::*callback)(), float priority=0.0f) |
|
unsigned long | AddObserver (unsigned long event, U observer, void(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f) |
|
unsigned long | AddObserver (unsigned long event, U observer, bool(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f) |
|
int | InvokeEvent (unsigned long event, void *callData) |
|
int | InvokeEvent (const char *event, void *callData) |
|
unsigned long | AddObserver (unsigned long event, vtkCommand *, float priority=0.0f) |
|
unsigned long | AddObserver (const char *event, vtkCommand *, float priority=0.0f) |
|
vtkCommand * | GetCommand (unsigned long tag) |
|
void | RemoveObserver (vtkCommand *) |
|
void | RemoveObservers (unsigned long event, vtkCommand *) |
|
void | RemoveObservers (const char *event, vtkCommand *) |
|
int | HasObserver (unsigned long event, vtkCommand *) |
|
int | HasObserver (const char *event, vtkCommand *) |
|
unsigned long | AddObserver (unsigned long event, U observer, void(T::*callback)(), float priority=0.0f) |
|
unsigned long | AddObserver (unsigned long event, U observer, void(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f) |
|
unsigned long | AddObserver (unsigned long event, U observer, bool(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f) |
|
int | InvokeEvent (unsigned long event, void *callData) |
|
int | InvokeEvent (const char *event, void *callData) |
|
const char * | GetClassName () const |
|
virtual void | Delete () |
|
virtual void | FastDelete () |
|
void | Print (ostream &os) |
|
virtual void | Register (vtkObjectBase *o) |
|
virtual void | UnRegister (vtkObjectBase *o) |
|
void | SetReferenceCount (int) |
|
virtual void | PrintHeader (ostream &os, vtkIndent indent) |
|
virtual void | PrintTrailer (ostream &os, vtkIndent indent) |
|
int | GetReferenceCount () |
|
void | PrintRevisions (ostream &) |
|
virtual void | PrintHeader (ostream &os, vtkIndent indent) |
|
virtual void | PrintTrailer (ostream &os, vtkIndent indent) |
|
int | GetReferenceCount () |
|
void | PrintRevisions (ostream &) |
|
pqUndoStackBuilder extends the vtkSMUndoStackBuilder as follows:
- If properties on registered proxies are changed when the builder is not with a BeginOrContinueUndoSet - EndUndoSet block, unless IgnoreIsolatedChanges is true, it will create a UndoSet with that change alone and push it on the stack. IgnoreIsolatedChanges does not have any effect in a BeginOrContinueUndoSet-EndUndoSet block.
- pqProxy objects can be added to be ignored for all changes. Thus, any change event triggered from any of the proxies in the ignore list don't result in updating of the undo stack even when those changes happen with a BeginOrContinueUndoSet - EndUndoSet block (this feature isn't implemented currently). With these extensions, following are the points we must remember to ensure that Undo/Redo works.
- For any multi-change operations or proxy creation/registration operations such as creating of a source/reader/filter etc. we must explicitly use Begin() and End() blocks.
- For modal dialogs which change a bunch of properties when the user hits Ok, such as Application Settings dialog, change input dialogs, we must use Begin() and End().
- Any GUI wiget that is a single widget but changes multiple server manager properties or can lead to multiple undo steps should use Begin and End block eg. Accept button, widget to select scalar to color by etc.
- GUI Widgets that are directly linked to a Server Manager property and don't need to be accepted, don't need to worry about Undo/Redo at all. The pqUndoStackBuilder will automatically create elements for such changes and even try to given them friendly labels eg. most Animation panel properties, display panel widgets etc. Currently, this class automatically adds property modifications alone to the stack. We may want to explore the possibility of automatically adding all types of server manager modifications to the stack.
Definition at line 46 of file pqUndoStackBuilder.h.