Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_crop_processing_visitor.cpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2011 Dmitry Kazakov <dimula73@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
8
9#include <klocalizedstring.h>
10
12
14
15#include "kis_paint_device.h"
16#include "kis_image.h"
17#include "kis_transaction.h"
18#include "kis_undo_adapter.h"
19#include "kis_transform_mask.h"
21
22
23KisCropProcessingVisitor::KisCropProcessingVisitor(const QRect &rect, bool cropLayers, bool moveLayers)
24 : m_rect(rect),
25 m_cropLayers(cropLayers),
26 m_moveLayers(moveLayers)
27
28{
29}
30
32{
33 KUndo2Command* command = layer->crop(m_rect);
34 undoAdapter->addCommand(command);
35}
36
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}
46
48{
54 if (m_cropLayers) {
55 KisTransaction transaction(kundo2_noi18n("crop"), device);
56 device->crop(m_rect);
57 transaction.commit(undoAdapter);
58 }
59}
60
62{
63 cropPaintDeviceImpl(node->paintDevice(), undoAdapter);
64 moveNodeImpl(node, undoAdapter);
65}
66
68{
69 moveNodeImpl(node, undoAdapter);
70 KisSimpleProcessingVisitor::visit(node, undoAdapter);
71}
72
74{
76
77 Q_FOREACH (KisPaintDeviceSP device, devices) {
78 cropPaintDeviceImpl(device, undoAdapter);
79 }
80
81 moveNodeImpl(node, undoAdapter);
82}
QVector< KisPaintDeviceSP > allPaintDevices() const
void cropPaintDeviceImpl(KisPaintDeviceSP device, KisUndoAdapter *undoAdapter)
KisCropProcessingVisitor(const QRect &rect, bool cropLayers, bool moveLayers)
void visitColorizeMask(KisColorizeMask *mask, KisUndoAdapter *undoAdapter) override
void visitExternalLayer(KisExternalLayer *layer, KisUndoAdapter *undoAdapter) override
void visit(KisTransformMask *mask, KisUndoAdapter *undoAdapter) override
void moveNodeImpl(KisNode *node, KisUndoAdapter *undoAdapter)
void visitNodeWithPaintDevice(KisNode *node, KisUndoAdapter *undoAdapter) override
virtual KUndo2Command * crop(const QRect &rect)
void crop(qint32 x, qint32 y, qint32 w, qint32 h)
void visit(KisNode *node, KisUndoAdapter *undoAdapter) override
void commit(KisUndoAdapter *undoAdapter)
virtual void addCommand(KUndo2Command *cmd)=0
KisSharedPtr< KisNode > KisNodeSP
Definition kis_types.h:86
KUndo2MagicString kundo2_noi18n(const QString &text)
virtual qint32 y() const
virtual qint32 x() const
virtual KisPaintDeviceSP paintDevice() const =0