Krita Source Code Documentation
Loading...
Searching...
No Matches
KisBrushBasedPaintOpSettings Class Reference

#include <kis_brush_based_paintop_settings.h>

+ Inheritance diagram for KisBrushBasedPaintOpSettings:

Public Member Functions

bool autoSpacingActive ()
 
qreal autoSpacingCoeff ()
 
KisBrushSP brush () const
 
virtual KisOptimizedBrushOutline brushOutline (const KisPaintInformation &info, const OutlineMode &mode, qreal alignForZoom)
 
KisOptimizedBrushOutline brushOutline (const KisPaintInformation &info, const OutlineMode &mode, qreal alignForZoom) override
 
KisPaintOpSettingsSP clone () const override
 
virtual bool hasPatternSettings () const override
 
 KisBrushBasedPaintOpSettings (KisResourcesInterfaceSP resourcesInterface)
 
bool paintIncremental () override
 Reimplemented.
 
qreal paintOpAngle () const override
 
qreal paintOpSize () const override
 
void regenerateResourceCache (KoResourceCacheInterfaceSP cacheInterface) override
 
QList< int > requiredCanvasResources () const override
 
void setAutoSpacing (bool active, qreal coeff)
 
void setPaintOpAngle (qreal value) override
 
void setPaintOpSize (qreal value) override
 
void setResourceCacheInterface (KoResourceCacheInterfaceSP cacheInterface) override
 
void setSpacing (qreal spacing)
 
qreal spacing ()
 
QList< KisUniformPaintOpPropertySPuniformProperties (KisPaintOpSettingsSP settings, QPointer< KisPaintOpPresetUpdateProxy > updateProxy) override
 
 ~KisBrushBasedPaintOpSettings () override
 
- Public Member Functions inherited from KisOutlineGenerationPolicy< KisPaintOpSettings >
 KisOutlineGenerationPolicy (KisCurrentOutlineFetcher::Options options, KisResourcesInterfaceSP resourcesInterface)
 
void onPropertyChanged () override
 
const KisCurrentOutlineFetcheroutlineFetcher () const
 
 ~KisOutlineGenerationPolicy () override
 
- Public Member Functions inherited from KisPaintOpSettings
virtual void activate ()
 
virtual qreal airbrushInterval () const
 
KoCanvasResourcesInterfaceSP canvasResourcesInterface () const
 
KisPaintOpSettingsSP createMaskingSettings () const
 
QString effectivePaintOpCompositeOp ()
 
bool eraserMode ()
 
bool hasMaskingSettings () const
 
virtual QString indirectPaintingCompositeOp () const
 
virtual bool isAirbrushing () const
 
virtual bool isValid () const
 
 KisPaintOpSettings (const KisPaintOpSettings &rhs)
 
 KisPaintOpSettings (KisResourcesInterfaceSP resourcesInterface)
 
qreal lodSizeThreshold () const
 
virtual bool lodSizeThresholdSupported () const
 
QString maskingBrushCompositeOp () const
 
virtual QString modelName () const
 
virtual bool mousePressEvent (const KisPaintInformation &paintInformation, Qt::KeyboardModifiers modifiers, KisNodeWSP currentNode)
 
virtual bool mouseReleaseEvent ()
 
virtual bool needsAsynchronousUpdates () const
 
KisNodeSP node () const
 
QString paintOpCompositeOp ()
 
qreal paintOpFade ()
 
qreal paintOpFlow ()
 
virtual qreal paintOpOpacity ()
 
virtual qreal paintOpPatternSize ()
 
qreal paintOpScatter ()
 
 Private ()
 
 Private (const Private &rhs)
 
virtual void resetSettings (const QStringList &preserveProperties=QStringList())
 
KoResourceCacheInterfaceSP resourceCacheInterface () const
 
KisResourcesInterfaceSP resourcesInterface () const
 
quint64 sanityVersionCookie () const
 
qreal savedBrushOpacity () const
 
qreal savedBrushSize () const
 
qreal savedEraserOpacity () const
 
qreal savedEraserSize () const
 
void setCanvasResourcesInterface (KoCanvasResourcesInterfaceSP canvasResourcesInterface)
 
void setEraserMode (bool value)
 
void setLodSizeThreshold (qreal value)
 
void setModelName (const QString &modelName)
 
void setPaintOpCompositeOp (const QString &value)
 
