Make sure user.json file gets created if it didn't already exist.
Fixes https://gitlab.com/kicad/code/kicad/issues/8856
This commit is contained in:
parent
6f1837b300
commit
4876e1b327
|
@ -181,16 +181,23 @@ COLOR_SETTINGS* SETTINGS_MANAGER::GetColorSettings( const wxString& aName )
|
||||||
if( m_color_settings.count( aName ) )
|
if( m_color_settings.count( aName ) )
|
||||||
return m_color_settings.at( aName );
|
return m_color_settings.at( aName );
|
||||||
|
|
||||||
COLOR_SETTINGS* ret = nullptr;
|
|
||||||
|
|
||||||
if( !aName.empty() )
|
if( !aName.empty() )
|
||||||
ret = loadColorSettingsByName( aName );
|
{
|
||||||
|
COLOR_SETTINGS* ret = loadColorSettingsByName( aName );
|
||||||
|
|
||||||
|
if( !ret )
|
||||||
|
{
|
||||||
|
ret = registerColorSettings( aName );
|
||||||
|
*ret = *m_color_settings.at( "_builtin_default" );
|
||||||
|
ret->SetFilename( wxT( "user" ) );
|
||||||
|
ret->SetReadOnly( false );
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
// This had better work
|
// This had better work
|
||||||
if( !ret )
|
return m_color_settings.at( "_builtin_default" );
|
||||||
ret = m_color_settings.at( "_builtin_default" );
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -206,8 +213,7 @@ COLOR_SETTINGS* SETTINGS_MANAGER::loadColorSettingsByName( const wxString& aName
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto cs = static_cast<COLOR_SETTINGS*>(
|
auto cs = static_cast<COLOR_SETTINGS*>( RegisterSettings( new COLOR_SETTINGS( aName ) ) );
|
||||||
RegisterSettings( new COLOR_SETTINGS( aName.ToStdString() ) ) );
|
|
||||||
|
|
||||||
if( cs->GetFilename() != aName.ToStdString() )
|
if( cs->GetFilename() != aName.ToStdString() )
|
||||||
wxLogTrace( traceSettings, "Warning: stored filename is actually %s, ", cs->GetFilename() );
|
wxLogTrace( traceSettings, "Warning: stored filename is actually %s, ", cs->GetFilename() );
|
||||||
|
@ -248,25 +254,24 @@ public:
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
void SETTINGS_MANAGER::registerColorSettings( const wxString& aFilename )
|
COLOR_SETTINGS* SETTINGS_MANAGER::registerColorSettings( const wxString& aName )
|
||||||
{
|
{
|
||||||
if( m_color_settings.count( aFilename ) )
|
if( !m_color_settings.count( aName ) )
|
||||||
return;
|
{
|
||||||
|
auto cs = static_cast<COLOR_SETTINGS*>( RegisterSettings( new COLOR_SETTINGS( aName ) ) );
|
||||||
|
m_color_settings[aName] = cs;
|
||||||
|
}
|
||||||
|
|
||||||
m_color_settings[aFilename] = static_cast<COLOR_SETTINGS*>(
|
return m_color_settings.at( aName );
|
||||||
RegisterSettings( new COLOR_SETTINGS( aFilename ) ) );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
COLOR_SETTINGS* SETTINGS_MANAGER::AddNewColorSettings( const wxString& aFilename )
|
COLOR_SETTINGS* SETTINGS_MANAGER::AddNewColorSettings( const wxString& aName )
|
||||||
{
|
{
|
||||||
wxString filename = aFilename;
|
if( aName.EndsWith( wxT( ".json" ) ) )
|
||||||
|
return registerColorSettings( aName.BeforeLast( '.' ) );
|
||||||
if( filename.EndsWith( wxT( ".json" ) ) )
|
else
|
||||||
filename = filename.BeforeLast( '.' );
|
return registerColorSettings( aName );
|
||||||
|
|
||||||
registerColorSettings( filename );
|
|
||||||
return m_color_settings[filename];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -274,9 +279,9 @@ COLOR_SETTINGS* SETTINGS_MANAGER::GetMigratedColorSettings()
|
||||||
{
|
{
|
||||||
if( !m_color_settings.count( "user" ) )
|
if( !m_color_settings.count( "user" ) )
|
||||||
{
|
{
|
||||||
registerColorSettings( wxT( "user" ) );
|
COLOR_SETTINGS* settings = registerColorSettings( wxT( "user" ) );
|
||||||
m_color_settings.at( "user" )->SetName( wxT( "User" ) );
|
settings->SetName( wxT( "User" ) );
|
||||||
Save( m_color_settings.at( "user" ) );
|
Save( settings );
|
||||||
}
|
}
|
||||||
|
|
||||||
return m_color_settings.at( "user" );
|
return m_color_settings.at( "user" );
|
||||||
|
|
|
@ -380,7 +380,7 @@ private:
|
||||||
*/
|
*/
|
||||||
COLOR_SETTINGS* loadColorSettingsByName( const wxString& aName );
|
COLOR_SETTINGS* loadColorSettingsByName( const wxString& aName );
|
||||||
|
|
||||||
void registerColorSettings( const wxString& aFilename );
|
COLOR_SETTINGS* registerColorSettings( const wxString& aFilename );
|
||||||
|
|
||||||
void loadAllColorSettings();
|
void loadAllColorSettings();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue