Krita Source Code Documentation
Loading...
Searching...
No Matches
EditAssistantsCommand.cpp
Go to the documentation of this file.
1
/*
2
* SPDX-FileCopyrightText: 2019 Tusooa Zhu <tusooa@vista.aero>
3
*
4
* SPDX-License-Identifier: GPL-2.0-or-later
5
*/
6
7
#include "
EditAssistantsCommand.h
"
8
9
10
#include <
kis_canvas2.h
>
11
#include <
KisView.h
>
12
#include <
KisDocument.h
>
13
#include <
KisViewManager.h
>
14
#include <
kis_canvas_resource_provider.h
>
15
#include <
kis_painting_assistants_decoration.h
>
16
17
EditAssistantsCommand::EditAssistantsCommand
(
QPointer<KisCanvas2>
canvas,
AssistantSPList
origAssistants,
AssistantSPList
newAssistants,
KUndo2Command
*parent)
18
:
KUndo2Command
(
kundo2_i18n
(
"Edit Assistants"
), parent)
19
, m_canvas(canvas)
20
, m_origAssistants(origAssistants)
21
, m_newAssistants(newAssistants)
22
, m_index(-1)
23
, m_firstRedo(true)
24
, m_type(EDIT)
25
{
26
}
27
28
EditAssistantsCommand::EditAssistantsCommand
(
QPointer<KisCanvas2>
canvas,
AssistantSPList
origAssistants,
AssistantSPList
newAssistants,
Type
type,
int
index,
KUndo2Command
*parent)
29
:
KUndo2Command
((type == ADD ?
kundo2_i18n
(
"Add Assistant"
) :
kundo2_i18n
(
"Remove Assistant"
)), parent)
30
, m_canvas(canvas)
31
, m_origAssistants(origAssistants)
32
, m_newAssistants(newAssistants)
33
, m_index(index)
34
, m_firstRedo(true)
35
, m_type(type)
36
{
37
Q_UNUSED(
m_index
);
38
KIS_ASSERT_RECOVER_RETURN
(type !=
EDIT
);
39
}
40
41
void
EditAssistantsCommand::replaceWith
(
AssistantSPList
newAssistants,
Type
type)
42
{
43
AssistantSPList
oldAssistants =
m_canvas
->paintingAssistantsDecoration()->assistants();
44
45
if
(type ==
ADD
) {
46
KIS_ASSERT_RECOVER_RETURN
(newAssistants.size() > oldAssistants.size());
47
}
else
if
(type ==
REMOVE
) {
48
KIS_ASSERT_RECOVER_RETURN
(newAssistants.size() < oldAssistants.size());
49
}
50
51
m_canvas
->paintingAssistantsDecoration()->setAssistants(newAssistants);
52
53
m_canvas
->updateCanvas();
54
}
55
56
void
EditAssistantsCommand::undo
()
57
{
58
replaceWith
(
m_origAssistants
,
Type
(-
m_type
));
59
}
60
61
void
EditAssistantsCommand::redo
()
62
{
63
// this is a post-execution command
64
if
(
m_firstRedo
) {
65
m_firstRedo
=
false
;
66
return
;
67
}
68
replaceWith
(
m_newAssistants
,
m_type
);
69
}
EditAssistantsCommand.h
KisDocument.h
KisViewManager.h
KisView.h
EditAssistantsCommand::m_index
int m_index
Definition
EditAssistantsCommand.h:33
EditAssistantsCommand::m_firstRedo
bool m_firstRedo
Definition
EditAssistantsCommand.h:34
EditAssistantsCommand::EditAssistantsCommand
EditAssistantsCommand(QPointer< KisCanvas2 > canvas, AssistantSPList origAssistants, AssistantSPList newAssistants, KUndo2Command *parent=0)
Definition
EditAssistantsCommand.cpp:17
EditAssistantsCommand::m_origAssistants
AssistantSPList m_origAssistants
Definition
EditAssistantsCommand.h:32
EditAssistantsCommand::m_canvas
QPointer< KisCanvas2 > m_canvas
Definition
EditAssistantsCommand.h:31
EditAssistantsCommand::Type
Type
Definition
EditAssistantsCommand.h:18
EditAssistantsCommand::EDIT
@ EDIT
Definition
EditAssistantsCommand.h:21
EditAssistantsCommand::REMOVE
@ REMOVE
Definition
EditAssistantsCommand.h:20
EditAssistantsCommand::ADD
@ ADD
Definition
EditAssistantsCommand.h:19
EditAssistantsCommand::replaceWith
void replaceWith(AssistantSPList assistants, Type type=EDIT)
Definition
EditAssistantsCommand.cpp:41
EditAssistantsCommand::undo
void undo() override
Definition
EditAssistantsCommand.cpp:56
EditAssistantsCommand::redo
void redo() override
Definition
EditAssistantsCommand.cpp:61
EditAssistantsCommand::m_type
Type m_type
Definition
EditAssistantsCommand.h:35
EditAssistantsCommand::m_newAssistants
AssistantSPList m_newAssistants
Definition
EditAssistantsCommand.h:32
KUndo2Command
Definition
kundo2stack.h:87
QList< KisPaintingAssistantSP >
QPointer
Definition
kis_types.h:255
KIS_ASSERT_RECOVER_RETURN
#define KIS_ASSERT_RECOVER_RETURN(cond)
Definition
kis_assert.h:75
kis_canvas2.h
kis_canvas_resource_provider.h
kis_painting_assistants_decoration.h
kundo2_i18n
KUndo2MagicString kundo2_i18n(const char *text)
Definition
kundo2magicstring.h:180
plugins
assistants
Assistants
EditAssistantsCommand.cpp
Generated at
2025-11-04 02:30:02+01:00
from
Krita
branch
master
, commit
c9dde2e79561a8aea4a7e8d9ac99c98a7bac9e52