void setPaintOpFade (qreal value)
 
void setPaintOpFlow (qreal value)
 
virtual void setPaintOpOpacity (qreal value)
 
void setPaintOpScatter (qreal value)
 
void setProperty (const QString &name, const QVariant &value) override
 
virtual void setRandomOffset (const KisPaintInformation &paintInformation)
 
void setResourcesInterface (KisResourcesInterfaceSP resourcesInterface)
 
void setSavedBrushOpacity (qreal value)
 
void setSavedBrushSize (qreal value)
 
void setSavedEraserOpacity (qreal value)
 
void setSavedEraserSize (qreal value)
 
void setUpdateListener (UpdateListenerWSP listener)
 
UpdateListenerWSP updateListener () const
 
virtual bool useSpacingUpdates () const
 
 ~KisPaintOpSettings () override
 
- Public Member Functions inherited from Private
 Private (KisCanvas2 *c)
 
- Public Member Functions inherited from KisPropertiesConfiguration
void clearProperties ()
 Clear the map of properties.
 
virtual bool compareTo (const KisPropertiesConfiguration *rhs) const
 
virtual void dump () const
 
void fromXML (const QDomElement &) override
 
bool fromXML (const QString &xml, bool clear=true) override
 
bool getBool (const QString &name, bool def=false) const
 
KoColor getColor (const QString &name, const KoColor &color=KoColor()) const
 getColor fetch the given property as a KoColor.
 
KisCubicCurve getCubicCurve (const QString &name, const KisCubicCurve &curve=KisCubicCurve()) const
 
double getDouble (const QString &name, double def=0.0) const
 
float getFloat (const QString &name, float def=0.0) const
 
int getInt (const QString &name, int def=0) const
 
void getPrefixedProperties (const QString &prefix, KisPropertiesConfiguration *config) const
 
void getPrefixedProperties (const QString &prefix, KisPropertiesConfigurationSP config) const
 
virtual QMap< QString, QVariant > getProperties () const
 
virtual QList< QString > getPropertiesKeys () const
 
virtual QVariant getProperty (const QString &name) const
 
virtual bool getProperty (const QString &name, QVariant &value) const
 
QString getPropertyLazy (const QString &name, const char *defaultValue) const
 
QStringList getPropertyLazy (const QString &name, const QStringList &defaultValue) const
 
template<typename T >
getPropertyLazy (const QString &name, const T &defaultValue) const
 
QString getString (const QString &name, const QString &def=QString()) const
 
QStringList getStringList (const QString &name, const QStringList &defaultValue=QStringList()) const
 
virtual bool hasProperty (const QString &name) const
 
 KisPropertiesConfiguration ()
 
 KisPropertiesConfiguration (const KisPropertiesConfiguration &rhs)
 
KisPropertiesConfigurationoperator= (const KisPropertiesConfiguration &rhs)
 
void removeProperty (const QString &name)
 
void setPrefixedProperties (const QString &prefix, const KisPropertiesConfiguration *config)
 
void setPrefixedProperties (const QString &prefix, const KisPropertiesConfigurationSP config)
 
void setProperty (const QString &name, const QStringList &value)
 
void setPropertyNotSaved (const QString &name)
 Marks a property that should not be saved by toXML.
 
QString toXML () const override
 
void toXML (QDomDocument &, QDomElement &) const override
 
 ~KisPropertiesConfiguration () override
 
- Public Member Functions inherited from KisSerializableConfiguration
 KisSerializableConfiguration ()
 
 KisSerializableConfiguration (const KisSerializableConfiguration &rhs)
 
virtual ~KisSerializableConfiguration ()
 
- Public Member Functions inherited from KisShared
bool deref ()
 
bool ref ()
 
int refCount ()
 
QAtomicInt * sharedWeakReference ()
 

Protected Member Functions

KisOptimizedBrushOutline brushOutlineImpl (const KisPaintInformation &info, const OutlineMode &mode, qreal alignForZoom, qreal additionalScale)
 
void onPropertyChanged () override
 
- Protected Member Functions inherited from KisShared
 KisShared ()
 
 ~KisShared ()
 

Protected Attributes

KisBrushSP m_savedBrush
 
QList< KisUniformPaintOpPropertyWSPm_uniformProperties
 

Additional Inherited Members

- Public Types inherited from KisPaintOpSettings
using UpdateListenerSP = QSharedPointer<UpdateListener>
 
