Don't throw in a release build if the "keep" namespace is missing.

Fixes https://gitlab.com/kicad/code/kicad/issues/8618
This commit is contained in:
Jeff Young 2021-06-16 17:28:16 +01:00
parent 24bf5d3c5c
commit 0d2ea6223b
1 changed files with 7 additions and 4 deletions

View File

@ -332,21 +332,24 @@ void SETTINGS_MANAGER::SaveColorSettings( COLOR_SETTINGS* aSettings, const std::
if( !aSettings->Store() )
{
wxLogTrace( traceSettings, "Color scheme %s not modified; skipping save",
aSettings->GetFilename(), aNamespace );
aNamespace );
return;
}
wxASSERT( aSettings->Contains( aNamespace ) );
wxLogTrace( traceSettings, "Saving color scheme %s, preserving %s", aSettings->GetFilename(),
wxLogTrace( traceSettings, "Saving color scheme %s, preserving %s",
aSettings->GetFilename(),
aNamespace );
nlohmann::json backup = aSettings->At( aNamespace );
OPT<nlohmann::json> backup = aSettings->GetJson( aNamespace );
wxString path = GetColorSettingsPath();
aSettings->LoadFromFile( path );
( *aSettings->Internals() )[aNamespace].update( backup );
if( backup )
( *aSettings->Internals() )[aNamespace].update( *backup );
aSettings->Load();
aSettings->SaveToFile( path, true );