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
138 void notifySavingWorkspace(KisWorkspaceResourceSP workspace);
139
141 void notifyLoadingWorkspace(KisWorkspaceResourceSP workspace);
142
143public Q_SLOTS:
144
145 void slotSetFGColor(const KoColor& c);
146 void slotSetBGColor(const KoColor& c);
147 void slotPatternActivated(KoResourceSP pattern);
148 void slotGradientActivated(KoResourceSP gradient);
149 void slotNodeActivated(const KisNodeSP node);
150 void slotPainting();
151
152 void slotGamutMaskActivated(KoGamutMaskSP mask);
153 void slotGamutMaskUnset();
154 void slotGamutMaskPreviewUpdate();
155 void slotGamutMaskDeactivate();
156
161 // FIXME: this slot doesn't catch the case when image resolution is changed
162 void slotImageSizeChanged();
163 void slotOnScreenResolutionChanged();
164
165private Q_SLOTS:
166
167 void slotCanvasResourceChanged(int key, const QVariant & res);
168
169Q_SIGNALS:
170
178 void sigOnScreenResolutionChanged(qreal scaleX, qreal scaleY);
180 void sigOpacityChanged(qreal);
183
187
192
194
195private:
196
197 KisViewManager * m_view {nullptr};
198 KoCanvasResourceProvider *m_resourceManager {nullptr};
199 bool m_fGChanged {true};
201};
202
203#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.