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

#include <kis_crop_processing_visitor.h>

+ Inheritance diagram for KisCropProcessingVisitor:

Public Member Functions

 KisCropProcessingVisitor (const QRect &rect, bool cropLayers, bool moveLayers)
 
void visit (KisAdjustmentLayer *layer, KisUndoAdapter *undoAdapter) override
 
void visit (KisCloneLayer *layer, KisUndoAdapter *undoAdapter) override
 
void visit (KisColorizeMask *mask, KisUndoAdapter *undoAdapter) override
 
void visit (KisExternalLayer *layer, KisUndoAdapter *undoAdapter) override
 
void visit (KisFilterMask *mask, KisUndoAdapter *undoAdapter) override
 
void visit (KisGeneratorLayer *layer, KisUndoAdapter *undoAdapter) override
 
void visit (KisGroupLayer *layer, KisUndoAdapter *undoAdapter) override
 
void visit (KisNode *node, KisUndoAdapter *undoAdapter) override
 
void visit (KisPaintLayer *layer, KisUndoAdapter *undoAdapter) override
 
void visit (KisSelectionMask *mask, KisUndoAdapter *undoAdapter) override
 
void visit (KisTransformMask *mask, KisUndoAdapter *undoAdapter) override
 
void visit (KisTransformMask *mask, KisUndoAdapter *undoAdapter) override
 
void visit (KisTransparencyMask *mask, KisUndoAdapter *undoAdapter) override
 
void visitColorizeMask (KisColorizeMask *mask, KisUndoAdapter *undoAdapter) override
 
- Public Member Functions inherited from KisSimpleProcessingVisitor
void visit (KisAdjustmentLayer *layer, KisUndoAdapter *undoAdapter) override
 
void visit (KisCloneLayer *layer, KisUndoAdapter *undoAdapter) override
 
void visit (KisColorizeMask *mask, KisUndoAdapter *undoAdapter) override
 
void visit (KisExternalLayer *layer, KisUndoAdapter *undoAdapter) override
 
void visit (KisFilterMask *mask, KisUndoAdapter *undoAdapter) override
 
void visit (KisGeneratorLayer *layer, KisUndoAdapter *undoAdapter) override
 
void visit (KisGroupLayer *layer, KisUndoAdapter *undoAdapter) override
 
void visit (KisNode *node, KisUndoAdapter *undoAdapter) override
 
void visit (KisPaintLayer *layer, KisUndoAdapter *undoAdapter) override
 
void visit (KisSelectionMask *mask, KisUndoAdapter *undoAdapter) override
 
void visit (KisTransformMask *mask, KisUndoAdapter *undoAdapter) override
 
void visit (KisTransparencyMask *mask, KisUndoAdapter *undoAdapter) override
 
 ~KisSimpleProcessingVisitor () override
 
- Public Member Functions inherited from KisProcessingVisitor
virtual KUndo2CommandcreateInitCommand ()
 
virtual ~KisProcessingVisitor ()
 
- Public Member Functions inherited from KisShared
bool deref ()
 
bool ref ()
 
int refCount ()
 
QAtomicInt * sharedWeakReference ()
 

Private Member Functions

void cropPaintDeviceImpl (KisPaintDeviceSP device, KisUndoAdapter *undoAdapter)
 
void moveNodeImpl (KisNode *node, KisUndoAdapter *undoAdapter)
 
void visitExternalLayer (KisExternalLayer *layer, KisUndoAdapter *undoAdapter) override
 
void visitNodeWithPaintDevice (KisNode *node, KisUndoAdapter *undoAdapter) override
 

Private Attributes

bool m_cropLayers
 
bool m_moveLayers
 
QRect m_rect
 

Additional Inherited Members

- Protected Member Functions inherited from KisShared
 KisShared ()
 
 ~KisShared ()
 

Detailed Description

Definition at line 15 of file kis_crop_processing_visitor.h.

Constructor & Destructor Documentation

◆ KisCropProcessingVisitor()

KisCropProcessingVisitor::KisCropProcessingVisitor ( const QRect & rect,
bool cropLayers,
bool moveLayers )

Member Function Documentation

◆ cropPaintDeviceImpl()

void KisCropProcessingVisitor::cropPaintDeviceImpl ( KisPaintDeviceSP device,
KisUndoAdapter * undoAdapter )
private

TODO: implement actual robust cropping of the selections, including the cropping of vector (!) selection.

Definition at line 47 of file kis_crop_processing_visitor.cpp.

48{
54 if (m_cropLayers) {
55 KisTransaction transaction(kundo2_noi18n("crop"), device);
56 device->crop(m_rect);
57 transaction.commit(undoAdapter);
58 }
59}
void crop(qint32 x, qint32 y, qint32 w, qint32 h)
KUndo2MagicString kundo2_noi18n(const QString &text)

