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
57protected:
58 KisImageWSP image() const;
59
60 virtual void addNodeImpl(KisNodeSP node, KisNodeSP parent, KisNodeSP aboveThis) = 0;
61 virtual void removeNodeImpl(KisNodeSP node) = 0;
62
63Q_SIGNALS:
68 void sigBeginInsertDummy(KisNodeDummy *parent, int index, const QString &metaObjectType);
70
73
75
83
84private Q_SLOTS:
85 void slotLayersChanged();
86 void slotNodeChanged(KisNodeSP node);
87
88 void slotNodeActivationRequested(KisNodeSP node, KisNodeAdditionFlags flags);
89
90 void slotNodeAdded(KisNodeSP node, KisNodeAdditionFlags flags);
91 void slotRemoveNode(KisNodeSP node);
92
93 void slotContinueAddNode(KisNodeSP node, KisNodeSP parent, KisNodeSP aboveThis);
94 void slotContinueRemoveNode(KisNodeSP node);
95
96private:
97 static KisNodeSP findFirstLayer(KisNodeSP root);
98
99private:
100 struct Private;
101 Private * const m_d;
102};
103
104#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