Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_assign_profile_processing_visitor.cpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2019 Dmitry Kazakov <dimula73@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
8
10
11#include "kis_paint_device.h"
12#include "kis_transaction.h"
13#include "kis_undo_adapter.h"
14#include "kis_transform_mask.h"
16
18#include "kis_projection_leaf.h"
19#include "kis_paint_layer.h"
20#include "kis_time_span.h"
21#include <QSet>
22
23
25 const KoColorSpace *dstColorSpace)
26 : m_srcColorSpace(srcColorSpace)
27 , m_dstColorSpace(dstColorSpace)
28
29{
30}
31
32
37
39{
40 if (!node->projectionLeaf()->isLayer()) return;
41 if (*m_dstColorSpace == *node->colorSpace()) return;
42
43 QSet<KisPaintDeviceSP> paintDevices;
44 paintDevices.insert(node->paintDevice());
45 paintDevices.insert(node->original());
46 paintDevices.insert(node->projection());
47
48 KUndo2Command *parentConversionCommand = new KUndo2Command();
49
50 Q_FOREACH (KisPaintDeviceSP dev, paintDevices) {
52 dev->setProfile(m_dstColorSpace->profile(), parentConversionCommand);
53 }
54 }
55
56 undoAdapter->addCommand(parentConversionCommand);
58}
59
65
67{
69 KUndo2Command *parentConversionCommand = new KUndo2Command();
70 mask->setProfile(m_dstColorSpace->profile(), parentConversionCommand);
71 undoAdapter->addCommand(parentConversionCommand);
72
74 }
75}
void visitNodeWithPaintDevice(KisNode *node, KisUndoAdapter *undoAdapter) override
KisAssignProfileProcessingVisitor(const KoColorSpace *srcColorSpace, const KoColorSpace *dstColorSpace)
void visitColorizeMask(KisColorizeMask *mask, KisUndoAdapter *undoAdapter) override
void visitExternalLayer(KisExternalLayer *layer, KisUndoAdapter *undoAdapter) override
void visit(KisTransformMask *mask, KisUndoAdapter *undoAdapter) override
const KoColorSpace * colorSpace() const override
void setProfile(const KoColorProfile *profile, KUndo2Command *parentCommand)
QRect extent() const override
virtual KUndo2Command * setProfile(const KoColorProfile *profile)
const KoColorSpace * colorSpace() const
bool setProfile(const KoColorProfile *profile, KUndo2Command *parentCommand)
void visit(KisNode *node, KisUndoAdapter *undoAdapter) override
static KisTimeSpan infinite(int start)
virtual void addCommand(KUndo2Command *cmd)=0
virtual KoID colorModelId() const =0
virtual const KoColorProfile * profile() const =0
virtual KisPaintDeviceSP projection() const =0
virtual KisPaintDeviceSP original() const =0
virtual const KoColorSpace * colorSpace() const =0
virtual QRect extent() const
virtual KisPaintDeviceSP paintDevice() const =0
KisProjectionLeafSP projectionLeaf
Definition kis_node.cpp:93
void invalidateFrames(const KisTimeSpan &range, const QRect &rect)
Definition kis_node.cpp:616
void threadSafeForceStaticImageUpdate(const QRect &extraUpdateRect)