Krita Source Code Documentation
Loading...
Searching...
No Matches
WGConfig::WGConfig Class Reference

#include <WGConfig.h>

Public Member Functions

KisColorSelectorConfiguration colorSelectorConfiguration () const
 
const KoColorSpacecustomSelectionColorSpace (bool defaultValue=false) const
 
QVector< KisColorSelectorConfigurationfavoriteConfigurations (bool defaultValue=false) const
 
template<class T >
T::ValueType get (const T &setting, bool defaultValue=false) const
 
template<class T >
readEntry (const QString &name, const T &defaultValue=T())
 
template<class T >
void set (const T &setting, const typename T::ValueType &value)
 
void setColorSelectorConfiguration (const KisColorSelectorConfiguration &config)
 
void setCustomSelectionColorSpace (const KoColorSpace *cs)
 
void setFavoriteConfigurations (const QVector< KisColorSelectorConfiguration > &favoriteConfigs)
 
void setShadeSelectorLines (const QVector< ShadeLine > &shadeLines)
 
QVector< ShadeLineshadeSelectorLines (bool defaultValue=false) const
 
 WGConfig (bool readOnly=true)
 
template<class T >
void writeEntry (const QString &name, const T &value)
 
 ~WGConfig ()
 

Static Public Member Functions

static QString configGroupName ()
 
static QVector< KisColorSelectorConfigurationdefaultFavoriteConfigurations ()
 
static QVector< ShadeLinedefaultShadeSelectorLines ()
 

Static Public Attributes

static const KisColorSelectorConfiguration defaultColorSelectorConfiguration
 

Private Attributes

KConfigGroup m_cfg
 
bool m_readOnly
 

Detailed Description

Definition at line 92 of file WGConfig.h.

Constructor & Destructor Documentation

◆ WGConfig()

WGConfig::WGConfig::WGConfig ( bool readOnly = true)
explicit

Definition at line 24 of file WGConfig.cpp.

25 : m_cfg( KSharedConfig::openConfig()->group(configGroupName()))
26 , m_readOnly(readOnly)
27{
28 if (!readOnly) {
29 KIS_SAFE_ASSERT_RECOVER_RETURN(qApp && qApp->thread() == QThread::currentThread());
30 }
31}
KConfigGroup m_cfg
Definition WGConfig.h:143
static QString configGroupName()
Definition WGConfig.cpp:45
#define KIS_SAFE_ASSERT_RECOVER_RETURN(cond)
Definition kis_assert.h:128

References KIS_SAFE_ASSERT_RECOVER_RETURN.

◆ ~WGConfig()

WGConfig::WGConfig::~WGConfig ( )

Definition at line 33 of file WGConfig.cpp.

34{
35 if (m_readOnly) return;
36
37 if (qApp && qApp->thread() != QThread::currentThread()) {
38 dbgKrita << "WARNING: WGConfig: requested config synchronization from nonGUI thread! Called from:" << kisBacktrace();
39 return;
40 }
41
42 m_cfg.sync();
43}
QString kisBacktrace()
Definition kis_debug.cpp:51
#define dbgKrita
Definition kis_debug.h:45

References dbgKrita, and kisBacktrace().

Member Function Documentation

◆ colorSelectorConfiguration()

KisColorSelectorConfiguration WGConfig::WGConfig::colorSelectorConfiguration ( ) const

Definition at line 50 of file WGConfig.cpp.

51{
52 QString config = m_cfg.readEntry("colorSelectorConfiguration", QString());
53 return config.isEmpty() ? defaultColorSelectorConfiguration : KisColorSelectorConfiguration(config);
54}
static const KisColorSelectorConfiguration defaultColorSelectorConfiguration
Definition WGConfig.h:140

◆ configGroupName()

QString WGConfig::WGConfig::configGroupName ( )
static

Definition at line 45 of file WGConfig.cpp.

46{
47 return QStringLiteral("WideGamutColorSelector");
48}

◆ customSelectionColorSpace()

const KoColorSpace * WGConfig::WGConfig::customSelectionColorSpace ( bool defaultValue = false) const

Definition at line 160 of file WGConfig.cpp.

