Krita Source Code Documentation
Loading...
Searching...
No Matches
KisTangentTiltOptionWidget.cpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2015 Wolthera van Hövell tot Westerflier <griffinvalley@gmail.com>
3 *
4 *
5 * SPDX-License-Identifier: LGPL-2.0-or-later
6 */
8
9#include <QButtonGroup>
10
11#include <lager/constant.hpp>
12#include "ui_wdgtangenttiltoption.h"
13
16
17namespace {
18
19
20class KisTangentTiltWidget: public QWidget, public Ui::WdgTangentTiltOptions
21{
22public:
23 KisTangentTiltWidget(QWidget *parent = 0)
24 : QWidget(parent) {
25 setupUi(this);
26
27 sliderElevationSensitivity->setRange(0, 100, 0);
28 KisSpinBoxI18nHelper::setText(sliderElevationSensitivity,
29 i18nc("{n} is the number value, % is the percent sign", "{n}%"));
30
31 sliderMixValue->setRange(0, 100, 0);
32 KisSpinBoxI18nHelper::setText(sliderMixValue, i18nc("{n} is the number value, % is the percent sign", "{n}%"));
33
34 sliderMixValue->setVisible(false);
35 }
36};
37
38
39}
40
41
43{
44 Private(lager::cursor<KisTangentTiltOptionData> optionData)
45 : model(optionData)
46 {
47 }
48
50};
51
52
53KisTangentTiltOptionWidget::KisTangentTiltOptionWidget(lager::cursor<KisTangentTiltOptionData> optionData)
54 : KisPaintOpOption(i18n("Tangent Tilt"), KisPaintOpOption::GENERAL, true)
55 , m_d(new Private(optionData))
56{
57
58 KisTangentTiltWidget *widget = new KisTangentTiltWidget();
59 setObjectName("KisTangentTiltOption");
60
61 m_checkable = false;
62
63 using namespace KisWidgetConnectionUtils;
64
65 connectControl(widget->comboRed, &m_d->model, "redChannel");
66 connectControl(widget->comboGreen, &m_d->model, "greenChannel");
67 connectControl(widget->comboBlue, &m_d->model, "blueChannel");
68
69 connect(widget->comboRed, SIGNAL(currentIndexChanged(int)), widget->TangentTiltPreview, SLOT(setRedChannel(int)));
70 connect(widget->comboGreen, SIGNAL(currentIndexChanged(int)), widget->TangentTiltPreview, SLOT(setGreenChannel(int)));
71 connect(widget->comboBlue, SIGNAL(currentIndexChanged(int)), widget->TangentTiltPreview, SLOT(setBlueChannel(int)));
72
73 QButtonGroup *group = new QButtonGroup(widget);
74 group->addButton(widget->optionTilt, static_cast<int>(TangentTiltDirectionType::Tilt));
75 group->addButton(widget->optionDirection, static_cast<int>(TangentTiltDirectionType::Direction));
76 group->addButton(widget->optionRotation, static_cast<int>(TangentTiltDirectionType::Rotation));
77 group->addButton(widget->optionMix, static_cast<int>(TangentTiltDirectionType::Mix));
78 group->setExclusive(true);
79 connectControl(group, &m_d->model, "directionType");
80
81 connectControl(widget->sliderElevationSensitivity, &m_d->model, "elevationSensitivity");
82 connectControl(widget->sliderMixValue, &m_d->model, "mixValue");
83
84 m_d->model.optionData.bind(std::bind(&KisTangentTiltOptionWidget::emitSettingChanged, this));
85
87}
88
92
94{
95 KisTangentTiltOptionData data = *m_d->model.optionData;
96 data.write(setting.data());
97}
98
100{
101 KisTangentTiltOptionData data = *m_d->model.optionData;
102 data.read(setting.data());
103 m_d->model.optionData.set(data);
104}
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
void setConfigurationPage(QWidget *page)
const QScopedPointer< Private > m_d
void readOptionSetting(const KisPropertiesConfigurationSP setting) override
KisTangentTiltOptionWidget(lager::cursor< KisTangentTiltOptionData > optionData)
void writeOptionSetting(KisPropertiesConfigurationSP setting) const override
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
bool read(const KisPropertiesConfiguration *setting)
void write(KisPropertiesConfiguration *setting) const
Private(lager::cursor< KisTangentTiltOptionData > optionData)