File indexing completed on 2025-02-02 04:22:12
0001 /* 0002 * SPDX-FileCopyrightText: 2022 Dmitry Kazakov <dimula73@gmail.com> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 #include "KisColorSourceOptionData.h" 0007 0008 #include <klocalizedstring.h> 0009 #include <KoID.h> 0010 #include <kis_properties_configuration.h> 0011 0012 namespace { 0013 0014 struct ColorSourceTypeMapper { 0015 ColorSourceTypeMapper() { 0016 addType(KisColorSourceOptionData::PLAIN, KoID("plain", i18n("Plain color"))); 0017 addType(KisColorSourceOptionData::GRADIENT, KoID("gradient", i18n("Gradient"))); 0018 addType(KisColorSourceOptionData::UNIFORM_RANDOM, KoID("uniform_random", i18n("Uniform random"))); 0019 addType(KisColorSourceOptionData::TOTAL_RANDOM, KoID("total_random", i18n("Total random"))); 0020 addType(KisColorSourceOptionData::PATTERN, KoID("pattern", i18n("Pattern"))); 0021 addType(KisColorSourceOptionData::PATTERN_LOCKED, KoID("lockedpattern", i18n("Locked pattern"))); 0022 } 0023 QMap<KisColorSourceOptionData::Type, KoID> type2id; 0024 QMap<QString, KisColorSourceOptionData::Type> id2type; 0025 0026 private: 0027 void addType(KisColorSourceOptionData::Type _type, KoID _id) { 0028 type2id[_type] = _id; 0029 id2type[_id.id()] = _type; 0030 } 0031 }; 0032 0033 } 0034 0035 Q_GLOBAL_STATIC(ColorSourceTypeMapper, s_instance) 0036 0037 bool KisColorSourceOptionData::read(const KisPropertiesConfiguration *setting) 0038 { 0039 const QString colorSourceType = setting->getString("ColorSource/Type", "plain"); 0040 type = s_instance->id2type.value(colorSourceType, PLAIN); 0041 return true; 0042 } 0043 0044 void KisColorSourceOptionData::write(KisPropertiesConfiguration *setting) const 0045 { 0046 setting->setProperty("ColorSource/Type", s_instance->type2id.value(type).id()); 0047 } 0048 0049 QVector<KoID> KisColorSourceOptionData::colorSourceTypeIds() 0050 { 0051 return s_instance->type2id.values().toVector(); 0052 } 0053 0054 KoID KisColorSourceOptionData::type2Id(Type type) 0055 { 0056 return s_instance->type2id[type]; 0057 } 0058 0059 KisColorSourceOptionData::Type KisColorSourceOptionData::id2Type(const KoID &id) 0060 { 0061 return s_instance->id2type[id.id()]; 0062 }