|
Krita Source Code Documentation
|
The command for setting the composite op. More...
#include <kis_node_compositeop_command.h>
Inheritance diagram for KisNodeCompositeOpCommand:Public Member Functions | |
| bool | canAnnihilateWith (const KUndo2Command *command) const override |
| bool | canMergeWith (const KUndo2Command *command) const override |
| int | id () const override |
| KisNodeCompositeOpCommand (KisNodeSP node, const QString &newCompositeOp) | |
| bool | mergeWith (const KUndo2Command *command) override |
| void | redo () override |
| void | undo () override |
Public Member Functions inherited from KisNodeCommand | |
| KisNodeCommand (const KUndo2MagicString &name, KisNodeSP node) | |
| ~KisNodeCommand () override | |
Public Member Functions inherited from KUndo2Command | |
| QString | actionText () const |
| const KUndo2Command * | child (int index) const |
| int | childCount () const |
| virtual QTime | endTime () const |
| KUndo2CommandExtraData * | extraData () const |
| bool | hasParent () const |
| virtual bool | isMerged () const |
| KUndo2Command (const KUndo2MagicString &text, KUndo2Command *parent=0) | |
| KUndo2Command (KUndo2Command *parent=0) | |
| virtual QVector< KUndo2Command * > | mergeCommandsVector () const |
| 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 () |
Public Member Functions inherited from KisAsynchronouslyMergeableCommandInterface | |
| virtual | ~KisAsynchronouslyMergeableCommandInterface () |
Private Member Functions | |
| void | setCompositeOpImpl (const QString &compositeOp) |
Private Attributes | |
| QString | m_newCompositeOp |
| boost::optional< QString > | m_oldCompositeOp |
Additional Inherited Members | |
Protected Attributes inherited from KisNodeCommand | |
| KisNodeSP | m_node |
The command for setting the composite op.
Definition at line 15 of file kis_node_compositeop_command.h.
| KisNodeCompositeOpCommand::KisNodeCompositeOpCommand | ( | KisNodeSP | node, |
| const QString & | newCompositeOp ) |
Constructor
| node | The node the command will be working on. |
| oldCompositeOp | the old node composite op |
| newCompositeOp | the new node composite op |
Definition at line 14 of file kis_node_compositeop_command.cpp.
References m_newCompositeOp.
|
overridevirtual |
Attempts to merge this command with command and checks if the two commands compensate each other. If the function returns true, both commands are removed from the stack.
If this function returns true, calling this command's redo() followed by other redo() must have no effect.
The function itself shouldn't do any changes to the command, because after returning true, the command will be deleted as a "noop"
KUndo2QStack will only try to merge two commands if they have the same id, and the id is not -1.
The default implementation returns false.
Reimplemented from KUndo2Command.
Definition at line 76 of file kis_node_compositeop_command.cpp.
References KIS_SAFE_ASSERT_RECOVER_RETURN_VALUE, m_newCompositeOp, KisNodeCommand::m_node, and m_oldCompositeOp.
|
overridevirtual |
command can be merged with (*this) command using KUndo2Command::mergeWith() call.WARNING: if canMergeWith() returned true, then mergeWith() must also return true. Otherwise KisSavedMacroCommand will be able to enter inconsistent state and assert.
Implements KisAsynchronouslyMergeableCommandInterface.
Definition at line 68 of file kis_node_compositeop_command.cpp.
References KisNodeCommand::m_node.
|
overridevirtual |
Returns the ID of this command.
A command ID is used in command compression. It must be an integer unique to this command's class, or -1 if the command doesn't support compression.
If the command supports compression this function must be overridden in the derived class to return the correct ID. The base implementation returns -1.
KUndo2QStack::push() will only try to merge two commands if they have the same ID, and the ID is not -1.
Reimplemented from KUndo2Command.
Definition at line 45 of file kis_node_compositeop_command.cpp.
References KisCommandUtils::ChangeNodeCompositeOpId.
|
overridevirtual |
Attempts to merge this command with command. Returns true on success; otherwise returns false.
If this function returns true, calling this command's redo() must have the same effect as redoing both this command and command. Similarly, calling this command's undo() must have the same effect as undoing command and this command.
KUndo2QStack will only try to merge two commands if they have the same id, and the id is not -1.
The default implementation returns false.
Reimplemented from KUndo2Command.
Definition at line 50 of file kis_node_compositeop_command.cpp.
References KIS_SAFE_ASSERT_RECOVER_NOOP, m_newCompositeOp, KisNodeCommand::m_node, and m_oldCompositeOp.
|
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.
Definition at line 31 of file kis_node_compositeop_command.cpp.
References KisBaseNode::compositeOpId(), m_newCompositeOp, KisNodeCommand::m_node, m_oldCompositeOp, and setCompositeOpImpl().
|
private |
The node might have had "Destination Atop" blending that changes extent of the layer
Definition at line 20 of file kis_node_compositeop_command.cpp.
References KisBaseNode::extent(), KisNodeCommand::m_node, KisBaseNode::setCompositeOpId(), and KisNode::setDirty().
|
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.
Definition at line 39 of file kis_node_compositeop_command.cpp.
References KIS_SAFE_ASSERT_RECOVER_RETURN, m_oldCompositeOp, and setCompositeOpImpl().
|
private |
Definition at line 41 of file kis_node_compositeop_command.h.
|
private |
Definition at line 40 of file kis_node_compositeop_command.h.