Krita Source Code Documentation
Loading...
Searching...
No Matches
KisSharpnessOptionWidget.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
9#include <KisLager.h>
10
11#include <QWidget>
12#include <QCheckBox>
13#include <QLabel>
14#include <QHBoxLayout>
15#include <QVBoxLayout>
16#include <kis_slider_spin_box.h>
17
20
22{
23 Private(lager::cursor<KisSharpnessOptionData> optionData)
24 : model(optionData.zoom(
25 kislager::lenses::to_base<KisSharpnessOptionMixIn>)
26 )
27 {
28 }
29
31};
32
33KisSharpnessOptionWidget::KisSharpnessOptionWidget(lager::cursor<KisSharpnessOptionData> optionData)
35 , m_d(new Private(optionData))
36{
37 using namespace KisWidgetConnectionUtils;
38
39 QWidget *page = new QWidget;
40
41 QCheckBox *alignOutline = new QCheckBox(("Align the brush preview outline to the pixel grid"), page);
42
43 QLabel* thresholdLbl = new QLabel(i18n("Soften edge:"), page);
44 KisSliderSpinBox *softenEdge = new KisSliderSpinBox(page);
45 softenEdge->setRange(0, 100);
46 softenEdge->setSingleStep(1);
47
48 QHBoxLayout* alignHL = new QHBoxLayout;
49 alignHL->setContentsMargins(2, 2, 2, 2);
50 alignHL->addWidget(alignOutline);
51
52 QHBoxLayout* softnessHL = new QHBoxLayout;
53 softnessHL->setContentsMargins(9, 9, 9, 9);
54 softnessHL->addWidget(thresholdLbl);
55 softnessHL->addWidget(softenEdge, 1);
56
57 QVBoxLayout* pageLayout = new QVBoxLayout(page);
58 pageLayout->setContentsMargins(0, 0, 0, 0);
59 pageLayout->addLayout(alignHL);
60 pageLayout->addLayout(softnessHL);
61 pageLayout->addWidget(configurationPage());
62
64
65 connectControl(alignOutline, &m_d->model, "alignOutlinePixels");
66 connectControl(softenEdge, &m_d->model, "softness");
67
68 m_d->model.sharpnessOptionData.bind(std::bind(&KisSharpnessOptionWidget::emitSettingChanged, this));
69}
70
74
76{
78 m_d->model.sharpnessOptionData->write(setting.data());
79}
80
82{
83 KisSharpnessOptionMixIn data = *m_d->model.sharpnessOptionData;
84 data.read(setting.data());
85 m_d->model.sharpnessOptionData.set(data);
86
88}
void readOptionSetting(const KisPropertiesConfigurationSP setting) override
void writeOptionSetting(KisPropertiesConfigurationSP setting) const override
void setConfigurationPage(QWidget *page)
QWidget * configurationPage() const
void readOptionSetting(const KisPropertiesConfigurationSP setting) override
KisSharpnessOptionWidget(lager::cursor< KisSharpnessOptionData > optionData)
const QScopedPointer< Private > m_d
void writeOptionSetting(KisPropertiesConfigurationSP setting) const override
This class is a spinbox in which you can click and drag to set the value. A slider like bar is displa...
void setRange(int newMinimum, int newMaximum, bool computeNewFastSliderStep=true)
Set the minimum and the maximum values of the range, computing a new "fast slider step" based on the ...
@ GENERAL
Definition nugrid.h:26
bool read(const KisPropertiesConfiguration *setting)
Private(lager::cursor< KisSharpnessOptionData > optionData)