Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_colorsmudgeop_settings.cpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2016 Dmitry Kazakov <dimula73@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
8
13
19
23
26#include "kis_paintop_preset.h"
33
35{
37 listWeakToStrong(m_d->uniformProperties);
38
39 if (props.isEmpty()) {
40 {
41 KisComboBasedPaintOpPropertyCallback *prop = new KisComboBasedPaintOpPropertyCallback(KoID("smudge_mode", i18n("Smudge Mode")), settings, 0);
42
43 QList<QString> modes;
44 modes << i18n("Smearing");
45 modes << i18n("Dulling");
46
47 prop->setItems(modes);
48
49 prop->setReadCallback(
52 data.read(prop->settings().data());
53 prop->setValue(int(data.mode));
54 });
55 prop->setWriteCallback(
58 data.read(prop->settings().data());
59 data.mode = KisSmudgeLengthOptionData::Mode(prop->value().toInt());
60 data.write(prop->settings().data());
61 });
62
63 QObject::connect(updateProxy, SIGNAL(sigSettingsChanged()), prop, SLOT(requestReadValue()));
64 prop->requestReadValue();
65 props << toQShared(prop);
66 }
67
68 {
72 "smudge_length",
73 settings, 0);
74
75 QObject::connect(updateProxy, SIGNAL(sigSettingsChanged()), prop, SLOT(requestReadValue()));
76 prop->requestReadValue();
77 props << toQShared(prop);
78 }
79 {
83 "smudge_radius",
84 settings, 0);
85
86 QObject::connect(updateProxy, SIGNAL(sigSettingsChanged()), prop, SLOT(requestReadValue()));
87 prop->requestReadValue();
88 props << toQShared(prop);
89 }
90
91 {
95 "smudge_color_rate",
96 settings, 0);
97
98 QObject::connect(updateProxy, SIGNAL(sigSettingsChanged()), prop, SLOT(requestReadValue()));
99 prop->requestReadValue();
100 props << toQShared(prop);
101 }
102
103 {
105 new KisUniformPaintOpPropertyCallback(KisUniformPaintOpPropertyCallback::Bool, KoID("smudge_smear_alpha", i18n("Smear Alpha")), settings, 0);
106
107 prop->setReadCallback(
108 [](KisUniformPaintOpProperty *prop) {
110 data.read(prop->settings().data());
111
112 prop->setValue(data.smearAlpha);
113 });
114 prop->setWriteCallback(
115 [](KisUniformPaintOpProperty *prop) {
117 data.read(prop->settings().data());
118 data.smearAlpha = prop->value().toBool();
119 data.write(prop->settings().data());
120 });
121
122 QObject::connect(updateProxy, SIGNAL(sigSettingsChanged()), prop, SLOT(requestReadValue()));
123 prop->requestReadValue();
124 props << toQShared(prop);
125 }
126
127 {
131 "smudge_paint_thickness_rate",
132 settings, 0);
133
134 QObject::connect(updateProxy, SIGNAL(sigSettingsChanged()), prop, SLOT(requestReadValue()));
135 prop->requestReadValue();
136 props << toQShared(prop);
137 }
138
139 {
141 new KisComboBasedPaintOpPropertyCallback(KoID("smudge_paint_thickness_mode", i18n("Paint Thickness Mode")), settings, 0);
142
143 QList<QString> modes;
144 modes << i18n("Overwrite");
145 modes << i18n("Paint over");
146
147 prop->setItems(modes);
148
149 prop->setReadCallback(
150 [](KisUniformPaintOpProperty *prop) {
152 data.read(prop->settings().data());
153
154 prop->setValue(int(data.mode) - 1);
155 });
156 prop->setWriteCallback(
157 [](KisUniformPaintOpProperty *prop) {
159 data.read(prop->settings().data());
160 data.mode = KisPaintThicknessOptionData::ThicknessMode(prop->value().toInt() + 1);
161 data.write(prop->settings().data());
162 });
163
164 QObject::connect(updateProxy, SIGNAL(sigSettingsChanged()), prop, SLOT(requestReadValue()));
165 prop->requestReadValue();
166 props << toQShared(prop);
167 }
168 }
169
170 return KisBrushBasedPaintOpSettings::uniformProperties(settings, updateProxy) + props;
171}
172
KisColorSmudgeOpSettings(KisResourcesInterfaceSP resourcesInterface)
const QScopedPointer< Private > m_d
Definition KoID.h:30
KisCallbackBasedPaintopProperty< KisComboBasedPaintOpProperty > KisComboBasedPaintOpPropertyCallback
QSharedPointer< T > toQShared(T *ptr)
Container< QSharedPointer< T > > listWeakToStrong(const Container< QWeakPointer< T > > &container, bool allOrNothing=true)
KisCallbackBasedPaintopProperty< KisUniformPaintOpProperty > KisUniformPaintOpPropertyCallback
QList< KisUniformPaintOpPropertyWSP > uniformProperties
QList< KisUniformPaintOpPropertyWSP > uniformProperties