161{
162 const KoColorSpace *cs = 0;
163
164 if (!defaultValue) {
165 QString modelID = m_cfg.readEntry("customColorSpaceModel", "RGBA");
166 QString depthID = m_cfg.readEntry("customColorSpaceDepthID", "U8");
167 QString profile = m_cfg.readEntry("customColorSpaceProfile", "");
168
169 cs = KoColorSpaceRegistry::instance()->colorSpace(modelID, depthID, profile);
170 }
171
172 if (!cs) {
174 }
175
176 return cs;
177}
const KoColorSpace * colorSpace(const QString &colorModelId, const QString &colorDepthId, const KoColorProfile *profile)
static KoColorSpaceRegistry * instance()
const KoColorSpace * rgb8(const QString &profileName=QString())

References KoColorSpaceRegistry::colorSpace(), KoColorSpaceRegistry::instance(), and KoColorSpaceRegistry::rgb8().

◆ defaultFavoriteConfigurations()

QVector< KisColorSelectorConfiguration > WGConfig::WGConfig::defaultFavoriteConfigurations ( )
static

Definition at line 79 of file WGConfig.cpp.

80{
82 QVector<KCSC> defaults;
83 defaults.append(KCSC(KCSC::Triangle, KCSC::Ring, KCSC::SV, KCSC::H));
84 defaults.append(KCSC(KCSC::Square, KCSC::Ring, KCSC::SV, KCSC::H));
85 defaults.append(KCSC(KCSC::Wheel, KCSC::Slider, KCSC::VH, KCSC::hsvS));
86 return defaults;
87}

◆ defaultShadeSelectorLines()

QVector< ShadeLine > WGConfig::WGConfig::defaultShadeSelectorLines ( )
static

Definition at line 98 of file WGConfig.cpp.

99{
100 QVector<ShadeLine> defaultLines;
101 defaultLines.append(ShadeLine(QVector4D(0.3, 0, 0, 0)));
102 defaultLines.append(ShadeLine(QVector4D(0, -0.5, 0, 0)));
103 defaultLines.append(ShadeLine(QVector4D(0, 0, 0.5, 0)));
104 defaultLines.append(ShadeLine(QVector4D(0, -0.2, 0.2, 0)));
105 return defaultLines;
106}

◆ favoriteConfigurations()

QVector< KisColorSelectorConfiguration > WGConfig::WGConfig::favoriteConfigurations ( bool defaultValue = false) const

Definition at line 61 of file WGConfig.cpp.

62{
63 if (defaultValue) {
65 }
66
68 QString favorites = m_cfg.readEntry("favoriteSelectorConfigurations", QString());
69 if (favorites.isEmpty()) {
71 }
72 QStringList favoriteList(favorites.split(';'));
73 for (QString &fav: favoriteList) {
74 favoriteConfigs.append(KisColorSelectorConfiguration(fav));
75 }
76 return favoriteConfigs;
77}
static QVector< KisColorSelectorConfiguration > defaultFavoriteConfigurations()
Definition WGConfig.cpp:79

◆ get()

template<class T >
T::ValueType WGConfig::WGConfig::get ( const T & setting,
bool defaultValue = false ) const
inline

Definition at line 100 of file WGConfig.h.

101 {
102 if (defaultValue) {
103 return setting.defaultValue;
104 }
105 return setting.readValue(m_cfg);
106 }

◆ readEntry()

template<class T >
T WGConfig::WGConfig::readEntry ( const QString & name,
const T & defaultValue = T() )
inline

Definition at line 134 of file WGConfig.h.

134 {
135 return m_cfg.readEntry(name, defaultValue);
136 }

◆ set()

template<class T >
void WGConfig::WGConfig::set ( const T & setting,
const typename T::ValueType & value )
inline

Definition at line 109 of file WGConfig.h.

109{ setting.writeValue(m_cfg, value); }
float value(const T *src, size_t ch)

References value().

◆ setColorSelectorConfiguration()

void WGConfig::WGConfig::setColorSelectorConfiguration ( const KisColorSelectorConfiguration & config)

Definition at line 56 of file WGConfig.cpp.

57{
58 m_cfg.writeEntry("colorSelectorConfiguration", config.toString());
59}

References KisColorSelectorConfiguration::toString().

◆ setCustomSelectionColorSpace()

