Krita Source Code Documentation
Loading...
Searching...
No Matches
KisBrushSizeOptionWidget.cpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2009, 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_wdgBrushSizeOptions.h"
10
13
14namespace {
15
16
17class KisBrushSizeOptionsWidget: public QWidget, public Ui::WdgBrushSizeOptions
18{
19public:
20 KisBrushSizeOptionsWidget(QWidget *parent = 0)
21 : QWidget(parent) {
22 setupUi(this);
23
24 diameter->setRange(1.0, 1000, 0);
25 diameter->setExponentRatio(3.0);
26 diameter->setSuffix(i18n(" px"));
27
28 aspectBox->setRange(0.01, 2.0, 2);
29 aspectBox->setSingleStep(0.01);
30 aspectBox->setExponentRatio(1.0);
31
32
33 scale->setRange(0.01, 10.0, 2);
34 scale->setSingleStep(0.01);
35
36 spacing->setRange(0.01, 5.0, 2);
37 spacing->setSingleStep(0.01);
38
39
40 rotationBox->setDecimals(0);
41
42
43 densityBox->setRange(0.0, 100.0, 0);
44 KisSpinBoxI18nHelper::setText(densityBox, i18nc("{n} is the number value, % is the percent sign", "{n}%"));
45
46 jitterMove->setRange(0.0, 5.0, 2);
47 jitterMove->setSingleStep(0.01);
48 }
49};
50
51
52}
53
54
56{
57 Private(lager::cursor<KisBrushSizeOptionData> optionData)
58 : model(optionData)
59 {
60 }
61
63};
64
65
66KisBrushSizeOptionWidget::KisBrushSizeOptionWidget(lager::cursor<KisBrushSizeOptionData> optionData)
67 : KisPaintOpOption(i18n("Brush size"), KisPaintOpOption::GENERAL, true)
68 , m_d(new Private(optionData))
69{
70 KisBrushSizeOptionsWidget *widget = new KisBrushSizeOptionsWidget();
71 setObjectName("KisBrushSizeOption");
72
73 m_checkable = false;
74
75 using namespace KisWidgetConnectionUtils;
76
77 connectControl(widget->diameter, &m_d->model, "brushDiameter");
78 connectControl(widget->scale, &m_d->model, "brushScale");
79 connectControl(widget->aspectBox, &m_d->model, "brushAspect");
80 connectControl(widget->spacing, &m_d->model, "brushSpacing");
81 connectControl(widget->rotationBox, &m_d->model, "brushRotation");
82 connectControl(widget->densityBox, &m_d->model, "brushDensity");
83 connectControl(widget->jitterMove, &m_d->model, "brushJitterMovement");
84 connectControl(widget->jitterMoveBox, &m_d->model, "brushJitterMovementEnabled");
85
86 connect(widget->jitterMoveBox, SIGNAL(toggled(bool)), widget->jitterMove, SLOT(setEnabled(bool)));
87
88 m_d->model.optionData.bind(std::bind(&KisBrushSizeOptionWidget::emitSettingChanged, this));
89
91}
92
96
98{
99 KisBrushSizeOptionData data = *m_d->model.optionData;
100 data.write(setting.data());
101}
102
104{
105 KisBrushSizeOptionData data = *m_d->model.optionData;
106 data.read(setting.data());
107 m_d->model.optionData.set(data);
108}
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
void readOptionSetting(const KisPropertiesConfigurationSP setting) override
KisBrushSizeOptionWidget(lager::cursor< KisBrushSizeOptionData > optionData)
void writeOptionSetting(KisPropertiesConfigurationSP setting) const override
const QScopedPointer< Private > m_d
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
void write(KisPropertiesConfiguration *setting) const
bool read(const KisPropertiesConfiguration *setting)
Private(lager::cursor< KisBrushSizeOptionData > optionData)