Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_wdg_gaussian_blur.cpp
Go to the documentation of this file.
1/*
2 * This file is part of Krita
3 *
4 * SPDX-FileCopyrightText: 2009 Edward Apap <schumifer@hotmail.com>
5 *
6 * SPDX-License-Identifier: GPL-2.0-or-later
7 */
8
10#include <QLayout>
11
12#include <filter/kis_filter.h>
14#include <kis_selection.h>
15#include <kis_paint_device.h>
18
19#include "ui_wdg_gaussian_blur.h"
20
21KisWdgGaussianBlur::KisWdgGaussianBlur(bool usedForMasks, QWidget * parent) : KisConfigWidget(parent)
22{
23 m_widget = new Ui_WdgGaussianBlur();
24 m_widget->setupUi(this);
25
26 m_widget->aspectButton->setKeepAspectRatio(false);
27
28 const qreal maxRadius = usedForMasks ? 100.0 : 1000.0;
29
30 m_widget->horizontalRadius->setRange(0.0, maxRadius, 2);
31 m_widget->horizontalRadius->setSingleStep(0.2);
32 m_widget->horizontalRadius->setValue(0.5);
33 m_widget->horizontalRadius->setExponentRatio(3.0);
34 m_widget->horizontalRadius->setSuffix(i18n(" px"));
35
36 connect(m_widget->horizontalRadius, SIGNAL(valueChanged(qreal)), this, SLOT(horizontalRadiusChanged(qreal)));
37
38 m_widget->verticalRadius->setRange(0.0, maxRadius, 2);
39 m_widget->verticalRadius->setSingleStep(0.2);
40 m_widget->verticalRadius->setValue(0.5);
41 m_widget->verticalRadius->setExponentRatio(3.0);
42 m_widget->verticalRadius->setSuffix(i18n(" px"));
43 connect(m_widget->verticalRadius, SIGNAL(valueChanged(qreal)), this, SLOT(verticalRadiusChanged(qreal)));
44
45 connect(m_widget->aspectButton, SIGNAL(keepAspectRatioChanged(bool)), this, SLOT(aspectLockChanged(bool)));
46 connect(m_widget->horizontalRadius, SIGNAL(valueChanged(qreal)), SIGNAL(sigConfigurationItemChanged()));
47 connect(m_widget->verticalRadius, SIGNAL(valueChanged(qreal)), SIGNAL(sigConfigurationItemChanged()));
48}
49
54
56{
58 config->setProperty("horizRadius", m_widget->horizontalRadius->value());
59 config->setProperty("vertRadius", m_widget->verticalRadius->value());
60 config->setProperty("lockAspect", m_widget->aspectButton->keepAspectRatio());
61 return config;
62}
63
65{
66 QVariant value;
67 if (config->getProperty("horizRadius", value)) {
68 m_widget->horizontalRadius->setValue(value.toFloat());
69 }
70 if (config->getProperty("vertRadius", value)) {
71 m_widget->verticalRadius->setValue(value.toFloat());
72 }
73 if (config->getProperty("lockAspect", value)) {
74 m_widget->aspectButton->setKeepAspectRatio(value.toBool());
75 }
76}
77
79{
80 m_widget->horizontalRadius->blockSignals(true);
81 m_widget->horizontalRadius->setValue(v);
82 m_widget->horizontalRadius->blockSignals(false);
83
84 if (m_widget->aspectButton->keepAspectRatio()) {
85 m_widget->verticalRadius->blockSignals(true);
86 m_widget->verticalRadius->setValue(v);
87 m_widget->verticalRadius->blockSignals(false);
88 }
89}
90
92{
93 m_widget->verticalRadius->blockSignals(true);
94 m_widget->verticalRadius->setValue(v);
95 m_widget->verticalRadius->blockSignals(false);
96
97 if (m_widget->aspectButton->keepAspectRatio()) {
98 m_widget->horizontalRadius->blockSignals(true);
99 m_widget->horizontalRadius->setValue(v);
100 m_widget->horizontalRadius->blockSignals(false);
101 }
102}
103
105{
106 if (v) {
107 m_widget->verticalRadius->setValue( m_widget->horizontalRadius->value() );
108 }
109}
110
float value(const T *src, size_t ch)
qreal v
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
void sigConfigurationItemChanged()
static KisResourcesInterfaceSP instance()
KisWdgGaussianBlur(bool useForMasks, QWidget *parent)
KisPropertiesConfigurationSP configuration() const override
void setConfiguration(const KisPropertiesConfigurationSP) override
Ui_WdgGaussianBlur * m_widget