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, const 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
 
const std::string & GetJsonPath () const
 

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 162 of file parameters.h.

Constructor & Destructor Documentation

◆ PARAM_PATH()

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

Definition at line 165 of file parameters.h.

166  :
167  PARAM( aJsonPath, aPtr, aDefault, aReadOnly )
168  { }
PARAM(const std::string &aJsonPath, wxString *aPtr, wxString aDefault, bool aReadOnly=false)
Definition: parameters.h:85

Member Function Documentation

◆ fromFileFormat()

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

Definition at line 201 of file parameters.h.

202  {
203  wxString ret = aString;
204 #ifdef __WINDOWS__
205  ret.Replace( wxT( "/" ), wxT( "\\" ) );
206 #endif
207  return ret;
208  }

Referenced by Load(), and MatchesFile().

◆ GetDefault()

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

Definition at line 131 of file parameters.h.

132  {
133  return m_default;
134  }
wxString m_default
Definition: parameters.h:156

◆ GetJsonPath()

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

Definition at line 68 of file parameters.h.

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

References PARAM_BASE::m_path.

◆ 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 170 of file parameters.h.

171  {
172  if( m_readOnly )
173  return;
174 
175  PARAM::Load( aSettings, aResetIfMissing );
176 
177  *m_ptr = fromFileFormat( *m_ptr );
178  }
wxString * m_ptr
Definition: parameters.h:155
bool m_readOnly
! True if the parameter pointer should never be overwritten
Definition: parameters.h:77
wxString fromFileFormat(const wxString &aString) const
Definition: parameters.h:201
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:105

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 185 of file parameters.h.

186  {
187  if( OPT<wxString> optval = aSettings->Get<wxString>( m_path ) )
188  return fromFileFormat( *optval ) == *m_ptr;
189 
190  return false;
191  }
std::string m_path
the string used to store the param in json files
Definition: parameters.h:74
wxString * m_ptr
Definition: parameters.h:155
OPT< ValueType > Get(const std::string &aPath) const
Fetches a value from within the JSON document.
wxString fromFileFormat(const wxString &aString) const
Definition: parameters.h:201
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 136 of file parameters.h.

137  {
138  *m_ptr = m_default;
139  }
wxString * m_ptr
Definition: parameters.h:155
wxString m_default
Definition: parameters.h:156

◆ 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 180 of file parameters.h.

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

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 194 of file parameters.h.

195  {
196  wxString ret = aString;
197  ret.Replace( wxT( "\\" ), wxT( "/" ) );
198  return ret;
199  }

Referenced by Store().

Member Data Documentation

◆ m_default

wxString PARAM< wxString >::m_default
protectedinherited

Definition at line 156 of file parameters.h.

◆ m_path

◆ m_ptr

wxString * PARAM< wxString >::m_ptr
protectedinherited

Definition at line 155 of file parameters.h.

◆ m_readOnly

bool PARAM_BASE::m_readOnly
protectedinherited

! True if the parameter pointer should never be overwritten

Definition at line 77 of file parameters.h.

Referenced by PARAM< wxString >::Load(), COLOR_MAP_PARAM::Load(), Load(), PARAM_ENUM< EnumType >::Load(), PARAM_SCALED< ValueType >::Load(), PARAM_PATH_LIST::Load(), and PARAM_WXSTRING_MAP::Load().


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