Krita Source Code Documentation
Loading...
Searching...
No Matches
KisMirrorOptionWidget.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 <QCheckBox>
12#include <QHBoxLayout>
13#include <QVBoxLayout>
14
17
18
20{
21 Private(lager::cursor<KisMirrorOptionData> optionData)
22 : model(optionData.zoom(
23 kislager::lenses::to_base<KisMirrorOptionMixIn>)
24 )
25 {
26 }
27
29};
30
31KisMirrorOptionWidget::KisMirrorOptionWidget(lager::cursor<KisMirrorOptionData> optionData)
33{
34}
35
36KisMirrorOptionWidget::KisMirrorOptionWidget(lager::cursor<KisMirrorOptionData> optionData, PaintopCategory categoryOverride)
37 : KisCurveOptionWidget(optionData.zoom(kislager::lenses::to_base<KisCurveOptionDataCommon>), categoryOverride)
38 , m_d(new Private(optionData))
39{
40 using namespace KisWidgetConnectionUtils;
41
42 QWidget *page = new QWidget;
43
44 QCheckBox *horizontalMirror = new QCheckBox(i18n("Horizontally"), page);
45 QCheckBox *verticalMirror = new QCheckBox(i18n("Vertically"), page);
46
47 QHBoxLayout *hl = new QHBoxLayout;
48 hl->addWidget(horizontalMirror);
49 hl->addWidget(verticalMirror);
50
51 QVBoxLayout *pageLayout = new QVBoxLayout(page);
52 pageLayout->setContentsMargins(0, 0, 0, 0);
53 pageLayout->addLayout(hl);
54 pageLayout->addWidget(configurationPage());
55
57
58 connectControl(horizontalMirror, &m_d->model, "enableHorizontalMirror");
59 connectControl(verticalMirror, &m_d->model, "enableVerticalMirror");
60
61 m_d->model.mirrorOptionData.bind(std::bind(&KisMirrorOptionWidget::emitSettingChanged, this));
62}
63
67
69{
71 m_d->model.mirrorOptionData->write(setting.data());
72}
73
75{
76 KisMirrorOptionMixIn data = *m_d->model.mirrorOptionData;
77 data.read(setting.data());
78 m_d->model.mirrorOptionData.set(data);
79
81}
void readOptionSetting(const KisPropertiesConfigurationSP setting) override
void writeOptionSetting(KisPropertiesConfigurationSP setting) const override
void writeOptionSetting(KisPropertiesConfigurationSP setting) const override
KisMirrorOptionWidget(lager::cursor< KisMirrorOptionData > optionData)
void readOptionSetting(const KisPropertiesConfigurationSP setting) override
const QScopedPointer< Private > m_d
void setConfigurationPage(QWidget *page)
QWidget * configurationPage() const
@ GENERAL
Definition nugrid.h:26
Private(lager::cursor< KisMirrorOptionData > optionData)
bool read(const KisPropertiesConfiguration *setting)