Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_memento_manager.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2009 Dmitry Kazakov <dimula73@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
7#ifndef KIS_MEMENTO_MANAGER_
8#define KIS_MEMENTO_MANAGER_
9
10#include <QList>
11#include <QMutex>
12
13#include "kis_memento_item.h"
14#include "config-hash-table-implementation.h"
15
17typedef QListIterator<KisMementoItemSP> KisMementoItemListIterator;
18
19class KisMemento;
24
26
27class KisMemento;
29
30#ifdef USE_LOCK_FREE_HASH_TABLE
32
36#else
37#include "kis_tile_hash_table.h"
38
42#endif // USE_LOCK_FREE_HASH_TABLE
43
44
45class KRITAIMAGE_EXPORT KisMementoManager
46{
47public:
51
64 void registerTileChange(KisTile *tile);
65
70 void registerTileDeleted(KisTile *tile);
71
72
77 void commit();
78
85 void rollback(KisTileHashTable *ht, KisMementoSP memento);
86 void rollforward(KisTileHashTable *ht, KisMementoSP memento);
87
94 KisTileSP getCommittedTile(qint32 col, qint32 row, bool &existingTile);
95
96 KisMementoSP getMemento();
97
99 return m_currentMemento;
100 }
101
102 KisMementoSP currentMemento();
103
104 void setDefaultTileData(KisTileData *defaultTileData);
105
106 void debugPrintInfo();
107
108
115 void purgeHistory(KisMementoSP oldestMemento);
116
117protected:
118 qint32 findRevisionByMemento(KisMementoSP memento) const;
119 void resetRevisionHistory(KisMementoItemList list);
120
121protected:
129
134
139
145
152
162};
163
164#endif /* KIS_MEMENTO_MANAGER_ */
KisMementoItemHashTable m_index
KisMementoSP m_currentMemento
KisHistoryList m_cancelledRevisions
KisMementoItemHashTable m_headsHashTable
KisHistoryList m_revisions
KisTileHashTableTraits< KisMementoItem > KisMementoItemHashTable
KisTileHashTableIteratorTraits< KisMementoItem, QWriteLocker > KisMementoItemHashTableIterator
KisSharedPtr< KisMemento > KisMementoSP
QList< KisMementoItemSP > KisMementoItemList
QList< KisHistoryItem > KisHistoryList
KisTileHashTableIteratorTraits< KisMementoItem, QReadLocker > KisMementoItemHashTableIteratorConst
QListIterator< KisMementoItemSP > KisMementoItemListIterator
KisMementoItemList itemList