Krita Source Code Documentation
Loading...
Searching...
No Matches
KisExperimentOpOptionWidget.cpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2022 Agata Cacko <cacko.azh@gmail.com>
3 * SPDX-FileCopyrightText: 2010 Lukáš Tvrdý <lukast.dev@gmail.com>
4 *
5 *
6 * SPDX-License-Identifier: GPL-2.0-or-later
7 */
9
10#include <QButtonGroup>
11
12#include <lager/constant.hpp>
13#include "ui_wdgexperimentoptions.h"
14
16
17namespace {
18
19
20class KisExperimentOpWidget: public QWidget, public Ui::WdgExperimentOptions
21{
22public:
23 KisExperimentOpWidget(QWidget *parent = 0)
24 : QWidget(parent) {
25 setupUi(this);
26
27 speed->setRange(0.0, 100.0, 0);
28 speed->setSuffix(QStringLiteral("%"));
29 speed->setValue(42.0);
30 speed->setSingleStep(1.0);
31
32 smoothThreshold->setRange(0.0, 100.0, 0);
33 smoothThreshold->setSuffix(i18n(" px"));
34 smoothThreshold->setValue(20.0);
35 smoothThreshold->setSingleStep(1.0);
36
37 displaceStrength->setRange(0.0, 100.0, 0);
38 displaceStrength->setSuffix(QStringLiteral("%"));
39 displaceStrength->setValue(42.0);
40 displaceStrength->setSingleStep(1.0);
41 }
42};
43
44
45}
46
47
49{
50 Private(lager::cursor<KisExperimentOpOptionData> optionData)
51 : model(optionData)
52 {
53 }
54
56};
57
58
59KisExperimentOpOptionWidget::KisExperimentOpOptionWidget(lager::cursor<KisExperimentOpOptionData> optionData)
60 : KisPaintOpOption(i18n("Experiment Option"), KisPaintOpOption::GENERAL, true)
61 , m_d(new Private(optionData))
62{
63
64 KisExperimentOpWidget *widget = new KisExperimentOpWidget();
65 setObjectName("KisExperimentOpOption");
66
67 m_checkable = false;
68
69 using namespace KisWidgetConnectionUtils;
70 connectControl(widget->displaceCHBox, &m_d->model, "isDisplacementEnabled");
71 connectControl(widget->displaceStrength, &m_d->model, "displacement");
72
73 connectControl(widget->speedCHBox, &m_d->model, "isSpeedEnabled");
74 connectControl(widget->speed, &m_d->model, "speed");
75 connectControl(widget->smoothCHBox, &m_d->model, "isSmoothingEnabled");
76 connectControl(widget->smoothThreshold, &m_d->model, "smoothing");
77
78 connectControl(widget->windingFillCHBox, &m_d->model, "windingFill");
79 connectControl(widget->hardEdgeCHBox, &m_d->model, "hardEdge");
80
81 QButtonGroup *group = new QButtonGroup(widget);
82 group->addButton(widget->patternButton, static_cast<int>(ExperimentFillType::Pattern));
83 group->addButton(widget->solidColorButton, static_cast<int>(ExperimentFillType::SolidColor));
84 group->setExclusive(true);
85
86 connectControl(group, &m_d->model, "fillType");
87
88 m_d->model.optionData.bind(std::bind(&KisExperimentOpOptionWidget::emitSettingChanged, this));
89
91}
92
96
98{
99 KisExperimentOpOptionData data = *m_d->model.optionData;
100 data.write(setting.data());
101}
102
104{
105 KisExperimentOpOptionData data = *m_d->model.optionData;
106 data.read(setting.data());
107 m_d->model.optionData.set(data);
108}
void writeOptionSetting(KisPropertiesConfigurationSP setting) const override
const QScopedPointer< Private > m_d
void readOptionSetting(const KisPropertiesConfigurationSP setting) override
KisExperimentOpOptionWidget(lager::cursor< KisExperimentOpOptionData > optionData)
void setConfigurationPage(QWidget *page)
ChildIterator< value_type, is_const > parent(const ChildIterator< value_type, is_const > &it)
Definition KisForest.h:327
@ GENERAL
Definition nugrid.h:26
bool read(const KisPropertiesConfiguration *setting)
void write(KisPropertiesConfiguration *setting) const
Private(lager::cursor< KisExperimentOpOptionData > optionData)