|
Krita Source Code Documentation
|
The AggregateCommand struct is a command with delayed initialization. On first redo() populateChildCommands() is called and the descendants add the desired commands to the internal list. After that, the added commands are executed on every undo()/redo(). More...
#include <kis_command_utils.h>
Inheritance diagram for KisCommandUtils::AggregateCommand:Public Member Functions | |
| AggregateCommand (const KUndo2MagicString &text, KUndo2Command *parent=0) | |
| AggregateCommand (KUndo2Command *parent=0) | |
| void | redo () override |
| void | undo () override |
Public Member Functions inherited from KUndo2Command | |
| QString | actionText () const |
| virtual bool | canAnnihilateWith (const KUndo2Command *other) const |
| const KUndo2Command * | child (int index) const |
| int | childCount () const |
| virtual QTime | endTime () const |
| KUndo2CommandExtraData * | extraData () const |
| bool | hasParent () const |
| virtual int | id () const |
| virtual bool | isMerged () const |
| KUndo2Command (const KUndo2MagicString &text, KUndo2Command *parent=0) | |
| KUndo2Command (KUndo2Command *parent=0) | |
| virtual QVector< KUndo2Command * > | mergeCommandsVector () const |
| virtual bool | mergeWith (const KUndo2Command *other) |
| virtual void | redoMergedCommands () |
| void | setEndTime () |
| virtual void | setEndTime (const QTime &time) |
| void | setExtraData (KUndo2CommandExtraData *data) |
| void | setText (const KUndo2MagicString &text) |
| void | setTime () |
| virtual void | setTime (const QTime &time) |
| virtual void | setTimedID (int timedID) |
| KUndo2MagicString | text () const |
| virtual QTime | time () const |
| virtual int | timedId () const |
| virtual bool | timedMergeWith (KUndo2Command *other) |
| virtual void | undoMergedCommands () |
| virtual | ~KUndo2Command () |
Protected Member Functions | |
| void | addCommand (KUndo2Command *cmd) |
| virtual void | populateChildCommands ()=0 |
Private Attributes | |
| bool | m_firstRedo |
| KisSurrogateUndoStore | m_store |
The AggregateCommand struct is a command with delayed initialization. On first redo() populateChildCommands() is called and the descendants add the desired commands to the internal list. After that, the added commands are executed on every undo()/redo().
This structure is used when the commands should be populated from the context of the stroke, not from the GUI thread.
Definition at line 27 of file kis_command_utils.h.
| KisCommandUtils::AggregateCommand::AggregateCommand | ( | KUndo2Command * | parent = 0 | ) |
Definition at line 12 of file kis_command_utils.cpp.
| KisCommandUtils::AggregateCommand::AggregateCommand | ( | const KUndo2MagicString & | text, |
| KUndo2Command * | parent = 0 ) |
Definition at line 16 of file kis_command_utils.cpp.
|
protected |
Definition at line 36 of file kis_command_utils.cpp.
References KisSurrogateUndoStore::addCommand(), and m_store.
|
protectedpure virtual |
Implemented in KisLayerUtils::EphemeralCommandsWrapper, KisLayerUtils::UndoEphemeralCommands, KisCommandUtils::LambdaCommand, KisDeselectGlobalSelectionCommand, KisReselectGlobalSelectionCommand, KisSetGlobalSelectionCommand, KisLazyCreateTransformMaskKeyframesCommand, KisLayerUtils::DisableColorizeKeyStrokes, KisLayerUtils::DisableOnionSkins, KisLayerUtils::DisableExtraCompositing, KisLayerUtils::DisablePassThroughForHeadsOnly, KisLayerUtils::RefreshHiddenAreas, KisLayerUtils::KeepMergedNodesSelected, KisLayerUtils::CreateMergedLayer, KisLayerUtils::CreateMergedLayerMultiple, KisLayerUtils::MergeLayers, KisLayerUtils::MergeLayersMultiple, KisLayerUtils::InitSplitAlphaSelectionMask, KisLayerUtils::UploadProjectionToFrameCommand, KisLayerUtils::InsertNode, KisLayerUtils::SimpleAddNode, KisLayerUtils::CleanUpNodes, KisLayerUtils::AddNewFrame, KisLayerUtils::MergeSelectionMasks, KisLayerUtils::ActivateSelectionMask, KisLayerUtils::SimpleRemoveLayers, LowerRaiseLayer, DuplicateLayers, and RemoveLayers.
|
overridevirtual |
Applies a change to the document. This function must be implemented in the derived class. Calling KUndo2QStack::push(), KUndo2QStack::undo() or KUndo2QStack::redo() from this function leads to undefined behavior.
The default implementation calls redo() on all child commands.
Reimplemented from KUndo2Command.
Reimplemented in KisDeselectActiveSelectionCommand, and KisReselectActiveSelectionCommand.
Definition at line 20 of file kis_command_utils.cpp.
References m_firstRedo, m_store, populateChildCommands(), and KisSurrogateUndoStore::redoAll().
|
overridevirtual |
Reverts a change to the document. After undo() is called, the state of the document should be the same as before redo() was called. This function must be implemented in the derived class. Calling KUndo2QStack::push(), KUndo2QStack::undo() or KUndo2QStack::redo() from this function leads to undefined behavior.
The default implementation calls undo() on all child commands in reverse order.
Reimplemented from KUndo2Command.
Reimplemented in KisDeselectActiveSelectionCommand, and KisReselectActiveSelectionCommand.
Definition at line 31 of file kis_command_utils.cpp.
References m_store, and KisSurrogateUndoStore::undoAll().
|
private |
Definition at line 40 of file kis_command_utils.h.
|
private |
Definition at line 41 of file kis_command_utils.h.