Krita Source Code Documentation
Loading...
Searching...
No Matches
KisSimpleModifyTransformMaskCommand.cpp
Go to the documentation of this file.
1
/*
2
* SPDX-FileCopyrightText: 2021 Dmitry Kazakov <dimula73@gmail.com>
3
*
4
* SPDX-License-Identifier: GPL-2.0-or-later
5
*/
6
7
#include "
KisSimpleModifyTransformMaskCommand.h
"
8
9
#include <
kis_command_ids.h
>
10
#include <
kis_transform_mask.h
>
11
12
13
KisSimpleModifyTransformMaskCommand::KisSimpleModifyTransformMaskCommand
(
KisTransformMaskSP
mask,
14
KisTransformMaskParamsInterfaceSP
newParams,
15
QWeakPointer<boost::none_t>
updatesBlockerCookie,
16
KUndo2Command
*parent)
17
:
KUndo2Command
(parent),
18
m_mask(mask),
19
m_oldParams(m_mask->transformParams()),
20
m_newParams(newParams),
21
m_updatesBlockerCookie(updatesBlockerCookie)
22
{
23
}
24
25
int
KisSimpleModifyTransformMaskCommand::id
()
const
26
{
27
return
KisCommandUtils::ChangeTransformMaskCommand
;
28
}
29
30
bool
KisSimpleModifyTransformMaskCommand::mergeWith
(
const
KUndo2Command
*other)
31
{
32
const
KisSimpleModifyTransformMaskCommand
*otherCommandConst =
33
dynamic_cast<
const
KisSimpleModifyTransformMaskCommand
*
>
(other);
34
35
bool
retval =
false
;
36
37
if
(otherCommandConst &&
38
otherCommandConst->
m_mask
==
m_mask
&&
39
otherCommandConst->
m_oldParams
==
m_newParams
) {
40
41
KisSimpleModifyTransformMaskCommand
*otherCommand =
42
const_cast<
KisSimpleModifyTransformMaskCommand
*
>
(otherCommandConst);
43
44
m_newParams
= otherCommand->
m_newParams
;
45
std::move(otherCommand->
m_undoCommands
.begin(), otherCommand->
m_undoCommands
.end(),
46
std::back_inserter(
m_undoCommands
));
47
48
retval =
true
;
49
}
50
51
return
retval;
52
}
53
54
void
KisSimpleModifyTransformMaskCommand::redo
()
55
{
56
if
(!
m_isInitialized
) {
57
std::unique_ptr<KUndo2Command> parent(
new
KUndo2Command
);
58
m_mask
->
setTransformParamsWithUndo
(
m_newParams
, parent.get());
59
m_undoCommands
.emplace_back(parent.release());
60
m_isInitialized
=
true
;
61
}
62
63
KUndo2Command::redo
();
64
std::for_each(
m_undoCommands
.begin(),
m_undoCommands
.end(), std::mem_fn(&
KUndo2Command::redo
));
65
66
if
(!
m_updatesBlockerCookie
) {
67
m_mask
->
threadSafeForceStaticImageUpdate
();
68
}
69
}
70
71
void
KisSimpleModifyTransformMaskCommand::undo
()
72
{
73
KIS_SAFE_ASSERT_RECOVER_NOOP
(
m_isInitialized
);
74
75
std::for_each(
m_undoCommands
.begin(),
m_undoCommands
.end(), std::mem_fn(&
KUndo2Command::undo
));
76
KUndo2Command::undo
();
77
78
if
(!
m_updatesBlockerCookie
) {
79
m_mask
->
threadSafeForceStaticImageUpdate
();
80
}
81
}
KisSimpleModifyTransformMaskCommand.h
KUndo2Command
Definition
kundo2stack.h:87
KUndo2Command::undo
virtual void undo()
Definition
kundo2stack.cpp:240
KUndo2Command::redo
virtual void redo()
Definition
kundo2stack.cpp:222
KisSharedPtr< KisTransformMask >
KisSimpleModifyTransformMaskCommand
Definition
KisSimpleModifyTransformMaskCommand.h:18
KisSimpleModifyTransformMaskCommand::m_updatesBlockerCookie
QWeakPointer< boost::none_t > m_updatesBlockerCookie
Definition
KisSimpleModifyTransformMaskCommand.h:40
KisSimpleModifyTransformMaskCommand::mergeWith
bool mergeWith(const KUndo2Command *other) override
Definition
KisSimpleModifyTransformMaskCommand.cpp:30
KisSimpleModifyTransformMaskCommand::redo
void redo() override
Definition
KisSimpleModifyTransformMaskCommand.cpp:54
KisSimpleModifyTransformMaskCommand::m_mask
KisTransformMaskSP m_mask
Definition
KisSimpleModifyTransformMaskCommand.h:36
KisSimpleModifyTransformMaskCommand::undo
void undo() override
Definition
KisSimpleModifyTransformMaskCommand.cpp:71
KisSimpleModifyTransformMaskCommand::m_isInitialized
bool m_isInitialized
Definition
KisSimpleModifyTransformMaskCommand.h:34
KisSimpleModifyTransformMaskCommand::id
int id() const override
Definition
KisSimpleModifyTransformMaskCommand.cpp:25
KisSimpleModifyTransformMaskCommand::m_oldParams
KisTransformMaskParamsInterfaceSP m_oldParams
Definition
KisSimpleModifyTransformMaskCommand.h:37
KisSimpleModifyTransformMaskCommand::KisSimpleModifyTransformMaskCommand
KisSimpleModifyTransformMaskCommand(KisTransformMaskSP mask, KisTransformMaskParamsInterfaceSP newParams, QWeakPointer< boost::none_t > updatesBlockerCookie=QWeakPointer< boost::none_t >(), KUndo2Command *parent=nullptr)
Definition
KisSimpleModifyTransformMaskCommand.cpp:13
KisSimpleModifyTransformMaskCommand::m_undoCommands
std::vector< std::unique_ptr< KUndo2Command > > m_undoCommands
Definition
KisSimpleModifyTransformMaskCommand.h:42
KisSimpleModifyTransformMaskCommand::m_newParams
KisTransformMaskParamsInterfaceSP m_newParams
Definition
KisSimpleModifyTransformMaskCommand.h:38
QSharedPointer< KisTransformMaskParamsInterface >
QWeakPointer
Definition
kis_uniform_paintop_property.h:72
KIS_SAFE_ASSERT_RECOVER_NOOP
#define KIS_SAFE_ASSERT_RECOVER_NOOP(cond)
Definition
kis_assert.h:130
kis_command_ids.h
kis_transform_mask.h
KisCommandUtils::ChangeTransformMaskCommand
@ ChangeTransformMaskCommand
Definition
kis_command_ids.h:36
KisTransformMask::setTransformParamsWithUndo
void setTransformParamsWithUndo(KisTransformMaskParamsInterfaceSP params, KUndo2Command *parentCommand)
Definition
kis_transform_mask.cpp:248
KisTransformMask::threadSafeForceStaticImageUpdate
void threadSafeForceStaticImageUpdate(const QRect &extraUpdateRect)
Definition
kis_transform_mask.cpp:772
libs
image
commands_new
KisSimpleModifyTransformMaskCommand.cpp
Generated at
2025-11-04 02:30:02+01:00
from
Krita
branch
master
, commit
c9dde2e79561a8aea4a7e8d9ac99c98a7bac9e52