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

0001 /*
0002  *  SPDX-FileCopyrightText: 2022 Dmitry Kazakov <dimula73@gmail.com>
0003  *
0004  *  SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 #include "KisSmudgeRadiusOptionData.h"
0007 #include <KisSmudgeLengthOptionData.h>
0008 
0009 KisSmudgeRadiusOptionData::KisSmudgeRadiusOptionData()
0010     : KisCurveOptionData(
0011           KoID("SmudgeRadius", i18n("Smudge Radius")),
0012           Checkability::Checkable, std::nullopt,
0013           std::make_pair(0.0, 3.0))
0014 {
0015     valueFixUpReadCallback = [] (KisCurveOptionDataCommon *data, const KisPropertiesConfiguration *setting) {
0016         const int smudgeRadiusVersion = setting->getInt("SmudgeRadiusVersion", 1);
0017         if (smudgeRadiusVersion < 2) {
0018             data->strengthValue = data->strengthValue / 100.0;
0019         }
0020 
0021         KisSmudgeLengthOptionMixInImpl lengthData;
0022         lengthData.read(setting);
0023 
0024         data->strengthMaxValue = lengthData.useNewEngine ? 1.0 : 3.0;
0025         data->strengthValue = qMin(data->strengthValue, data->strengthMaxValue);
0026     };
0027 
0028     valueFixUpWriteCallback = [] (qreal, KisPropertiesConfiguration *setting) {
0029         setting->setProperty("SmudgeRadiusVersion", 2);
0030     };
0031 }