Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_cross_channel_filter.h
Go to the documentation of this file.
1/*
2 * This file is part of Krita
3 *
4 * SPDX-FileCopyrightText: 2018 Jouni Pentikainen <joupent@gmail.com>
5 * SPDX-FileCopyrightText: 2020 L. E. Segovia <amy@amyspark.me>
6 *
7 * SPDX-License-Identifier: GPL-2.0-or-later
8*/
9
10#ifndef _KIS_CROSSCHANNEL_FILTER_H_
11#define _KIS_CROSSCHANNEL_FILTER_H_
12
13
16#include <kis_config_widget.h>
17#include <kis_paint_device.h>
18#include "ui_wdg_perchannel.h"
19
21
24
30{
31public:
33 ~KisCrossChannelFilter() override;
34
35 KisConfigWidget * createConfigurationWidget(QWidget *parent, const KisPaintDeviceSP dev, bool useForMasks) const override;
37
39
40 static inline KoID id() {
41 return KoID("crosschannel", i18n("Cross-channel color adjustment"));
42 }
43};
44
46{
47public:
50
52
53 KisFilterConfigurationSP clone() const override;
54
55 const QVector<int> driverChannels() const;
56
59
61 void fromXML(const QDomElement& e) override;
62 void toXML(QDomDocument& doc, QDomElement& root) const override;
63
65
66 virtual bool compareTo(const KisPropertiesConfiguration* rhs) const override;
67
68 void setProperty(const QString& name, const QVariant& value) override;
69
70private:
71 const KoColorSpace *m_colorSpace {nullptr};
73
83 bool channelIndexFromDriverPropertyName(const QString& name, int& channelIndex) const;
84};
85
87{
88 Q_OBJECT
89
90public:
91 KisCrossChannelConfigWidget(QWidget * parent, KisPaintDeviceSP dev, Qt::WindowFlags f = Qt::WindowFlags());
93
94 void setConfiguration(const KisPropertiesConfigurationSP config) override;
96
97protected:
98 void updateChannelControls() override;
100
102
103private Q_SLOTS:
104 void slotDriverChannelSelected(int index);
105
106private:
108 QScopedPointer<KisCurveWidgetControlsManagerInt> m_curveControlsManager;
109};
110
111#endif
float value(const T *src, size_t ch)
KisCrossChannelConfigWidget(QWidget *parent, KisPaintDeviceSP dev, Qt::WindowFlags f=Qt::WindowFlags())
void setConfiguration(const KisPropertiesConfigurationSP config) override
KisPropertiesConfigurationSP configuration() const override
virtual KisPropertiesConfigurationSP getDefaultConfiguration() override
QScopedPointer< KisCurveWidgetControlsManagerInt > m_curveControlsManager
KisFilterConfigurationSP clone() const override
virtual bool compareTo(const KisPropertiesConfiguration *rhs) const override
void setProperty(const QString &name, const QVariant &value) override
void fromXML(const QDomElement &e) override
const QVector< int > driverChannels() const
KisCrossChannelFilterConfiguration(int channelCount, const KoColorSpace *cs, KisResourcesInterfaceSP resourcesInterface)
bool channelIndexFromDriverPropertyName(const QString &name, int &channelIndex) const
Takes a driver property name with format "driver#", where # is the index of the channel and puts the ...
void setDriverChannels(QVector< int > driverChannels)
KisConfigWidget * createConfigurationWidget(QWidget *parent, const KisPaintDeviceSP dev, bool useForMasks) const override
KoColorTransformation * createTransformation(const KoColorSpace *cs, const KisFilterConfigurationSP config) const override
KisFilterConfigurationSP factoryConfiguration(KisResourcesInterfaceSP resourcesInterface) const override
Definition KoID.h:30
void fromXML(const QDomElement &) override
KisResourcesInterfaceSP resourcesInterface