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