Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_paintop_settings.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2007 Boudewijn Rempt <boud@valdyas.org>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
7#ifndef KIS_PAINTOP_SETTINGS_H_
8#define KIS_PAINTOP_SETTINGS_H_
9
10#include "kis_types.h"
11#include "kritaimage_export.h"
12
13#include <QScopedPointer>
14
18
21
24
27
30
32
36const QString AIRBRUSH_ENABLED = "PaintOpSettings/isAirbrushing";
37
41const QString AIRBRUSH_RATE = "PaintOpSettings/rate";
42
47const QString AIRBRUSH_IGNORE_SPACING = "PaintOpSettings/ignoreSpacing";
48
53const QString SPACING_USE_UPDATES = "PaintOpSettings/updateSpacingBetweenDabs";
54
68class KRITAIMAGE_EXPORT KisPaintOpSettings : public KisPropertiesConfiguration
69{
70public:
72 virtual ~UpdateListener();
73 virtual void setDirty(bool value) = 0;
74 virtual bool isDirty() const = 0;
75 virtual void notifySettingsChanged() = 0;
76 };
77
80
81public:
82
84 ~KisPaintOpSettings() override;
86
94 virtual bool mousePressEvent(const KisPaintInformation &paintInformation, Qt::KeyboardModifiers modifiers, KisNodeWSP currentNode);
101 virtual bool mouseReleaseEvent();
106 virtual KisPaintOpSettingsSP clone() const;
107
112 virtual void resetSettings(const QStringList &preserveProperties = QStringList());
113
118
122 virtual void activate();
123
131 virtual bool paintIncremental() {
132 return true;
133 }
134
140 virtual QString indirectPaintingCompositeOp() const;
141
150 virtual bool isAirbrushing() const;
151
160 virtual qreal airbrushInterval() const;
161
166 virtual bool useSpacingUpdates() const;
167
172 virtual bool needsAsynchronousUpdates() const;
173
177 struct OutlineMode {
178 bool isVisible = false;
179 bool forceCircle = false;
180 bool showTiltDecoration = false;
181 bool forceFullSize = false;
182 };
183
189 virtual KisOptimizedBrushOutline brushOutline(const KisPaintInformation &info, const OutlineMode &mode, qreal alignForZoom);
190
194 static KisOptimizedBrushOutline ellipseOutline(qreal width, qreal height, qreal scale, qreal rotation);
195
204 static QPainterPath makeTiltIndicator(KisPaintInformation const& info,
205 QPointF const& start, qreal lengthScale, qreal angle);
206
210 virtual void setPaintOpOpacity(qreal value);
211
215 void setPaintOpFlow(qreal value);
216
220 void setPaintOpFade(qreal value);
221
225 void setPaintOpScatter(qreal value);
226
230 void setPaintOpCompositeOp(const QString &value);
231
235 virtual qreal paintOpOpacity();
236
240 qreal paintOpFlow();
241
245 qreal paintOpFade();
246
250 qreal paintOpScatter();
251
255 QString paintOpCompositeOp();
256
260 virtual void setPaintOpSize(qreal value) = 0;
261
265 virtual qreal paintOpSize() const = 0;
266
271 virtual void setPaintOpAngle(qreal value) = 0;
272
276 virtual qreal paintOpAngle() const = 0;
277
281 virtual qreal paintOpPatternSize();
282
283 void setEraserMode(bool value);
284 bool eraserMode();
285
286 qreal savedEraserSize() const;
287 void setSavedEraserSize(qreal value);
288 qreal savedBrushSize() const;
289 void setSavedBrushSize(qreal value);
290
291 qreal savedEraserOpacity() const;
292 void setSavedEraserOpacity(qreal value);
293 qreal savedBrushOpacity() const;
294 void setSavedBrushOpacity(qreal value);
295
296 QString effectivePaintOpCompositeOp();
297
298 void setUpdateListener(UpdateListenerWSP listener);
299
301
305 virtual QString modelName() const;
306
310 void setModelName(const QString & modelName);
311
315 virtual bool isValid() const;
316
321 void setProperty(const QString & name, const QVariant & value) override;
322
324
325 static bool isLodUserAllowed(const KisPropertiesConfigurationSP config);
326 static void setLodUserAllowed(KisPropertiesConfigurationSP config, bool value);
327
328 virtual bool lodSizeThresholdSupported() const;
329
330 qreal lodSizeThreshold() const;
331 void setLodSizeThreshold(qreal value);
332
338 virtual void setRandomOffset(const KisPaintInformation &paintInformation);
339
344 bool hasMaskingSettings() const;
345
350 KisPaintOpSettingsSP createMaskingSettings() const;
351
358 QString maskingBrushCompositeOp() const;
359
364
368 void setResourcesInterface(KisResourcesInterfaceSP resourcesInterface);
369
370
371 virtual bool hasPatternSettings() const;
372
373 virtual QList<int> requiredCanvasResources() const;
374
376 void setCanvasResourcesInterface(KoCanvasResourcesInterfaceSP canvasResourcesInterface);
377
378 virtual void setResourceCacheInterface(KoResourceCacheInterfaceSP cacheInterface);
380
381 virtual void regenerateResourceCache(KoResourceCacheInterfaceSP cacheInterface);
382
383 quint64 sanityVersionCookie() const;
384
385protected:
386
390 virtual void onPropertyChanged();
391
392private:
393
394
395
396 struct Private;
397 const QScopedPointer<Private> d;
398};
399
400#endif
float value(const T *src, size_t ch)
QList< QString > QStringList
The KisPaintOpPresetUpdateProxy class.
a provider-like interface class for accessing resource sources in Krita.
An abstract class for providing access to canvas resources like current gradient and Fg/Bg colors.
a provider-like interface class for sharing caches between multiple resources
const QString AIRBRUSH_ENABLED
const QString AIRBRUSH_IGNORE_SPACING
const QString AIRBRUSH_RATE
const QString SPACING_USE_UPDATES
virtual void notifySettingsChanged()=0
virtual void setDirty(bool value)=0
virtual bool isDirty() const =0
virtual QString modelName() const
virtual void setPaintOpAngle(qreal value)=0
UpdateListenerWSP updateListener() const
KisResourcesInterfaceSP resourcesInterface() const
KoCanvasResourcesInterfaceSP canvasResourcesInterface() const
virtual qreal paintOpSize() const =0
virtual QList< KisUniformPaintOpPropertySP > uniformProperties(KisPaintOpSettingsSP settings, QPointer< KisPaintOpPresetUpdateProxy > updateProxy)
const QScopedPointer< Private > d
virtual qreal paintOpAngle() const =0
virtual bool paintIncremental()
KisNodeSP node() const
virtual void setPaintOpSize(qreal value)=0
KoResourceCacheInterfaceSP resourceCacheInterface() const
virtual void setProperty(const QString &name, const QVariant &value)