References KisTransaction::commit(), KisPaintDevice::crop(), kundo2_noi18n(), m_cropLayers, and m_rect.

◆ moveNodeImpl()

void KisCropProcessingVisitor::moveNodeImpl ( KisNode * node,
KisUndoAdapter * undoAdapter )
private

Definition at line 37 of file kis_crop_processing_visitor.cpp.

38{
39 if (m_moveLayers) {
40 QPoint oldPos(node->x(), node->y());
41 QPoint newPos(node->x() - m_rect.x(), node->y() - m_rect.y());
42 KUndo2Command *command = new KisNodeMoveCommand2(KisNodeSP(node), oldPos, newPos);
43 undoAdapter->addCommand(command);
44 }
45}
virtual void addCommand(KUndo2Command *cmd)=0
KisSharedPtr< KisNode > KisNodeSP
Definition kis_types.h:86
virtual qint32 y() const
virtual qint32 x() const

References KisUndoAdapter::addCommand(), m_moveLayers, m_rect, KisBaseNode::x(), and KisBaseNode::y().

◆ visit() [1/13]

void KisSimpleProcessingVisitor::visit ( KisAdjustmentLayer * layer,
KisUndoAdapter * undoAdapter )
overridevirtual

Implements KisProcessingVisitor.

Definition at line 21 of file kis_simple_processing_visitor.cpp.

60{
61 using namespace KisDoSomethingCommandOps;
63 visitNodeWithPaintDevice(layer, undoAdapter);
65}
void visitNodeWithPaintDevice(KisNode *node, KisUndoAdapter *undoAdapter) override

◆ visit() [2/13]

void KisSimpleProcessingVisitor::visit ( KisCloneLayer * layer,
KisUndoAdapter * undoAdapter )
overridevirtual

Implements KisProcessingVisitor.

Definition at line 24 of file kis_simple_processing_visitor.cpp.

37{
38 Q_UNUSED(layer);
39 Q_UNUSED(undoAdapter);
40}

◆ visit() [3/13]

void KisSimpleProcessingVisitor::visit ( KisColorizeMask * mask,
KisUndoAdapter * undoAdapter )
overridevirtual

Implements KisProcessingVisitor.

Definition at line 29 of file kis_simple_processing_visitor.cpp.

100{
101 visitColorizeMask(mask, undoAdapter);
102}
void visitColorizeMask(KisColorizeMask *mask, KisUndoAdapter *undoAdapter) override

◆ visit() [4/13]

void KisSimpleProcessingVisitor::visit ( KisExternalLayer * layer,
KisUndoAdapter * undoAdapter )
overridevirtual

Implements KisProcessingVisitor.

Definition at line 22 of file kis_simple_processing_visitor.cpp.

43{
44 visitExternalLayer(layer, undoAdapter);
45}
void visitExternalLayer(KisExternalLayer *layer, KisUndoAdapter *undoAdapter) override

◆ visit() [5/13]

void KisSimpleProcessingVisitor::visit ( KisFilterMask * mask,
KisUndoAdapter * undoAdapter )
overridevirtual

Implements KisProcessingVisitor.

Definition at line 25 of file kis_simple_processing_visitor.cpp.

76{
77 visitNodeWithPaintDevice(mask, undoAdapter);
78}

◆ visit() [6/13]

void KisSimpleProcessingVisitor::visit ( KisGeneratorLayer * layer,
KisUndoAdapter * undoAdapter )
overridevirtual

Implements KisProcessingVisitor.

Definition at line 23 of file kis_simple_processing_visitor.cpp.

68{
69 using namespace KisDoSomethingCommandOps;
71 visitNodeWithPaintDevice(layer, undoAdapter);
73}

◆ visit() [7/13]

void KisSimpleProcessingVisitor::visit ( KisGroupLayer * layer,
KisUndoAdapter * undoAdapter )
overridevirtual

Implements KisProcessingVisitor.

Definition at line 20 of file kis_simple_processing_visitor.cpp.

53{
54 using namespace KisDoSomethingCommandOps;
55 undoAdapter->addCommand(new KisDoSomethingCommand<ResetOp, KisGroupLayer*>(layer, false));
57}

◆ visit() [8/13]

void KisSimpleProcessingVisitor::visit ( KisNode * node,
KisUndoAdapter * undoAdapter )
overridevirtual

Implements KisProcessingVisitor.

Definition at line 18 of file kis_simple_processing_visitor.cpp.

31{
32 Q_UNUSED(node);
33 Q_UNUSED(undoAdapter);
34}

◆ visit() [9/13]

void KisSimpleProcessingVisitor::visit ( KisPaintLayer * layer,
KisUndoAdapter * undoAdapter )
overridevirtual

Implements KisProcessingVisitor.

Definition at line 19 of file kis_simple_processing_visitor.cpp.

