Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_wdg_lens_blur.cpp
Go to the documentation of this file.
1/*
2 * This file is part of Krita
3 *
4 * SPDX-FileCopyrightText: 2010 Edward Apap <schumifer@hotmail.com>
5 *
6 * SPDX-License-Identifier: GPL-2.0-or-later
7 */
8
9#include "kis_wdg_lens_blur.h"
10#include <QLayout>
11
12#include <filter/kis_filter.h>
14#include <kis_selection.h>
15#include <kis_paint_device.h>
18
20
21#include "ui_wdg_lens_blur.h"
22
24{
25 m_widget = new Ui_WdgLensBlur();
26 m_widget->setupUi(this);
27
28 m_widget->irisRotationSelector->setDecimals(0);
29 m_widget->irisRotationSelector->setIncreasingDirection(KisAngleGauge::IncreasingDirection_Clockwise);
30
31 m_shapeTranslations[i18n("Triangle")] = "Triangle";
32 m_shapeTranslations[i18n("Quadrilateral (4)")] = "Quadrilateral (4)";
33 m_shapeTranslations[i18n("Pentagon (5)")] = "Pentagon (5)";
34 m_shapeTranslations[i18n("Hexagon (6)")] = "Hexagon (6)";
35 m_shapeTranslations[i18n("Heptagon (7)")] = "Heptagon (7)";
36 m_shapeTranslations[i18n("Octagon (8)")] = "Octagon (8)";
37
38 connect(m_widget->irisShapeCombo, SIGNAL(currentIndexChanged(int)), SIGNAL(sigConfigurationItemChanged()));
39 connect(m_widget->irisRadiusSlider, SIGNAL(valueChanged(int)), SIGNAL(sigConfigurationItemChanged()));
40 connect(m_widget->irisRotationSelector, SIGNAL(angleChanged(qreal)), SIGNAL(sigConfigurationItemChanged()));
41}
42
47
49{
51 config->setProperty("irisShape", m_shapeTranslations[m_widget->irisShapeCombo->currentText()]);
52 config->setProperty("irisRadius", m_widget->irisRadiusSlider->value());
53 config->setProperty("irisRotation", static_cast<int>(m_widget->irisRotationSelector->angle()));
54
55 QSize halfSize = KisLensBlurFilter::getKernelHalfSize(config, 0);
56 config->setProperty("halfWidth", halfSize.width());
57 config->setProperty("halfHeight", halfSize.height());
58
59 return config;
60}
61
63{
64 QVariant value;
65 if (config->getProperty("irisShape", value)) {
66 for (int i = 0; i < m_widget->irisShapeCombo->count(); ++i) {
67 if (m_shapeTranslations[value.toString()] == m_widget->irisShapeCombo->itemText(i)) {
68 m_widget->irisShapeCombo->setCurrentIndex(i);
69 }
70 }
71 }
72 if (config->getProperty("irisRadius", value)) {
73 m_widget->irisRadiusSlider->setValue(value.toInt());
74 }
75 if (config->getProperty("irisRotation", value)) {
76 m_widget->irisRotationSelector->setAngle(static_cast<qreal>(value.toInt()));
77 }
78}
79
float value(const T *src, size_t ch)
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
@ IncreasingDirection_Clockwise
void sigConfigurationItemChanged()
static KisResourcesInterfaceSP instance()
static QSize getKernelHalfSize(const KisFilterConfigurationSP config, int lod)
Ui_WdgLensBlur * m_widget
QMap< QString, QString > m_shapeTranslations
void setConfiguration(const KisPropertiesConfigurationSP) override
KisWdgLensBlur(QWidget *parent)
~KisWdgLensBlur() override
KisPropertiesConfigurationSP configuration() const override