KiCad PCB EDA Suite
COLOR_MAP_PARAM Class Reference

#include <color_settings.h>

Inheritance diagram for COLOR_MAP_PARAM:
PARAM_BASE

Public Member Functions

 COLOR_MAP_PARAM (const std::string &aJsonPath, int aMapKey, COLOR4D aDefault, std::unordered_map< int, COLOR4D > *aMap, bool aReadOnly=false)
 
void Load (JSON_SETTINGS *aSettings, bool aResetIfMissing=true) const override
 Loads the value of this parameter from JSON to the underlying storage. More...
 
void Store (JSON_SETTINGS *aSettings) const override
 Stores the value of this parameter to the given JSON_SETTINGS object. More...
 
int GetKey () const
 
COLOR4D GetDefault () const
 
void SetDefault () override
 
bool IsDefault () const override
 Checks whether or not this param has been changed from its default value. More...
 
bool MatchesFile (JSON_SETTINGS *aSettings) const override
 Checks whether the parameter in memory matches the one in a given JSON file. More...
 
const std::string & GetJsonPath ()
 

Protected Attributes

std::string m_path
 the string used to store the param in json files More...
 
bool m_readOnly
 ! True if the parameter pointer should never be overwritten More...
 

Private Attributes

int m_key
 
COLOR4D m_default
 
std::unordered_map< int, COLOR4D > * m_map
 

Detailed Description

Definition at line 107 of file color_settings.h.

Constructor & Destructor Documentation

◆ COLOR_MAP_PARAM()

COLOR_MAP_PARAM::COLOR_MAP_PARAM ( const std::string &  aJsonPath,
int  aMapKey,
COLOR4D  aDefault,
std::unordered_map< int, COLOR4D > *  aMap,
bool  aReadOnly = false 
)
inline

Definition at line 110 of file color_settings.h.

111  :
112  PARAM_BASE( aJsonPath, aReadOnly ), m_key( aMapKey ), m_default( aDefault ),
113  m_map( aMap )
114  {}
PARAM_BASE(std::string aJsonPath, bool aReadOnly)
Definition: parameters.h:35
std::unordered_map< int, COLOR4D > * m_map

Member Function Documentation

◆ GetDefault()

COLOR4D COLOR_MAP_PARAM::GetDefault ( ) const
inline

Definition at line 137 of file color_settings.h.

138  {
139  return m_default;
140  }

References m_default.

Referenced by COLOR_SETTINGS::GetDefaultColor().

◆ GetJsonPath()

const std::string& PARAM_BASE::GetJsonPath ( )
inlineinherited
Returns
the path name of the parameter used to store it in the json file mainly usefull in error messages

Definition at line 74 of file parameters.h.

74 { return m_path; }
std::string m_path
the string used to store the param in json files
Definition: parameters.h:80

References PARAM_BASE::m_path.

◆ GetKey()

int COLOR_MAP_PARAM::GetKey ( ) const
inline

Definition at line 132 of file color_settings.h.

133  {
134  return m_key;
135  }

References m_key.

◆ IsDefault()

bool COLOR_MAP_PARAM::IsDefault ( ) const
inlineoverridevirtual

Checks whether or not this param has been changed from its default value.

Returns
true if the parameter in memory matches its default value

Implements PARAM_BASE.

Definition at line 147 of file color_settings.h.

148  {
149  return ( *m_map )[ m_key ] == m_default;
150  }
std::unordered_map< int, COLOR4D > * m_map

References m_default, m_key, and m_map.

◆ Load()

void COLOR_MAP_PARAM::Load ( JSON_SETTINGS aSettings,
bool  aResetIfMissing = true 
) const
inlineoverridevirtual

Loads the value of this parameter from JSON to the underlying storage.

Parameters
aSettingsis the JSON_SETTINGS object to load from.
aResetIfMissingif true will set the parameter to its default value if load fails

Implements PARAM_BASE.

Definition at line 116 of file color_settings.h.

