Krita Source Code Documentation
Loading...
Searching...
No Matches
KisDeformOptionWidget.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 <QButtonGroup>
9
10#include <lager/constant.hpp>
11#include "ui_wdgdeformoptions.h"
12
14
15namespace {
16
17
18class KisDeformOptionsWidget: public QWidget, public Ui::WdgDeformOptions
19{
20public:
21 KisDeformOptionsWidget(QWidget *parent = 0)
22 : QWidget(parent) {
23 setupUi(this);
24
25 deformAmount->setRange(0.0, 1.0, 2);
26 deformAmount->setSingleStep(0.01);
27 }
28};
29
30
31}
32
33
35{
36 Private(lager::cursor<KisDeformOptionData> optionData)
37 : model(optionData)
38 {
39 }
40
42};
43
44
45KisDeformOptionWidget::KisDeformOptionWidget(lager::cursor<KisDeformOptionData> optionData)
46 : KisPaintOpOption(i18n("Deform Options"), KisPaintOpOption::COLOR, true)
47 , m_d(new Private(optionData))
48{
49 KisDeformOptionsWidget *widget = new KisDeformOptionsWidget();
50 setObjectName("KisDeformOption");
51
52 m_checkable = false;
53
54 using namespace KisWidgetConnectionUtils;
55
56 connectControl(widget->deformAmount, &m_d->model, "deformAmount");
57 connectControl(widget->interpolationChBox, &m_d->model, "deformUseBilinear");
58 connectControl(widget->useCounter, &m_d->model, "deformUseCounter");
59 connectControl(widget->useOldData, &m_d->model, "deformUseOldData");
60
61 QButtonGroup *group = new QButtonGroup(widget);
62 group->addButton(widget->growBtn, static_cast<int>(DeformModes::GROW));
63 group->addButton(widget->shrinkBtn, static_cast<int>(DeformModes::SHRINK));
64 group->addButton(widget->swirlCWBtn, static_cast<int>(DeformModes::SWIRL_CW));
65 group->addButton(widget->swirlCCWBtn, static_cast<int>(DeformModes::SWIRL_CCW));
66 group->addButton(widget->moveBtn, static_cast<int>(DeformModes::MOVE));
67 group->addButton(widget->lensBtn, static_cast<int>(DeformModes::LENS_IN));
68 group->addButton(widget->lensOutBtn, static_cast<int>(DeformModes::LENS_OUT));
69 group->addButton(widget->colorBtn, static_cast<int>(DeformModes::DEFORM_COLOR));
70 group->setExclusive(true);
71 connectControl(group, &m_d->model, "deformAction");
72
73 m_d->model.optionData.bind(std::bind(&KisDeformOptionWidget::emitSettingChanged, this));
74
76}
77
81
83{
84 KisDeformOptionData data = *m_d->model.optionData;
85 data.write(setting.data());
86}
87
89{
90 KisDeformOptionData data = *m_d->model.optionData;
91 data.read(setting.data());
92 m_d->model.optionData.set(data);
93}
@ DEFORM_COLOR
@ SWIRL_CCW
void writeOptionSetting(KisPropertiesConfigurationSP setting) const override
void readOptionSetting(const KisPropertiesConfigurationSP setting) override
const QScopedPointer< Private > m_d
KisDeformOptionWidget(lager::cursor< KisDeformOptionData > optionData)
void setConfigurationPage(QWidget *page)
ChildIterator< value_type, is_const > parent(const ChildIterator< value_type, is_const > &it)
Definition KisForest.h:327
bool read(const KisPropertiesConfiguration *setting)
void write(KisPropertiesConfiguration *setting) const
Private(lager::cursor< KisDeformOptionData > optionData)