File indexing completed on 2024-05-19 04:24:18
0001 /* 0002 * SPDX-FileCopyrightText: 2011 Dmitry Kazakov <dimula73@gmail.com> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #ifndef __KIS_UNDO_STORES_H 0008 #define __KIS_UNDO_STORES_H 0009 0010 #include "kis_undo_store.h" 0011 0012 class KUndo2Stack; 0013 class KUndo2MagicString; 0014 0015 0016 /** 0017 * KisSurrogateUndoAdapter -- saves commands directly to the 0018 * internal stack. Used for wrapping around legacy code into 0019 * a single command. 0020 */ 0021 class KRITACOMMAND_EXPORT KisSurrogateUndoStore : public KisUndoStore 0022 { 0023 public: 0024 KisSurrogateUndoStore(); 0025 ~KisSurrogateUndoStore() override; 0026 0027 const KUndo2Command* presentCommand() override; 0028 void undoLastCommand() override; 0029 void addCommand(KUndo2Command *cmd) override; 0030 void beginMacro(const KUndo2MagicString& macroName) override; 0031 void endMacro() override; 0032 0033 void undo(); 0034 void redo(); 0035 0036 void undoAll(); 0037 void redoAll(); 0038 0039 void purgeRedoState() override; 0040 0041 void clear(); 0042 0043 private: 0044 KUndo2Stack *m_undoStack; 0045 }; 0046 0047 /** 0048 * @brief The KisDumbUndoStore class doesn't actually save commands, 0049 * so you cannot undo or redo! 0050 */ 0051 class KRITACOMMAND_EXPORT KisDumbUndoStore : public KisUndoStore 0052 { 0053 public: 0054 const KUndo2Command* presentCommand() override; 0055 void undoLastCommand() override; 0056 void addCommand(KUndo2Command *cmd) override; 0057 void beginMacro(const KUndo2MagicString& macroName) override; 0058 void endMacro() override; 0059 void purgeRedoState() override; 0060 }; 0061 0062 #endif /* __KIS_UNDO_STORES_H */