Retire PARAM_OBSOLETE in favour of a schema migration.
This commit is contained in:
parent
7d501e8a43
commit
78fd268b18
|
@ -21,6 +21,7 @@
|
||||||
#include <3d_enums.h>
|
#include <3d_enums.h>
|
||||||
#include <common_ogl/ogl_attr_list.h>
|
#include <common_ogl/ogl_attr_list.h>
|
||||||
#include <settings/parameters.h>
|
#include <settings/parameters.h>
|
||||||
|
#include <settings/json_settings_internals.h>
|
||||||
#include <wx/config.h>
|
#include <wx/config.h>
|
||||||
|
|
||||||
#include "eda_3d_viewer_settings.h"
|
#include "eda_3d_viewer_settings.h"
|
||||||
|
@ -28,7 +29,7 @@
|
||||||
using KIGFX::COLOR4D;
|
using KIGFX::COLOR4D;
|
||||||
|
|
||||||
///! Update the schema version whenever a migration is required
|
///! Update the schema version whenever a migration is required
|
||||||
const int viewer3dSchemaVersion = 0;
|
const int viewer3dSchemaVersion = 1;
|
||||||
|
|
||||||
|
|
||||||
EDA_3D_VIEWER_SETTINGS::EDA_3D_VIEWER_SETTINGS()
|
EDA_3D_VIEWER_SETTINGS::EDA_3D_VIEWER_SETTINGS()
|
||||||
|
@ -169,7 +170,8 @@ EDA_3D_VIEWER_SETTINGS::EDA_3D_VIEWER_SETTINGS()
|
||||||
&m_Render.show_board_body, true ) );
|
&m_Render.show_board_body, true ) );
|
||||||
m_params.emplace_back( new PARAM<bool>( "render.show_comments",
|
m_params.emplace_back( new PARAM<bool>( "render.show_comments",
|
||||||
&m_Render.show_comments, true ) );
|
&m_Render.show_comments, true ) );
|
||||||
m_params.emplace_back( new PARAM<bool>( "render.show_eco", &m_Render.show_eco, true ) );
|
m_params.emplace_back( new PARAM<bool>( "render.show_eco",
|
||||||
|
&m_Render.show_eco, true ) );
|
||||||
m_params.emplace_back( new PARAM<bool>( "render.show_footprints_insert",
|
m_params.emplace_back( new PARAM<bool>( "render.show_footprints_insert",
|
||||||
&m_Render.show_footprints_insert, true ) );
|
&m_Render.show_footprints_insert, true ) );
|
||||||
m_params.emplace_back( new PARAM<bool>( "render.show_footprints_normal",
|
m_params.emplace_back( new PARAM<bool>( "render.show_footprints_normal",
|
||||||
|
@ -199,7 +201,27 @@ EDA_3D_VIEWER_SETTINGS::EDA_3D_VIEWER_SETTINGS()
|
||||||
m_params.emplace_back( new PARAM<int>( "camera.projection_mode",
|
m_params.emplace_back( new PARAM<int>( "camera.projection_mode",
|
||||||
&m_Camera.projection_mode, 1 ) );
|
&m_Camera.projection_mode, 1 ) );
|
||||||
|
|
||||||
m_params.emplace_back( new PARAM_OBSOLETE( "colors" ) );
|
registerMigration( 0, 1, std::bind( &EDA_3D_VIEWER_SETTINGS::migrateSchema0to1, this ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool EDA_3D_VIEWER_SETTINGS::migrateSchema0to1()
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Schema version 0 to 1:
|
||||||
|
*
|
||||||
|
* delete colors (they're now stored in the 'user' color theme.
|
||||||
|
*/
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if( m_internals->contains( "colors" ) )
|
||||||
|
m_internals->erase( "colors" );
|
||||||
|
}
|
||||||
|
catch( ... )
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -106,8 +106,10 @@ public:
|
||||||
CAMERA_SETTINGS m_Camera;
|
CAMERA_SETTINGS m_Camera;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
virtual std::string getLegacyFrameName() const override { return "Viewer3DFrameName"; }
|
virtual std::string getLegacyFrameName() const override { return "Viewer3DFrameName"; }
|
||||||
|
|
||||||
|
private:
|
||||||
|
bool migrateSchema0to1();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -25,13 +25,6 @@
|
||||||
#include <gal/color4d.h>
|
#include <gal/color4d.h>
|
||||||
#include <project/project_file.h>
|
#include <project/project_file.h>
|
||||||
#include <settings/parameters.h>
|
#include <settings/parameters.h>
|
||||||
#include <settings/json_settings_internals.h>
|
|
||||||
|
|
||||||
|
|
||||||
void PARAM_OBSOLETE::Store( JSON_SETTINGS* aSettings ) const
|
|
||||||
{
|
|
||||||
aSettings->Internals()->erase( m_path );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template <typename ValueType>
|
template <typename ValueType>
|
||||||
|
|
|
@ -156,30 +156,6 @@ protected:
|
||||||
ValueType m_default;
|
ValueType m_default;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
|
||||||
* Handles an obsolete parameter (ie: removes it on write).
|
|
||||||
*/
|
|
||||||
class PARAM_OBSOLETE : public PARAM_BASE
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
PARAM_OBSOLETE( const std::string& aJsonPath ) :
|
|
||||||
PARAM_BASE( aJsonPath, false )
|
|
||||||
{ }
|
|
||||||
|
|
||||||
void Load( JSON_SETTINGS* aSettings, bool aResetIfMissing = true ) const override
|
|
||||||
{ }
|
|
||||||
|
|
||||||
void Store( JSON_SETTINGS* aSettings ) const override;
|
|
||||||
|
|
||||||
void SetDefault() override
|
|
||||||
{ }
|
|
||||||
|
|
||||||
bool MatchesFile( JSON_SETTINGS* aSettings ) const override
|
|
||||||
{
|
|
||||||
return !aSettings->Contains( m_path );
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Stores a path as a string with directory separators normalized to unix-style
|
* Stores a path as a string with directory separators normalized to unix-style
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue