Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_canvas_resource_provider.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2006 Boudewijn Rempt <boud@valdyas.org>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
7#ifndef KIS_CANVAS_RESOURCE_PROVIDER_H_
8#define KIS_CANVAS_RESOURCE_PROVIDER_H_
9
10#include <QObject>
11
12#include <KoColor.h>
13#include <KoID.h>
15#include <KoResource.h>
16
17#include "kis_types.h"
18#include "kritaui_export.h"
19
20#include <KoPattern.h>
21#include <KoAbstractGradient.h>
25
26class KoColorProfile;
29
30class KoCanvasBase;
31class KisViewManager;
32
34
36
41class KRITAUI_EXPORT KisCanvasResourceProvider : public QObject
42{
43 Q_OBJECT
44
45public:
48
49 void setResourceManager(KoCanvasResourceProvider *resourceManager);
50 KoCanvasResourceProvider* resourceManager();
51
52 KoCanvasBase * canvas() const;
53
54 KoColor bgColor() const;
55 void setBGColor(const KoColor& c);
56
57 KoColor fgColor() const;
58 void setFGColor(const KoColor& c);
59
60 QList<KoColor> colorHistory() const;
61 void setColorHistory(const QList<KoColor>& colors);
62
63 float HDRExposure() const;
64 void setHDRExposure(float exposure);
65
66 float HDRGamma() const;
67 void setHDRGamma(float gamma);
68
69 bool eraserMode() const;
70 void setEraserMode(bool value);
71
72 KoPatternSP currentPattern() const;
73
74 KoAbstractGradientSP currentGradient() const;
75
76 KisImageWSP currentImage() const;
77
78 KisNodeSP currentNode() const;
79
80 KoGamutMaskSP currentGamutMask() const;
81 bool gamutMaskActive() const;
82
83 KisPaintOpPresetSP currentPreset() const;
84 void setPaintOpPreset(const KisPaintOpPresetSP preset);
85
86 KisPaintOpPresetSP previousPreset() const;
87 void setPreviousPaintOpPreset(const KisPaintOpPresetSP preset);
88
89 void setCurrentCompositeOp(const QString& compositeOp);
90 QString currentCompositeOp() const;
91
92 void setMirrorHorizontal(bool mirrorHorizontal);
93 bool mirrorHorizontal() const;
94
95 void setMirrorVertical(bool mirrorVertical);
96 bool mirrorVertical() const;
97
98 // options for horizontal and vertical mirror toolbar
99 void setMirrorHorizontalLock(bool isLocked);
100 bool mirrorHorizontalLock();
101 void setMirrorVerticalLock(bool isLocked);
102 bool mirrorVerticalLock();
103
104 void setMirrorVerticalHideDecorations(bool hide);
105 bool mirrorVerticalHideDecorations();
106
107 void setMirrorHorizontalHideDecorations(bool hide);
108 bool mirrorHorizontalHideDecorations();
109
110 void mirrorVerticalMoveCanvasToCenter();
111 void mirrorHorizontalMoveCanvasToCenter();
112
113 void setOpacity(qreal opacity);
114 qreal opacity() const;
115
116 void setFlow(qreal opacity);
117 qreal flow() const;
118
119 void setSize(qreal size);
120 qreal size() const;
121
122 void setBrushRotation(qreal rotation);
123 qreal brushRotation() const;
124
125 void setPatternSize(qreal size);
126 qreal patternSize() const;
127
128 void setGlobalAlphaLock(bool lock);
129 bool globalAlphaLock() const;
130
131 void setDisablePressure(bool value);
132 bool disablePressure() const;
133
134 void setTextPropertyData(KoSvgTextPropertyData data);
135 KoSvgTextPropertyData textPropertyData() const;
136
137 void setCharacterPropertyData(KoSvgTextPropertyData data);
138 KoSvgTextPropertyData characterTextPropertyData() const;
139
141 void notifySavingWorkspace(KisWorkspaceResourceSP workspace);
142
144 void notifyLoadingWorkspace(KisWorkspaceResourceSP workspace);
145
146public Q_SLOTS:
147
148 void slotSetFGColor(const KoColor& c);
149 void slotSetBGColor(const KoColor& c);
150 void slotPatternActivated(KoResourceSP pattern);
151 void slotGradientActivated(KoResourceSP gradient);
152 void slotNodeActivated(const KisNodeSP node);
153 void slotPainting();
154
155 void slotGamutMaskActivated(KoGamutMaskSP mask);
156 void slotGamutMaskUnset();
157 void slotGamutMaskPreviewUpdate();
158 void slotGamutMaskDeactivate();
159
164 // FIXME: this slot doesn't catch the case when image resolution is changed
165 void slotImageSizeChanged();
166 void slotOnScreenResolutionChanged();
167
168private Q_SLOTS:
169
170 void slotCanvasResourceChanged(int key, const QVariant & res);
171
172Q_SIGNALS:
173
181 void sigOnScreenResolutionChanged(qreal scaleX, qreal scaleY);
183 void sigOpacityChanged(qreal);
186
190
195
198
199private:
200
201 KisViewManager * m_view {nullptr};
202 KoCanvasResourceProvider *m_resourceManager {nullptr};
203 bool m_fGChanged {true};
205};
206
207#endif
float value(const T *src, size_t ch)
void sigOnScreenResolutionChanged(qreal scaleX, qreal scaleY)
void sigNodeChanged(const KisNodeSP)
void sigPaintOpPresetChanged(const KisPaintOpPresetSP)
void sigPatternChanged(KoPatternSP)
void sigFGColorChanged(const KoColor &)
void sigBGColorChanged(const KoColor &)
void sigFGColorUsed(const KoColor &)
KisPresetShadowUpdater m_presetShadowUpdater
void sigSavingWorkspace(KisWorkspaceResourceSP workspace)
void sigLoadingWorkspace(KisWorkspaceResourceSP workspace)
void sigGamutMaskChanged(KoGamutMaskSP mask)
void sigGradientChanged(KoAbstractGradientSP)
The KoSvgTextPropertyData struct.