Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_curve_paintop_settings.cpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2008, 2009 Lukáš Tvrdý <lukast.dev@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
9
14
16 : KisPaintOpSettings(resourcesInterface),
17 m_d(new Private)
18{
19}
20
24
26{
28 option.read(this);
29 option.curve_line_width = value;
30 option.write(this);
31}
32
34{
36 option.read(this);
37 return option.curve_line_width;
38}
39
41{
42 Q_UNUSED(value);
43}
44
46{
47 return 0.0;
48}
49
56
57
59#include "kis_paintop_preset.h"
62
63
65{
67 listWeakToStrong(m_d->uniformProperties);
68
69 if (props.isEmpty()) {
70 {
71 KisIntSliderBasedPaintOpPropertyCallback *prop = new KisIntSliderBasedPaintOpPropertyCallback(KisIntSliderBasedPaintOpPropertyCallback::Int,
72 KoID("curve_linewidth", i18n("Line Width")),
73 settings,
74 0);
75
76 prop->setRange(1, 100);
77 prop->setSingleStep(1);
78 prop->setSuffix(i18n(" px"));
79
80 prop->setReadCallback(
83 option.read(prop->settings().data());
84
85 prop->setValue(option.curve_line_width);
86 });
87 prop->setWriteCallback(
90 option.read(prop->settings().data());
91 option.curve_line_width = prop->value().toInt();
92 option.write(prop->settings().data());
93 });
94
95 QObject::connect(updateProxy, SIGNAL(sigSettingsChanged()), prop, SLOT(requestReadValue()));
96 prop->requestReadValue();
97 props << toQShared(prop);
98 }
99 {
100 KisIntSliderBasedPaintOpPropertyCallback *prop = new KisIntSliderBasedPaintOpPropertyCallback(KisIntSliderBasedPaintOpPropertyCallback::Int,
101 KoID("curve_historysize", i18n("History Size")),
102 settings,
103 0);
104
105 prop->setRange(2, 300);
106 prop->setSingleStep(1);
107
108 prop->setReadCallback(
109 [](KisUniformPaintOpProperty *prop) {
111 option.read(prop->settings().data());
112
113 prop->setValue(option.curve_stroke_history_size);
114 });
115 prop->setWriteCallback(
116 [](KisUniformPaintOpProperty *prop) {
118 option.read(prop->settings().data());
119 option.curve_stroke_history_size = prop->value().toInt();
120 option.write(prop->settings().data());
121 });
122 QObject::connect(updateProxy, SIGNAL(sigSettingsChanged()), prop, SLOT(requestReadValue()));
123 prop->requestReadValue();
124 props << toQShared(prop);
125 }
126
127 {
129 new KisDoubleSliderBasedPaintOpPropertyCallback(KisDoubleSliderBasedPaintOpPropertyCallback::Double,
130 KoID("curve_lineopacity", i18n("Line Opacity")),
131 settings,
132 0);
133
134 prop->setRange(0, 100.0);
135 prop->setSingleStep(0.01);
136 prop->setDecimals(2);
137 prop->setSuffix(i18n("%"));
138
139 prop->setReadCallback(
140 [](KisUniformPaintOpProperty *prop) {
142 option.read(prop->settings().data());
143 prop->setValue(option.curve_curves_opacity * 100.0);
144 });
145 prop->setWriteCallback(
146 [](KisUniformPaintOpProperty *prop) {
148 option.read(prop->settings().data());
149 option.curve_curves_opacity = prop->value().toReal() / 100.0;
150 option.write(prop->settings().data());
151 });
152
153 QObject::connect(updateProxy, SIGNAL(sigSettingsChanged()), prop, SLOT(requestReadValue()));
154 prop->requestReadValue();
155 props << toQShared(prop);
156 }
157
158 {
159 KisUniformPaintOpPropertyCallback *prop = new KisUniformPaintOpPropertyCallback(KisUniformPaintOpPropertyCallback::Bool,
160 KoID("curve_connectionline", i18n("Connection Line")),
161 settings,
162 0);
163
164 prop->setReadCallback(
165 [](KisUniformPaintOpProperty *prop) {
167 option.read(prop->settings().data());
168
169 prop->setValue(option.curve_paint_connection_line);
170 });
171 prop->setWriteCallback(
172 [](KisUniformPaintOpProperty *prop) {
174 option.read(prop->settings().data());
175 option.curve_paint_connection_line = prop->value().toBool();
176 option.write(prop->settings().data());
177 });
178
179 QObject::connect(updateProxy, SIGNAL(sigSettingsChanged()), prop, SLOT(requestReadValue()));
180 prop->requestReadValue();
181 props << toQShared(prop);
182 }
183 }
184
185 {
187
188 Q_FOREACH (KisUniformPaintOpPropertySP prop, KisPaintOpSettings::uniformProperties(settings, updateProxy)) {
189 if (prop->id() == opacity.id()) {
190 props.prepend(prop);
191 }
192 }
193 }
194
195 return props;
196}
float value(const T *src, size_t ch)
void setPaintOpAngle(qreal value) override
void setPaintOpSize(qreal value) override
const QScopedPointer< Private > m_d
KisCurvePaintOpSettings(KisResourcesInterfaceSP resourcesInterface)
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
void write(KisPropertiesConfiguration *setting) const
bool read(const KisPropertiesConfiguration *setting)
QList< KisUniformPaintOpPropertyWSP > uniformProperties
QList< KisUniformPaintOpPropertyWSP > uniformProperties
bool read(const KisPropertiesConfiguration *setting)