void WGConfig::WGConfig::setCustomSelectionColorSpace ( const KoColorSpace * cs)

Definition at line 179 of file WGConfig.cpp.

180{
181 if(cs) {
182 m_cfg.writeEntry("customColorSpaceModel", cs->colorModelId().id());
183 m_cfg.writeEntry("customColorSpaceDepthID", cs->colorDepthId().id());
184 if (cs->profile()) {
185 m_cfg.writeEntry("customColorSpaceProfile", cs->profile()->name());
186 }
187 }
188}
virtual KoID colorModelId() const =0
virtual KoID colorDepthId() const =0
virtual const KoColorProfile * profile() const =0
QString id() const
Definition KoID.cpp:63

References KoColorSpace::colorDepthId(), KoColorSpace::colorModelId(), KoID::id(), KoColorProfile::name, and KoColorSpace::profile().

◆ setFavoriteConfigurations()

void WGConfig::WGConfig::setFavoriteConfigurations ( const QVector< KisColorSelectorConfiguration > & favoriteConfigs)

Definition at line 89 of file WGConfig.cpp.

90{
91 QStringList favoriteList;
92 for (const KisColorSelectorConfiguration &fav: favoriteConfigs) {
93 favoriteList.append(fav.toString());
94 }
95 m_cfg.writeEntry("favoriteSelectorConfigurations", favoriteList.join(';'));
96}

◆ setShadeSelectorLines()

void WGConfig::WGConfig::setShadeSelectorLines ( const QVector< ShadeLine > & shadeLines)

Definition at line 142 of file WGConfig.cpp.

143{
144 QStringList shadeLineList;
145 for (const ShadeLine &line: shadeLines) {
146 QString lineString;
147 QTextStream stream(&lineString);
148 for (int i = 0; i < 4; i++) {
149 stream << line.gradient[i] << ';';
150 }
151 for (int i = 0; i < 4; i++) {
152 stream << line.offset[i] << ';';
153 }
154 stream << line.patchCount;
155 shadeLineList.append(lineString);
156 }
157 m_cfg.writeEntry("minimalShadeSelectorLines", shadeLineList.join('|'));
158}

◆ shadeSelectorLines()

QVector< ShadeLine > WGConfig::WGConfig::shadeSelectorLines ( bool defaultValue = false) const

Definition at line 108 of file WGConfig.cpp.

109{
110 if (defaultValue) {
112 }
113
114 QString configString = m_cfg.readEntry("minimalShadeSelectorLines", QString());
115 if (configString.isEmpty()) {
117 }
118 QVector<ShadeLine> shadeLines;
119 QStringList shadeLineList(configString.split('|'));
120 for (const QString &line: std::as_const(shadeLineList)) {
121 QVector4D gradient, offset;
122 int patchCount = -1;
123 QStringList values = line.split(';');
124 if (values.size() >= 4) {
125 for (int i = 0; i < 4; i++) {
126 gradient[i] = qBound(-1.0f, values.at(i).toFloat(), 1.0f);
127 }
128 }
129 if (values.size() >= 8) {
130 for (int i = 0; i < 4; i++) {
131 offset[i] = qBound(-1.0f, values.at(i + 4).toFloat(), 1.0f);
132 }
133 }
134 if (values.size() >= 9) {
135 patchCount = qBound(-1, values.at(8).toInt(), 99);
136 }
137 shadeLines.append(ShadeLine(gradient, offset, patchCount));
138 }
139 return shadeLines;
140}
static QVector< ShadeLine > defaultShadeSelectorLines()
Definition WGConfig.cpp:98

◆ writeEntry()

template<class T >
void WGConfig::WGConfig::writeEntry ( const QString & name,
const T & value )
inline

Definition at line 129 of file WGConfig.h.

129 {
130 m_cfg.writeEntry(name, value);
131 }

References value().

Member Data Documentation

◆ defaultColorSelectorConfiguration

◆ m_cfg

KConfigGroup WGConfig::WGConfig::m_cfg
private

Definition at line 143 of file WGConfig.h.

◆ m_readOnly

bool WGConfig::WGConfig::m_readOnly
private

Definition at line 144 of file WGConfig.h.


The documentation for this class was generated from the following files: