Krita Source Code Documentation
Loading...
Searching...
No Matches
KisScatterOptionWidget.cpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2022 Dmitry Kazakov <dimula73@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
7
8#include <KisLager.h>
9
10#include <QWidget>
11#include <QLabel>
12#include <QCheckBox>
13#include <QHBoxLayout>
14#include <QVBoxLayout>
15
18
19
21{
22 Private(lager::cursor<KisScatterOptionData> optionData)
23 : model(optionData.zoom(
24 kislager::lenses::to_base<KisScatterOptionMixIn>)
25 )
26 {
27 }
28
30};
31
32KisScatterOptionWidget::KisScatterOptionWidget(lager::cursor<KisScatterOptionData> optionData)
34{
35}
36
37KisScatterOptionWidget::KisScatterOptionWidget(lager::cursor<KisScatterOptionData> optionData, PaintopCategory categoryOverride)
38 : KisCurveOptionWidget(optionData.zoom(kislager::lenses::to_base<KisCurveOptionDataCommon>), categoryOverride)
39 , m_d(new Private(optionData))
40{
41 using namespace KisWidgetConnectionUtils;
42
43 QWidget *page = new QWidget;
44
45 QCheckBox *axisX = new QCheckBox(i18n("Axis X"), page);
46 QCheckBox *axisY = new QCheckBox(i18n("Axis Y"), page);
47 QLabel* scatterLbl = new QLabel(i18n("Scatter amount"), page);
48
49 QHBoxLayout *hl = new QHBoxLayout;
50 hl->addWidget(scatterLbl);
51 hl->addWidget(axisX);
52 hl->addWidget(axisY);
53
54 QVBoxLayout *pageLayout = new QVBoxLayout(page);
55 pageLayout->setContentsMargins(0, 0, 0, 0);
56 pageLayout->addLayout(hl);
57 pageLayout->addWidget(configurationPage());
58
60
61 connectControl(axisX, &m_d->model, "axisX");
62 connectControl(axisY, &m_d->model, "axisY");
63
64 m_d->model.scatterOptionData.bind(std::bind(&KisScatterOptionWidget::emitSettingChanged, this));
65}
66
71
73{
75 m_d->model.scatterOptionData->write(setting.data());
76}
77
79{
80 KisScatterOptionMixIn data = *m_d->model.scatterOptionData;
81 data.read(setting.data());
82 m_d->model.scatterOptionData.set(data);
83
85}
void readOptionSetting(const KisPropertiesConfigurationSP setting) override
void writeOptionSetting(KisPropertiesConfigurationSP setting) const override
void setConfigurationPage(QWidget *page)
QWidget * configurationPage() const
KisScatterOptionWidget(lager::cursor< KisScatterOptionData > optionData)
void readOptionSetting(const KisPropertiesConfigurationSP setting) override
void writeOptionSetting(KisPropertiesConfigurationSP setting) const override
const QScopedPointer< Private > m_d
@ GENERAL
Definition nugrid.h:26
bool read(const KisPropertiesConfiguration *setting)
Private(lager::cursor< KisScatterOptionData > optionData)