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
35
37
42class KRITAUI_EXPORT KisCanvasResourceProvider : public QObject
43{
44 Q_OBJECT
45
46public:
49
50 void setResourceManager(KoCanvasResourceProvider *resourceManager);
51 KoCanvasResourceProvider* resourceManager();
52
53 KoCanvasBase * canvas() const;
54
55 KoColor bgColor() const;
56 void setBGColor(const KoColor& c);
57
58 KoColor fgColor() const;
59 void setFGColor(const KoColor& c);
60
66 KisUniqueColorSet *colorHistoryModel() const;
67
75 void setColorHistoryColors(const QList<KoColor> &colors);
76
84 QList<KoColor> colorHistoryColors() const;
85
86 float HDRExposure() const;
87 void setHDRExposure(float exposure);
88
89 float HDRGamma() const;
90 void setHDRGamma(float gamma);
91
92 bool eraserMode() const;
93 void setEraserMode(bool value);
94
95 KoPatternSP currentPattern() const;
96
97 KoAbstractGradientSP currentGradient() const;
98
99 KisImageWSP currentImage() const;
100
101 KisNodeSP currentNode() const;
102
103 KoGamutMaskSP currentGamutMask() const;
104 bool gamutMaskActive() const;
105
106 KisPaintOpPresetSP currentPreset() const;
107 void setPaintOpPreset(const KisPaintOpPresetSP preset);
108
109 KisPaintOpPresetSP previousPreset() const;
110 void setPreviousPaintOpPreset(const KisPaintOpPresetSP preset);
111
112 void setCurrentCompositeOp(const QString& compositeOp);
113 QString currentCompositeOp() const;
114
115 void setMirrorHorizontal(bool mirrorHorizontal);
116 bool mirrorHorizontal() const;
117
118 void setMirrorVertical(bool mirrorVertical);
119 bool mirrorVertical() const;
120
121 // options for horizontal and vertical mirror toolbar
122 void setMirrorHorizontalLock(bool isLocked);
123 bool mirrorHorizontalLock();
124 void setMirrorVerticalLock(bool isLocked);
125 bool mirrorVerticalLock();
126
127 void setMirrorVerticalHideDecorations(bool hide);
128 bool mirrorVerticalHideDecorations();
129
130 void setMirrorHorizontalHideDecorations(bool hide);
131 bool mirrorHorizontalHideDecorations();
132
133 void mirrorVerticalMoveCanvasToCenter();
134 void mirrorHorizontalMoveCanvasToCenter();
135
136 void setOpacity(qreal opacity);
137 qreal opacity() const;
138
139 void setFlow(qreal opacity);
140 qreal flow() const;
141
142 void setSize(qreal size);
143 qreal size() const;
144
145 void setFade(qreal fade);
146 qreal fade() const;
147
148 void setBrushRotation(qreal rotation);
149 qreal brushRotation() const;
150
151 void setPatternSize(qreal size);
152 qreal patternSize() const;
153
154 void setGlobalAlphaLock(bool lock);
155 bool globalAlphaLock() const;
156
157 void setDisablePressure(bool value);
158 bool disablePressure() const;
159
160 void setTextPropertyData(KoSvgTextPropertyData data);
161 KoSvgTextPropertyData textPropertyData() const;
162
163 void setCharacterPropertyData(KoSvgTextPropertyData data);
164 KoSvgTextPropertyData characterTextPropertyData() const;
165
167 void notifySavingWorkspace(KisWorkspaceResourceSP workspace);
168
170 void notifyLoadingWorkspace(KisWorkspaceResourceSP workspace);
171
172public Q_SLOTS:
173
174 void slotSetFGColor(const KoColor& c);
175 void slotSetBGColor(const KoColor& c);
176 void slotPatternActivated(KoResourceSP pattern);
177 void slotGradientActivated(KoResourceSP gradient);
178 void slotNodeActivated(const KisNodeSP node);
179 void slotPainting();
180
181 void slotGamutMaskActivated(KoGamutMaskSP mask);
182 void slotGamutMaskUnset();
183 void slotGamutMaskPreviewUpdate();
184 void slotGamutMaskDeactivate();
185
190 // FIXME: this slot doesn't catch the case when image resolution is changed
191 void slotImageSizeChanged();
192 void slotOnScreenResolutionChanged();
193
194private Q_SLOTS:
195
196 void slotCanvasResourceChanged(int key, const QVariant & res);
197
198Q_SIGNALS:
199
207 void sigOnScreenResolutionChanged(qreal scaleX, qreal scaleY);
209 void sigOpacityChanged(qreal);
212
216
221
224
225private:
226
227 KisViewManager * m_view {nullptr};
228 KoCanvasResourceProvider *m_resourceManager {nullptr};
229 bool m_fGChanged {true};
231};
232
233#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.