Krita Source Code Documentation
Loading...
Searching...
No Matches
MyPaintPaintOpSettingsWidget.cpp
Go to the documentation of this file.
1
/*
2
* SPDX-FileCopyrightText: 2020 Ashwin Dhakaita <ashwingpdhakaita@gmail.com>
3
* SPDX-FileCopyrightText: 2021 L. E. Segovia <amy@amyspark.me>
4
*
5
* SPDX-License-Identifier: GPL-2.0-or-later
6
*/
7
#include "
MyPaintPaintOpSettingsWidget.h
"
8
9
#include <klocalizedstring.h>
10
11
#include "
MyPaintPaintOpSettings.h
"
12
#include <
KisAirbrushOptionWidget.h
>
13
#include <
KisPaintOpOptionWidgetUtils.h
>
14
15
#include <
MyPaintCurveOptionData.h
>
16
#include <
MyPaintCurveOptionWidget.h
>
17
#include <
MyPaintBasicOptionWidget.h
>
18
#include <
MyPaintStandardOptionData.h
>
19
20
#include <
kis_paintop_lod_limitations.h
>
21
22
namespace
KisPaintOpOptionWidgetUtils
{
23
24
template
<
typename
Data>
25
MyPaintCurveOptionWidget
*
createMyPaintCurveOptionWidget
(Data data,
const
QString &yValueSuffix =
""
)
26
{
27
const
qreal yLimit = qAbs(data.strengthMaxValue - data.strengthMinValue);
28
return
createOptionWidget<MyPaintCurveOptionWidget>(std::move(data), yLimit, yValueSuffix);
29
}
30
31
template
<
typename
Data>
32
MyPaintCurveOptionWidget
*
createMyPaintCurveOptionWidgetWithLodLimitations
(Data data,
const
QString &yValueSuffix =
""
)
33
{
34
const
qreal yLimit = qAbs(data.strengthMaxValue - data.strengthMinValue);
35
return
createOptionWidgetWithLodLimitations<MyPaintCurveOptionWidget>(std::move(data), yLimit, yValueSuffix);
36
}
37
38
}
// namespace KisPaintOpOptionWidgetUtils
39
40
41
KisMyPaintOpSettingsWidget:: KisMyPaintOpSettingsWidget
(QWidget* parent)
42
:
KisPaintOpSettingsWidget
(parent)
43
{
46
47
namespace
kpowu =
KisPaintOpOptionWidgetUtils
;
48
49
m_radiusWidget
=
50
kpowu::createMyPaintCurveOptionWidget(
MyPaintRadiusLogarithmicData
());
51
MyPaintCurveOptionWidget
*hardnessWidget =
52
kpowu::createMyPaintCurveOptionWidget(
MyPaintHardnessData
());
53
MyPaintCurveOptionWidget
*opacityWidget =
54
kpowu::createMyPaintCurveOptionWidget(
MyPaintOpacityData
());
55
56
KisPaintOpSettingsWidget::addPaintOpOption
(
57
kpowu::createOptionWidget<MyPaintBasicOptionWidget>(
MyPaintBasicOptionData
(),
58
m_radiusWidget
->
strengthValueDenorm
(),
59
hardnessWidget->
strengthValueDenorm
(),
60
opacityWidget->
strengthValueDenorm
()));
61
62
addPaintOpOption
(
m_radiusWidget
,
63
BASIC
);
64
addPaintOpOption
(kpowu::createMyPaintCurveOptionWidgetWithLodLimitations(
MyPaintRadiusByRandomData
()),
65
BASIC
);
66
addPaintOpOption
(hardnessWidget,
67
BASIC
);
68
addPaintOpOption
(kpowu::createMyPaintCurveOptionWidget(
MyPaintAntiAliasingData
()),
69
BASIC
);
70
addPaintOpOption
(kpowu::createMyPaintCurveOptionWidget(
MyPaintEllipticalDabAngleData
(),
"°"
),
71
BASIC
);
72
addPaintOpOption
(kpowu::createMyPaintCurveOptionWidget(
MyPaintEllipticalDabRatioData
()),
73
BASIC
);
74
addPaintOpOption
(kpowu::createMyPaintCurveOptionWidget(
MyPaintDirectionFilterData
()),
75
BASIC
);
76
addPaintOpOption
(kpowu::createMyPaintCurveOptionWidget(
MyPaintSnapToPixelsData
()),
77
BASIC
);
78
addPaintOpOption
(kpowu::createMyPaintCurveOptionWidget(
MyPaintPressureGainData
()),
79
BASIC
);
80
81
addPaintOpOption
(kpowu::createOptionWidget<KisAirbrushOptionWidget>(),
82
AIRBRUSH
);
83
84
addPaintOpOption
(kpowu::createMyPaintCurveOptionWidget(
MyPaintChangeColorHData
()),
85
COLOR
);
86
addPaintOpOption
(kpowu::createMyPaintCurveOptionWidget(
MyPaintChangeColorLData
()),
87
COLOR
);
88
addPaintOpOption
(kpowu::createMyPaintCurveOptionWidget(
MyPaintChangeColorVData
()),
89
COLOR
);
90
addPaintOpOption
(kpowu::createMyPaintCurveOptionWidget(
MyPaintChangeColorHSLSData
()),
91
COLOR
);
92
addPaintOpOption
(kpowu::createMyPaintCurveOptionWidget(
MyPaintChangeColorHSVSData
()),
93
COLOR
);
94
addPaintOpOption
(kpowu::createMyPaintCurveOptionWidget(
MyPaintColorizeData
()),
95
COLOR
);
96
addPaintOpOption
(kpowu::createMyPaintCurveOptionWidget(
MyPaintPosterizeData
()),
97
COLOR
);
98
addPaintOpOption
(kpowu::createMyPaintCurveOptionWidget(
MyPaintPosterizationLevelsData
()),
99
COLOR
);
100
101
addPaintOpOption
(kpowu::createMyPaintCurveOptionWidget(
MyPaintFineSpeedGammaData
()),
102
SPEED
);
103
addPaintOpOption
(kpowu::createMyPaintCurveOptionWidget(
MyPaintGrossSpeedGammaData
()),
104
SPEED
);
105
addPaintOpOption
(kpowu::createMyPaintCurveOptionWidget(
MyPaintFineSpeedSlownessData
()),
106
SPEED
);
107
addPaintOpOption
(kpowu::createMyPaintCurveOptionWidget(
MyPaintGrossSpeedSlownessData
()),
108
SPEED
);
109
addPaintOpOption
(kpowu::createMyPaintCurveOptionWidget(
MyPaintOffsetBySpeedData
()),
110
SPEED
);
111
addPaintOpOption
(kpowu::createMyPaintCurveOptionWidget(
MyPaintOffsetBySpeedFilterData
()),
112
SPEED
);
113
addPaintOpOption
(kpowu::createMyPaintCurveOptionWidgetWithLodLimitations(
MyPaintOffsetByRandomData
()),
114
SPEED
);
115
116
addPaintOpOption
(kpowu::createMyPaintCurveOptionWidget(
MyPaintDabsPerBasicRadiusData
()),
117
DABS
);
118
addPaintOpOption
(kpowu::createMyPaintCurveOptionWidget(
MyPaintDabsPerActualRadiusData
()),
119
DABS
);
120
addPaintOpOption
(kpowu::createMyPaintCurveOptionWidget(
MyPaintDabsPerSecondData
()),
121
DABS
);
122
123
addPaintOpOption
(opacityWidget,
124
OPACITY
);
125
addPaintOpOption
(kpowu::createMyPaintCurveOptionWidget(
MyPaintOpaqueLinearizeData
()),
126
OPACITY
);
127
addPaintOpOption
(kpowu::createMyPaintCurveOptionWidget(
MyPaintOpaqueMultiplyData
()),
128
OPACITY
);
129
130
addPaintOpOption
(kpowu::createMyPaintCurveOptionWidget(
MyPaintSlowTrackingPerDabData
()),
131
TRACKING
);
132
addPaintOpOption
(kpowu::createMyPaintCurveOptionWidget(
MyPaintSlowTrackingData
()),
133
TRACKING
);
134
addPaintOpOption
(kpowu::createMyPaintCurveOptionWidget(
MyPaintTrackingNoiseData
()),
135
TRACKING
);
136
137
addPaintOpOption
(kpowu::createMyPaintCurveOptionWidget(
MyPaintSmudgeData
()),
138
SMUDGE
);
139
addPaintOpOption
(kpowu::createMyPaintCurveOptionWidget(
MyPaintSmudgeLengthData
()),
140
SMUDGE
);
141
addPaintOpOption
(kpowu::createMyPaintCurveOptionWidget(
MyPaintSmudgeLengthMultiplierData
()),
142
SMUDGE
);
143
addPaintOpOption
(kpowu::createMyPaintCurveOptionWidget(
MyPaintSmudgeRadiusLogData
()),
144
SMUDGE
);
145
addPaintOpOption
(kpowu::createMyPaintCurveOptionWidget(
MyPaintSmudgeTransparencyData
()),
146
SMUDGE
);
147
addPaintOpOption
(kpowu::createMyPaintCurveOptionWidget(
MyPaintSmudgeBucketData
()),
148
SMUDGE
);
149
150
addPaintOpOption
(kpowu::createMyPaintCurveOptionWidget(
MyPaintStrokeDurationLogData
()),
151
STROKE
);
152
addPaintOpOption
(kpowu::createMyPaintCurveOptionWidget(
MyPaintStrokeHoldtimeData
()),
153
STROKE
);
154
addPaintOpOption
(kpowu::createMyPaintCurveOptionWidget(
MyPaintStrokeThresholdData
()),
155
STROKE
);
156
157
addPaintOpOption
(kpowu::createMyPaintCurveOptionWidget(
MyPaintCustomInputData
()),
158
CUSTOM
);
159
addPaintOpOption
(kpowu::createMyPaintCurveOptionWidget(
MyPaintCustomInputSlownessData
()),
160
CUSTOM
);
161
}
162
163
KisMyPaintOpSettingsWidget::~ KisMyPaintOpSettingsWidget()
164
{
165
}
166
167
KisPropertiesConfigurationSP
KisMyPaintOpSettingsWidget::configuration
()
const
168
{
169
KisMyPaintOpSettings
* config =
new
KisMyPaintOpSettings
(
resourcesInterface
());
170
config->
setProperty
(
"paintop"
,
"mypaintbrush"
);
// XXX: make this a const id string
171
writeConfiguration
(config);
172
return
config;
173
}
174
175
lager::reader<qreal>
KisMyPaintOpSettingsWidget::effectiveBrushSize
()
const
176
{
177
return
m_radiusWidget
->
strengthValueDenorm
().map([] (qreal
value
) {
return
2 * exp(
value
); });
178
}
179
180
void
KisMyPaintOpSettingsWidget::addPaintOpOption
(
KisPaintOpOption
*option,
MyPaintPaintopCategory
id
)
181
{
182
QString category;
183
184
switch
(
id
) {
185
case
BASIC
:
186
category = i18nc(
"Option Category"
,
"Basic"
);
187
break
;
188
case
AIRBRUSH
:
189
category = i18n(
"Airbrush"
);
190
break
;
191
case
COLOR
:
192
category = i18nc(
"Option Category"
,
"Color"
);
193
break
;
194
case
SPEED
:
195
category = i18nc(
"Option Category"
,
"Speed"
);
196
break
;
197
case
DABS
:
198
category = i18nc(
"Option Category"
,
"Dabs"
);
199
break
;
200
case
OPACITY
:
201
category = i18nc(
"Option Category"
,
"Opacity"
);
202
break
;
203
case
TRACKING
:
204
category = i18nc(
"Option Category"
,
"Tracking"
);
205
break
;
206
case
SMUDGE
:
207
category = i18nc(
"Option Category"
,
"Smudge"
);
208
break
;
209
case
STROKE
:
210
category = i18nc(
"Option Category"
,
"Stroke"
);
211
break
;
212
case
CUSTOM
:
213
category = i18nc(
"Option Category"
,
"Custom"
);
214
break
;
215
}
216
217
return
KisPaintOpSettingsWidget::addPaintOpOption
(option, category);
218
}
value
float value(const T *src, size_t ch)
Definition
JPEGXLImport.cpp:93
KisAirbrushOptionWidget.h
KisPaintOpOptionWidgetUtils.h
MyPaintBasicOptionWidget.h
MyPaintCurveOptionData.h
MyPaintCurveOptionWidget.h
MyPaintPaintOpSettingsWidget.h
MyPaintPaintOpSettings.h
MyPaintStandardOptionData.h
KisMyPaintOpSettingsWidget::addPaintOpOption
void addPaintOpOption(KisPaintOpOption *option, MyPaintPaintopCategory id)
Definition
MyPaintPaintOpSettingsWidget.cpp:180
KisMyPaintOpSettingsWidget::effectiveBrushSize
lager::reader< qreal > effectiveBrushSize() const override
Definition
MyPaintPaintOpSettingsWidget.cpp:175
KisMyPaintOpSettingsWidget::configuration
KisPropertiesConfigurationSP configuration() const override
Definition
MyPaintPaintOpSettingsWidget.cpp:167
KisMyPaintOpSettingsWidget::m_radiusWidget
MyPaintCurveOptionWidget * m_radiusWidget
Definition
MyPaintPaintOpSettingsWidget.h:32
KisMyPaintOpSettingsWidget::MyPaintPaintopCategory
MyPaintPaintopCategory
Definition
MyPaintPaintOpSettingsWidget.h:19
KisMyPaintOpSettingsWidget::AIRBRUSH
@ AIRBRUSH
Definition
MyPaintPaintOpSettingsWidget.h:19
KisMyPaintOpSettingsWidget::CUSTOM
@ CUSTOM
Definition
MyPaintPaintOpSettingsWidget.h:19
KisMyPaintOpSettingsWidget::TRACKING
@ TRACKING
Definition
MyPaintPaintOpSettingsWidget.h:19
KisMyPaintOpSettingsWidget::BASIC
@ BASIC
Definition
MyPaintPaintOpSettingsWidget.h:19
KisMyPaintOpSettingsWidget::DABS
@ DABS
Definition
MyPaintPaintOpSettingsWidget.h:19
KisMyPaintOpSettingsWidget::SMUDGE
@ SMUDGE
Definition
MyPaintPaintOpSettingsWidget.h:19
KisMyPaintOpSettingsWidget::STROKE
@ STROKE
Definition
MyPaintPaintOpSettingsWidget.h:19
KisMyPaintOpSettingsWidget::SPEED
@ SPEED
Definition
MyPaintPaintOpSettingsWidget.h:19
KisMyPaintOpSettingsWidget::OPACITY
@ OPACITY
Definition
MyPaintPaintOpSettingsWidget.h:19
KisMyPaintOpSettingsWidget::COLOR
@ COLOR
Definition
MyPaintPaintOpSettingsWidget.h:19
KisMyPaintOpSettingsWidget::KisMyPaintOpSettingsWidget
KisMyPaintOpSettingsWidget(QWidget *parent=0)
Definition
MyPaintPaintOpSettingsWidget.cpp:41
KisMyPaintOpSettings
Definition
MyPaintPaintOpSettings.h:20
KisPaintOpConfigWidget::resourcesInterface
KisResourcesInterfaceSP resourcesInterface() const
Definition
kis_paintop_config_widget.cpp:57
KisPaintOpOption
Definition
kis_paintop_option.h:38
KisPaintOpSettingsWidget
Definition
kis_paintop_settings_widget.h:27
KisPaintOpSettingsWidget::addPaintOpOption
void addPaintOpOption(KisPaintOpOption *option)
Definition
kis_paintop_settings_widget.cpp:95
KisPaintOpSettingsWidget::writeConfiguration
void writeConfiguration(KisPropertiesConfigurationSP config) const override
Reimplemented.
Definition
kis_paintop_settings_widget.cpp:138
KisPinnedSharedPtr< KisPropertiesConfiguration >
MyPaintCurveOptionWidget
Definition
MyPaintCurveOptionWidget.h:14
MyPaintCurveOptionWidget::strengthValueDenorm
lager::cursor< qreal > strengthValueDenorm()
Definition
KisCurveOptionWidget.cpp:251
kis_paintop_lod_limitations.h
KisPaintOpOptionWidgetUtils
Definition
KisPaintOpOptionWidgetUtils.h:17
KisPaintOpOptionWidgetUtils::createMyPaintCurveOptionWidget
MyPaintCurveOptionWidget * createMyPaintCurveOptionWidget(Data data, const QString &yValueSuffix="")
Definition
MyPaintPaintOpSettingsWidget.cpp:25
KisPaintOpOptionWidgetUtils::createMyPaintCurveOptionWidgetWithLodLimitations
MyPaintCurveOptionWidget * createMyPaintCurveOptionWidgetWithLodLimitations(Data data, const QString &yValueSuffix="")
Definition
MyPaintPaintOpSettingsWidget.cpp:32
KisPaintOpSettings::setProperty
void setProperty(const QString &name, const QVariant &value) override
Definition
kis_paintop_settings.cpp:613
MyPaintAntiAliasingData
Definition
MyPaintStandardOptionData.h:46
MyPaintBasicOptionData
Definition
MyPaintBasicOptionData.h:16
MyPaintChangeColorHData
Definition
MyPaintStandardOptionData.h:104
MyPaintChangeColorHSLSData
Definition
MyPaintStandardOptionData.h:131
MyPaintChangeColorHSVSData
Definition
MyPaintStandardOptionData.h:140
MyPaintChangeColorLData
Definition
MyPaintStandardOptionData.h:113
MyPaintChangeColorVData
Definition
MyPaintStandardOptionData.h:122
MyPaintColorizeData
Definition
MyPaintStandardOptionData.h:149
MyPaintCustomInputData
Definition
MyPaintStandardOptionData.h:402
MyPaintCustomInputSlownessData
Definition
MyPaintStandardOptionData.h:411
MyPaintDabsPerActualRadiusData
Definition
MyPaintStandardOptionData.h:257
MyPaintDabsPerBasicRadiusData
Definition
MyPaintStandardOptionData.h:248
MyPaintDabsPerSecondData
Definition
MyPaintStandardOptionData.h:266
MyPaintDirectionFilterData
Definition
MyPaintStandardOptionData.h:75
MyPaintEllipticalDabAngleData
Definition
MyPaintStandardOptionData.h:55
MyPaintEllipticalDabRatioData
Definition
MyPaintStandardOptionData.h:65
MyPaintFineSpeedGammaData
Definition
MyPaintStandardOptionData.h:176
MyPaintFineSpeedSlownessData
Definition
MyPaintStandardOptionData.h:194
MyPaintGrossSpeedGammaData
Definition
MyPaintStandardOptionData.h:185
MyPaintGrossSpeedSlownessData
Definition
MyPaintStandardOptionData.h:203
MyPaintHardnessData
Definition
MyPaintStandardOptionData.h:19
MyPaintOffsetByRandomData
Definition
MyPaintStandardOptionData.h:230
MyPaintOffsetBySpeedData
Definition
MyPaintStandardOptionData.h:212
MyPaintOffsetBySpeedFilterData
Definition
MyPaintStandardOptionData.h:221
MyPaintOpacityData
Definition
MyPaintStandardOptionData.h:24
MyPaintOpaqueLinearizeData
Definition
MyPaintStandardOptionData.h:276
MyPaintOpaqueMultiplyData
Definition
MyPaintStandardOptionData.h:285
MyPaintPosterizationLevelsData
Definition
MyPaintStandardOptionData.h:167
MyPaintPosterizeData
Definition
MyPaintStandardOptionData.h:158
MyPaintPressureGainData
Definition
MyPaintStandardOptionData.h:94
MyPaintRadiusByRandomData
Definition
MyPaintStandardOptionData.h:29
MyPaintRadiusLogarithmicData
Definition
MyPaintStandardOptionData.h:14
MyPaintSlowTrackingData
Definition
MyPaintStandardOptionData.h:303
MyPaintSlowTrackingPerDabData
Definition
MyPaintStandardOptionData.h:294
MyPaintSmudgeBucketData
Definition
MyPaintStandardOptionData.h:357
MyPaintSmudgeData
Definition
MyPaintStandardOptionData.h:321
MyPaintSmudgeLengthData
Definition
MyPaintStandardOptionData.h:330
MyPaintSmudgeLengthMultiplierData
Definition
MyPaintStandardOptionData.h:348
MyPaintSmudgeRadiusLogData
Definition
MyPaintStandardOptionData.h:339
MyPaintSmudgeTransparencyData
Definition
MyPaintStandardOptionData.h:366
MyPaintSnapToPixelsData
Definition
MyPaintStandardOptionData.h:84
MyPaintStrokeDurationLogData
Definition
MyPaintStandardOptionData.h:375
MyPaintStrokeHoldtimeData
Definition
MyPaintStandardOptionData.h:384
MyPaintStrokeThresholdData
Definition
MyPaintStandardOptionData.h:393
MyPaintTrackingNoiseData
Definition
MyPaintStandardOptionData.h:312
plugins
paintops
mypaint
MyPaintPaintOpSettingsWidget.cpp
Generated at
2025-11-04 02:30:02+01:00
from
Krita
branch
master
, commit
c9dde2e79561a8aea4a7e8d9ac99c98a7bac9e52