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