20#include <wx/aui/framemanager.h>
23#include <nlohmann/json.hpp>
34 {
"name",
"KiCad official repository" },
61 wxDefaultPosition ) );
67 [&]() -> nlohmann::json
69 nlohmann::json js = nlohmann::json::array();
73 js.push_back( nlohmann::json( { {
"name", pair.first.ToUTF8() },
74 {
"url", pair.second.ToUTF8() } } ) );
79 [&](
const nlohmann::json aObj )
83 if( !aObj.is_array() )
86 for(
const auto& entry : aObj )
88 if( entry.empty() || !entry.is_object() )
92 std::make_pair( wxString( entry[
"name"].get<std::string>() ),
93 wxString( entry[
"url"].get<std::string>() ) ) );
116 ret &= fromLegacy<int>( aCfg,
"LeftWinWidth",
"appearance.left_frame_width" );
120 Set(
"window.size_x", 0 );
121 Set(
"window.size_y", 0 );
APP_SETTINGS_BASE is a settings class that should be derived for each standalone KiCad application.
virtual bool MigrateFromLegacy(wxConfigBase *aCfg) override
Migrates from wxConfig to JSON-based configuration.
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::vector< PARAM_BASE * > m_params
The list of parameters (owned by this object)
wxString m_lastDesignBlockLibDir
wxSize m_TemplateWindowSize
virtual bool MigrateFromLegacy(wxConfigBase *aLegacyConfig) override
Migrates from wxConfig to JSON-based configuration.
wxPoint m_TemplateWindowPos
wxString m_lastUpdateCheckTime
wxString m_PcmLastDownloadDir
std::vector< wxString > m_OpenProjects
std::vector< std::pair< wxString, wxString > > m_PcmRepositories
wxString m_lastReceivedUpdate
Like a normal param, but with custom getter and setter functions.
const nlohmann::json PCM_DEFAULT_REPOSITORIES
const int kicadSchemaVersion
! Update the schema version whenever a migration is required
#define PCM_DEFAULT_REPOSITORY_URL