Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_desaturate_filter.cpp
Go to the documentation of this file.
1/*
2 * This file is part of Krita
3 *
4 * SPDX-FileCopyrightText: 2004 Cyrille Berger <cberger@cberger.net>
5 *
6 * SPDX-License-Identifier: GPL-2.0-or-later
7 */
8
10
11
12#include <math.h>
13
14#include <stdlib.h>
15#include <string.h>
16
17#include <QSlider>
18#include <QPoint>
19#include <QColor>
20#include <QButtonGroup>
21
22#include <klocalizedstring.h>
23
24#include <kis_debug.h>
25#include <kpluginfactory.h>
26
28#include <KoColorSpace.h>
32#include <kis_paint_device.h>
34#include <KisDocument.h>
35#include <kis_image.h>
36#include <kis_layer.h>
37#include <kis_global.h>
38#include <kis_types.h>
39#include <kis_selection.h>
41#include <kis_painter.h>
43#include <KoCompositeOp.h>
44#include <kis_iterator_ng.h>
46
48 : KisColorTransformationFilter(id(), FiltersCategoryAdjustId, i18n("&Desaturate..."))
49{
50 setShortcut(QKeySequence(Qt::CTRL, Qt::SHIFT, Qt::Key_U));
52}
53
57
59{
60 Q_UNUSED(dev);
61 return new KisDesaturateConfigWidget(parent);
62}
63
64
66{
67 QHash<QString, QVariant> params;
68 if (config) {
69 params["type"] = config->getInt("type", 0);
70 }
71 return cs->createColorTransformation("desaturate_adjustment", params);
72}
73
75{
76 KisFilterConfigurationSP config = factoryConfiguration(resourcesInterface);
77 config->setProperty("type", 0);
78 return config;
79}
80
81KisDesaturateConfigWidget::KisDesaturateConfigWidget(QWidget * parent, Qt::WindowFlags f) : KisConfigWidget(parent, f)
82{
83 m_page = new Ui_WdgDesaturate();
84 m_page->setupUi(this);
85 m_group = new QButtonGroup(this);
86 m_group->addButton(m_page->radioLightness, 0);
87 m_group->addButton(m_page->radioLuminosityBT709, 1);
88 m_group->addButton(m_page->radioLuminosityBT601, 2);
89 m_group->addButton(m_page->radioAverage, 3);
90 m_group->addButton(m_page->radioMin, 4);
91 m_group->addButton(m_page->radioMax, 5);
92 m_group->setExclusive(true);
93 connect(m_group, SIGNAL(idClicked(int)), SIGNAL(sigConfigurationItemChanged()));
94}
95
100
107
109{
110 m_group->button(config->getInt("type", 0))->setChecked(true);
112}
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
KisFilterConfigurationSP factoryConfiguration(KisResourcesInterfaceSP resourcesInterface) const override
void sigConfigurationItemChanged()
void setConfiguration(const KisPropertiesConfigurationSP config) override
KisPropertiesConfigurationSP configuration() const override
KisDesaturateConfigWidget(QWidget *parent, Qt::WindowFlags f=Qt::WindowFlags())
KoColorTransformation * createTransformation(const KoColorSpace *cs, const KisFilterConfigurationSP config) const override
KisFilterConfigurationSP defaultConfiguration(KisResourcesInterfaceSP resourcesInterface) const override
KisConfigWidget * createConfigurationWidget(QWidget *parent, const KisPaintDeviceSP dev, bool useForMasks) const override
static KisResourcesInterfaceSP instance()
KoColorTransformation * createColorTransformation(const QString &id, const QHash< QString, QVariant > &parameters) const
const KoID FiltersCategoryAdjustId("adjust_filters", ki18nc("The category of color adjustment filters, like levels. Verb.", "Adjust"))
void setShortcut(const QKeySequence &shortcut)
void setSupportsPainting(bool v)