|
Krita Source Code Documentation
|
The command for setting the node opacity. More...
#include <kis_node_opacity_command.h>
Inheritance diagram for KisNodeOpacityCommand:Public Member Functions | |
| bool | canAnnihilateWith (const KUndo2Command *command) const override |
| bool | canMergeWith (const KUndo2Command *command) const override |
| int | id () const override |
| KisNodeOpacityCommand (KisNodeSP node, quint8 newOpacity) | |
| 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 Attributes | |
| QScopedPointer< KUndo2Command > | m_autokey |
| quint8 | m_newOpacity |
| boost::optional< quint8 > | m_oldOpacity |
Additional Inherited Members | |
Protected Attributes inherited from KisNodeCommand | |
| KisNodeSP | m_node |
The command for setting the node opacity.
Definition at line 15 of file kis_node_opacity_command.h.
| KisNodeOpacityCommand::KisNodeOpacityCommand | ( | KisNodeSP | node, |
| quint8 | newOpacity ) |
Constructor
| node | The node the command will be working on. |
| oldOpacity | the old node opacity |
| newOpacity | the new node opacity |
Definition at line 21 of file kis_node_opacity_command.cpp.
References KisScalarKeyframeChannel::addScalarKeyframe(), KisImage::animationInterface(), KisImageAnimationInterface::currentTime(), KisBaseNode::getKeyframeChannel(), KisBaseNode::image, KisKeyframeChannel::keyframeAt(), KIS_ASSERT, KIS_SAFE_ASSERT_RECOVER_RETURN, m_autokey, m_newOpacity, KisNodeCommand::m_node, KisKeyframeChannel::Opacity, and KUndo2Command::time().
|
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 107 of file kis_node_opacity_command.cpp.
References KIS_SAFE_ASSERT_RECOVER_RETURN_VALUE, m_autokey, m_newOpacity, KisNodeCommand::m_node, and m_oldOpacity.
|
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 93 of file kis_node_opacity_command.cpp.
References m_autokey, and 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 70 of file kis_node_opacity_command.cpp.
References KisCommandUtils::ChangeNodeOpacityId.
|
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 75 of file kis_node_opacity_command.cpp.
References KIS_SAFE_ASSERT_RECOVER_NOOP, m_newOpacity, KisNodeCommand::m_node, and m_oldOpacity.
|
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 39 of file kis_node_opacity_command.cpp.
References KisTimeSpan::infinite(), KisNode::invalidateFrames(), m_autokey, m_newOpacity, KisNodeCommand::m_node, m_oldOpacity, KisBaseNode::opacity(), KisNode::setDirty(), and KisBaseNode::setOpacity().
|
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 58 of file kis_node_opacity_command.cpp.
References KIS_SAFE_ASSERT_RECOVER_RETURN, m_autokey, KisNodeCommand::m_node, m_oldOpacity, KisNode::setDirty(), and KisBaseNode::setOpacity().
|
private |
Definition at line 37 of file kis_node_opacity_command.h.
|
private |
Definition at line 38 of file kis_node_opacity_command.h.
|
private |
Definition at line 36 of file kis_node_opacity_command.h.