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