Krita Source Code Documentation
Loading...
Searching...
No Matches
MoveNodeStruct Struct Reference

Public Member Functions

void doRedoUpdates ()
 
void doUndoUpdates ()
 
 MoveNodeStruct (KisImageSP _image, KisNodeSP _node, KisNodeSP _parent, KisNodeSP _above)
 
bool tryMerge (const MoveNodeStruct &rhs)
 

Public Attributes

KisImageSP image
 
KisNodeSP newAbove
 
KisNodeSP newParent
 
KisNodeSP node
 
KisNodeSP oldAbove
 
KisNodeSP oldParent
 
bool suppressNewParentRefresh
 
bool suppressOldParentRefresh
 

Detailed Description

A special structure that stores information about a node that was moved. The purpose of the object is twofold:

1) When the reordering stroke is already started than the
   parent and sibling nodes may be not consistent anymore. So
   we store it separately.

2) This objects allows merging (compressing) multiple moves of
   a layer into a single action. This behavior is implemented
   in tryMerge() method.

Definition at line 40 of file kis_node_juggler_compressed.cpp.

Constructor & Destructor Documentation

◆ MoveNodeStruct()

MoveNodeStruct::MoveNodeStruct ( KisImageSP _image,
KisNodeSP _node,
KisNodeSP _parent,
KisNodeSP _above )
inline

Definition at line 41 of file kis_node_juggler_compressed.cpp.

42 : image(_image),
43 node(_node),
44 newParent(_parent),
45 newAbove(_above),
46 oldParent(_node->parent()),
47 oldAbove(_node->prevSibling()),
50 {
51 }
KisNodeSP prevSibling() const
Definition kis_node.cpp:402
KisNodeWSP parent
Definition kis_node.cpp:86

Member Function Documentation

◆ doRedoUpdates()

void MoveNodeStruct::doRedoUpdates ( )
inline

Definition at line 74 of file kis_node_juggler_compressed.cpp.

74 {
77 }
78
79 if (newParent && oldParent != newParent) {
81 }
82 }
void refreshGraphAsync(KisNodeSP root, const QVector< QRect > &rects, const QRect &cropRect, KisProjectionUpdateFlags flags=KisProjectionUpdateFlag::None) override
QRect bounds() const override
virtual void setDirty()
Definition kis_node.cpp:577

References KisImage::bounds(), image, newParent, node, NoFilthy, oldParent, KisImage::refreshGraphAsync(), KisNode::setDirty(), and suppressOldParentRefresh.

◆ doUndoUpdates()

◆ tryMerge()

bool MoveNodeStruct::tryMerge ( const MoveNodeStruct & rhs)
inline

Definition at line 53 of file kis_node_juggler_compressed.cpp.

53 {
54 if (rhs.node != node) return false;
55
56 bool result = true;
57
58 if (newParent == rhs.oldParent) {
59 // 'rhs' is newer
60 newParent = rhs.newParent;
61 newAbove = rhs.newAbove;
62 } else if (oldParent == rhs.newParent) {
63 // 'this' is newer
64 oldParent = rhs.oldParent;
65 oldAbove = rhs.oldAbove;
66 } else {
67 warnKrita << "MoveNodeStruct: Trying to merge unsequential moves!";
68 result = false;
69 }
70
71 return result;
72 }
#define warnKrita
Definition kis_debug.h:87

References newAbove, newParent, node, oldAbove, oldParent, and warnKrita.

Member Data Documentation

◆ image

KisImageSP MoveNodeStruct::image

Definition at line 94 of file kis_node_juggler_compressed.cpp.

◆ newAbove

KisNodeSP MoveNodeStruct::newAbove

Definition at line 97 of file kis_node_juggler_compressed.cpp.

◆ newParent

KisNodeSP MoveNodeStruct::newParent

Definition at line 96 of file kis_node_juggler_compressed.cpp.

◆ node

KisNodeSP MoveNodeStruct::node

Definition at line 95 of file kis_node_juggler_compressed.cpp.

◆ oldAbove

KisNodeSP MoveNodeStruct::oldAbove

Definition at line 100 of file kis_node_juggler_compressed.cpp.

◆ oldParent

KisNodeSP MoveNodeStruct::oldParent

Definition at line 99 of file kis_node_juggler_compressed.cpp.

◆ suppressNewParentRefresh

bool MoveNodeStruct::suppressNewParentRefresh

Definition at line 101 of file kis_node_juggler_compressed.cpp.

◆ suppressOldParentRefresh

bool MoveNodeStruct::suppressOldParentRefresh

Definition at line 102 of file kis_node_juggler_compressed.cpp.


The documentation for this struct was generated from the following file: