Krita Source Code Documentation
Loading...
Searching...
No Matches
KisToolChangesTracker.cpp
Go to the documentation of this file.
1
/*
2
* SPDX-FileCopyrightText: 2018 Dmitry Kazakov <dimula73@gmail.com>
3
*
4
* SPDX-License-Identifier: GPL-2.0-or-later
5
*/
6
7
#include "
KisToolChangesTracker.h
"
8
9
#include "
kis_global.h
"
10
#include <QSharedPointer>
11
12
struct
KisToolChangesTracker::Private
{
13
QList<KisToolChangesTrackerDataSP>
undoStack
;
14
QList<KisToolChangesTrackerDataSP>
redoStack
;
15
};
16
17
18
KisToolChangesTracker::KisToolChangesTracker
()
19
: m_d(new
Private
)
20
{
21
}
22
23
KisToolChangesTracker::~KisToolChangesTracker
()
24
{
25
}
26
27
void
KisToolChangesTracker::commitConfig
(
KisToolChangesTrackerDataSP
state)
28
{
29
m_d
->undoStack.append(state);
30
m_d
->redoStack.clear();
31
}
32
33
void
KisToolChangesTracker::requestUndo
()
34
{
35
if
(
m_d
->undoStack.isEmpty())
return
;
36
37
m_d
->redoStack.append(
m_d
->undoStack.last());
38
m_d
->undoStack.removeLast();
39
if
(!
m_d
->undoStack.isEmpty()) {
40
Q_EMIT
sigConfigChanged
(
m_d
->undoStack.last());
41
}
42
}
43
44
void
KisToolChangesTracker::requestRedo
()
45
{
46
if
(
m_d
->redoStack.isEmpty())
return
;
47
48
m_d
->undoStack.append(
m_d
->redoStack.last());
49
m_d
->redoStack.removeLast();
50
if
(!
m_d
->undoStack.isEmpty()) {
51
Q_EMIT
sigConfigChanged
(
m_d
->undoStack.last());
52
}
53
}
54
55
KisToolChangesTrackerDataSP
KisToolChangesTracker::lastState
()
const
56
{
57
return
!
m_d
->undoStack.isEmpty() ?
m_d
->undoStack.last() :
static_cast<
QSharedPointer<KisToolChangesTrackerData>
>
(0);
58
}
59
60
void
KisToolChangesTracker::reset
()
61
{
62
m_d
->undoStack.clear();
63
m_d
->redoStack.clear();
64
}
65
66
bool
KisToolChangesTracker::isEmpty
()
const
67
{
68
return
m_d
->undoStack.isEmpty() &&
m_d
->redoStack.isEmpty();
69
}
70
71
bool
KisToolChangesTracker::canUndo
()
const
72
{
73
return
m_d
->undoStack.size() > 1;
74
}
75
76
bool
KisToolChangesTracker::canRedo
()
const
77
{
78
return
!
m_d
->redoStack.isEmpty();
79
}
KisToolChangesTracker.h
KisToolChangesTracker::reset
void reset()
Definition
KisToolChangesTracker.cpp:60
KisToolChangesTracker::sigConfigChanged
void sigConfigChanged(KisToolChangesTrackerDataSP state)
KisToolChangesTracker::canRedo
bool canRedo() const
Definition
KisToolChangesTracker.cpp:76
KisToolChangesTracker::KisToolChangesTracker
KisToolChangesTracker()
Definition
KisToolChangesTracker.cpp:18
KisToolChangesTracker::canUndo
bool canUndo() const
Definition
KisToolChangesTracker.cpp:71
KisToolChangesTracker::requestUndo
void requestUndo()
Definition
KisToolChangesTracker.cpp:33
KisToolChangesTracker::m_d
const QScopedPointer< Private > m_d
Definition
KisToolChangesTracker.h:38
KisToolChangesTracker::commitConfig
void commitConfig(KisToolChangesTrackerDataSP state)
Definition
KisToolChangesTracker.cpp:27
KisToolChangesTracker::requestRedo
void requestRedo()
Definition
KisToolChangesTracker.cpp:44
KisToolChangesTracker::lastState
KisToolChangesTrackerDataSP lastState() const
Definition
KisToolChangesTracker.cpp:55
KisToolChangesTracker::isEmpty
bool isEmpty() const
Definition
KisToolChangesTracker.cpp:66
KisToolChangesTracker::~KisToolChangesTracker
~KisToolChangesTracker()
Definition
KisToolChangesTracker.cpp:23
QList
Definition
KisQStringListFwd.h:16
QSharedPointer
Definition
KoCanvasResourceProvider.h:20
kis_global.h
Private
Definition
SvgTransformParser.cpp:20
KisToolChangesTracker::Private
Definition
KisToolChangesTracker.cpp:12
KisToolChangesTracker::Private::undoStack
QList< KisToolChangesTrackerDataSP > undoStack
Definition
KisToolChangesTracker.cpp:13
KisToolChangesTracker::Private::redoStack
QList< KisToolChangesTrackerDataSP > redoStack
Definition
KisToolChangesTracker.cpp:14
libs
ui
tool
KisToolChangesTracker.cpp
Generated at
2025-11-04 02:30:02+01:00
from
Krita
branch
master
, commit
c9dde2e79561a8aea4a7e8d9ac99c98a7bac9e52