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

0001 /*
0002  *  SPDX-FileCopyrightText: 2008-2010 Lukáš Tvrdý <lukast.dev@gmail.com>
0003  *
0004  *  SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 #include "KisHairyInkOptionData.h"
0007 
0008 #include "kis_properties_configuration.h"
0009 
0010 
0011 const QString HAIRY_INK_DEPLETION_ENABLED = "HairyInk/enabled";
0012 const QString HAIRY_INK_AMOUNT = "HairyInk/inkAmount";
0013 const QString HAIRY_INK_USE_SATURATION = "HairyInk/useSaturation";
0014 const QString HAIRY_INK_USE_OPACITY = "HairyInk/useOpacity";
0015 const QString HAIRY_INK_USE_WEIGHTS = "HairyInk/useWeights";
0016 const QString HAIRY_INK_PRESSURE_WEIGHT = "HairyInk/pressureWeights";
0017 const QString HAIRY_INK_BRISTLE_LENGTH_WEIGHT = "HairyInk/bristleLengthWeights";
0018 const QString HAIRY_INK_BRISTLE_INK_AMOUNT_WEIGHT = "HairyInk/bristleInkAmountWeight";
0019 const QString HAIRY_INK_DEPLETION_WEIGHT = "HairyInk/inkDepletionWeight";
0020 const QString HAIRY_INK_DEPLETION_CURVE = "HairyInk/inkDepletionCurve";
0021 const QString HAIRY_INK_SOAK = "HairyInk/soak";
0022 
0023 
0024 bool KisHairyInkOptionData::read(const KisPropertiesConfiguration *setting)
0025 {
0026     inkDepletionEnabled = setting->getBool(HAIRY_INK_DEPLETION_ENABLED, false);
0027     inkAmount = setting->getInt(HAIRY_INK_AMOUNT, 1024);
0028     useSaturation = setting->getBool(HAIRY_INK_USE_SATURATION, false);
0029     useOpacity = setting->getBool(HAIRY_INK_USE_OPACITY, true);
0030     useWeights = setting->getBool(HAIRY_INK_USE_WEIGHTS, false);
0031     pressureWeight = setting->getInt(HAIRY_INK_PRESSURE_WEIGHT, 50);
0032     bristleLengthWeight = setting->getInt(HAIRY_INK_BRISTLE_LENGTH_WEIGHT, 50);
0033     bristleInkAmountWeight = setting->getInt(HAIRY_INK_BRISTLE_INK_AMOUNT_WEIGHT, 50);
0034     inkDepletionWeight = setting->getInt(HAIRY_INK_DEPLETION_WEIGHT, 50);
0035     inkDepletionCurve = setting->getCubicCurve(HAIRY_INK_DEPLETION_CURVE, KisCubicCurve()).toString();
0036     useSoakInk = setting->getBool(HAIRY_INK_SOAK, false);
0037 
0038     return true;
0039 }
0040 
0041 void KisHairyInkOptionData::write(KisPropertiesConfiguration *setting) const
0042 {
0043     setting->setProperty(HAIRY_INK_DEPLETION_ENABLED, inkDepletionEnabled);
0044     setting->setProperty(HAIRY_INK_AMOUNT, inkAmount);
0045     setting->setProperty(HAIRY_INK_USE_SATURATION, useSaturation);
0046     setting->setProperty(HAIRY_INK_USE_OPACITY, useOpacity);
0047     setting->setProperty(HAIRY_INK_USE_WEIGHTS, useWeights);
0048     setting->setProperty(HAIRY_INK_PRESSURE_WEIGHT, pressureWeight);
0049     setting->setProperty(HAIRY_INK_BRISTLE_LENGTH_WEIGHT, bristleLengthWeight);
0050     setting->setProperty(HAIRY_INK_BRISTLE_INK_AMOUNT_WEIGHT, bristleInkAmountWeight);
0051     setting->setProperty(HAIRY_INK_DEPLETION_WEIGHT, inkDepletionWeight);
0052     setting->setProperty(HAIRY_INK_DEPLETION_CURVE, QVariant::fromValue(KisCubicCurve(inkDepletionCurve)));
0053     setting->setProperty(HAIRY_INK_SOAK, useSoakInk);
0054 }