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
8
9#include "kis_global.h"
10#include <QSharedPointer>
11
16
17
22
26
28{
29 m_d->undoStack.append(state);
30 m_d->redoStack.clear();
31}
32
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
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
56{
57 return !m_d->undoStack.isEmpty() ? m_d->undoStack.last() : static_cast<QSharedPointer<KisToolChangesTrackerData>>(0);
58}
59
61{
62 m_d->undoStack.clear();
63 m_d->redoStack.clear();
64}
65
67{
68 return m_d->undoStack.isEmpty() && m_d->redoStack.isEmpty();
69}
70
72{
73 return m_d->undoStack.size() > 1;
74}
75
77{
78 return !m_d->redoStack.isEmpty();
79}
void sigConfigChanged(KisToolChangesTrackerDataSP state)
const QScopedPointer< Private > m_d
void commitConfig(KisToolChangesTrackerDataSP state)
KisToolChangesTrackerDataSP lastState() const
QList< KisToolChangesTrackerDataSP > undoStack
QList< KisToolChangesTrackerDataSP > redoStack