Krita Source Code Documentation
Loading...
Searching...
No Matches
KisHairyBristleOptionWidget.cpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2010 Lukáš Tvrdý <lukast.dev@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
7
8#include <lager/constant.hpp>
9#include "ui_wdgbristleoptions.h"
10
12
15
16namespace {
17
18
19class KisBristleOptionsWidget: public QWidget, public Ui::WdgBristleOptions
20{
21public:
22 KisBristleOptionsWidget(QWidget *parent = 0)
23 : QWidget(parent) {
24 setupUi(this);
25
26 scaleBox->setRange(-10.0, 10.0, 2);
27 scaleBox->setSingleStep(0.01);
28
29 rndBox->setRange(-10.0, 10.0, 2);
30 rndBox->setSingleStep(0.01);
31
32 shearBox->setRange(-2.0, 2.0, 2);
33 shearBox->setSingleStep(0.01);
34
35 densityBox->setRange(0.0, 100.0, 0);
36 KisSpinBoxI18nHelper::setText(densityBox, i18nc("{n} is the number value, % is the percent sign", "{n}%"));
37 }
38};
39
40
41}
42
43
45{
46 Private(lager::cursor<KisHairyBristleOptionData> optionData)
47 : model(optionData)
48 {
49 }
50
52};
53
54
55KisHairyBristleOptionWidget::KisHairyBristleOptionWidget(lager::cursor<KisHairyBristleOptionData> optionData)
56 : KisPaintOpOption(i18n("Bristle options"), KisPaintOpOption::GENERAL, true)
57 , m_d(new Private(optionData))
58{
59 KisBristleOptionsWidget *widget = new KisBristleOptionsWidget();
60 setObjectName("KisHairyBristleOption");
61
62 m_checkable = false;
63
64 using namespace KisWidgetConnectionUtils;
65
66 connectControl(widget->mousePressureCBox, &m_d->model, "useMousePressure");
67 connectControl(widget->thresholdCBox, &m_d->model, "threshold");
68 connectControl(widget->scaleBox, &m_d->model, "scaleFactor");
69 connectControl(widget->rndBox, &m_d->model, "randomFactor");
70 connectControl(widget->shearBox, &m_d->model, "shearFactor");
71 connectControl(widget->densityBox, &m_d->model, "densityFactor");
72 connectControl(widget->connectedCBox, &m_d->model, "connectedPath");
73 connectControl(widget->antialiasCBox, &m_d->model, "antialias");
74 connectControl(widget->compositingCBox, &m_d->model, "useCompositing");
75
76 m_d->model.optionData.bind(std::bind(&KisHairyBristleOptionWidget::emitSettingChanged, this));
77
79}
80
84
86{
87 KisHairyBristleOptionData data = *m_d->model.optionData;
88 data.write(setting.data());
89}
90
92{
93 KisHairyBristleOptionData data = *m_d->model.optionData;
94 data.read(setting.data());
95 m_d->model.optionData.set(data);
96}
KisHairyBristleOptionWidget(lager::cursor< KisHairyBristleOptionData > optionData)
const QScopedPointer< Private > m_d
void readOptionSetting(const KisPropertiesConfigurationSP setting) override
void writeOptionSetting(KisPropertiesConfigurationSP setting) const override
void setConfigurationPage(QWidget *page)
ChildIterator< value_type, is_const > parent(const ChildIterator< value_type, is_const > &it)
Definition KisForest.h:327
void setText(QSpinBox *spinBox, const QStringView textTemplate)
@ GENERAL
Definition nugrid.h:26
bool read(const KisPropertiesConfiguration *setting)
void write(KisPropertiesConfiguration *setting) const
Private(lager::cursor< KisHairyBristleOptionData > optionData)