Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_dummies_facade_base.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2011 Dmitry Kazakov <dimula73@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
7#ifndef __KIS_DUMMIES_FACADE_BASE_H
8#define __KIS_DUMMIES_FACADE_BASE_H
9
10#include <QObject>
11
12#include "kis_types.h"
13#include "kritaui_export.h"
15
16class KisNodeDummy;
17
26class KRITAUI_EXPORT KisDummiesFacadeBase : public QObject
27{
28 Q_OBJECT
29
30public:
31 KisDummiesFacadeBase(QObject *parent = 0);
32 ~KisDummiesFacadeBase() override;
33
34 void setImage(KisImageWSP image);
35 virtual void setImage(KisImageWSP image, KisNodeSP activeNode);
36
37 virtual bool hasDummyForNode(KisNodeSP node) const = 0;
38 virtual KisNodeDummy* dummyForNode(KisNodeSP node) const = 0;
39
45 virtual KisNodeDummy* rootDummy() const = 0;
46 virtual int dummiesCount() const = 0;
47
55 KisNodeSP lastActivatedNode() const;
56 void setLastActivatedNode(KisNodeSP node);
57
58protected:
59 KisImageWSP image() const;
60
61 virtual void addNodeImpl(KisNodeSP node, KisNodeSP parent, KisNodeSP aboveThis) = 0;
62 virtual void removeNodeImpl(KisNodeSP node) = 0;
63
64Q_SIGNALS:
69 void sigBeginInsertDummy(KisNodeDummy *parent, int index, const QString &metaObjectType);
71
74
76
84
85private Q_SLOTS:
86 void slotLayersChanged();
87 void slotNodeChanged(KisNodeSP node);
88
89 void slotNodeActivationRequested(KisNodeSP node, KisNodeAdditionFlags flags);
90
91 void slotNodeAdded(KisNodeSP node, KisNodeAdditionFlags flags);
92 void slotRemoveNode(KisNodeSP node);
93
94 void slotContinueAddNode(KisNodeSP node, KisNodeSP parent, KisNodeSP aboveThis);
95 void slotContinueRemoveNode(KisNodeSP node);
96
97private:
98 static KisNodeSP findFirstLayer(KisNodeSP root);
99
100private:
101 struct Private;
102 Private * const m_d;
103};
104
105#endif /* __KIS_DUMMIES_FACADE_BASE_H */
virtual void removeNodeImpl(KisNodeSP node)=0
void sigBeginInsertDummy(KisNodeDummy *parent, int index, const QString &metaObjectType)
void sigEndInsertDummy(KisNodeDummy *dummy)
void sigBeginRemoveDummy(KisNodeDummy *dummy)
virtual KisNodeDummy * dummyForNode(KisNodeSP node) const =0
virtual int dummiesCount() const =0
void sigActivateNode(KisNodeSP node)
virtual bool hasDummyForNode(KisNodeSP node) const =0
virtual void addNodeImpl(KisNodeSP node, KisNodeSP parent, KisNodeSP aboveThis)=0
void sigDummyChanged(KisNodeDummy *dummy)
virtual KisNodeDummy * rootDummy() const =0