File indexing completed on 2025-01-26 04:11:26

0001 /*
0002  *  SPDX-FileCopyrightText: 2022 Dmitry Kazakov <dimula73@gmail.com>
0003  *
0004  *  SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 #include "KisCurveOptionDataCommon.h"
0007 #include "KisSensorPackInterface.h"
0008 
0009 KisCurveOptionDataCommon::KisCurveOptionDataCommon(const QString &_prefix, const KoID &_id, bool _isCheckable, bool _isChecked, qreal _minValue, qreal _maxValue, KisSensorPackInterface *sensorInterface)
0010     : id(_id),
0011       prefix(_prefix),
0012       isCheckable(_isCheckable),
0013       strengthMinValue(_minValue),
0014       strengthMaxValue(_maxValue),
0015       isChecked(_isChecked),
0016       strengthValue(_maxValue),
0017       sensorData(sensorInterface)
0018 {
0019 }
0020 
0021 KisCurveOptionDataCommon::KisCurveOptionDataCommon(const KoID &_id, bool _isCheckable, bool _isChecked, qreal _minValue, qreal _maxValue, KisSensorPackInterface *sensorInterface)
0022     : KisCurveOptionDataCommon("", _id, _isCheckable, _isChecked, _minValue, _maxValue, sensorInterface)
0023 {
0024 }
0025 
0026 // TODO: rename into constSensors
0027 std::vector<const KisSensorData*> KisCurveOptionDataCommon::sensors() const
0028 {
0029     return sensorData->constSensors();
0030 }
0031 
0032 std::vector<KisSensorData*> KisCurveOptionDataCommon::sensors()
0033 {
0034     return sensorData->sensors();
0035 }
0036 
0037 bool KisCurveOptionDataCommon::read(const KisPropertiesConfiguration *setting)
0038 {
0039     if (!setting) return false;
0040 
0041     if (prefix.isEmpty()) {
0042         return readPrefixed(setting);
0043     } else {
0044         KisPropertiesConfiguration prefixedSetting;
0045         setting->getPrefixedProperties(prefix, &prefixedSetting);
0046         return readPrefixed(&prefixedSetting);
0047     }
0048 }
0049 
0050 void KisCurveOptionDataCommon::write(KisPropertiesConfiguration *setting) const
0051 {
0052     if (prefix.isEmpty()) {
0053         writePrefixed(setting);
0054     } else {
0055         KisPropertiesConfiguration prefixedSetting;
0056         writePrefixed(&prefixedSetting);
0057         setting->setPrefixedProperties(prefix, &prefixedSetting);
0058     }
0059 }
0060 
0061 bool KisCurveOptionDataCommon::readPrefixed(const KisPropertiesConfiguration *setting)
0062 {
0063     return sensorData->read(*this, setting);
0064 }
0065 
0066 void KisCurveOptionDataCommon::writePrefixed(KisPropertiesConfiguration *setting) const
0067 {
0068     sensorData->write(*this, setting);
0069 }
0070 
0071