File indexing completed on 2024-05-12 16:01:27
0001 /* 0002 * SPDX-FileCopyrightText: 2017 Wolthera van Hövell tot Westerflier <griffinvalley@mail.com> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 #ifndef KIS_CHANGE_FILE_LAYER_COMMAND_H 0007 #define KIS_CHANGE_FILE_LAYER_COMMAND_H 0008 #include <kundo2command.h> 0009 #include "kis_types.h" 0010 #include "kis_file_layer.h" 0011 class KisChangeFileLayerCmd : public KUndo2Command 0012 { 0013 0014 public: 0015 KisChangeFileLayerCmd(KisFileLayerSP fileLayer, 0016 const QString &oldPath, 0017 const QString &oldFileName, 0018 const KisFileLayer::ScalingMethod &oldMethod, 0019 const QString &newPath, 0020 const QString &newFileName, 0021 const KisFileLayer::ScalingMethod &newMethod) 0022 : KUndo2Command(kundo2_i18n("Change File Layer")) { 0023 m_node = fileLayer; 0024 0025 m_oldPath = oldPath; 0026 m_newPath = newPath; 0027 m_oldFileName = oldFileName; 0028 m_newFileName = newFileName; 0029 m_oldMethod = oldMethod; 0030 m_newMethod = newMethod; 0031 } 0032 public: 0033 void redo() override { 0034 // setFileName() automatically issues a setDirty call 0035 m_node->setScalingMethod(m_newMethod); 0036 m_node->setFileName(m_newPath, m_newFileName); 0037 } 0038 0039 void undo() override { 0040 // setFileName() automatically issues a setDirty call 0041 m_node->setScalingMethod(m_oldMethod); 0042 m_node->setFileName(m_oldPath, m_oldFileName); 0043 } 0044 private: 0045 KisFileLayerSP m_node; 0046 0047 QString m_oldPath; 0048 QString m_newPath; 0049 QString m_oldFileName; 0050 QString m_newFileName; 0051 KisFileLayer::ScalingMethod m_oldMethod; 0052 KisFileLayer::ScalingMethod m_newMethod; 0053 }; 0054 #endif // KIS_CHANGE_FILE_LAYER_COMMAND_H