File indexing completed on 2024-05-12 16:01:35
0001 /* 0002 * SPDX-FileCopyrightText: 2015 Dmitry Kazakov <dimula73@gmail.com> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #ifndef __KIS_NODE_JUGGLER_COMPRESSED_H 0008 #define __KIS_NODE_JUGGLER_COMPRESSED_H 0009 0010 #include <QObject> 0011 #include <QScopedPointer> 0012 0013 #include <kritaui_export.h> 0014 #include <kundo2command.h> 0015 #include "kis_types.h" 0016 #include "kis_node_manager.h" 0017 0018 0019 class KRITAUI_EXPORT KisNodeJugglerCompressed : public QObject 0020 { 0021 Q_OBJECT 0022 public: 0023 KisNodeJugglerCompressed(const KUndo2MagicString &actionName, KisImageSP image, KisNodeManager *nodeManager, int timeout); 0024 ~KisNodeJugglerCompressed() override; 0025 0026 void moveNode(KisNodeSP node, KisNodeSP parent, KisNodeSP above); 0027 void setAutoDelete(bool value); 0028 0029 bool isEnded() const; 0030 0031 void lowerNode(const KisNodeList &nodes); 0032 void raiseNode(const KisNodeList &nodes); 0033 void removeNode(const KisNodeList &nodes); 0034 void duplicateNode(const KisNodeList &nodes); 0035 0036 void copyNode(const KisNodeList &nodes, KisNodeSP dstParent, KisNodeSP dstAbove); 0037 void moveNode(const KisNodeList &nodes, KisNodeSP dstParent, KisNodeSP dstAbove); 0038 void addNode(const KisNodeList &nodes, KisNodeSP dstParent, KisNodeSP dstAbove); 0039 0040 bool canMergeAction(const KUndo2MagicString &actionName); 0041 0042 public Q_SLOTS: 0043 void end(); 0044 0045 private Q_SLOTS: 0046 void startTimers(); 0047 void slotUpdateTimeout(); 0048 void slotEndStrokeRequested(); 0049 void slotCancelStrokeRequested(); 0050 void slotImageAboutToBeDeleted(); 0051 0052 Q_SIGNALS: 0053 void requestUpdateAsyncFromCommand(); 0054 0055 private: 0056 void cleanup(); 0057 0058 private: 0059 struct Private; 0060 const QScopedPointer<Private> m_d; 0061 }; 0062 0063 #endif /* __KIS_NODE_JUGGLER_COMPRESSED_H */