Krita Source Code Documentation
Loading...
Searching...
No Matches
DodgeBurn.cpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2009 Cyrille Berger <cberger@cberger.net>
3 *
4 * SPDX-License-Identifier: LGPL-2.0-or-later
5 */
6
7#include "DodgeBurn.h"
10#include <kis_paint_device.h>
12
13#include "ui_DodgeBurnConfigurationBaseWidget.h"
14
15KisFilterDodgeBurn::KisFilterDodgeBurn(const QString& id, const QString& prefix, const QString& name ) : KisColorTransformationFilter(KoID(id, name), FiltersCategoryAdjustId, name), m_prefix(prefix)
16{
19}
20
22{
23 Q_UNUSED(dev);
24 return new KisDodgeBurnConfigWidget(parent, id());
25}
26
28{
29 KisFilterConfigurationSP config = factoryConfiguration(resourcesInterface);
30 config->setProperty("exposure", 0.5);
31 config->setProperty("type", KisFilterDodgeBurn::MIDTONES);
32 return config;
33}
34
36{
37 QHash<QString, QVariant> params;
38 QString suffix = "Midtones";
39 if (config) {
40 params["exposure"] = config->getDouble("exposure", 0.5);
41 int type = config->getInt("type", KisFilterDodgeBurn::MIDTONES);
42 switch(type)
43 {
45 suffix = "Highlights";
46 break;
48 suffix = "Shadows";
49 break;
50 default:
51 break;
52 }
53 }
54 return cs->createColorTransformation(m_prefix + suffix, params);
55
56}
57
58KisDodgeBurnConfigWidget::KisDodgeBurnConfigWidget(QWidget * parent, const QString& id) : KisConfigWidget(parent), m_id(id)
59{
60 m_page = new Ui_DodgeBurnConfigurationBaseWidget();
61 m_page->setupUi(this);
62
63 connect(m_page->radioButtonHighlights, SIGNAL(toggled(bool)), SIGNAL(sigConfigurationItemChanged()));
64 connect(m_page->radioButtonMidtones, SIGNAL(toggled(bool)), SIGNAL(sigConfigurationItemChanged()));
65 connect(m_page->radioButtonShadows, SIGNAL(toggled(bool)), SIGNAL(sigConfigurationItemChanged()));
66 connect(m_page->sliderExposure, SIGNAL(valueChanged(int)), SIGNAL(sigConfigurationItemChanged()));
67}
68
73
75{
77 int type = 0;
78 if(m_page->radioButtonHighlights->isChecked())
79 {
81 } else if(m_page->radioButtonShadows->isChecked())
82 {
84 } else {
86 }
87 c->setProperty("type", type);
88 c->setProperty("exposure", m_page->sliderExposure->value() / 100.0);
89 return c;
90}
91
93{
94 int type = config->getInt("type", KisFilterDodgeBurn::MIDTONES);
95 switch(type)
96 {
98 m_page->radioButtonHighlights->setChecked(true);
99 break;
101 m_page->radioButtonShadows->setChecked(true);
102 break;
103 default:
105 m_page->radioButtonMidtones->setChecked(true);
106 break;
107 }
108 m_page->sliderExposure->setValue(config->getDouble("exposure", 0.5) * 100);
109}
110
@ FULLY_INDEPENDENT
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
KisFilterConfigurationSP factoryConfiguration(KisResourcesInterfaceSP resourcesInterface) const override
void sigConfigurationItemChanged()
KisPropertiesConfigurationSP configuration() const override
Definition DodgeBurn.cpp:74
void setConfiguration(const KisPropertiesConfigurationSP config) override
Definition DodgeBurn.cpp:92
~KisDodgeBurnConfigWidget() override
Definition DodgeBurn.cpp:69
KisDodgeBurnConfigWidget(QWidget *parent, const QString &id)
Definition DodgeBurn.cpp:58
Ui_DodgeBurnConfigurationBaseWidget * m_page
Definition DodgeBurn.h:45
KoColorTransformation * createTransformation(const KoColorSpace *cs, const KisFilterConfigurationSP config) const override
Definition DodgeBurn.cpp:35
KisFilterConfigurationSP defaultConfiguration(KisResourcesInterfaceSP resourcesInterface) const override
Definition DodgeBurn.cpp:27
KisFilterDodgeBurn(const QString &id, const QString &prefix, const QString &name)
Definition DodgeBurn.cpp:15
KisConfigWidget * createConfigurationWidget(QWidget *parent, const KisPaintDeviceSP dev, bool useForMasks) const override
Definition DodgeBurn.cpp:21
static KisResourcesInterfaceSP instance()
KoColorTransformation * createColorTransformation(const QString &id, const QHash< QString, QVariant > &parameters) const
Definition KoID.h:30
const KoID FiltersCategoryAdjustId("adjust_filters", ki18nc("The category of color adjustment filters, like levels. Verb.", "Adjust"))
void setSupportsPainting(bool v)
void setColorSpaceIndependence(ColorSpaceIndependence v)