48{
49 visitNodeWithPaintDevice(layer, undoAdapter);
50}

◆ visit() [10/13]

void KisSimpleProcessingVisitor::visit ( KisSelectionMask * mask,
KisUndoAdapter * undoAdapter )
overridevirtual

Implements KisProcessingVisitor.

Definition at line 28 of file kis_simple_processing_visitor.cpp.

95{
96 visitNodeWithPaintDevice(mask, undoAdapter);
97}

◆ visit() [11/13]

void KisCropProcessingVisitor::visit ( KisTransformMask * mask,
KisUndoAdapter * undoAdapter )
overridevirtual

Implements KisProcessingVisitor.

Definition at line 67 of file kis_crop_processing_visitor.cpp.

68{
69 moveNodeImpl(node, undoAdapter);
70 KisSimpleProcessingVisitor::visit(node, undoAdapter);
71}
void moveNodeImpl(KisNode *node, KisUndoAdapter *undoAdapter)
void visit(KisNode *node, KisUndoAdapter *undoAdapter) override

References moveNodeImpl(), and KisSimpleProcessingVisitor::visit().

◆ visit() [12/13]

void KisSimpleProcessingVisitor::visit ( KisTransformMask * mask,
KisUndoAdapter * undoAdapter )
overridevirtual

Implements KisProcessingVisitor.

Definition at line 26 of file kis_simple_processing_visitor.cpp.

81{
82 Q_UNUSED(undoAdapter);
83
84 // If (when) it had paint device, we would implement different default
85 // strategy for it. Right now it has neither selection nor a paint device.
86 KIS_ASSERT_RECOVER_NOOP(!mask->selection() && !mask->paintDevice());
87}
#define KIS_ASSERT_RECOVER_NOOP(cond)
Definition kis_assert.h:97
KisSelectionSP selection
Definition kis_mask.cc:44
KisPaintDeviceSP paintDevice() const override

◆ visit() [13/13]

void KisSimpleProcessingVisitor::visit ( KisTransparencyMask * mask,
KisUndoAdapter * undoAdapter )
overridevirtual

Implements KisProcessingVisitor.

Definition at line 27 of file kis_simple_processing_visitor.cpp.

90{
91 visitNodeWithPaintDevice(mask, undoAdapter);
92}

◆ visitColorizeMask()

void KisCropProcessingVisitor::visitColorizeMask ( KisColorizeMask * mask,
KisUndoAdapter * undoAdapter )
overridevirtual

Implements KisSimpleProcessingVisitor.

Definition at line 73 of file kis_crop_processing_visitor.cpp.

74{
75 QVector<KisPaintDeviceSP> devices = node->allPaintDevices();
76
77 Q_FOREACH (KisPaintDeviceSP device, devices) {
78 cropPaintDeviceImpl(device, undoAdapter);
79 }
80
81 moveNodeImpl(node, undoAdapter);
82}
void cropPaintDeviceImpl(KisPaintDeviceSP device, KisUndoAdapter *undoAdapter)

References KisColorizeMask::allPaintDevices(), cropPaintDeviceImpl(), and moveNodeImpl().

◆ visitExternalLayer()

void KisCropProcessingVisitor::visitExternalLayer ( KisExternalLayer * layer,
KisUndoAdapter * undoAdapter )
overrideprivatevirtual

Implements KisSimpleProcessingVisitor.

Definition at line 31 of file kis_crop_processing_visitor.cpp.

32{
33 KUndo2Command* command = layer->crop(m_rect);
34 undoAdapter->addCommand(command);
35}
virtual KUndo2Command * crop(const QRect &rect)

References KisUndoAdapter::addCommand(), KisExternalLayer::crop(), and m_rect.

◆ visitNodeWithPaintDevice()

void KisCropProcessingVisitor::visitNodeWithPaintDevice ( KisNode * node,
KisUndoAdapter * undoAdapter )
overrideprivatevirtual

Implements KisSimpleProcessingVisitor.

Definition at line 61 of file kis_crop_processing_visitor.cpp.

62{
63 cropPaintDeviceImpl(node->paintDevice(), undoAdapter);
64 moveNodeImpl(node, undoAdapter);
65}
virtual KisPaintDeviceSP paintDevice() const =0

References cropPaintDeviceImpl(), moveNodeImpl(), and KisBaseNode::paintDevice().

Member Data Documentation

◆ m_cropLayers

bool KisCropProcessingVisitor::m_cropLayers
private

Definition at line 36 of file kis_crop_processing_visitor.h.

◆ m_moveLayers

bool KisCropProcessingVisitor::m_moveLayers
private

Definition at line 37 of file kis_crop_processing_visitor.h.

◆ m_rect

QRect KisCropProcessingVisitor::m_rect
private

Definition at line 35 of file kis_crop_processing_visitor.h.


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