File indexing completed on 2024-06-16 04:17:27

0001 /*
0002  *  SPDX-FileCopyrightText: 2022 Dmitry Kazakov <dimula73@gmail.com>
0003  *
0004  *  SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 #include "KisCurveOptionDataUniformProperty.h"
0007 
0008 
0009 #include "KisCurveOptionData.h"
0010 #include "kis_paintop_settings.h"
0011 #include "kis_paintop_preset.h"
0012 #include "KisPaintOpPresetUpdateProxy.h"
0013 
0014 KisCurveOptionDataUniformProperty::KisCurveOptionDataUniformProperty(const KisCurveOptionData &data, KisPaintOpSettingsRestrictedSP settings, QObject *parent)
0015     : KisCurveOptionDataUniformProperty(data, data.id, settings, parent)
0016 {
0017 }
0018 
0019 KisCurveOptionDataUniformProperty::KisCurveOptionDataUniformProperty(const KisCurveOptionData &data, const QString &propertyId, KisPaintOpSettingsRestrictedSP settings, QObject *parent)
0020     : KisCurveOptionDataUniformProperty(data, KoID(propertyId, data.id.name()), settings, parent)
0021 {
0022 }
0023 
0024 KisCurveOptionDataUniformProperty::KisCurveOptionDataUniformProperty(const KisCurveOptionData &data, const KoID &propertyId, KisPaintOpSettingsRestrictedSP settings, QObject *parent)
0025     : KisDoubleSliderBasedPaintOpProperty(Double, propertyId, settings, parent)
0026     , m_data(new KisCurveOptionData(data))
0027 {
0028     setRange(m_data->strengthMinValue, m_data->strengthMaxValue);
0029     setSingleStep(0.01);
0030     requestReadValue();
0031 }
0032 
0033 KisCurveOptionDataUniformProperty::~KisCurveOptionDataUniformProperty()
0034 {
0035 }
0036 
0037 void KisCurveOptionDataUniformProperty::readValueImpl()
0038 {
0039     m_data->read(settings().data());
0040     setRange(m_data->strengthMinValue, m_data->strengthMaxValue);
0041     setValue(m_data->strengthValue);
0042 }
0043 
0044 void KisCurveOptionDataUniformProperty::writeValueImpl()
0045 {
0046     m_data->read(settings().data());
0047     m_data->strengthValue = value().toReal();
0048     m_data->write(settings().data());
0049 }
0050 
0051 bool KisCurveOptionDataUniformProperty::isVisible() const
0052 {
0053     return !m_data->isCheckable || m_data->isChecked;
0054 }