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
8
9
10#include <kis_canvas2.h>
11#include <KisView.h>
12#include <KisDocument.h>
13#include <KisViewManager.h>
16
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
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);
39}
40
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
60
62{
63 // this is a post-execution command
64 if (m_firstRedo) {
65 m_firstRedo = false;
66 return;
67 }
69}
EditAssistantsCommand(QPointer< KisCanvas2 > canvas, AssistantSPList origAssistants, AssistantSPList newAssistants, KUndo2Command *parent=0)
QPointer< KisCanvas2 > m_canvas
void replaceWith(AssistantSPList assistants, Type type=EDIT)
#define KIS_ASSERT_RECOVER_RETURN(cond)
Definition kis_assert.h:75
KUndo2MagicString kundo2_i18n(const char *text)