Krita Source Code Documentation
Loading...
Searching...
No Matches
KisHairyInkOptionWidget.cpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2008-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_wdgInkOptions.h"
10
14
15namespace {
16
17class KisInkOptionsWidget: public QWidget, public Ui::WdgInkOptions
18{
19public:
20 KisInkOptionsWidget(QWidget *parent = 0)
21 : QWidget(parent) {
22 setupUi(this);
23
24 pressureSlider->setRange(0, 100, 0);
25 KisSpinBoxI18nHelper::setText(pressureSlider, i18nc("{n} is the number value, % is the percent sign", "{n}%"));
26
27 bristleLengthSlider->setRange(0, 100, 0);
28 KisSpinBoxI18nHelper::setText(bristleLengthSlider,
29 i18nc("{n} is the number value, % is the percent sign", "{n}%"));
30
31 bristleInkAmountSlider->setRange(0, 100, 0);
32 KisSpinBoxI18nHelper::setText(bristleInkAmountSlider,
33 i18nc("{n} is the number value, % is the percent sign", "{n}%"));
34
35 inkDepletionSlider->setRange(0, 100, 0);
36 KisSpinBoxI18nHelper::setText(inkDepletionSlider,
37 i18nc("{n} is the number value, % is the percent sign", "{n}%"));
38 }
39};
40
41}
42
43
45{
46 Private(lager::cursor<KisHairyInkOptionData> optionData)
47 : model(optionData)
48 {
49 }
50
52};
53
54KisHairyInkOptionWidget::KisHairyInkOptionWidget(lager::cursor<KisHairyInkOptionData> optionData)
55 : KisPaintOpOption(i18n("Ink depletion"), KisPaintOpOption::COLOR, optionData[&KisHairyInkOptionData::inkDepletionEnabled])
56 , m_d(new Private(optionData))
57{
58 KisInkOptionsWidget *widget = new KisInkOptionsWidget();
59 setObjectName("KisHairyInkOption");
60
61 using namespace KisWidgetConnectionUtils;
62
63 connectControl(widget->inkAmountSpinBox, &m_d->model, "inkAmount");
64 connectControl(widget->saturationCBox, &m_d->model, "useSaturation");
65 connectControl(widget->opacityCBox, &m_d->model, "useOpacity");
66 connectControl(widget->useWeightCHBox, &m_d->model, "useWeights");
67 connectControl(widget->pressureSlider, &m_d->model, "pressureWeight");
68 connectControl(widget->bristleLengthSlider, &m_d->model, "bristleLengthWeight");
69 connectControl(widget->bristleInkAmountSlider, &m_d->model, "bristleInkAmountWeight");
70 connectControl(widget->inkDepletionSlider, &m_d->model, "inkDepletionWeight");
71 connectControl(widget->inkCurve, &m_d->model, "inkDepletionCurve");
72 connectControl(widget->soakInkCBox, &m_d->model, "useSoakInk");
73
74 m_d->model.optionData.bind(std::bind(&KisHairyInkOptionWidget::emitSettingChanged, this));
75
77}
78
82
84{
85 KisHairyInkOptionData data = *m_d->model.optionData;
86 data.write(setting.data());
87}
88
90{
91 KisHairyInkOptionData data = *m_d->model.optionData;
92 data.read(setting.data());
93 m_d->model.optionData.set(data);
94}
const QScopedPointer< Private > m_d
KisHairyInkOptionWidget(lager::cursor< KisHairyInkOptionData > optionData)
void writeOptionSetting(KisPropertiesConfigurationSP setting) const override
void readOptionSetting(const KisPropertiesConfigurationSP setting) 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)
bool read(const KisPropertiesConfiguration *setting)
void write(KisPropertiesConfiguration *setting) const
Private(lager::cursor< KisHairyInkOptionData > optionData)