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

0001 /*
0002  * KDE. Krita Project.
0003  *
0004  * SPDX-FileCopyrightText: 2020 Deif Lou <ginoba@gmail.com>
0005  *
0006  * SPDX-License-Identifier: GPL-2.0-or-later
0007  */
0008 
0009 #ifndef KISSCREENTONECONFIGWIDGET_H
0010 #define KISSCREENTONECONFIGWIDGET_H
0011 
0012 #include <kis_config_widget.h>
0013 #include <KoColorSpace.h>
0014 #include <KoColorSpaceRegistry.h>
0015 
0016 #include "ui_KisScreentoneConfigWidget.h"
0017 
0018 class KisViewManager;
0019 class Ui_WdgScreentoneOptions;
0020 
0021 class KisScreentoneConfigWidget : public KisConfigWidget
0022 {
0023     Q_OBJECT
0024 public:
0025     KisScreentoneConfigWidget(QWidget* parent = 0, const KoColorSpace *cs = KoColorSpaceRegistry::instance()->rgb8());
0026     ~KisScreentoneConfigWidget() override;
0027 
0028     void setConfiguration(const KisPropertiesConfigurationSP) override;
0029     KisPropertiesConfigurationSP configuration() const override;
0030 
0031     void setView(KisViewManager *view) override;
0032 
0033 private:
0034     constexpr static qreal minimumCellSize{1.0};
0035     constexpr static qreal maximumCellSize{1000.0};
0036 
0037     Ui_ScreentoneConfigWidget m_ui;
0038     KisViewManager *m_view;
0039     const KoColorSpace *m_colorSpace;
0040     QString m_lastSelectedInterpolationText;
0041 
0042     void setupPatternComboBox();
0043     void setupShapeComboBox();
0044     void setupInterpolationComboBox();
0045 
0046     int shapeToComboIndex(int pattern, int shape) const;
0047     int comboIndexToShape(int patterIndex, int shapeIndex) const;
0048 
0049 private Q_SLOTS:
0050     void slot_comboBoxPattern_currentIndexChanged(int);
0051     void slot_comboBoxShape_currentIndexChanged(int);
0052     
0053     void slot_buttonSizeModeResolutionBased_toggled(bool checked);
0054     void slot_buttonSizeModePixelBased_toggled(bool checked);
0055     void slot_comboBoxUnits_currentIndexChanged(int index);
0056     void slot_buttonResolutionFromImage_clicked();
0057     void slot_sliderResolution_valueChanged(qreal value);
0058     void slot_sliderFrequencyX_valueChanged(qreal value);
0059     void slot_sliderFrequencyY_valueChanged(qreal value);
0060     void slot_buttonConstrainFrequency_keepAspectRatioChanged(bool keep);
0061     void slot_sliderSizeX_valueChanged(qreal value);
0062     void slot_sliderSizeY_valueChanged(qreal value);
0063     void slot_buttonConstrainSize_keepAspectRatioChanged(bool keep);
0064     void slot_sliderAlignToPixelGridX_valueChanged(int value);
0065     void slot_sliderAlignToPixelGridY_valueChanged(int value);
0066 
0067     void slot_setFrequencySlidersRanges();
0068     void slot_setSizeFromFrequency();
0069     void slot_setFrequencyFromSize();
0070 };
0071 
0072 #endif