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