11#include <klocalizedstring.h>
54 m_d->processClones(
m_d->node);
68void KisImageLayerRemoveCommandImpl::Private::restoreClones()
70 Q_ASSERT(reincarnatedNodes.size() == clonesList.size());
75 for (
int i = 0; i < reincarnatedNodes.size(); i++) {
80 moveChildren(newNode, clone);
81 moveClones(newNode, clone);
86void KisImageLayerRemoveCommandImpl::Private::processClones(
KisNodeSP node)
89 if(!layer || !layer->hasClones())
return;
91 if(reincarnatedNodes.isEmpty()) {
99 clonesList.append(clone);
100 reincarnatedNodes.append(clone->reincarnateAsPaintLayer());
113 for (
int i = 0; i < reincarnatedNodes.size(); i++) {
117 image->
addNode(newNode, clone->parent(), clone);
118 moveChildren(clone, newNode);
119 moveClones(clone, newNode);
124void KisImageLayerRemoveCommandImpl::Private::moveChildren(
KisNodeSP src,
KisNodeSP dst)
143 clone->setCopyFrom(dst);
the base command for commands altering a KisImage
KisSharedPtr< T > toStrongRef() const
toStrongRef returns a KisSharedPtr which may be dereferenced.
KUndo2MagicString kundo2_i18n(const char *text)
Private(KisImageLayerRemoveCommandImpl *_q)
void moveChildren(KisNodeSP src, KisNodeSP dst)
void processClones(KisNodeSP node)
QList< KisCloneLayerSP > clonesList
KisImageLayerRemoveCommandImpl * q
~KisImageLayerRemoveCommandImpl() override
KisImageLayerRemoveCommandImpl(KisImageWSP image, KisNodeSP node, KUndo2Command *parent=0)
QList< KisLayerSP > reincarnatedNodes
void moveClones(KisLayerSP src, KisLayerSP dst)
bool addNode(KisNodeSP node, KisNodeSP parent=KisNodeSP(), KisNodeAdditionFlags flags=KisNodeAdditionFlag::None)
bool moveNode(KisNodeSP node, KisNodeSP parent, KisNodeSP aboveThis)
bool removeNode(KisNodeSP node)
KisNodeSP prevSibling() const
KisNodeSP lastChild() const
KisNodeSP nextSibling() const