Krita Source Code Documentation
Loading...
Searching...
No Matches
KisImageLayerMoveCommand Class Reference

The command for layer moves inside the layer stack. More...

#include <kis_image_layer_move_command.h>

+ Inheritance diagram for KisImageLayerMoveCommand:

Public Member Functions

 KisImageLayerMoveCommand (KisImageWSP image, KisNodeSP node, KisNodeSP newParent, KisNodeSP newAbove, bool doUpdates=true)
 
 KisImageLayerMoveCommand (KisImageWSP image, KisNodeSP node, KisNodeSP newParent, quint32 index)
 
void redo () override
 
void undo () override
 
- Public Member Functions inherited from KisImageCommand
 KisImageCommand (const KUndo2MagicString &name, KisImageWSP image, KUndo2Command *parent=0)
 
 ~KisImageCommand () override
 
- Public Member Functions inherited from KUndo2Command
QString actionText () const
 
virtual bool canAnnihilateWith (const KUndo2Command *other) const
 
const KUndo2Commandchild (int index) const
 
int childCount () const
 
virtual QTime endTime () const
 
KUndo2CommandExtraDataextraData () 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 ()
 

Private Attributes

bool m_doUpdates
 
quint32 m_index
 
KisNodeSP m_layer
 
KisNodeSP m_newAbove
 
KisNodeSP m_newParent
 
KisNodeSP m_prevAbove
 
KisNodeSP m_prevParent
 
bool m_useIndex
 

Additional Inherited Members

- Protected Attributes inherited from KisImageCommand
KisImageWSP m_image
 

Detailed Description

The command for layer moves inside the layer stack.

Definition at line 18 of file kis_image_layer_move_command.h.

Constructor & Destructor Documentation

◆ KisImageLayerMoveCommand() [1/2]

KisImageLayerMoveCommand::KisImageLayerMoveCommand ( KisImageWSP image,
KisNodeSP node,
KisNodeSP newParent,
KisNodeSP newAbove,
bool doUpdates = true )

Command for layer moves inside the layer stack

Parameters
imagethe image
nodethe moved node
newParentthe next parent of the layer
newAbovethe layer that will be below the layer after the move
doUpdateswhether to do updates

Definition at line 22 of file kis_image_layer_move_command.cpp.

23 : KisImageCommand(kundo2_i18n("Move Layer"), image)
24{
25 m_layer = layer;
26 m_newParent = newParent;
27 m_newAbove = newAbove;
28 m_prevParent = layer->parent();
29 m_prevAbove = layer->prevSibling();
30 m_index = -1;
31 m_useIndex = false;
32 m_doUpdates = doUpdates;
33}
KisImageCommand(const KUndo2MagicString &name, KisImageWSP image, KUndo2Command *parent=0)
KUndo2MagicString kundo2_i18n(const char *text)
KisNodeSP prevSibling() const
Definition kis_node.cpp:402
KisNodeWSP parent
Definition kis_node.cpp:86

References m_doUpdates, m_index, m_layer, m_newAbove, m_newParent, m_prevAbove, m_prevParent, m_useIndex, KisNode::parent, and KisNode::prevSibling().

◆ KisImageLayerMoveCommand() [2/2]

KisImageLayerMoveCommand::KisImageLayerMoveCommand ( KisImageWSP image,
KisNodeSP node,
KisNodeSP newParent,
quint32 index )

Definition at line 35 of file kis_image_layer_move_command.cpp.

36 : KisImageCommand(kundo2_i18n("Move Layer"), image)
37{
38 m_layer = node;
39 m_newParent = newParent;
40 m_newAbove = 0;
41 m_prevParent = node->parent();
42 m_prevAbove = node->prevSibling();
43 m_index = index;
44 m_useIndex = true;
45 m_doUpdates = true;
46}

References m_doUpdates, m_index, m_layer, m_newAbove, m_newParent, m_prevAbove, m_prevParent, m_useIndex, KisNode::parent, and KisNode::prevSibling().

Member Function Documentation

◆ redo()

void KisImageLayerMoveCommand::redo ( )
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.

See also
undo()

Reimplemented from KUndo2Command.

Definition at line 48 of file kis_image_layer_move_command.cpp.

49{
51 if (!image) {
52 return;
53 }
54 if (m_useIndex) {
56 } else {
58 }
59
60 if (m_doUpdates) {
63 m_layer->setDirty(image->bounds());
64 }
65 }
66}
void refreshGraphAsync(KisNodeSP root, const QVector< QRect > &rects, const QRect &cropRect, KisProjectionUpdateFlags flags=KisProjectionUpdateFlag::None) override
QRect bounds() const override
KisSharedPtr< T > toStrongRef() const
toStrongRef returns a KisSharedPtr which may be dereferenced.
bool moveNode(KisNodeSP node, KisNodeSP parent, KisNodeSP aboveThis)
virtual void setDirty()
Definition kis_node.cpp:577

References KisImage::bounds(), m_doUpdates, KisImageCommand::m_image, m_index, m_layer, m_newAbove, m_newParent, m_prevParent, m_useIndex, KisNodeFacade::moveNode(), NoFilthy, KisImage::refreshGraphAsync(), KisNode::setDirty(), and KisWeakSharedPtr< T >::toStrongRef().

◆ undo()

void KisImageLayerMoveCommand::undo ( )
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.

See also
redo()

Reimplemented from KUndo2Command.

Definition at line 68 of file kis_image_layer_move_command.cpp.

69{
71 if (!image) {
72 return;
73 }
75
76 if (m_doUpdates) {
79 m_layer->setDirty(image->bounds());
80 }
81 }
82}

References KisImage::bounds(), m_doUpdates, KisImageCommand::m_image, m_layer, m_newParent, m_prevAbove, m_prevParent, KisNodeFacade::moveNode(), NoFilthy, KisImage::refreshGraphAsync(), KisNode::setDirty(), and KisWeakSharedPtr< T >::toStrongRef().

Member Data Documentation

◆ m_doUpdates

bool KisImageLayerMoveCommand::m_doUpdates
private

Definition at line 47 of file kis_image_layer_move_command.h.

◆ m_index

quint32 KisImageLayerMoveCommand::m_index
private

Definition at line 44 of file kis_image_layer_move_command.h.

◆ m_layer

KisNodeSP KisImageLayerMoveCommand::m_layer
private

Definition at line 39 of file kis_image_layer_move_command.h.

◆ m_newAbove

KisNodeSP KisImageLayerMoveCommand::m_newAbove
private

Definition at line 43 of file kis_image_layer_move_command.h.

◆ m_newParent

KisNodeSP KisImageLayerMoveCommand::m_newParent
private

Definition at line 42 of file kis_image_layer_move_command.h.

◆ m_prevAbove

KisNodeSP KisImageLayerMoveCommand::m_prevAbove
private

Definition at line 41 of file kis_image_layer_move_command.h.

◆ m_prevParent

KisNodeSP KisImageLayerMoveCommand::m_prevParent
private

Definition at line 40 of file kis_image_layer_move_command.h.

◆ m_useIndex

bool KisImageLayerMoveCommand::m_useIndex
private

Definition at line 46 of file kis_image_layer_move_command.h.


The documentation for this class was generated from the following files: