File indexing completed on 2024-05-26 04:33:02

0001 /*
0002  * SPDX-FileCopyrightText: 2017 Wolthera van Hövell tot Westerflier <griffinvalley@gmail.com>
0003  *
0004  *  SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 #ifndef KIS_WDG_ASCCDL_H
0007 #define KIS_WDG_ASCCDL_H
0008 #include <kis_config_widget.h>
0009 #include <QWidget>
0010 #include "ui_wdg_asccdl.h"
0011 #include <KisVisualRectangleSelectorShape.h>
0012 #include <KisVisualEllipticalSelectorShape.h>
0013 
0014 class Ui_WdgASCCDL;
0015 
0016 /**
0017  * @brief The KisASCCDLConfigWidget class
0018  * this handles the configuration widget for the slope offset power filter.
0019  *
0020  * Future improvements:
0021  * 1. Have the cs that the widgets gets when being created be actually the image cs.
0022  * 2. Have the shape be force to a HSV wheel with a slider.
0023  * 3. Make it easier to select power higher than 1.0 (it is possible, but cumbersome)
0024  * 4. make it easier to access ocio from filters.
0025  * 5. Implement saturation whenever we can figure out what the formula is for that.
0026  * 6. Implement a way to retrieve and store xml data according to the asc-cdl spec...
0027  *
0028  * The main problem for 5 and 6 is that I am unable to find the actual asc-cdl spec.
0029  */
0030 
0031 class KisASCCDLConfigWidget : public KisConfigWidget
0032 {
0033 
0034     Q_OBJECT
0035 
0036 public:
0037     KisASCCDLConfigWidget(QWidget * parent, const KoColorSpace *cs);
0038     ~KisASCCDLConfigWidget() override;
0039 
0040     KisPropertiesConfigurationSP  configuration() const override;
0041     void setConfiguration(const KisPropertiesConfigurationSP config) override;
0042     Ui_WdgASCCDL *m_page;
0043     const KoColorSpace *m_cs;
0044 public Q_SLOTS:
0045     void slopeColorChanged(const KoColor &c);
0046     void offsetColorChanged(const KoColor &c);
0047     void powerColorChanged(const KoColor &c);
0048 };
0049 
0050 #endif //KIS_WDG_ASCCDL_H