File indexing completed on 2024-05-19 04:28:54
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 &oldFilter, 0020 const QString &newPath, 0021 const QString &newFileName, 0022 const KisFileLayer::ScalingMethod &newMethod, 0023 const QString &newFilter) 0024 : KUndo2Command(kundo2_i18n("Change File Layer")) { 0025 m_node = fileLayer; 0026 0027 m_oldPath = oldPath; 0028 m_newPath = newPath; 0029 m_oldFileName = oldFileName; 0030 m_newFileName = newFileName; 0031 m_oldMethod = oldMethod; 0032 m_newMethod = newMethod; 0033 m_oldFilter = oldFilter; 0034 m_newFilter = newFilter; 0035 } 0036 public: 0037 void redo() override { 0038 // setFileName() automatically issues a setDirty call 0039 m_node->setScalingMethod(m_newMethod); 0040 m_node->setScalingFilter(m_newFilter); 0041 m_node->setFileName(m_newPath, m_newFileName); 0042 } 0043 0044 void undo() override { 0045 // setFileName() automatically issues a setDirty call 0046 m_node->setScalingMethod(m_oldMethod); 0047 m_node->setScalingFilter(m_oldFilter); 0048 m_node->setFileName(m_oldPath, m_oldFileName); 0049 } 0050 private: 0051 KisFileLayerSP m_node; 0052 0053 QString m_oldPath; 0054 QString m_newPath; 0055 QString m_oldFileName; 0056 QString m_newFileName; 0057 KisFileLayer::ScalingMethod m_oldMethod; 0058 KisFileLayer::ScalingMethod m_newMethod; 0059 QString m_oldFilter; 0060 QString m_newFilter; 0061 }; 0062 #endif // KIS_CHANGE_FILE_LAYER_COMMAND_H