Krita Source Code Documentation
Loading...
Searching...
No Matches
KisParticleOpOptionWidget.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_wdgparticleoptions.h"
10
12
13namespace {
14
15
16class KisParticleOpWidget: public QWidget, public Ui::WdgParticleOptions
17{
18public:
19 KisParticleOpWidget(QWidget *parent = 0)
20 : QWidget(parent) {
21 setupUi(this);
22
23 gravSPBox->setRange(-1.0, 1.0, 3);
24 gravSPBox->setSingleStep(0.001);
25
26 dySPBox->setRange(-10.0, 10.0, 2);
27 dySPBox->setSingleStep(0.01);
28
29 dxSPBox->setRange(-10.0, 10.0, 2);
30 dxSPBox->setSingleStep(0.01);
31
32 weightSPBox->setRange(0.01, 1.0, 2);
33 weightSPBox->setSingleStep(0.01);
34
35 particleSpinBox->setRange(1, 500, 0);
36 particleSpinBox->setExponentRatio(3.0);
37
38 itersSPBox->setRange(1, 200, 0);
39 }
40};
41
42
43}
44
45
47{
48 Private(lager::cursor<KisParticleOpOptionData> optionData)
49 : model(optionData)
50 {
51 }
52
54};
55
56
57KisParticleOpOptionWidget::KisParticleOpOptionWidget(lager::cursor<KisParticleOpOptionData> optionData)
58 : KisPaintOpOption(i18n("Brush size"), KisPaintOpOption::GENERAL, true)
59 , m_d(new Private(optionData))
60{
61 KisParticleOpWidget *widget = new KisParticleOpWidget();
62 setObjectName("KisParticleOpOption");
63
64 m_checkable = false;
65
66 using namespace KisWidgetConnectionUtils;
67
68 connectControl(widget->particleSpinBox, &m_d->model, "particleCount");
69 connectControl(widget->itersSPBox, &m_d->model, "particleIterations");
70 connectControl(widget->gravSPBox, &m_d->model, "particleGravity");
71 connectControl(widget->weightSPBox, &m_d->model, "particleWeight");
72 connectControl(widget->dxSPBox, &m_d->model, "particleScaleX");
73 connectControl(widget->dySPBox, &m_d->model, "particleScaleY");
74
75 m_d->model.optionData.bind(std::bind(&KisParticleOpOptionWidget::emitSettingChanged, this));
76
78}
79
83
85{
86 KisParticleOpOptionData data = *m_d->model.optionData;
87 data.write(setting.data());
88}
89
91{
92 KisParticleOpOptionData data = *m_d->model.optionData;
93 data.read(setting.data());
94 m_d->model.optionData.set(data);
95}
void setConfigurationPage(QWidget *page)
void writeOptionSetting(KisPropertiesConfigurationSP setting) const override
KisParticleOpOptionWidget(lager::cursor< KisParticleOpOptionData > optionData)
void readOptionSetting(const KisPropertiesConfigurationSP setting) override
const QScopedPointer< Private > m_d
ChildIterator< value_type, is_const > parent(const ChildIterator< value_type, is_const > &it)
Definition KisForest.h:327
@ GENERAL
Definition nugrid.h:26
void write(KisPropertiesConfiguration *setting) const
bool read(const KisPropertiesConfiguration *setting)
Private(lager::cursor< KisParticleOpOptionData > optionData)