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
8
9#include <kis_command_ids.h>
10#include <kis_transform_mask.h>
11
12
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
29
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
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
55{
56 if (!m_isInitialized) {
57 std::unique_ptr<KUndo2Command> parent(new KUndo2Command);
59 m_undoCommands.emplace_back(parent.release());
60 m_isInitialized = true;
61 }
62
64 std::for_each(m_undoCommands.begin(), m_undoCommands.end(), std::mem_fn(&KUndo2Command::redo));
65
68 }
69}
70
virtual void undo()
virtual void redo()
bool mergeWith(const KUndo2Command *other) override
KisSimpleModifyTransformMaskCommand(KisTransformMaskSP mask, KisTransformMaskParamsInterfaceSP newParams, QWeakPointer< boost::none_t > updatesBlockerCookie=QWeakPointer< boost::none_t >(), KUndo2Command *parent=nullptr)
std::vector< std::unique_ptr< KUndo2Command > > m_undoCommands
#define KIS_SAFE_ASSERT_RECOVER_NOOP(cond)
Definition kis_assert.h:130
void setTransformParamsWithUndo(KisTransformMaskParamsInterfaceSP params, KUndo2Command *parentCommand)
void threadSafeForceStaticImageUpdate(const QRect &extraUpdateRect)