KiCad PCB EDA Suite
PARAM_PATH Class Reference

Stores a path as a string with directory separators normalized to unix-style. More...

#include <parameters.h>

Inheritance diagram for PARAM_PATH:
PARAM< wxString > PARAM_BASE

Public Member Functions

 PARAM_PATH (const std::string &aJsonPath, wxString *aPtr, wxString aDefault, 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...
 
bool MatchesFile (JSON_SETTINGS *aSettings) const override
 Checks whether the parameter in memory matches the one in a given JSON file. More...
 
wxString GetDefault () const
 
void SetDefault () override
 
bool IsDefault () const override
 Checks whether or not this param has been changed from its default value. More...
 
const std::string & GetJsonPath ()
 

Protected Attributes

wxString * m_ptr
 
wxString m_default
 
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 Member Functions

wxString toFileFormat (const wxString &aString) const
 
wxString fromFileFormat (const wxString &aString) const
 

Detailed Description

Stores a path as a string with directory separators normalized to unix-style.

Definition at line 173 of file parameters.h.

Constructor & Destructor Documentation

◆ PARAM_PATH()

PARAM_PATH::PARAM_PATH ( const std::string &  aJsonPath,
wxString *  aPtr,
wxString  aDefault,
bool  aReadOnly = false 
)
inline

Definition at line 176 of file parameters.h.

177  :
178  PARAM( aJsonPath, aPtr, aDefault, aReadOnly )
179  { }
PARAM(const std::string &aJsonPath, wxString *aPtr, wxString aDefault, bool aReadOnly=false)
Definition: parameters.h:91

Member Function Documentation

◆ fromFileFormat()

wxString PARAM_PATH::fromFileFormat ( const wxString &  aString) const
inlineprivate

Definition at line 212 of file parameters.h.

213  {
214  wxString ret = aString;
215 #ifdef __WINDOWS__
216  ret.Replace( wxT( "/" ), wxT( "\\" ) );
217 #endif
218  return ret;
219  }

Referenced by Load(), and MatchesFile().

◆ GetDefault()

wxString PARAM< wxString >::GetDefault ( ) const
inlineinherited

Definition at line 137 of file parameters.h.

138  {
139  return m_default;
140  }
wxString m_default
Definition: parameters.h:167

◆ 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.

◆ IsDefault()

bool PARAM< wxString >::IsDefault ( ) const
inlineoverridevirtualinherited

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 parameters.h.

148  {
149  return *m_ptr == m_default;
150  }
wxString * m_ptr
Definition: parameters.h:166
wxString m_default
Definition: parameters.h:167

◆ Load()

void PARAM_PATH::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 181 of file parameters.h.

182  {
183  if( m_readOnly )
184  return;
185 
186  PARAM::Load( aSettings, aResetIfMissing );
187 
188  *m_ptr = fromFileFormat( *m_ptr );
189  }
wxString * m_ptr
Definition: parameters.h:166
bool m_readOnly
! True if the parameter pointer should never be overwritten
Definition: parameters.h:83
wxString fromFileFormat(const wxString &aString) const
Definition: parameters.h:212
void Load(JSON_SETTINGS *aSettings, bool aResetIfMissing=true) const override
Loads the value of this parameter from JSON to the underlying storage.
Definition: parameters.h:111

References fromFileFormat(), PARAM< ValueType >::Load(), PARAM< wxString >::m_ptr, and PARAM_BASE::m_readOnly.

◆ MatchesFile()

bool PARAM_PATH::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 196 of file parameters.h.

197  {
198  if( OPT<wxString> optval = aSettings->Get<wxString>( m_path ) )
199  return fromFileFormat( *optval ) == *m_ptr;
200 
201  return false;
202  }
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.
wxString * m_ptr
Definition: parameters.h:166
wxString fromFileFormat(const wxString &aString) const
Definition: parameters.h:212
boost::optional< T > OPT
Definition: optional.h:7

References fromFileFormat(), JSON_SETTINGS::Get(), PARAM_BASE::m_path, and PARAM< wxString >::m_ptr.

◆ SetDefault()

void PARAM< wxString >::SetDefault ( )
inlineoverridevirtualinherited

Implements PARAM_BASE.

Definition at line 142 of file parameters.h.

143  {
144  *m_ptr = m_default;
145  }
wxString * m_ptr
Definition: parameters.h:166
wxString m_default
Definition: parameters.h:167

◆ Store()

void PARAM_PATH::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 191 of file parameters.h.

192  {
193  aSettings->Set<wxString>( m_path, toFileFormat( *m_ptr ) );
194  }
std::string m_path
the string used to store the param in json files
Definition: parameters.h:80
wxString * m_ptr
Definition: parameters.h:166
wxString toFileFormat(const wxString &aString) const
Definition: parameters.h:205
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...

References PARAM_BASE::m_path, PARAM< wxString >::m_ptr, JSON_SETTINGS::Set(), and toFileFormat().

◆ toFileFormat()

wxString PARAM_PATH::toFileFormat ( const wxString &  aString) const
inlineprivate

Definition at line 205 of file parameters.h.

206  {
207  wxString ret = aString;
208  ret.Replace( wxT( "\\" ), wxT( "/" ) );
209  return ret;
210  }

Referenced by Store().

Member Data Documentation

◆ m_default

wxString PARAM< wxString >::m_default
protectedinherited

Definition at line 167 of file parameters.h.

◆ m_path

◆ m_ptr

wxString * PARAM< wxString >::m_ptr
protectedinherited

Definition at line 166 of file parameters.h.

◆ m_readOnly


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