117  {
118  if( m_readOnly )
119  return;
120 
121  if( OPT<COLOR4D> optval = aSettings->Get<COLOR4D>( m_path ) )
122  ( *m_map )[ m_key ] = *optval;
123  else if( aResetIfMissing )
124  ( *m_map )[ m_key ] = m_default;
125  }
std::string m_path
the string used to store the param in json files
Definition: parameters.h:80
OPT< ValueType > Get(const std::string &aPath) const
Fetches a value from within the JSON document.
bool m_readOnly
! True if the parameter pointer should never be overwritten
Definition: parameters.h:83
boost::optional< T > OPT
Definition: optional.h:7
COLOR4D is the color representation with 4 components: red, green, blue, alpha.
Definition: color4d.h:99

References JSON_SETTINGS::Get(), m_default, m_key, PARAM_BASE::m_path, and PARAM_BASE::m_readOnly.

◆ MatchesFile()

bool COLOR_MAP_PARAM::MatchesFile ( JSON_SETTINGS aSettings) const
inlineoverridevirtual

Checks whether the parameter in memory matches the one in a given JSON file.

Parameters
aSettingsis a JSON_SETTINGS to check the JSON file contents of
Returns
true if the parameter in memory matches its value in the file

Implements PARAM_BASE.

Definition at line 152 of file color_settings.h.

153  {
154  if( OPT<COLOR4D> optval = aSettings->Get<COLOR4D>( m_path ) )
155  return m_map->count( m_key ) && ( *optval == m_map->at( m_key ) );
156 
157  // If the JSON doesn't exist, the map shouldn't exist either
158  return !m_map->count( m_key );
159  }
std::string m_path
the string used to store the param in json files
Definition: parameters.h:80
OPT< ValueType > Get(const std::string &aPath) const
Fetches a value from within the JSON document.
std::unordered_map< int, COLOR4D > * m_map
boost::optional< T > OPT
Definition: optional.h:7
COLOR4D is the color representation with 4 components: red, green, blue, alpha.
Definition: color4d.h:99

References JSON_SETTINGS::Get(), m_key, m_map, and PARAM_BASE::m_path.

◆ SetDefault()

void COLOR_MAP_PARAM::SetDefault ( )
inlineoverridevirtual

Implements PARAM_BASE.

Definition at line 142 of file color_settings.h.

143  {
144  ( *m_map )[ m_key ] = m_default;
145  }

References m_default, and m_key.

◆ Store()

void COLOR_MAP_PARAM::Store ( JSON_SETTINGS aSettings) const
inlineoverridevirtual

Stores the value of this parameter to the given JSON_SETTINGS object.

Parameters
aSettingsis the JSON_SETTINGS object to store into.

Implements PARAM_BASE.

Definition at line 127 of file color_settings.h.

128  {
129  aSettings->Set<COLOR4D>( m_path, ( *m_map )[ m_key ] );
130  }
std::string m_path
the string used to store the param in json files
Definition: parameters.h:80
void Set(const std::string &aPath, ValueType aVal)
Stores a value into the JSON document Will throw an exception if ValueType isn't something that the l...
COLOR4D is the color representation with 4 components: red, green, blue, alpha.
Definition: color4d.h:99

References m_key, PARAM_BASE::m_path, and JSON_SETTINGS::Set().

Member Data Documentation

◆ m_default

COLOR4D COLOR_MAP_PARAM::m_default
private

Definition at line 164 of file color_settings.h.

Referenced by GetDefault(), IsDefault(), Load(), and SetDefault().

◆ m_key

int COLOR_MAP_PARAM::m_key
private

Definition at line 162 of file color_settings.h.

Referenced by GetKey(), IsDefault(), Load(), MatchesFile(), SetDefault(), and Store().

◆ m_map

std::unordered_map<int, COLOR4D>* COLOR_MAP_PARAM::m_map
private

Definition at line 166 of file color_settings.h.

Referenced by IsDefault(), and MatchesFile().

◆ m_path

◆ m_readOnly

bool PARAM_BASE::m_readOnly
protectedinherited

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