using UpdateListenerWSP = QWeakPointer<UpdateListener>
 
- Static Public Member Functions inherited from KisPaintOpSettings
static KisOptimizedBrushOutline ellipseOutline (qreal width, qreal height, qreal scale, qreal rotation)
 
static bool isLodUserAllowed (const KisPropertiesConfigurationSP config)
 
static QPainterPath makeTiltIndicator (KisPaintInformation const &info, QPointF const &start, qreal lengthScale, qreal angle)
 
static void setLodUserAllowed (KisPropertiesConfigurationSP config, bool value)
 
- Static Public Member Functions inherited from KisPropertiesConfiguration
static QString escapeString (const QString &string)
 
static QString extractedPrefixKey ()
 
static QString unescapeString (const QString &string)
 
- Public Attributes inherited from KisPaintOpSettings
KoCanvasResourcesInterfaceSP canvasResourcesInterface
 
bool disableDirtyNotifications
 
QString modelName
 
KoResourceCacheInterfaceSP resourceCacheInterface
 
KisResourcesInterfaceSP resourcesInterface
 
QPointer< KisPaintOpConfigWidgetsettingsWidget
 
QList< KisUniformPaintOpPropertyWSPuniformProperties
 
UpdateListenerWSP updateListener
 
quint64 versionCookie
 
KisRandomSource versionRandomSource
 
- Public Attributes inherited from Private
KisCanvas2canvas
 
int displayedFrame
 
int intendedFrame
 
- Public Attributes inherited from KisPropertiesConfiguration
QSet< QString > notSavedProperties
 
QMap< QString, QVariant > properties
 

Detailed Description

Definition at line 18 of file kis_brush_based_paintop_settings.h.

Constructor & Destructor Documentation

◆ KisBrushBasedPaintOpSettings()

◆ ~KisBrushBasedPaintOpSettings()

KisBrushBasedPaintOpSettings::~KisBrushBasedPaintOpSettings ( )
inlineoverride

Definition at line 22 of file kis_brush_based_paintop_settings.h.

22{}

Member Function Documentation

◆ autoSpacingActive()

bool KisBrushBasedPaintOpSettings::autoSpacingActive ( )

Definition at line 166 of file kis_brush_based_paintop_settings.cpp.

167{
169 return this->brush()->autoSpacingActive();
170}
#define KIS_SAFE_ASSERT_RECOVER_RETURN_VALUE(cond, val)
Definition kis_assert.h:129

References brush(), and KIS_SAFE_ASSERT_RECOVER_RETURN_VALUE.

◆ autoSpacingCoeff()

qreal KisBrushBasedPaintOpSettings::autoSpacingCoeff ( )

Definition at line 172 of file kis_brush_based_paintop_settings.cpp.

173{
175 return this->brush()->autoSpacingCoeff();
176}

References brush(), and KIS_SAFE_ASSERT_RECOVER_RETURN_VALUE.

◆ brush()

KisBrushSP KisBrushBasedPaintOpSettings::brush ( ) const

◆ brushOutline() [1/2]

KisOptimizedBrushOutline KisPaintOpSettings::brushOutline ( const KisPaintInformation & info,
const OutlineMode & mode,
qreal alignForZoom )
virtual

Returns the brush outline in pixel coordinates. Tool is responsible for conversion into view coordinates. Outline mode has to be passed to the paintop which builds the outline as some paintops have to paint outline always like clone paintop indicating the duplicate position

Reimplemented from KisPaintOpSettings.

Reimplemented in KisDuplicateOpSettings, KisDuplicateOpSettings, KisHairyPaintOpSettings, KisHairyPaintOpSettings, and KisSketchPaintOpSettings.

Definition at line 189 of file kis_paintop_settings.cpp.

565{
567 if (mode.isVisible) {
568 path = ellipseOutline(10, 10, 1.0, 0);
569
570 if (mode.showTiltDecoration) {
571 path.addPath(makeTiltIndicator(info, QPointF(0.0, 0.0), 0.0, 2.0));
572 }
573
574 path.translate(KisAlgebra2D::alignForZoom(info.pos(), alignForZoom));
575 }
576
577 return path;
578}
const QPointF & pos() const
QPointF alignForZoom(const QPointF &pt, qreal zoom)
static QPainterPath makeTiltIndicator(KisPaintInformation const &info, QPointF const &start, qreal lengthScale, qreal angle)
static KisOptimizedBrushOutline ellipseOutline(qreal width, qreal height, qreal scale, qreal rotation)

◆ brushOutline() [2/2]

KisOptimizedBrushOutline KisBrushBasedPaintOpSettings::brushOutline ( const KisPaintInformation & info,
const OutlineMode & mode,
qreal alignForZoom )
overridevirtual

Returns the brush outline in pixel coordinates. Tool is responsible for conversion into view coordinates. Outline mode has to be passed to the paintop which builds the outline as some paintops have to paint outline always like clone paintop indicating the duplicate position

Reimplemented from KisPaintOpSettings.

Reimplemented in KisDuplicateOpSettings, KisDuplicateOpSettings, KisHairyPaintOpSettings, KisHairyPaintOpSettings, and KisSketchPaintOpSettings.

Definition at line 140 of file kis_brush_based_paintop_settings.cpp.

141{
142 return brushOutlineImpl(info, mode, alignForZoom, 1.0);
143}
KisOptimizedBrushOutline brushOutlineImpl(const KisPaintInformation &info, const OutlineMode &mode, qreal alignForZoom, qreal additionalScale)

References brushOutlineImpl().

◆ brushOutlineImpl()

KisOptimizedBrushOutline KisBrushBasedPaintOpSettings::brushOutlineImpl ( const KisPaintInformation & info,
const OutlineMode & mode,
qreal alignForZoom,
qreal additionalScale )
protected

Definition at line 105 of file kis_brush_based_paintop_settings.cpp.

109{
111
112 if (mode.isVisible) {
113 KisBrushSP brush = this->brush();
114 if (!brush) return path;
115 qreal finalScale = brush->scale() * additionalScale;
116
117 KisOptimizedBrushOutline realOutline = brush->outline(alignForZoom > 2.0 || qFuzzyCompare(alignForZoom, 2.0));
118
119 if (mode.forceCircle) {
120
121 QPainterPath ellipse;
122 ellipse.addEllipse(realOutline.boundingRect());
123 realOutline = ellipse;
124 }
125
126 path = outlineFetcher()->fetchOutline(info, this, realOutline, mode, alignForZoom, finalScale, brush->angle());
127
128 if (mode.showTiltDecoration) {
129 const QPainterPath tiltLine = makeTiltIndicator(info,
130 realOutline.boundingRect().center(),
131 realOutline.boundingRect().width() * 0.5,
132 3.0);
133 path.addPath(outlineFetcher()->fetchOutline(info, this, tiltLine, mode, alignForZoom, finalScale, 0.0, true, realOutline.boundingRect().center().x(), realOutline.boundingRect().center().y()));
134 }
135 }
136
137 return path;
138}
KisOptimizedBrushOutline fetchOutline(const KisPaintInformation &info, const KisPaintOpSettingsSP settings, const KisOptimizedBrushOutline &originalOutline, const KisPaintOpSettings::OutlineMode &mode, qreal alignForZoom, qreal additionalScale=1.0, qreal additionalRotation=0.0, bool tilt=false, qreal tiltcenterx=1.0, qreal tiltcentery=1.0) const
const KisCurrentOutlineFetcher * outlineFetcher() const
static bool qFuzzyCompare(half p1, half p2)

References KisOptimizedBrushOutline::boundingRect(), brush(), KisCurrentOutlineFetcher::fetchOutline(), KisPaintOpSettings::OutlineMode::forceCircle, KisPaintOpSettings::OutlineMode::isVisible, KisPaintOpSettings::makeTiltIndicator(), KisOutlineGenerationPolicy< KisPaintOpSettings >::outlineFetcher(), qFuzzyCompare(), and KisPaintOpSettings::OutlineMode::showTiltDecoration.

◆ clone()

KisPaintOpSettingsSP KisBrushBasedPaintOpSettings::clone ( ) const
overridevirtual

Clone the current settings object. Override this if your settings instance doesn't store everything as properties.

We don't copy m_savedBrush directly because it can also depend on "canvas resources", which should be baked into the preset on cloning. This dependency is tracked by KisPresetShadowUpdater and reset when needed via resetting cache interface.

Reimplemented from KisPaintOpSettings.

Reimplemented in KisDuplicateOpSettings.

Definition at line 75 of file kis_brush_based_paintop_settings.cpp.

References KisSharedPtr< T >::data(), and KisPaintOpSettings::resourceCacheInterface.

◆ hasPatternSettings()

bool KisBrushBasedPaintOpSettings::hasPatternSettings ( ) const
overridevirtual

Reimplemented from KisPaintOpSettings.

Reimplemented in KisFilterOpSettings, KisHairyPaintOpSettings, and KisSketchPaintOpSettings.

Definition at line 323 of file kis_brush_based_paintop_settings.cpp.

324{
325 return true;
326}

◆ onPropertyChanged()

void KisBrushBasedPaintOpSettings::onPropertyChanged ( )
overrideprotectedvirtual

The callback is called every time when a property changes

Reimplemented from KisPaintOpSettings.

Definition at line 317 of file kis_brush_based_paintop_settings.cpp.

References m_savedBrush, and KisOutlineGenerationPolicy< ParentClass >::onPropertyChanged().

◆ paintIncremental()

bool KisBrushBasedPaintOpSettings::paintIncremental ( )
overridevirtual

◆ paintOpAngle()

qreal KisBrushBasedPaintOpSettings::paintOpAngle ( ) const
overridevirtual
Returns
paintop angle (in degrees) saved in the properties

Implements KisPaintOpSettings.

Definition at line 202 of file kis_brush_based_paintop_settings.cpp.

203{
205 const qreal value = kisRadiansToDegrees(this->brush()->angle());
206 return value;
207}
float value(const T *src, size_t ch)
T kisRadiansToDegrees(T radians)
Definition kis_global.h:181

References brush(), KIS_SAFE_ASSERT_RECOVER_RETURN_VALUE, kisRadiansToDegrees(), and value().

◆ paintOpSize()

qreal KisBrushBasedPaintOpSettings::paintOpSize ( ) const
overridevirtual
Returns
size saved in the properties

Implements KisPaintOpSettings.

Definition at line 186 of file kis_brush_based_paintop_settings.cpp.

187{
189 return this->brush()->userEffectiveSize();
190}

References brush(), and KIS_SAFE_ASSERT_RECOVER_RETURN_VALUE.

◆ regenerateResourceCache()

void KisBrushBasedPaintOpSettings::regenerateResourceCache ( KoResourceCacheInterfaceSP cacheInterface)
overridevirtual

Reimplemented from KisPaintOpSettings.

Definition at line 364 of file kis_brush_based_paintop_settings.cpp.

365{
367
368 KisBrushSP brush = this->brush();
370
371 brush->coldInitBrush();
372
373 cacheInterface->put("settings/brush", QVariant::fromValue(brush->clone().dynamicCast<KisBrush>()));
374}
#define KIS_SAFE_ASSERT_RECOVER_RETURN(cond)
Definition kis_assert.h:128

References brush(), and KIS_SAFE_ASSERT_RECOVER_RETURN.

◆ requiredCanvasResources()

QList< int > KisBrushBasedPaintOpSettings::requiredCanvasResources ( ) const
overridevirtual

Reimplemented from KisPaintOpSettings.

Definition at line 328 of file kis_brush_based_paintop_settings.cpp.

329{
330 QList<int> result;
332
333 if (brush()->applyingGradient() || KisTextureOption::applyingGradient(this)) {
337 }
338
341 }
342
343 return result;
344}
static bool requiresEffectiveCompositeOp(const KisPropertiesConfiguration *settings)
bool applyingGradient() const
@ BackgroundColor
The active background color selected for this canvas.
@ ForegroundColor
The active foreground color selected for this canvas.

References KisTextureOption::applyingGradient(), KoCanvasResource::BackgroundColor, brush(), KoCanvasResource::CurrentEffectiveCompositeOp, KoCanvasResource::CurrentGradient, KoCanvasResource::ForegroundColor, KIS_SAFE_ASSERT_RECOVER_RETURN_VALUE, and KisTextureOption::requiresEffectiveCompositeOp().

◆ setAutoSpacing()

void KisBrushBasedPaintOpSettings::setAutoSpacing ( bool active,
qreal coeff )

Definition at line 158 of file kis_brush_based_paintop_settings.cpp.

159{
160 BrushWriter w(this);
161 if (!w.brush()) return;
162 w.brush()->setAutoSpacing(active, coeff);
163}

◆ setPaintOpAngle()

void KisBrushBasedPaintOpSettings::setPaintOpAngle ( qreal value)
overridevirtual

