Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_colorsmudgeop_settings_widget.cpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2011 Silvio Heinrich <plassy@web.de>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
10
14#include "kis_signals_blocker.h"
21#include <KisSizeOptionWidget.h>
30#include <KisZug.h>
31
32
43
47 parent)
48 , m_d(new Private(brushOptionWidget()->bakedBrushData(), resourcesInterface))
49{
51 namespace kpowu = KisPaintOpOptionWidgetUtils;
52
53 setObjectName("brush option widget");
54
55 addPaintOpOption(kpowu::createOptionWidget<KisCompositeOpOptionWidget>());
56 addPaintOpOption(kpowu::createOpacityOptionWidget());
57 addPaintOpOption(kpowu::createOptionWidget<KisSizeOptionWidget>());
58 addPaintOpOption(kpowu::createRatioOptionWidget());
59 addPaintOpOption(kpowu::createOptionWidget<KisSpacingOptionWidget>());
60 addPaintOpOption(kpowu::createOptionWidget<KisMirrorOptionWidget>());
61
62
63 KisSmudgeLengthOptionWidget *smudgeLengthWidget =
64 kpowu::createOptionWidget<KisSmudgeLengthOptionWidget>
66 m_d->brushPropertiesModel.isBrushPierced,
67 m_d->brushPropertiesModel.brushApplication
68 .xform(kiszug::map_greater<int>(ALPHAMASK)));
69
70 addPaintOpOption(smudgeLengthWidget);
71
72 lager::reader<std::tuple<qreal, qreal>> rangeReader =
73 smudgeLengthWidget->useNewEngine()
74 .map([] (bool useNewEngine) {
75 return std::make_tuple(0.0,
76 useNewEngine ? 1.0 : 3.0);
77 });
78
79 KisCurveOptionWidget *smudgeRadiusWidget =
80 kpowu::createCurveOptionWidget(KisSmudgeRadiusOptionData(),
82 lager::make_constant(true),
83 rangeReader);
84
85 addPaintOpOption(smudgeRadiusWidget);
86
87 addPaintOpOption(kpowu::createCurveOptionWidget(KisColorRateOptionData(), KisPaintOpOption::GENERAL));
88
89 addPaintOpOption(kpowu::createOptionWidget<KisPaintThicknessOptionWidget>(KisPaintThicknessOptionData(), brushOptionWidget()->lightnessModeEnabled()));
90
91 addPaintOpOption(kpowu::createRotationOptionWidget());
92 addPaintOpOption(kpowu::createOptionWidget<KisScatterOptionWidget>());
93
94 addPaintOpOption(kpowu::createOptionWidget<KisSmudgeOverlayModeOptionWidget>(
97 lightnessModeEnabled()
98 .map(std::logical_not{})));
99
100 addPaintOpOption(kpowu::createCurveOptionWidget(KisGradientOptionData(), KisPaintOpOption::GENERAL));
101
102 addPaintOpOption(kpowu::createHueOptionWidget());
103 addPaintOpOption(kpowu::createSaturationOptionWidget());
104 addPaintOpOption(kpowu::createValueOptionWidget());
105
106 addPaintOpOption(kpowu::createOptionWidget<KisAirbrushOptionWidget>());
107 addPaintOpOption(kpowu::createRateOptionWidget());
108
109 addPaintOpOption(kpowu::createOptionWidget<KisTextureOptionWidget>(KisTextureOptionData(), resourcesInterface));
110 addPaintOpOption(kpowu::createCurveOptionWidget(KisStrengthOptionData(), KisPaintOpOption::COLOR, i18n("Weak"), i18n("Strong")));
111}
112
114
116{
118 config->setProperty("paintop", "colorsmudge");
119 writeConfiguration(config);
120 return config;
121}
KisColorSmudgeOpSettingsWidget(QWidget *parent, KisResourcesInterfaceSP resourcesInterface, KoCanvasResourcesInterfaceSP canvasResourcesInterface)
KisPropertiesConfigurationSP configuration() const override
virtual KoCanvasResourcesInterfaceSP canvasResourcesInterface() const
KisResourcesInterfaceSP resourcesInterface() const
void addPaintOpOption(KisPaintOpOption *option)
void writeConfiguration(KisPropertiesConfigurationSP config) const override
Reimplemented.
lager::reader< bool > useNewEngine() const
@ ALPHAMASK
Definition kis_brush.h:39
Private(lager::reader< KisBrushModel::BrushData > brushData, KisResourcesInterfaceSP resourcesInterface)