File indexing completed on 2024-06-23 04:26:34
0001 /* 0002 * Copyright (c) 2020 Saurabh Kumar <saurabhk660@gmail.com> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #ifndef KISADDREMOVESTORYBOARDCOMMAND_H 0008 #define KISADDREMOVESTORYBOARDCOMMAND_H 0009 0010 #include "kundo2command.h" 0011 #include "kis_command_ids.h" 0012 #include "kis_types.h" 0013 0014 class StoryboardModel; 0015 0016 //For addition of Storyboards. 0017 class KisAddStoryboardCommand : public KUndo2Command 0018 { 0019 public: 0020 KisAddStoryboardCommand(int position, StoryboardItemSP item, StoryboardModel *model, KUndo2Command *parent = 0); 0021 ~KisAddStoryboardCommand(); 0022 0023 void redo() override; 0024 void undo() override; 0025 void updateItem(); 0026 0027 private: 0028 int m_position; 0029 StoryboardItemSP m_item; 0030 StoryboardItemSP m_modelItem; 0031 StoryboardModel *m_model; 0032 }; 0033 0034 //For removal of Storyboards. 0035 class KisRemoveStoryboardCommand : public KUndo2Command 0036 { 0037 public: 0038 KisRemoveStoryboardCommand(int position, StoryboardItemSP item, StoryboardModel *model, KUndo2Command *parent = 0); 0039 ~KisRemoveStoryboardCommand(); 0040 void redo() override; 0041 void undo() override; 0042 0043 private: 0044 int m_position; 0045 StoryboardItemSP m_item; 0046 StoryboardModel *m_model; 0047 }; 0048 0049 class KisDuplicateStoryboardCommand : public KUndo2Command 0050 { 0051 public: 0052 KisDuplicateStoryboardCommand(int position, StoryboardModel *model, KUndo2Command *parent = 0); 0053 ~KisDuplicateStoryboardCommand(); 0054 0055 void redo() override; 0056 void undo() override; 0057 0058 private: 0059 int m_position; 0060 StoryboardItemSP m_duplicate; 0061 StoryboardModel *m_model; 0062 QScopedPointer<KUndo2Command> m_addCommand; 0063 QScopedPointer<KUndo2Command> m_keyframeCommands; 0064 }; 0065 0066 //For moving of Storyboards. 0067 class KisMoveStoryboardCommand : public KUndo2Command 0068 { 0069 public: 0070 KisMoveStoryboardCommand(int from, int to, int count, StoryboardModel *model, KUndo2Command *parent = 0); 0071 ~KisMoveStoryboardCommand(); 0072 void redo() override; 0073 void undo() override; 0074 0075 private: 0076 int m_from; 0077 int m_count; 0078 int m_to; 0079 StoryboardModel *m_model; 0080 }; 0081 0082 class KisVisualizeStoryboardCommand : public KUndo2Command 0083 { 0084 public: 0085 KisVisualizeStoryboardCommand(int fromTime, int toSceneIndex, StoryboardModel* model, KisImageSP image, KUndo2Command *parent = 0); 0086 ~KisVisualizeStoryboardCommand(); 0087 void redo() override; 0088 void undo() override; 0089 0090 private: 0091 int m_fromTime; 0092 int m_toSceneIndex; 0093 StoryboardModel *m_model; 0094 KisImageSP m_image; 0095 0096 }; 0097 0098 class KisStoryboardChildEditCommand : public KUndo2Command 0099 { 0100 public: 0101 KisStoryboardChildEditCommand(QVariant oldValue, QVariant newValue, int parentRow, int childRow, StoryboardModel *model, KUndo2Command *parent = 0); 0102 ~KisStoryboardChildEditCommand(){} 0103 void redo() override; 0104 void undo() override; 0105 0106 int id() const override { return KisCommandUtils::ChangeStoryboardChild; } 0107 bool mergeWith(const KUndo2Command *other) override; 0108 0109 private: 0110 QVariant m_oldValue; 0111 QVariant m_newValue; 0112 int m_parentRow; 0113 int m_childRow; 0114 StoryboardModel *m_model; 0115 }; 0116 0117 #endif