Set paintop angle (in degrees) directly in the properties. Increasing the angle corresponds to a counter-clockwise rotation.

Implements KisPaintOpSettings.

Definition at line 192 of file kis_brush_based_paintop_settings.cpp.

193{
194 BrushWriter w(this);
195 if (!w.brush()) return;
196
199 w.brush()->setAngle(value);
200}
std::enable_if< std::is_floating_point< T >::value, T >::type normalizeAngleDegrees(T a)
Definition kis_global.h:132
T kisDegreesToRadians(T degrees)
Definition kis_global.h:176

References kisDegreesToRadians(), normalizeAngleDegrees(), and value().

◆ setPaintOpSize()

void KisBrushBasedPaintOpSettings::setPaintOpSize ( qreal value)
overridevirtual

Set paintop size directly in the properties

Implements KisPaintOpSettings.

Definition at line 178 of file kis_brush_based_paintop_settings.cpp.

179{
180 BrushWriter w(this);
181 if (!w.brush()) return;
182
183 w.brush()->setUserEffectiveSize(value);
184}

References value().

◆ setResourceCacheInterface()

void KisBrushBasedPaintOpSettings::setResourceCacheInterface ( KoResourceCacheInterfaceSP cacheInterface)
overridevirtual

Reimplemented from KisPaintOpSettings.

Definition at line 346 of file kis_brush_based_paintop_settings.cpp.

347{
348 m_savedBrush.clear();
349
350 QVariant brush = cacheInterface ? cacheInterface->fetch("settings/brush") : QVariant();
351
352 if (brush.isValid()) {
353 KisBrushSP brushPointer = brush.value<KisBrushSP>();
354 KIS_SAFE_ASSERT_RECOVER_NOOP(brushPointer);
355
356 if (brushPointer) {
357 m_savedBrush = brushPointer->clone().dynamicCast<KisBrush>();
358 }
359 }
360
362}
#define KIS_SAFE_ASSERT_RECOVER_NOOP(cond)
Definition kis_assert.h:130

References brush(), KIS_SAFE_ASSERT_RECOVER_NOOP, and m_savedBrush.

◆ setSpacing()

void KisBrushBasedPaintOpSettings::setSpacing ( qreal spacing)

Definition at line 145 of file kis_brush_based_paintop_settings.cpp.

146{
147 BrushWriter w(this);
148 if (!w.brush()) return;
149 w.brush()->setSpacing(value);
150}

References value().

◆ spacing()

qreal KisBrushBasedPaintOpSettings::spacing ( )

Definition at line 152 of file kis_brush_based_paintop_settings.cpp.

153{
155 return this->brush()->spacing();
156}

References brush(), and KIS_SAFE_ASSERT_RECOVER_RETURN_VALUE.

◆ uniformProperties()

QList< KisUniformPaintOpPropertySP > KisBrushBasedPaintOpSettings::uniformProperties ( KisPaintOpSettingsSP settings,
QPointer< KisPaintOpPresetUpdateProxy > updateProxy )
overridevirtual

Reimplemented from KisPaintOpSettings.

Reimplemented in KisColorSmudgeOpSettings, KisBrushOpSettings, KisDuplicateOpSettings, and KisHatchingPaintOpSettings.

Definition at line 214 of file kis_brush_based_paintop_settings.cpp.

215{
218
219 if (props.isEmpty()) {
220 {
222 new KisIntSliderBasedPaintOpPropertyCallback(KisIntSliderBasedPaintOpPropertyCallback::Int,
223 KisIntSliderBasedPaintOpPropertyCallback::SubType_Angle,
224 KoID("angle", i18n("Angle")),
225 settings,
226 0);
227
228 prop->setRange(0, 360);
229
230 prop->setReadCallback(
231 [](KisUniformPaintOpProperty *prop) {
233 dynamic_cast<KisBrushBasedPaintOpSettings*>(prop->settings().data());
234
235 prop->setValue(s->paintOpAngle());
236 });
237 prop->setWriteCallback(
238 [](KisUniformPaintOpProperty *prop) {
240 dynamic_cast<KisBrushBasedPaintOpSettings*>(prop->settings().data());
241
242 s->setPaintOpAngle(prop->value().toReal());
243 });
244
245 QObject::connect(updateProxy, SIGNAL(sigSettingsChanged()), prop, SLOT(requestReadValue()));
246 prop->requestReadValue();
247 props << toQShared(prop);
248 }
249 {
251 new KisUniformPaintOpPropertyCallback(KisUniformPaintOpPropertyCallback::Bool, KoID("auto_spacing", i18n("Auto Spacing")), settings, 0);
252
253 prop->setReadCallback(
254 [](KisUniformPaintOpProperty *prop) {
256 dynamic_cast<KisBrushBasedPaintOpSettings*>(prop->settings().data());
257
258 prop->setValue(s->autoSpacingActive());
259 });
260 prop->setWriteCallback(
261 [](KisUniformPaintOpProperty *prop) {
263 dynamic_cast<KisBrushBasedPaintOpSettings*>(prop->settings().data());
264
265 s->setAutoSpacing(prop->value().toBool(), s->autoSpacingCoeff());
266 });
267
268 QObject::connect(updateProxy, SIGNAL(sigSettingsChanged()), prop, SLOT(requestReadValue()));
269 prop->requestReadValue();
270 props << toQShared(prop);
271 }
272
273 {
275 new KisDoubleSliderBasedPaintOpPropertyCallback(KisDoubleSliderBasedPaintOpPropertyCallback::Double,
276 KoID("spacing", i18n("Spacing")),
277 settings,
278 0);
279
280 prop->setRange(0.01, 10);
281 prop->setSingleStep(0.01);
282 prop->setExponentRatio(3.0);
283
284
285 prop->setReadCallback(
286 [](KisUniformPaintOpProperty *prop) {
288 dynamic_cast<KisBrushBasedPaintOpSettings*>(prop->settings().data());
289 if (s) {
290 const qreal value = s->autoSpacingActive() ?
291 s->autoSpacingCoeff() : s->spacing();
292 prop->setValue(value);
293 }
294 });
295 prop->setWriteCallback(
296 [](KisUniformPaintOpProperty *prop) {
298 dynamic_cast<KisBrushBasedPaintOpSettings*>(prop->settings().data());
299 if (s) {
300 if (s->autoSpacingActive()) {
301 s->setAutoSpacing(true, prop->value().toReal());
302 } else {
303 s->setSpacing(prop->value().toReal());
304 }
305 }
306 });
307
308 QObject::connect(updateProxy, SIGNAL(sigSettingsChanged()), prop, SLOT(requestReadValue()));
309 prop->requestReadValue();
310 props << toQShared(prop);
311 }
312 }
313
314 return KisPaintOpSettings::uniformProperties(settings, updateProxy) + props;
315}
QList< KisUniformPaintOpPropertyWSP > m_uniformProperties
void setAutoSpacing(bool active, qreal coeff)
void setValue(const QVariant &value)
KisPaintOpSettingsSP settings() const
Definition KoID.h:30
QSharedPointer< T > toQShared(T *ptr)
Container< QSharedPointer< T > > listWeakToStrong(const Container< QWeakPointer< T > > &container, bool allOrNothing=true)
KisCallbackBasedPaintopProperty< KisSliderBasedPaintOpProperty< int > > KisIntSliderBasedPaintOpPropertyCallback
KisCallbackBasedPaintopProperty< KisSliderBasedPaintOpProperty< qreal > > KisDoubleSliderBasedPaintOpPropertyCallback
KisCallbackBasedPaintopProperty< KisUniformPaintOpProperty > KisUniformPaintOpPropertyCallback
QList< KisUniformPaintOpPropertyWSP > uniformProperties

References autoSpacingActive(), autoSpacingCoeff(), listWeakToStrong(), m_uniformProperties, paintOpAngle(), setAutoSpacing(), setPaintOpAngle(), KisCallbackBasedPaintopProperty< ParentClass >::setReadCallback(), setSpacing(), KisCallbackBasedPaintopProperty< ParentClass >::setWriteCallback(), spacing(), toQShared(), KisPaintOpSettings::uniformProperties, and value().

Member Data Documentation

◆ m_savedBrush

KisBrushSP KisBrushBasedPaintOpSettings::m_savedBrush
mutableprotected

Definition at line 61 of file kis_brush_based_paintop_settings.h.

◆ m_uniformProperties

QList<KisUniformPaintOpPropertyWSP> KisBrushBasedPaintOpSettings::m_uniformProperties
protected

Definition at line 62 of file kis_brush_based_paintop_settings.h.


The documentation for this class was generated from the following files: