diff --git a/3d-viewer/3d_canvas/board_adapter.cpp b/3d-viewer/3d_canvas/board_adapter.cpp index 42e3d9507a..4e0c5ddffa 100644 --- a/3d-viewer/3d_canvas/board_adapter.cpp +++ b/3d-viewer/3d_canvas/board_adapter.cpp @@ -227,16 +227,8 @@ void BOARD_ADAPTER::ReloadColorSettings() noexcept { wxCHECK( PgmOrNull(), /* void */ ); - PCBNEW_SETTINGS* cfg = nullptr; - - try - { - cfg = Pgm().GetSettingsManager().GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" ); - } - catch( const std::runtime_error& e ) - { - wxFAIL_MSG( e.what() ); - } + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + PCBNEW_SETTINGS* cfg = mgr.GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" ); if( cfg ) { diff --git a/3d-viewer/3d_canvas/eda_3d_canvas.cpp b/3d-viewer/3d_canvas/eda_3d_canvas.cpp index 81b2a0064b..edfe5af80e 100644 --- a/3d-viewer/3d_canvas/eda_3d_canvas.cpp +++ b/3d-viewer/3d_canvas/eda_3d_canvas.cpp @@ -1093,7 +1093,7 @@ bool EDA_3D_CANVAS::SetView3D( VIEW3D_TYPE aRequestedView ) void EDA_3D_CANVAS::RenderEngineChanged() { SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); - EDA_3D_VIEWER_SETTINGS* cfg = mgr.GetAppSettings<EDA_3D_VIEWER_SETTINGS>(); + EDA_3D_VIEWER_SETTINGS* cfg = mgr.GetAppSettings<EDA_3D_VIEWER_SETTINGS>( "3d_viewer" ); switch( cfg->m_Render.engine ) { diff --git a/3d-viewer/3d_viewer/eda_3d_viewer_frame.cpp b/3d-viewer/3d_viewer/eda_3d_viewer_frame.cpp index d3f8a12529..463fb9209f 100644 --- a/3d-viewer/3d_viewer/eda_3d_viewer_frame.cpp +++ b/3d-viewer/3d_viewer/eda_3d_viewer_frame.cpp @@ -480,7 +480,9 @@ void EDA_3D_VIEWER_FRAME::Process_Special_Functions( wxCommandEvent &event ) case ID_MENU3D_RESET_DEFAULTS: { - auto cfg = Pgm().GetSettingsManager().GetAppSettings<EDA_3D_VIEWER_SETTINGS>( "3d_viewer" ); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + EDA_3D_VIEWER_SETTINGS* cfg = mgr.GetAppSettings<EDA_3D_VIEWER_SETTINGS>( "3d_viewer" ); + cfg->ResetToDefaults(); LoadSettings( cfg ); @@ -607,7 +609,8 @@ void EDA_3D_VIEWER_FRAME::LoadSettings( APP_SETTINGS_BASE *aCfg ) void EDA_3D_VIEWER_FRAME::SaveSettings( APP_SETTINGS_BASE *aCfg ) { - auto cfg = Pgm().GetSettingsManager().GetAppSettings<EDA_3D_VIEWER_SETTINGS>( "3d_viewer" ); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + EDA_3D_VIEWER_SETTINGS* cfg = mgr.GetAppSettings<EDA_3D_VIEWER_SETTINGS>( "3d_viewer" ); EDA_BASE_FRAME::SaveSettings( cfg ); diff --git a/3d-viewer/dialogs/panel_3D_display_options.cpp b/3d-viewer/dialogs/panel_3D_display_options.cpp index b6b14cee8c..95e3e6ec48 100644 --- a/3d-viewer/dialogs/panel_3D_display_options.cpp +++ b/3d-viewer/dialogs/panel_3D_display_options.cpp @@ -64,7 +64,8 @@ void PANEL_3D_DISPLAY_OPTIONS::loadViewSettings( EDA_3D_VIEWER_SETTINGS* aCfg ) bool PANEL_3D_DISPLAY_OPTIONS::TransferDataToWindow() { - EDA_3D_VIEWER_SETTINGS* cfg = Pgm().GetSettingsManager().GetAppSettings<EDA_3D_VIEWER_SETTINGS>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + EDA_3D_VIEWER_SETTINGS* cfg = mgr.GetAppSettings<EDA_3D_VIEWER_SETTINGS>( "3d_viewer" ); loadViewSettings( cfg ); @@ -74,7 +75,8 @@ bool PANEL_3D_DISPLAY_OPTIONS::TransferDataToWindow() bool PANEL_3D_DISPLAY_OPTIONS::TransferDataFromWindow() { - EDA_3D_VIEWER_SETTINGS* cfg = Pgm().GetSettingsManager().GetAppSettings<EDA_3D_VIEWER_SETTINGS>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + EDA_3D_VIEWER_SETTINGS* cfg = mgr.GetAppSettings<EDA_3D_VIEWER_SETTINGS>( "3d_viewer" ); // Set visibility of items cfg->m_Render.show_zones = m_checkBoxAreas->GetValue(); diff --git a/3d-viewer/dialogs/panel_3D_opengl_options.cpp b/3d-viewer/dialogs/panel_3D_opengl_options.cpp index c6537319d1..c6f00282e1 100644 --- a/3d-viewer/dialogs/panel_3D_opengl_options.cpp +++ b/3d-viewer/dialogs/panel_3D_opengl_options.cpp @@ -56,7 +56,8 @@ void PANEL_3D_OPENGL_OPTIONS::loadSettings( EDA_3D_VIEWER_SETTINGS* aCfg ) bool PANEL_3D_OPENGL_OPTIONS::TransferDataToWindow() { - EDA_3D_VIEWER_SETTINGS* cfg = Pgm().GetSettingsManager().GetAppSettings<EDA_3D_VIEWER_SETTINGS>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + EDA_3D_VIEWER_SETTINGS* cfg = mgr.GetAppSettings<EDA_3D_VIEWER_SETTINGS>( "3d_viewer" ); loadSettings( cfg ); @@ -66,7 +67,8 @@ bool PANEL_3D_OPENGL_OPTIONS::TransferDataToWindow() bool PANEL_3D_OPENGL_OPTIONS::TransferDataFromWindow() { - EDA_3D_VIEWER_SETTINGS* cfg = Pgm().GetSettingsManager().GetAppSettings<EDA_3D_VIEWER_SETTINGS>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + EDA_3D_VIEWER_SETTINGS* cfg = mgr.GetAppSettings<EDA_3D_VIEWER_SETTINGS>( "3d_viewer" ); cfg->m_Render.opengl_copper_thickness = m_checkBoxCuThickness->GetValue(); cfg->m_Render.show_model_bbox = m_checkBoxBoundingBoxes->GetValue(); diff --git a/3d-viewer/dialogs/panel_3D_raytracing_options.cpp b/3d-viewer/dialogs/panel_3D_raytracing_options.cpp index 51257fb9f2..4add9e0cc9 100644 --- a/3d-viewer/dialogs/panel_3D_raytracing_options.cpp +++ b/3d-viewer/dialogs/panel_3D_raytracing_options.cpp @@ -110,8 +110,8 @@ void PANEL_3D_RAYTRACING_OPTIONS::loadSettings( EDA_3D_VIEWER_SETTINGS* aCfg ) bool PANEL_3D_RAYTRACING_OPTIONS::TransferDataToWindow() { - SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); - EDA_3D_VIEWER_SETTINGS* cfg = mgr.GetAppSettings<EDA_3D_VIEWER_SETTINGS>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + EDA_3D_VIEWER_SETTINGS* cfg = mgr.GetAppSettings<EDA_3D_VIEWER_SETTINGS>( "3d_viewer" ); loadSettings( cfg ); @@ -121,8 +121,8 @@ bool PANEL_3D_RAYTRACING_OPTIONS::TransferDataToWindow() bool PANEL_3D_RAYTRACING_OPTIONS::TransferDataFromWindow() { - SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); - EDA_3D_VIEWER_SETTINGS* cfg = mgr.GetAppSettings<EDA_3D_VIEWER_SETTINGS>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + EDA_3D_VIEWER_SETTINGS* cfg = mgr.GetAppSettings<EDA_3D_VIEWER_SETTINGS>( "3d_viewer" ); cfg->m_Render.raytrace_shadows = m_cbRaytracing_renderShadows->GetValue(); cfg->m_Render.raytrace_backfloor = m_cbRaytracing_addFloor->GetValue(); diff --git a/3d-viewer/dialogs/panel_preview_3d_model.cpp b/3d-viewer/dialogs/panel_preview_3d_model.cpp index b0a4c07a03..cc019b162a 100644 --- a/3d-viewer/dialogs/panel_preview_3d_model.cpp +++ b/3d-viewer/dialogs/panel_preview_3d_model.cpp @@ -204,7 +204,8 @@ void PANEL_PREVIEW_3D_MODEL::loadSettings() // TODO(JE) use all control options m_boardAdapter.m_MousewheelPanning = settings->m_Input.scroll_modifier_zoom != 0; - auto* cfg = Pgm().GetSettingsManager().GetAppSettings<EDA_3D_VIEWER_SETTINGS>( "3d_viewer" ); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + EDA_3D_VIEWER_SETTINGS* cfg = mgr.GetAppSettings<EDA_3D_VIEWER_SETTINGS>( "3d_viewer" ); if( cfg ) { diff --git a/common/design_block_lib_table.cpp b/common/design_block_lib_table.cpp index 8e34fdfb2a..b180ef36d9 100644 --- a/common/design_block_lib_table.cpp +++ b/common/design_block_lib_table.cpp @@ -627,7 +627,7 @@ bool DESIGN_BLOCK_LIB_TABLE::LoadGlobalTable( DESIGN_BLOCK_LIB_TABLE& aTable ) aTable.Load( fn.GetFullPath() ); SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); - KICAD_SETTINGS* settings = mgr.GetAppSettings<KICAD_SETTINGS>(); + KICAD_SETTINGS* settings = mgr.GetAppSettings<KICAD_SETTINGS>( "kicad" ); const ENV_VAR_MAP& env = Pgm().GetLocalEnvVariables(); wxString packagesPath; diff --git a/common/dialogs/panel_design_block_lib_table.cpp b/common/dialogs/panel_design_block_lib_table.cpp index 9512764144..0432781d7d 100644 --- a/common/dialogs/panel_design_block_lib_table.cpp +++ b/common/dialogs/panel_design_block_lib_table.cpp @@ -314,7 +314,8 @@ PANEL_DESIGN_BLOCK_LIB_TABLE::PANEL_DESIGN_BLOCK_LIB_TABLE( DIALOG_EDIT_LIBRARY_ choices.Add( DESIGN_BLOCK_IO_MGR::ShowType( fileType ) ); - KICAD_SETTINGS* cfg = Pgm().GetSettingsManager().GetAppSettings<KICAD_SETTINGS>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + KICAD_SETTINGS* cfg = mgr.GetAppSettings<KICAD_SETTINGS>( "kicad" ); if( cfg->m_lastDesignBlockLibDir.IsEmpty() ) cfg->m_lastDesignBlockLibDir = PATHS::GetDefaultUserDesignBlocksPath(); @@ -916,7 +917,8 @@ void PANEL_DESIGN_BLOCK_LIB_TABLE::browseLibrariesHandler( wxCommandEvent& event } const IO_BASE::IO_FILE_DESC& fileDesc = m_supportedDesignBlockFiles.at( fileType ); - KICAD_SETTINGS* cfg = Pgm().GetSettingsManager().GetAppSettings<KICAD_SETTINGS>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + KICAD_SETTINGS* cfg = mgr.GetAppSettings<KICAD_SETTINGS>( "kicad" ); wxString title = wxString::Format( _( "Select %s Library" ), DESIGN_BLOCK_IO_MGR::ShowType( fileType ) ); diff --git a/common/dialogs/panel_packages_and_updates.cpp b/common/dialogs/panel_packages_and_updates.cpp index ba7cc802de..ec817a4c3b 100644 --- a/common/dialogs/panel_packages_and_updates.cpp +++ b/common/dialogs/panel_packages_and_updates.cpp @@ -48,13 +48,13 @@ PANEL_PACKAGES_AND_UPDATES::PANEL_PACKAGES_AND_UPDATES( wxWindow* parent ) : bool PANEL_PACKAGES_AND_UPDATES::TransferDataToWindow() { SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); - KICAD_SETTINGS* settings = mgr.GetAppSettings<KICAD_SETTINGS>(); + KICAD_SETTINGS* cfg = mgr.GetAppSettings<KICAD_SETTINGS>( "kicad" ); - m_cbKicadUpdate->SetValue( settings->m_KiCadUpdateCheck ); - m_cbPcmUpdate->SetValue( settings->m_PcmUpdateCheck ); - m_libAutoAdd->SetValue( settings->m_PcmLibAutoAdd ); - m_libAutoRemove->SetValue( settings->m_PcmLibAutoRemove ); - m_libPrefix->SetValue( settings->m_PcmLibPrefix ); + m_cbKicadUpdate->SetValue( cfg->m_KiCadUpdateCheck ); + m_cbPcmUpdate->SetValue( cfg->m_PcmUpdateCheck ); + m_libAutoAdd->SetValue( cfg->m_PcmLibAutoAdd ); + m_libAutoRemove->SetValue( cfg->m_PcmLibAutoRemove ); + m_libPrefix->SetValue( cfg->m_PcmLibPrefix ); return true; } @@ -63,13 +63,13 @@ bool PANEL_PACKAGES_AND_UPDATES::TransferDataToWindow() bool PANEL_PACKAGES_AND_UPDATES::TransferDataFromWindow() { SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); - KICAD_SETTINGS* settings = mgr.GetAppSettings<KICAD_SETTINGS>(); + KICAD_SETTINGS* cfg = mgr.GetAppSettings<KICAD_SETTINGS>( "kicad" ); - settings->m_KiCadUpdateCheck = m_cbKicadUpdate->GetValue(); - settings->m_PcmUpdateCheck = m_cbPcmUpdate->GetValue(); - settings->m_PcmLibAutoAdd = m_libAutoAdd->GetValue(); - settings->m_PcmLibAutoRemove = m_libAutoRemove->GetValue(); - settings->m_PcmLibPrefix = m_libPrefix->GetValue(); + cfg->m_KiCadUpdateCheck = m_cbKicadUpdate->GetValue(); + cfg->m_PcmUpdateCheck = m_cbPcmUpdate->GetValue(); + cfg->m_PcmLibAutoAdd = m_libAutoAdd->GetValue(); + cfg->m_PcmLibAutoRemove = m_libAutoRemove->GetValue(); + cfg->m_PcmLibPrefix = m_libPrefix->GetValue(); return true; } diff --git a/common/fp_lib_table.cpp b/common/fp_lib_table.cpp index 43adfa10b7..27fd8cee9a 100644 --- a/common/fp_lib_table.cpp +++ b/common/fp_lib_table.cpp @@ -622,7 +622,7 @@ bool FP_LIB_TABLE::LoadGlobalTable( FP_LIB_TABLE& aTable ) aTable.Load( fn.GetFullPath() ); SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); - KICAD_SETTINGS* settings = mgr.GetAppSettings<KICAD_SETTINGS>(); + KICAD_SETTINGS* settings = mgr.GetAppSettings<KICAD_SETTINGS>( "kicad" ); const ENV_VAR_MAP& env = Pgm().GetLocalEnvVariables(); wxString packagesPath; diff --git a/eeschema/dialogs/dialog_lib_edit_pin_table.cpp b/eeschema/dialogs/dialog_lib_edit_pin_table.cpp index ced9f689c4..1d881eeb84 100644 --- a/eeschema/dialogs/dialog_lib_edit_pin_table.cpp +++ b/eeschema/dialogs/dialog_lib_edit_pin_table.cpp @@ -328,7 +328,8 @@ public: VECTOR2I pos = last->GetPosition(); - auto* cfg = Pgm().GetSettingsManager().GetAppSettings<SYMBOL_EDITOR_SETTINGS>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + SYMBOL_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" ); if( last->GetOrientation() == PIN_ORIENTATION::PIN_LEFT || last->GetOrientation() == PIN_ORIENTATION::PIN_RIGHT ) diff --git a/eeschema/dialogs/dialog_lib_symbol_properties.cpp b/eeschema/dialogs/dialog_lib_symbol_properties.cpp index 39f146ca7a..03742e88fd 100644 --- a/eeschema/dialogs/dialog_lib_symbol_properties.cpp +++ b/eeschema/dialogs/dialog_lib_symbol_properties.cpp @@ -187,7 +187,10 @@ bool DIALOG_LIB_SYMBOL_PROPERTIES::TransferDataToWindow() // Add in any template fieldnames not yet defined: // Read global fieldname templates - if( EESCHEMA_SETTINGS* cfg = Pgm().GetSettingsManager().GetAppSettings<EESCHEMA_SETTINGS>() ) + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ); + + if( cfg ) { TEMPLATES templateMgr; diff --git a/eeschema/dialogs/panel_eeschema_annotation_options.cpp b/eeschema/dialogs/panel_eeschema_annotation_options.cpp index 9e749e1d51..6c74ec8c8e 100644 --- a/eeschema/dialogs/panel_eeschema_annotation_options.cpp +++ b/eeschema/dialogs/panel_eeschema_annotation_options.cpp @@ -80,7 +80,7 @@ void PANEL_EESCHEMA_ANNOTATION_OPTIONS::loadEEschemaSettings( EESCHEMA_SETTINGS* bool PANEL_EESCHEMA_ANNOTATION_OPTIONS::TransferDataToWindow() { SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); - EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>(); + EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ); loadEEschemaSettings( cfg ); @@ -91,7 +91,7 @@ bool PANEL_EESCHEMA_ANNOTATION_OPTIONS::TransferDataToWindow() bool PANEL_EESCHEMA_ANNOTATION_OPTIONS::TransferDataFromWindow() { SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); - EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>(); + EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ); cfg->m_AnnotatePanel.automatic = m_checkAutoAnnotate->GetValue(); diff --git a/eeschema/dialogs/panel_eeschema_color_settings.cpp b/eeschema/dialogs/panel_eeschema_color_settings.cpp index dff864fba7..8e7f492350 100644 --- a/eeschema/dialogs/panel_eeschema_color_settings.cpp +++ b/eeschema/dialogs/panel_eeschema_color_settings.cpp @@ -69,7 +69,7 @@ PANEL_EESCHEMA_COLOR_SETTINGS::PANEL_EESCHEMA_COLOR_SETTINGS( wxWindow* aParent SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); COMMON_SETTINGS* common_settings = Pgm().GetCommonSettings(); - EESCHEMA_SETTINGS* app_settings = mgr.GetAppSettings<EESCHEMA_SETTINGS>(); + EESCHEMA_SETTINGS* app_settings = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ); COLOR_SETTINGS* current = mgr.GetColorSettings( app_settings->m_ColorTheme ); // Saved theme doesn't exist? Reset to default @@ -122,9 +122,10 @@ bool PANEL_EESCHEMA_COLOR_SETTINGS::TransferDataFromWindow() if( !saveCurrentTheme( true ) ) return false; - SETTINGS_MANAGER& settingsMgr = Pgm().GetSettingsManager(); - EESCHEMA_SETTINGS* app_settings = settingsMgr.GetAppSettings<EESCHEMA_SETTINGS>(); - app_settings->m_ColorTheme = m_currentSettings->GetFilename(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ); + + cfg->m_ColorTheme = m_currentSettings->GetFilename(); return true; } diff --git a/eeschema/dialogs/panel_eeschema_display_options.cpp b/eeschema/dialogs/panel_eeschema_display_options.cpp index 928f2f6cdb..12d102e0eb 100644 --- a/eeschema/dialogs/panel_eeschema_display_options.cpp +++ b/eeschema/dialogs/panel_eeschema_display_options.cpp @@ -81,7 +81,7 @@ void PANEL_EESCHEMA_DISPLAY_OPTIONS::loadEEschemaSettings( EESCHEMA_SETTINGS* cf bool PANEL_EESCHEMA_DISPLAY_OPTIONS::TransferDataToWindow() { SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); - EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>(); + EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ); loadEEschemaSettings( cfg ); @@ -94,7 +94,7 @@ bool PANEL_EESCHEMA_DISPLAY_OPTIONS::TransferDataToWindow() bool PANEL_EESCHEMA_DISPLAY_OPTIONS::TransferDataFromWindow() { SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); - EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>(); + EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ); cfg->m_Appearance.default_font = m_defaultFontCtrl->GetSelection() <= 0 ? wxString( KICAD_FONT_NAME ) // This is a keyword. Do not translate diff --git a/eeschema/dialogs/panel_eeschema_editing_options.cpp b/eeschema/dialogs/panel_eeschema_editing_options.cpp index 39c19231c3..dace090ca9 100644 --- a/eeschema/dialogs/panel_eeschema_editing_options.cpp +++ b/eeschema/dialogs/panel_eeschema_editing_options.cpp @@ -93,7 +93,7 @@ void PANEL_EESCHEMA_EDITING_OPTIONS::loadEEschemaSettings( EESCHEMA_SETTINGS* aC bool PANEL_EESCHEMA_EDITING_OPTIONS::TransferDataToWindow() { SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); - EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>(); + EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ); loadEEschemaSettings( cfg ); @@ -104,7 +104,7 @@ bool PANEL_EESCHEMA_EDITING_OPTIONS::TransferDataToWindow() bool PANEL_EESCHEMA_EDITING_OPTIONS::TransferDataFromWindow() { SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); - EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>(); + EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ); cfg->m_Drawing.default_sheet_border_color = m_borderColorSwatch->GetSwatchColor(); cfg->m_Drawing.default_sheet_background_color = m_backgroundColorSwatch->GetSwatchColor(); diff --git a/eeschema/dialogs/panel_simulator_preferences.cpp b/eeschema/dialogs/panel_simulator_preferences.cpp index fe5f3e9097..0bbddcc163 100644 --- a/eeschema/dialogs/panel_simulator_preferences.cpp +++ b/eeschema/dialogs/panel_simulator_preferences.cpp @@ -86,9 +86,9 @@ bool PANEL_SIMULATOR_PREFERENCES::TransferDataFromWindow() return static_cast<SIM_MOUSE_WHEEL_ACTION>( aChoice->GetSelection() ); }; - SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); - EESCHEMA_SETTINGS* settings = mgr.GetAppSettings<EESCHEMA_SETTINGS>(); - SIM_MOUSE_WHEEL_ACTION_SET& actions = settings->m_Simulator.preferences.mouse_wheel_actions; + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ); + SIM_MOUSE_WHEEL_ACTION_SET& actions = cfg->m_Simulator.preferences.mouse_wheel_actions; actions.vertical_unmodified = toAction( m_choiceVScrollUnmodified ); actions.vertical_with_ctrl = toAction( m_choiceVScrollCtrl ); @@ -103,9 +103,10 @@ bool PANEL_SIMULATOR_PREFERENCES::TransferDataFromWindow() bool PANEL_SIMULATOR_PREFERENCES::TransferDataToWindow() { - SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); - const EESCHEMA_SETTINGS* settings = mgr.GetAppSettings<EESCHEMA_SETTINGS>(); - applyMouseScrollActionsToPanel( settings->m_Simulator.preferences.mouse_wheel_actions ); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ); + + applyMouseScrollActionsToPanel( cfg->m_Simulator.preferences.mouse_wheel_actions ); return true; } diff --git a/eeschema/dialogs/panel_sym_color_settings.cpp b/eeschema/dialogs/panel_sym_color_settings.cpp index a49e72bf29..02c8c37249 100644 --- a/eeschema/dialogs/panel_sym_color_settings.cpp +++ b/eeschema/dialogs/panel_sym_color_settings.cpp @@ -36,7 +36,7 @@ PANEL_SYM_COLOR_SETTINGS::PANEL_SYM_COLOR_SETTINGS( wxWindow* aWindow ) : bool PANEL_SYM_COLOR_SETTINGS::TransferDataToWindow() { SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); - SYMBOL_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<SYMBOL_EDITOR_SETTINGS>(); + SYMBOL_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" ); if( cfg->m_UseEeschemaColorSettings ) m_eeschemaRB->SetValue( true ); @@ -73,7 +73,7 @@ bool PANEL_SYM_COLOR_SETTINGS::TransferDataToWindow() bool PANEL_SYM_COLOR_SETTINGS::TransferDataFromWindow() { SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); - SYMBOL_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<SYMBOL_EDITOR_SETTINGS>(); + SYMBOL_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" ); cfg->m_UseEeschemaColorSettings = m_eeschemaRB->GetValue(); diff --git a/eeschema/dialogs/panel_sym_display_options.cpp b/eeschema/dialogs/panel_sym_display_options.cpp index fa28675100..ddc742c2ae 100644 --- a/eeschema/dialogs/panel_sym_display_options.cpp +++ b/eeschema/dialogs/panel_sym_display_options.cpp @@ -51,7 +51,7 @@ void PANEL_SYM_DISPLAY_OPTIONS::loadSymEditorSettings( SYMBOL_EDITOR_SETTINGS* c bool PANEL_SYM_DISPLAY_OPTIONS::TransferDataToWindow() { SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); - SYMBOL_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<SYMBOL_EDITOR_SETTINGS>(); + SYMBOL_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" ); loadSymEditorSettings( cfg ); @@ -64,7 +64,7 @@ bool PANEL_SYM_DISPLAY_OPTIONS::TransferDataToWindow() bool PANEL_SYM_DISPLAY_OPTIONS::TransferDataFromWindow() { SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); - SYMBOL_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<SYMBOL_EDITOR_SETTINGS>(); + SYMBOL_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" ); cfg->m_ShowHiddenPins = m_checkShowHiddenPins->GetValue(); cfg->m_ShowHiddenFields = m_checkShowHiddenFields->GetValue(); diff --git a/eeschema/dialogs/panel_sym_editing_options.cpp b/eeschema/dialogs/panel_sym_editing_options.cpp index b47309e4f3..472b3df72f 100644 --- a/eeschema/dialogs/panel_sym_editing_options.cpp +++ b/eeschema/dialogs/panel_sym_editing_options.cpp @@ -62,9 +62,9 @@ void PANEL_SYM_EDITING_OPTIONS::loadSymEditorSettings( SYMBOL_EDITOR_SETTINGS* a bool PANEL_SYM_EDITING_OPTIONS::TransferDataToWindow() { SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); - SYMBOL_EDITOR_SETTINGS* settings = mgr.GetAppSettings<SYMBOL_EDITOR_SETTINGS>(); + SYMBOL_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" ); - loadSymEditorSettings( settings ); + loadSymEditorSettings( cfg ); return true; } @@ -73,19 +73,19 @@ bool PANEL_SYM_EDITING_OPTIONS::TransferDataToWindow() bool PANEL_SYM_EDITING_OPTIONS::TransferDataFromWindow() { SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); - SYMBOL_EDITOR_SETTINGS* settings = mgr.GetAppSettings<SYMBOL_EDITOR_SETTINGS>(); + SYMBOL_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" ); - settings->m_Defaults.line_width = schIUScale.IUToMils( m_lineWidth.GetIntValue() ); - settings->m_Defaults.text_size = schIUScale.IUToMils( m_textSize.GetIntValue() ); - settings->m_Defaults.pin_length = schIUScale.IUToMils( m_pinLength.GetIntValue() ); - settings->m_Defaults.pin_num_size = schIUScale.IUToMils( m_pinNumberSize.GetIntValue() ); - settings->m_Defaults.pin_name_size = schIUScale.IUToMils( m_pinNameSize.GetIntValue() ); - settings->m_Repeat.label_delta = m_spinRepeatLabel->GetValue(); - settings->m_Repeat.pin_step = schIUScale.IUToMils( m_pinPitch.GetIntValue() ); - settings->m_dragPinsAlongWithEdges = m_dragPinsWithEdges->GetValue(); + cfg->m_Defaults.line_width = schIUScale.IUToMils( m_lineWidth.GetIntValue() ); + cfg->m_Defaults.text_size = schIUScale.IUToMils( m_textSize.GetIntValue() ); + cfg->m_Defaults.pin_length = schIUScale.IUToMils( m_pinLength.GetIntValue() ); + cfg->m_Defaults.pin_num_size = schIUScale.IUToMils( m_pinNumberSize.GetIntValue() ); + cfg->m_Defaults.pin_name_size = schIUScale.IUToMils( m_pinNameSize.GetIntValue() ); + cfg->m_Repeat.label_delta = m_spinRepeatLabel->GetValue(); + cfg->m_Repeat.pin_step = schIUScale.IUToMils( m_pinPitch.GetIntValue() ); + cfg->m_dragPinsAlongWithEdges = m_dragPinsWithEdges->GetValue(); // Force pin_step to a grid multiple - settings->m_Repeat.pin_step = KiROUND( double( settings->m_Repeat.pin_step ) / MIN_GRID ) * MIN_GRID; + cfg->m_Repeat.pin_step = KiROUND( double( cfg->m_Repeat.pin_step ) / MIN_GRID ) * MIN_GRID; return true; } diff --git a/eeschema/dialogs/panel_sym_lib_table.cpp b/eeschema/dialogs/panel_sym_lib_table.cpp index 2468e78123..602c473141 100644 --- a/eeschema/dialogs/panel_sym_lib_table.cpp +++ b/eeschema/dialogs/panel_sym_lib_table.cpp @@ -247,7 +247,8 @@ void PANEL_SYM_LIB_TABLE::setupGrid( WX_GRID* aGrid ) aCurrGrid->SetColSize( aCol, std::max( prevWidth, aCurrGrid->GetColSize( aCol ) ) ); }; - EESCHEMA_SETTINGS* cfg = Pgm().GetSettingsManager().GetAppSettings<EESCHEMA_SETTINGS>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ); // Give a bit more room for combobox editors for( int ii = 0; ii < aGrid->GetNumberRows(); ++ii ) @@ -342,7 +343,8 @@ PANEL_SYM_LIB_TABLE::PANEL_SYM_LIB_TABLE( DIALOG_EDIT_LIBRARY_TABLES* aParent, P m_pluginChoices.Add( SCH_IO_MGR::ShowType( type ) ); } - EESCHEMA_SETTINGS* cfg = Pgm().GetSettingsManager().GetAppSettings<EESCHEMA_SETTINGS>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ); if( cfg->m_lastSymbolLibDir.IsEmpty() ) cfg->m_lastSymbolLibDir = PATHS::GetDefaultUserSymbolsPath(); @@ -628,7 +630,8 @@ void PANEL_SYM_LIB_TABLE::browseLibrariesHandler( wxCommandEvent& event ) fileFiltersStr = _( "All supported formats" ) + wxT( "|" ) + allWildcardsStr + wxT( "|" ) + fileFiltersStr; - EESCHEMA_SETTINGS* cfg = Pgm().GetSettingsManager().GetAppSettings<EESCHEMA_SETTINGS>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ); wxString openDir = cfg->m_lastSymbolLibDir; diff --git a/eeschema/dialogs/panel_template_fieldnames.cpp b/eeschema/dialogs/panel_template_fieldnames.cpp index 2d40bcce68..547d6aa555 100644 --- a/eeschema/dialogs/panel_template_fieldnames.cpp +++ b/eeschema/dialogs/panel_template_fieldnames.cpp @@ -52,7 +52,8 @@ PANEL_TEMPLATE_FIELDNAMES::PANEL_TEMPLATE_FIELDNAMES( wxWindow* aWindow, m_global = true; m_templateMgr = &m_templateMgrInstance; - EESCHEMA_SETTINGS* cfg = Pgm().GetSettingsManager().GetAppSettings<EESCHEMA_SETTINGS>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ); if( cfg && !cfg->m_Drawing.field_names.IsEmpty() ) m_templateMgr->AddTemplateFieldNames( cfg->m_Drawing.field_names ); @@ -229,7 +230,8 @@ bool PANEL_TEMPLATE_FIELDNAMES::TransferDataFromWindow() if( m_global ) { - EESCHEMA_SETTINGS* cfg = Pgm().GetSettingsManager().GetAppSettings<EESCHEMA_SETTINGS>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ); if( cfg ) { diff --git a/eeschema/eeschema.cpp b/eeschema/eeschema.cpp index 35dfa65f58..c654f0dba3 100644 --- a/eeschema/eeschema.cpp +++ b/eeschema/eeschema.cpp @@ -208,7 +208,7 @@ static struct IFACE : public KIFACE_BASE, public UNITS_PROVIDER case PANEL_SYM_DISP_OPTIONS: { SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); - APP_SETTINGS_BASE* cfg = mgr.GetAppSettings<SYMBOL_EDITOR_SETTINGS>(); + APP_SETTINGS_BASE* cfg = mgr.GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" ); return new PANEL_SYM_DISPLAY_OPTIONS( aParent, cfg ); } @@ -216,7 +216,7 @@ static struct IFACE : public KIFACE_BASE, public UNITS_PROVIDER case PANEL_SYM_EDIT_GRIDS: { SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); - APP_SETTINGS_BASE* cfg = mgr.GetAppSettings<SYMBOL_EDITOR_SETTINGS>(); + APP_SETTINGS_BASE* cfg = mgr.GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" ); EDA_BASE_FRAME* frame = aKiway->Player( FRAME_SCH_SYMBOL_EDITOR, false ); if( !frame ) @@ -253,7 +253,7 @@ static struct IFACE : public KIFACE_BASE, public UNITS_PROVIDER case PANEL_SCH_DISP_OPTIONS: { SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); - APP_SETTINGS_BASE* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>(); + EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ); return new PANEL_EESCHEMA_DISPLAY_OPTIONS( aParent, cfg ); } @@ -261,7 +261,7 @@ static struct IFACE : public KIFACE_BASE, public UNITS_PROVIDER case PANEL_SCH_GRIDS: { SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); - APP_SETTINGS_BASE* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>(); + EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ); EDA_BASE_FRAME* frame = aKiway->Player( FRAME_SCH, false ); if( !frame ) diff --git a/eeschema/eeschema_settings.cpp b/eeschema/eeschema_settings.cpp index 34eb12339a..93b81b1f10 100644 --- a/eeschema/eeschema_settings.cpp +++ b/eeschema/eeschema_settings.cpp @@ -977,7 +977,8 @@ bool EESCHEMA_SETTINGS::MigrateFromLegacy( wxConfigBase* aCfg ) if( aCfg->Read( "MoveWarpsCursor", &tmp ) ) Pgm().GetCommonSettings()->m_Input.warp_mouse_on_move = tmp; - COLOR_SETTINGS* cs = Pgm().GetSettingsManager().GetMigratedColorSettings(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + COLOR_SETTINGS* cs = mgr.GetMigratedColorSettings(); auto migrateLegacyColor = [&] ( const std::string& aKey, int aLayerId ) { wxString str; @@ -1016,14 +1017,14 @@ bool EESCHEMA_SETTINGS::MigrateFromLegacy( wxConfigBase* aCfg ) migrateLegacyColor( "Color4DWireEx", LAYER_WIRE ); migrateLegacyColor( "Color4DWorksheetEx", LAYER_SCHEMATIC_DRAWINGSHEET ); - Pgm().GetSettingsManager().SaveColorSettings( cs, "schematic" ); + mgr.SaveColorSettings( cs, "schematic" ); Set( "appearance.color_theme", cs->GetFilename() ); // LibEdit settings were stored with eeschema. If eeschema is the first app to run, // we need to migrate the LibEdit settings here - auto libedit = Pgm().GetSettingsManager().GetAppSettings<SYMBOL_EDITOR_SETTINGS>(); + SYMBOL_EDITOR_SETTINGS* libedit = mgr.GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" ); libedit->MigrateFromLegacy( aCfg ); libedit->Load(); diff --git a/eeschema/pin_layout_cache.cpp b/eeschema/pin_layout_cache.cpp index d519a09fc0..a2c71f2a05 100644 --- a/eeschema/pin_layout_cache.cpp +++ b/eeschema/pin_layout_cache.cpp @@ -138,7 +138,8 @@ void PIN_LAYOUT_CACHE::recomputeExtentsCache( bool aDefinitelyDirty, KIFONT::FON void PIN_LAYOUT_CACHE::recomputeCaches() { - EESCHEMA_SETTINGS* cfg = Pgm().GetSettingsManager().GetAppSettings<EESCHEMA_SETTINGS>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ); KIFONT::FONT* font = KIFONT::FONT::GetFont( cfg->m_Appearance.default_font ); const KIFONT::METRICS& metrics = m_pin.GetFontMetrics(); diff --git a/eeschema/sch_base_frame.cpp b/eeschema/sch_base_frame.cpp index 5de66c2cae..b385aa252e 100644 --- a/eeschema/sch_base_frame.cpp +++ b/eeschema/sch_base_frame.cpp @@ -535,12 +535,12 @@ COLOR_SETTINGS* SCH_BASE_FRAME::GetColorSettings( bool aForceRefresh ) const if( !m_colorSettings || aForceRefresh ) { SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); - EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>(); + EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ); wxString colorTheme = cfg->m_ColorTheme; if( IsType( FRAME_SCH_SYMBOL_EDITOR ) ) { - SYMBOL_EDITOR_SETTINGS* symCfg = mgr.GetAppSettings<SYMBOL_EDITOR_SETTINGS>(); + SYMBOL_EDITOR_SETTINGS* symCfg = mgr.GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" ); if( !symCfg->m_UseEeschemaColorSettings ) colorTheme = symCfg->m_ColorTheme; diff --git a/eeschema/sch_edit_frame.cpp b/eeschema/sch_edit_frame.cpp index 2102644620..5d779ede8d 100644 --- a/eeschema/sch_edit_frame.cpp +++ b/eeschema/sch_edit_frame.cpp @@ -2145,7 +2145,8 @@ void SCH_EDIT_FRAME::CommonSettingsChanged( bool aEnvVarsChanged, bool aTextVars ShowAllIntersheetRefs( settings.m_IntersheetRefsShow ); - EESCHEMA_SETTINGS* cfg = Pgm().GetSettingsManager().GetAppSettings<EESCHEMA_SETTINGS>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ); GetGalDisplayOptions().ReadWindowSettings( cfg->m_Window ); GetRenderSettings()->SetDefaultFont( cfg->m_Appearance.default_font ); diff --git a/eeschema/sch_item.cpp b/eeschema/sch_item.cpp index b2bbf316ad..35149600b0 100644 --- a/eeschema/sch_item.cpp +++ b/eeschema/sch_item.cpp @@ -454,7 +454,8 @@ int SCH_ITEM::compare( const SCH_ITEM& aOther, int aCompareFlags ) const const wxString& SCH_ITEM::GetDefaultFont() const { - EESCHEMA_SETTINGS* cfg = Pgm().GetSettingsManager().GetAppSettings<EESCHEMA_SETTINGS>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ); return cfg->m_Appearance.default_font; } diff --git a/eeschema/sch_pin.cpp b/eeschema/sch_pin.cpp index 593d2a6196..99e6edbce3 100644 --- a/eeschema/sch_pin.cpp +++ b/eeschema/sch_pin.cpp @@ -110,14 +110,16 @@ SCH_PIN::SCH_PIN( LIB_SYMBOL* aParentSymbol ) : { // Use the application settings for pin sizes if exists. // pgm can be nullptr when running a shared lib from a script, not from a kicad appl - PGM_BASE* pgm = PgmOrNull(); + PGM_BASE* pgm = PgmOrNull(); if( pgm ) { - auto* settings = pgm->GetSettingsManager().GetAppSettings<SYMBOL_EDITOR_SETTINGS>(); - m_length = schIUScale.MilsToIU( settings->m_Defaults.pin_length ); - m_numTextSize = schIUScale.MilsToIU( settings->m_Defaults.pin_num_size ); - m_nameTextSize = schIUScale.MilsToIU( settings->m_Defaults.pin_name_size ); + SETTINGS_MANAGER& mgr = pgm->GetSettingsManager(); + SYMBOL_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" ); + + m_length = schIUScale.MilsToIU( cfg->m_Defaults.pin_length ); + m_numTextSize = schIUScale.MilsToIU( cfg->m_Defaults.pin_num_size ); + m_nameTextSize = schIUScale.MilsToIU( cfg->m_Defaults.pin_name_size ); } else // Use hardcoded eeschema defaults: symbol_editor settings are not existing. { diff --git a/eeschema/schematic_settings.cpp b/eeschema/schematic_settings.cpp index 309207ea32..de3d7371ab 100644 --- a/eeschema/schematic_settings.cpp +++ b/eeschema/schematic_settings.cpp @@ -66,26 +66,20 @@ SCHEMATIC_SETTINGS::SCHEMATIC_SETTINGS( JSON_SETTINGS* aParent, const std::strin m_SpiceModelCurSheetAsRoot( true ), m_NgspiceSettings( nullptr ) { - EESCHEMA_SETTINGS* appSettings = Pgm().GetSettingsManager().GetAppSettings<EESCHEMA_SETTINGS>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ); - int defaultLineThickness = - appSettings ? appSettings->m_Drawing.default_line_thickness : DEFAULT_LINE_WIDTH_MILS; - int defaultTextSize = - appSettings ? appSettings->m_Drawing.default_text_size : DEFAULT_TEXT_SIZE; - int defaultPinSymbolSize = - appSettings ? appSettings->m_Drawing.pin_symbol_size : DEFAULT_TEXT_SIZE / 2; - int defaultJunctionSizeChoice = - appSettings ? appSettings->m_Drawing.junction_size_choice : 3; - bool defaultIntersheetsRefShow = - appSettings ? appSettings->m_Drawing.intersheets_ref_show : false; - bool defaultIntersheetsRefOwnPage = - appSettings ? appSettings->m_Drawing.intersheets_ref_own_page : true; - bool defaultIntersheetsRefFormatShort = - appSettings ? appSettings->m_Drawing.intersheets_ref_short : false; - wxString defaultIntersheetsRefPrefix = - appSettings ? appSettings->m_Drawing.intersheets_ref_prefix : wxString( wxS( DEFAULT_IREF_PREFIX ) ); - wxString defaultIntersheetsRefSuffix = - appSettings ? appSettings->m_Drawing.intersheets_ref_suffix : wxString( wxS( DEFAULT_IREF_SUFFIX ) ); + int defaultLineThickness = cfg ? cfg->m_Drawing.default_line_thickness : DEFAULT_LINE_WIDTH_MILS; + int defaultTextSize = cfg ? cfg->m_Drawing.default_text_size : DEFAULT_TEXT_SIZE; + int defaultPinSymbolSize = cfg ? cfg->m_Drawing.pin_symbol_size : DEFAULT_TEXT_SIZE / 2; + int defaultJunctionSizeChoice = cfg ? cfg->m_Drawing.junction_size_choice : 3; + bool defaultIntersheetsRefShow = cfg ? cfg->m_Drawing.intersheets_ref_show : false; + bool defaultIntersheetsRefOwnPage = cfg ? cfg->m_Drawing.intersheets_ref_own_page : true; + bool defaultIntersheetsRefFormatShort = cfg ? cfg->m_Drawing.intersheets_ref_short : false; + wxString defaultIntersheetsRefPrefix = cfg ? cfg->m_Drawing.intersheets_ref_prefix + : wxString( wxS( DEFAULT_IREF_PREFIX ) ); + wxString defaultIntersheetsRefSuffix = cfg ? cfg->m_Drawing.intersheets_ref_suffix + : wxString( wxS( DEFAULT_IREF_SUFFIX ) ); m_params.emplace_back( new PARAM<bool>( "drawing.intersheets_ref_show", &m_IntersheetRefsShow, defaultIntersheetsRefShow ) ); @@ -191,7 +185,8 @@ SCHEMATIC_SETTINGS::SCHEMATIC_SETTINGS( JSON_SETTINGS* aParent, const std::strin } // Read global fieldname templates - auto* cfg = Pgm().GetSettingsManager().GetAppSettings<EESCHEMA_SETTINGS>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ); if( cfg && !cfg->m_Drawing.field_names.IsEmpty() ) m_TemplateFieldNames.AddTemplateFieldNames( cfg->m_Drawing.field_names ); diff --git a/eeschema/symbol_editor/symbol_edit_frame.cpp b/eeschema/symbol_editor/symbol_edit_frame.cpp index 34972cc68d..964e4fcfa2 100644 --- a/eeschema/symbol_editor/symbol_edit_frame.cpp +++ b/eeschema/symbol_editor/symbol_edit_frame.cpp @@ -137,7 +137,7 @@ SYMBOL_EDIT_FRAME::SYMBOL_EDIT_FRAME( KIWAY* aKiway, wxWindow* aParent ) : SetIcons( icon_bundle ); - m_settings = Pgm().GetSettingsManager().GetAppSettings<SYMBOL_EDITOR_SETTINGS>(); + m_settings = Pgm().GetSettingsManager().GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" ); LoadSettings( m_settings ); m_libMgr = new LIB_SYMBOL_LIBRARY_MANAGER( *this ); @@ -301,19 +301,11 @@ SYMBOL_EDIT_FRAME::~SYMBOL_EDIT_FRAME() // current screen is destroyed in EDA_DRAW_FRAME SetScreen( m_dummyScreen ); - SYMBOL_EDITOR_SETTINGS* cfg = nullptr; - - try - { - cfg = Pgm().GetSettingsManager().GetAppSettings<SYMBOL_EDITOR_SETTINGS>(); - } - catch( const std::runtime_error& e ) - { - wxFAIL_MSG( e.what() ); - } + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + SYMBOL_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" ); if( cfg ) - Pgm().GetSettingsManager().Save( cfg ); + mgr.Save( cfg ); delete m_libMgr; } @@ -370,7 +362,7 @@ COLOR_SETTINGS* SYMBOL_EDIT_FRAME::GetColorSettings( bool aForceRefresh ) const SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); if( GetSettings()->m_UseEeschemaColorSettings ) - return mgr.GetColorSettings( mgr.GetAppSettings<EESCHEMA_SETTINGS>()->m_ColorTheme ); + return mgr.GetColorSettings( mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" )->m_ColorTheme ); else return mgr.GetColorSettings( GetSettings()->m_ColorTheme ); } @@ -1349,7 +1341,7 @@ void SYMBOL_EDIT_FRAME::CommonSettingsChanged( bool aEnvVarsChanged, bool aTextV SCH_BASE_FRAME::CommonSettingsChanged( aEnvVarsChanged, aTextVarsChanged ); SETTINGS_MANAGER* mgr = GetSettingsManager(); - SYMBOL_EDITOR_SETTINGS* cfg = mgr->GetAppSettings<SYMBOL_EDITOR_SETTINGS>(); + SYMBOL_EDITOR_SETTINGS* cfg = mgr->GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" ); GetRenderSettings()->m_ShowPinsElectricalType = cfg->m_ShowPinElectricalType; GetRenderSettings()->m_ShowHiddenPins = cfg->m_ShowHiddenPins; diff --git a/eeschema/symbol_lib_table.cpp b/eeschema/symbol_lib_table.cpp index 803f35abe9..a5d499b17c 100644 --- a/eeschema/symbol_lib_table.cpp +++ b/eeschema/symbol_lib_table.cpp @@ -665,7 +665,7 @@ bool SYMBOL_LIB_TABLE::LoadGlobalTable( SYMBOL_LIB_TABLE& aTable ) aTable.Load( fn.GetFullPath() ); SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); - KICAD_SETTINGS* settings = mgr.GetAppSettings<KICAD_SETTINGS>(); + KICAD_SETTINGS* settings = mgr.GetAppSettings<KICAD_SETTINGS>( "kicad" ); wxCHECK( settings, false ); diff --git a/eeschema/symbol_viewer_frame.cpp b/eeschema/symbol_viewer_frame.cpp index b38cfd2d71..034239a988 100644 --- a/eeschema/symbol_viewer_frame.cpp +++ b/eeschema/symbol_viewer_frame.cpp @@ -845,7 +845,8 @@ void SYMBOL_VIEWER_FRAME::DClickOnSymbolList( wxCommandEvent& event ) void SYMBOL_VIEWER_FRAME::LoadSettings( APP_SETTINGS_BASE* aCfg ) { - auto cfg = Pgm().GetSettingsManager().GetAppSettings<EESCHEMA_SETTINGS>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ); SCH_BASE_FRAME::LoadSettings( cfg ); @@ -871,7 +872,8 @@ void SYMBOL_VIEWER_FRAME::LoadSettings( APP_SETTINGS_BASE* aCfg ) void SYMBOL_VIEWER_FRAME::SaveSettings( APP_SETTINGS_BASE* aCfg) { - EESCHEMA_SETTINGS* cfg = Pgm().GetSettingsManager().GetAppSettings<EESCHEMA_SETTINGS>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ); SCH_BASE_FRAME::SaveSettings( cfg ); @@ -903,7 +905,8 @@ void SYMBOL_VIEWER_FRAME::CommonSettingsChanged( bool aEnvVarsChanged, bool aTex { SCH_BASE_FRAME::CommonSettingsChanged( aEnvVarsChanged, aTextVarsChanged ); - EESCHEMA_SETTINGS* cfg = Pgm().GetSettingsManager().GetAppSettings<EESCHEMA_SETTINGS>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ); GetGalDisplayOptions().ReadWindowSettings( cfg->m_LibViewPanel.window ); GetCanvas()->GetGAL()->SetAxesColor( m_colorSettings->GetColor( LAYER_SCHEMATIC_GRID_AXES ) ); diff --git a/eeschema/tools/sch_edit_tool.cpp b/eeschema/tools/sch_edit_tool.cpp index eed1f273d3..ba4f07ab92 100644 --- a/eeschema/tools/sch_edit_tool.cpp +++ b/eeschema/tools/sch_edit_tool.cpp @@ -1446,7 +1446,8 @@ int SCH_EDIT_TOOL::RepeatDrawItem( const TOOL_EVENT& aEvent ) for( const std::unique_ptr<SCH_ITEM>& item : sourceItems ) { SCH_ITEM* newItem = item->Duplicate(); - EESCHEMA_SETTINGS* cfg = Pgm().GetSettingsManager().GetAppSettings<EESCHEMA_SETTINGS>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ); bool restore_state = false; // Ensure newItem has a suitable parent: the current screen, because an item from diff --git a/eeschema/tools/sch_move_tool.cpp b/eeschema/tools/sch_move_tool.cpp index 237266228f..c2d3a49d14 100644 --- a/eeschema/tools/sch_move_tool.cpp +++ b/eeschema/tools/sch_move_tool.cpp @@ -404,17 +404,8 @@ int SCH_MOVE_TOOL::Main( const TOOL_EVENT& aEvent ) bool SCH_MOVE_TOOL::doMoveSelection( const TOOL_EVENT& aEvent, SCH_COMMIT* aCommit, bool aIsSlice ) { - EESCHEMA_SETTINGS* cfg = nullptr; - - try - { - cfg = Pgm().GetSettingsManager().GetAppSettings<EESCHEMA_SETTINGS>(); - } - catch( const std::runtime_error& e ) - { - wxCHECK_MSG( false, false, e.what() ); - } - + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ); KIGFX::VIEW_CONTROLS* controls = getViewControls(); EE_GRID_HELPER grid( m_toolMgr ); bool wasDragging = m_moveInProgress && m_isDrag; diff --git a/eeschema/tools/symbol_editor_drawing_tools.cpp b/eeschema/tools/symbol_editor_drawing_tools.cpp index 4fe8cb8a3b..5c472f5f72 100644 --- a/eeschema/tools/symbol_editor_drawing_tools.cpp +++ b/eeschema/tools/symbol_editor_drawing_tools.cpp @@ -81,9 +81,12 @@ bool SYMBOL_EDITOR_DRAWING_TOOLS::Init() int SYMBOL_EDITOR_DRAWING_TOOLS::TwoClickPlace( const TOOL_EVENT& aEvent ) { - KICAD_T type = aEvent.Parameter<KICAD_T>(); - auto* settings = Pgm().GetSettingsManager().GetAppSettings<SYMBOL_EDITOR_SETTINGS>(); - auto* pinTool = type == SCH_PIN_T ? m_toolMgr->GetTool<SYMBOL_EDITOR_PIN_TOOL>() : nullptr; + KICAD_T type = aEvent.Parameter<KICAD_T>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + SYMBOL_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" ); + SYMBOL_EDITOR_PIN_TOOL* pinTool = type == SCH_PIN_T + ? m_toolMgr->GetTool<SYMBOL_EDITOR_PIN_TOOL>() + : nullptr; if( m_inTwoClickPlace ) return 0; @@ -231,8 +234,8 @@ int SYMBOL_EDITOR_DRAWING_TOOLS::TwoClickPlace( const TOOL_EVENT& aEvent ) if( m_drawSpecificBodyStyle ) text->SetBodyStyle( m_frame->GetBodyStyle() ); - text->SetTextSize( VECTOR2I( schIUScale.MilsToIU( settings->m_Defaults.text_size ), - schIUScale.MilsToIU( settings->m_Defaults.text_size ) ) ); + text->SetTextSize( VECTOR2I( schIUScale.MilsToIU( cfg->m_Defaults.text_size ), + schIUScale.MilsToIU( cfg->m_Defaults.text_size ) ) ); text->SetTextAngle( m_lastTextAngle ); DIALOG_TEXT_PROPERTIES dlg( m_frame, text ); @@ -358,8 +361,8 @@ int SYMBOL_EDITOR_DRAWING_TOOLS::doDrawShape( const TOOL_EVENT& aEvent, std::opt SHAPE_T toolType = aDrawingShape.value_or( SHAPE_T::SEGMENT ); KIGFX::VIEW_CONTROLS* controls = getViewControls(); - SETTINGS_MANAGER& settingsMgr = Pgm().GetSettingsManager(); - SYMBOL_EDITOR_SETTINGS* settings = settingsMgr.GetAppSettings<SYMBOL_EDITOR_SETTINGS>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + SYMBOL_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" ); EE_GRID_HELPER grid( m_toolMgr ); VECTOR2I cursorPos; SHAPE_T shapeType = toolType == SHAPE_T::SEGMENT ? SHAPE_T::POLY : toolType; @@ -460,15 +463,15 @@ int SYMBOL_EDITOR_DRAWING_TOOLS::doDrawShape( const TOOL_EVENT& aEvent, std::opt m_toolMgr->RunAction( EE_ACTIONS::clearSelection ); - int lineWidth = schIUScale.MilsToIU( settings->m_Defaults.line_width ); + int lineWidth = schIUScale.MilsToIU( cfg->m_Defaults.line_width ); if( isTextBox ) { SCH_TEXTBOX* textbox = new SCH_TEXTBOX( LAYER_DEVICE, lineWidth, m_lastFillStyle ); textbox->SetParent( symbol ); - textbox->SetTextSize( VECTOR2I( schIUScale.MilsToIU( settings->m_Defaults.text_size ), - schIUScale.MilsToIU( settings->m_Defaults.text_size ) ) ); + textbox->SetTextSize( VECTOR2I( schIUScale.MilsToIU( cfg->m_Defaults.text_size ), + schIUScale.MilsToIU( cfg->m_Defaults.text_size ) ) ); // Must be after SetTextSize() textbox->SetBold( m_lastTextBold ); diff --git a/eeschema/tools/symbol_editor_pin_tool.cpp b/eeschema/tools/symbol_editor_pin_tool.cpp index 19ac3f23f5..4d8e5dbb4c 100644 --- a/eeschema/tools/symbol_editor_pin_tool.cpp +++ b/eeschema/tools/symbol_editor_pin_tool.cpp @@ -53,8 +53,10 @@ static int GetLastPinLength() { if( g_LastPinLength == -1 ) { - auto* settings = Pgm().GetSettingsManager().GetAppSettings<SYMBOL_EDITOR_SETTINGS>(); - g_LastPinLength = schIUScale.MilsToIU( settings->m_Defaults.pin_length ); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + SYMBOL_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" ); + + g_LastPinLength = schIUScale.MilsToIU( cfg->m_Defaults.pin_length ); } return g_LastPinLength; @@ -64,8 +66,10 @@ static int GetLastPinNameSize() { if( g_LastPinNameSize == -1 ) { - auto* settings = Pgm().GetSettingsManager().GetAppSettings<SYMBOL_EDITOR_SETTINGS>(); - g_LastPinNameSize = schIUScale.MilsToIU( settings->m_Defaults.pin_name_size ); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + SYMBOL_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" ); + + g_LastPinNameSize = schIUScale.MilsToIU( cfg->m_Defaults.pin_name_size ); } return g_LastPinNameSize; @@ -75,8 +79,10 @@ static int GetLastPinNumSize() { if( g_LastPinNumSize == -1 ) { - auto* settings = Pgm().GetSettingsManager().GetAppSettings<SYMBOL_EDITOR_SETTINGS>(); - g_LastPinNumSize = schIUScale.MilsToIU( settings->m_Defaults.pin_num_size ); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + SYMBOL_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" ); + + g_LastPinNumSize = schIUScale.MilsToIU( cfg->m_Defaults.pin_num_size ); } return g_LastPinNumSize; @@ -419,25 +425,26 @@ SCH_PIN* SYMBOL_EDITOR_PIN_TOOL::RepeatPin( const SCH_PIN* aSourcePin ) pin->ClearFlags(); pin->SetFlags( IS_NEW ); - auto* settings = Pgm().GetSettingsManager().GetAppSettings<SYMBOL_EDITOR_SETTINGS>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + SYMBOL_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" ); switch( pin->GetOrientation() ) { default: - case PIN_ORIENTATION::PIN_RIGHT: step.y = schIUScale.MilsToIU(-settings->m_Repeat.pin_step); break; - case PIN_ORIENTATION::PIN_UP: step.x = schIUScale.MilsToIU(settings->m_Repeat.pin_step); break; - case PIN_ORIENTATION::PIN_DOWN: step.x = schIUScale.MilsToIU(settings->m_Repeat.pin_step); break; - case PIN_ORIENTATION::PIN_LEFT: step.y = schIUScale.MilsToIU(-settings->m_Repeat.pin_step); break; + case PIN_ORIENTATION::PIN_RIGHT: step.y = schIUScale.MilsToIU( -cfg->m_Repeat.pin_step ); break; + case PIN_ORIENTATION::PIN_UP: step.x = schIUScale.MilsToIU( cfg->m_Repeat.pin_step ); break; + case PIN_ORIENTATION::PIN_DOWN: step.x = schIUScale.MilsToIU( cfg->m_Repeat.pin_step) ; break; + case PIN_ORIENTATION::PIN_LEFT: step.y = schIUScale.MilsToIU( -cfg->m_Repeat.pin_step ); break; } pin->Move( step ); wxString nextName = pin->GetName(); - IncrementString( nextName, settings->m_Repeat.label_delta ); + IncrementString( nextName, cfg->m_Repeat.label_delta ); pin->SetName( nextName ); wxString nextNumber = pin->GetNumber(); - IncrementString( nextNumber, settings->m_Repeat.label_delta ); + IncrementString( nextNumber, cfg->m_Repeat.label_delta ); pin->SetNumber( nextNumber ); if( m_frame->SynchronizePins() ) diff --git a/eeschema/widgets/design_block_preview_widget.cpp b/eeschema/widgets/design_block_preview_widget.cpp index a9b1af086c..e0b17925eb 100644 --- a/eeschema/widgets/design_block_preview_widget.cpp +++ b/eeschema/widgets/design_block_preview_widget.cpp @@ -48,8 +48,9 @@ DESIGN_BLOCK_PREVIEW_WIDGET::DESIGN_BLOCK_PREVIEW_WIDGET( wxWindow* aParent, boo m_statusSizer( nullptr ), m_previewItem( nullptr ) { - auto common_settings = Pgm().GetCommonSettings(); - auto app_settings = Pgm().GetSettingsManager().GetAppSettings<EESCHEMA_SETTINGS>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + COMMON_SETTINGS* common_settings = Pgm().GetCommonSettings(); + EESCHEMA_SETTINGS* app_settings = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ); m_galDisplayOptions.ReadConfig( *common_settings, app_settings->m_Window, this ); m_galDisplayOptions.m_forceDisplayCursor = false; diff --git a/eeschema/widgets/panel_design_block_chooser.cpp b/eeschema/widgets/panel_design_block_chooser.cpp index 325a1644b1..02876c5d15 100644 --- a/eeschema/widgets/panel_design_block_chooser.cpp +++ b/eeschema/widgets/panel_design_block_chooser.cpp @@ -64,7 +64,7 @@ PANEL_DESIGN_BLOCK_CHOOSER::PANEL_DESIGN_BLOCK_CHOOSER( SCH_EDIT_FRAME* aFrame, DESIGN_BLOCK_LIB_TABLE* libs = m_frame->Prj().DesignBlockLibs(); // Make sure settings are loaded before we start running multi-threaded design block loaders - Pgm().GetSettingsManager().GetAppSettings<EESCHEMA_SETTINGS>(); + Pgm().GetSettingsManager().GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ); // Load design block files: WX_PROGRESS_REPORTER* progressReporter = diff --git a/eeschema/widgets/panel_symbol_chooser.cpp b/eeschema/widgets/panel_symbol_chooser.cpp index 5f7c5d5ffa..ddbfbd188a 100644 --- a/eeschema/widgets/panel_symbol_chooser.cpp +++ b/eeschema/widgets/panel_symbol_chooser.cpp @@ -79,8 +79,8 @@ PANEL_SYMBOL_CHOOSER::PANEL_SYMBOL_CHOOSER( SCH_BASE_FRAME* aFrame, wxWindow* aP PROJECT_FILE& project = m_frame->Prj().GetProjectFile(); // Make sure settings are loaded before we start running multi-threaded symbol loaders - Pgm().GetSettingsManager().GetAppSettings<EESCHEMA_SETTINGS>(); - Pgm().GetSettingsManager().GetAppSettings<SYMBOL_EDITOR_SETTINGS>(); + Pgm().GetSettingsManager().GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ); + Pgm().GetSettingsManager().GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" ); m_adapter = SYMBOL_TREE_MODEL_ADAPTER::Create( m_frame, libs ); SYMBOL_TREE_MODEL_ADAPTER* adapter = static_cast<SYMBOL_TREE_MODEL_ADAPTER*>( m_adapter.get() ); @@ -374,7 +374,9 @@ wxPanel* PANEL_SYMBOL_CHOOSER::constructRightPanel( wxWindow* aParent ) } else { - EESCHEMA_SETTINGS* cfg = Pgm().GetSettingsManager().GetAppSettings<EESCHEMA_SETTINGS>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ); + backend = (EDA_DRAW_PANEL_GAL::GAL_TYPE) cfg->m_Graphics.canvas_type; } diff --git a/eeschema/widgets/symbol_preview_widget.cpp b/eeschema/widgets/symbol_preview_widget.cpp index 161aa589fb..59bef5b7aa 100644 --- a/eeschema/widgets/symbol_preview_widget.cpp +++ b/eeschema/widgets/symbol_preview_widget.cpp @@ -45,8 +45,9 @@ SYMBOL_PREVIEW_WIDGET::SYMBOL_PREVIEW_WIDGET( wxWindow* aParent, KIWAY* aKiway, m_statusSizer( nullptr ), m_previewItem( nullptr ) { - auto common_settings = Pgm().GetCommonSettings(); - auto app_settings = Pgm().GetSettingsManager().GetAppSettings<EESCHEMA_SETTINGS>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + COMMON_SETTINGS* common_settings = Pgm().GetCommonSettings(); + EESCHEMA_SETTINGS* app_settings = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ); m_galDisplayOptions.ReadConfig( *common_settings, app_settings->m_Window, this ); m_galDisplayOptions.m_forceDisplayCursor = false; diff --git a/gerbview/dialogs/panel_gerbview_color_settings.cpp b/gerbview/dialogs/panel_gerbview_color_settings.cpp index 3efc302b5c..063757810d 100644 --- a/gerbview/dialogs/panel_gerbview_color_settings.cpp +++ b/gerbview/dialogs/panel_gerbview_color_settings.cpp @@ -32,7 +32,7 @@ PANEL_GERBVIEW_COLOR_SETTINGS::PANEL_GERBVIEW_COLOR_SETTINGS( wxWindow* aParent m_colorNamespace = "gerbview"; SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); - GERBVIEW_SETTINGS* app_settings = mgr.GetAppSettings<GERBVIEW_SETTINGS>(); + GERBVIEW_SETTINGS* app_settings = mgr.GetAppSettings<GERBVIEW_SETTINGS>( "gerbview" ); COLOR_SETTINGS* current = mgr.GetColorSettings( app_settings->m_ColorTheme ); // Colors can also be modified from the LayersManager, so collect last settings if exist @@ -75,9 +75,10 @@ PANEL_GERBVIEW_COLOR_SETTINGS::~PANEL_GERBVIEW_COLOR_SETTINGS() bool PANEL_GERBVIEW_COLOR_SETTINGS::TransferDataFromWindow() { - SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); - GERBVIEW_SETTINGS* app_settings = mgr.GetAppSettings<GERBVIEW_SETTINGS>(); - app_settings->m_ColorTheme = m_currentSettings->GetFilename(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + GERBVIEW_SETTINGS* cfg = mgr.GetAppSettings<GERBVIEW_SETTINGS>( "gerbview" ); + + cfg->m_ColorTheme = m_currentSettings->GetFilename(); return true; } diff --git a/gerbview/dialogs/panel_gerbview_display_options.cpp b/gerbview/dialogs/panel_gerbview_display_options.cpp index 9c5af9bd68..0363c31e15 100644 --- a/gerbview/dialogs/panel_gerbview_display_options.cpp +++ b/gerbview/dialogs/panel_gerbview_display_options.cpp @@ -43,7 +43,8 @@ static const wxChar* gerberPageSizeList[] = PANEL_GERBVIEW_DISPLAY_OPTIONS::PANEL_GERBVIEW_DISPLAY_OPTIONS( wxWindow* aParent ) : PANEL_GERBVIEW_DISPLAY_OPTIONS_BASE( aParent, wxID_ANY ) { - GERBVIEW_SETTINGS* cfg = Pgm().GetSettingsManager().GetAppSettings<GERBVIEW_SETTINGS>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + GERBVIEW_SETTINGS* cfg = mgr.GetAppSettings<GERBVIEW_SETTINGS>( "gerbview" ); m_galOptsPanel = new GAL_OPTIONS_PANEL( this, cfg ); m_galOptionsSizer->Add( m_galOptsPanel, 0, wxEXPAND|wxRIGHT, 15 ); @@ -78,7 +79,8 @@ bool PANEL_GERBVIEW_DISPLAY_OPTIONS::TransferDataToWindow() { m_galOptsPanel->TransferDataToWindow(); - GERBVIEW_SETTINGS* cfg = Pgm().GetSettingsManager().GetAppSettings<GERBVIEW_SETTINGS>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + GERBVIEW_SETTINGS* cfg = mgr.GetAppSettings<GERBVIEW_SETTINGS>( "gerbview" ); loadSettings( cfg ); @@ -88,7 +90,8 @@ bool PANEL_GERBVIEW_DISPLAY_OPTIONS::TransferDataToWindow() bool PANEL_GERBVIEW_DISPLAY_OPTIONS::TransferDataFromWindow() { - GERBVIEW_SETTINGS* cfg = Pgm().GetSettingsManager().GetAppSettings<GERBVIEW_SETTINGS>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + GERBVIEW_SETTINGS* cfg = mgr.GetAppSettings<GERBVIEW_SETTINGS>( "gerbview" ); m_galOptsPanel->TransferDataFromWindow(); diff --git a/gerbview/dialogs/panel_gerbview_excellon_settings.cpp b/gerbview/dialogs/panel_gerbview_excellon_settings.cpp index 25292764d3..703e92c26d 100644 --- a/gerbview/dialogs/panel_gerbview_excellon_settings.cpp +++ b/gerbview/dialogs/panel_gerbview_excellon_settings.cpp @@ -39,9 +39,11 @@ PANEL_GERBVIEW_EXCELLON_SETTINGS::PANEL_GERBVIEW_EXCELLON_SETTINGS( wxWindow* aP bool PANEL_GERBVIEW_EXCELLON_SETTINGS::TransferDataToWindow( ) { - GERBVIEW_SETTINGS* config = Pgm().GetSettingsManager().GetAppSettings<GERBVIEW_SETTINGS>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + GERBVIEW_SETTINGS* cfg = mgr.GetAppSettings<GERBVIEW_SETTINGS>( "gerbview" ); EXCELLON_DEFAULTS curr_settings; - config->GetExcellonDefaults( curr_settings ); + + cfg->GetExcellonDefaults( curr_settings ); applySettingsToPanel( curr_settings ); @@ -51,16 +53,17 @@ bool PANEL_GERBVIEW_EXCELLON_SETTINGS::TransferDataToWindow( ) bool PANEL_GERBVIEW_EXCELLON_SETTINGS::TransferDataFromWindow() { - GERBVIEW_SETTINGS* config = Pgm().GetSettingsManager().GetAppSettings<GERBVIEW_SETTINGS>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + GERBVIEW_SETTINGS* cfg = mgr.GetAppSettings<GERBVIEW_SETTINGS>( "gerbview" ); - config->m_ExcellonDefaults.m_UnitsMM = m_rbUnits->GetSelection() != 0; - config->m_ExcellonDefaults.m_LeadingZero = m_rbZeroFormat->GetSelection(); + cfg->m_ExcellonDefaults.m_UnitsMM = m_rbUnits->GetSelection() != 0; + cfg->m_ExcellonDefaults.m_LeadingZero = m_rbZeroFormat->GetSelection(); // The first value of these param is 2, not 0 #define FIRST_VALUE 2 - config->m_ExcellonDefaults.m_MmIntegerLen = m_choiceIntegerMM->GetSelection()+FIRST_VALUE; - config->m_ExcellonDefaults.m_MmMantissaLen = m_choiceMantissaMM->GetSelection()+FIRST_VALUE; - config->m_ExcellonDefaults.m_InchIntegerLen = m_choiceIntegerInch->GetSelection()+FIRST_VALUE; - config->m_ExcellonDefaults.m_InchMantissaLen = m_choiceMantissaInch->GetSelection()+FIRST_VALUE; + cfg->m_ExcellonDefaults.m_MmIntegerLen = m_choiceIntegerMM->GetSelection()+FIRST_VALUE; + cfg->m_ExcellonDefaults.m_MmMantissaLen = m_choiceMantissaMM->GetSelection()+FIRST_VALUE; + cfg->m_ExcellonDefaults.m_InchIntegerLen = m_choiceIntegerInch->GetSelection()+FIRST_VALUE; + cfg->m_ExcellonDefaults.m_InchMantissaLen = m_choiceMantissaInch->GetSelection()+FIRST_VALUE; return true; } diff --git a/gerbview/gerbview.cpp b/gerbview/gerbview.cpp index 6b3f5bd149..bc2d543671 100644 --- a/gerbview/gerbview.cpp +++ b/gerbview/gerbview.cpp @@ -79,7 +79,7 @@ static struct IFACE : public KIFACE_BASE, public UNITS_PROVIDER case PANEL_GBR_GRIDS: { SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); - APP_SETTINGS_BASE* cfg = mgr.GetAppSettings<GERBVIEW_SETTINGS>(); + GERBVIEW_SETTINGS* cfg = mgr.GetAppSettings<GERBVIEW_SETTINGS>( "gerbview" ); EDA_BASE_FRAME* frame = aKiway->Player( FRAME_GERBER, false ); if( frame ) diff --git a/gerbview/gerbview_frame.cpp b/gerbview/gerbview_frame.cpp index 709aefe694..ca5ab6f8fb 100644 --- a/gerbview/gerbview_frame.cpp +++ b/gerbview/gerbview_frame.cpp @@ -392,7 +392,7 @@ void GERBVIEW_FRAME::SaveSettings( APP_SETTINGS_BASE* aCfg ) COLOR_SETTINGS* GERBVIEW_FRAME::GetColorSettings( bool aForceRefresh ) const { SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); - GERBVIEW_SETTINGS* cfg = mgr.GetAppSettings<GERBVIEW_SETTINGS>(); + GERBVIEW_SETTINGS* cfg = mgr.GetAppSettings<GERBVIEW_SETTINGS>( "gerbview" ); wxString currentTheme = cfg->m_ColorTheme; return mgr.GetColorSettings( currentTheme ); } @@ -1215,7 +1215,9 @@ void GERBVIEW_FRAME::CommonSettingsChanged( bool aEnvVarsChanged, bool aTextVars EDA_DRAW_FRAME::CommonSettingsChanged( aEnvVarsChanged, aTextVarsChanged ); // Update gal display options like cursor shape, grid options: - GERBVIEW_SETTINGS* cfg = Pgm().GetSettingsManager().GetAppSettings<GERBVIEW_SETTINGS>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + GERBVIEW_SETTINGS* cfg = mgr.GetAppSettings<GERBVIEW_SETTINGS>( "gerbview" ); + GetGalDisplayOptions().ReadWindowSettings( cfg->m_Window ); SetPageSettings( PAGE_INFO( gvconfig()->m_Appearance.page_type ) ); diff --git a/gerbview/gerbview_painter.cpp b/gerbview/gerbview_painter.cpp index 8a2960c732..8700e01800 100644 --- a/gerbview/gerbview_painter.cpp +++ b/gerbview/gerbview_painter.cpp @@ -37,7 +37,7 @@ using namespace KIGFX; GERBVIEW_SETTINGS* gvconfig() { - return Pgm().GetSettingsManager().GetAppSettings<GERBVIEW_SETTINGS>(); + return Pgm().GetSettingsManager().GetAppSettings<GERBVIEW_SETTINGS>( "gerbview" ); } diff --git a/include/settings/settings_manager.h b/include/settings/settings_manager.h index d2615e0697..2ad27f33db 100644 --- a/include/settings/settings_manager.h +++ b/include/settings/settings_manager.h @@ -93,11 +93,12 @@ public: * settings manager and returns a pointer to it. * * @tparam T is a type derived from APP_SETTINGS_BASE - * @param aLoadNow is true to load the registered file from disk immediately + * @param aFilename is used to find the correct settings under clang (where + * RTTI doesn't work across compile boundaries) * @return a pointer to a loaded settings object */ template<typename T> - T* GetAppSettings() + T* GetAppSettings( const wxString& aFilename ) { T* ret = nullptr; size_t typeHash = typeid( T ).hash_code(); @@ -108,11 +109,19 @@ public: if( ret ) return ret; +#if defined(__clang__) + auto it = std::find_if( m_settings.begin(), m_settings.end(), + [&]( const std::unique_ptr<JSON_SETTINGS>& aSettings ) + { + return aSettings->GetFilename() == aFilename; + } ); +#else auto it = std::find_if( m_settings.begin(), m_settings.end(), []( const std::unique_ptr<JSON_SETTINGS>& aSettings ) { return dynamic_cast<T*>( aSettings.get() ); } ); +#endif if( it != m_settings.end() ) { @@ -128,42 +137,6 @@ public: return ret; } - template<typename T> - T* GetAppSettings( const wxString& aFilename ) - { -#ifndef __WXMAC__ - return GetAppSettings<T>(); -#else - T* ret = nullptr; - size_t typeHash = typeid( T ).hash_code(); - - if( m_app_settings_cache.count( typeHash ) ) - ret = static_cast<T*>( m_app_settings_cache.at( typeHash ) ); - - if( ret ) - return ret; - - auto it = std::find_if( m_settings.begin(), m_settings.end(), - [&]( const std::unique_ptr<JSON_SETTINGS>& aSettings ) - { - return aSettings->GetFilename() == aFilename; - } ); - - if( it != m_settings.end() ) - { - ret = static_cast<T*>( it->get() ); - } - else - { - throw std::runtime_error( "Tried to GetAppSettings before registering" ); - } - - m_app_settings_cache[typeHash] = ret; - - return ret; -#endif - } - /** * Retrieves a color settings object that applications can read colors from. * If the given settings file cannot be found, returns the default settings. diff --git a/kicad/dialogs/dialog_update_check_prompt.cpp b/kicad/dialogs/dialog_update_check_prompt.cpp index d7c0632913..b33ff70085 100644 --- a/kicad/dialogs/dialog_update_check_prompt.cpp +++ b/kicad/dialogs/dialog_update_check_prompt.cpp @@ -39,7 +39,7 @@ DIALOG_UPDATE_CHECK_PROMPT::DIALOG_UPDATE_CHECK_PROMPT( wxWindow* aWindow ) : bool DIALOG_UPDATE_CHECK_PROMPT::TransferDataFromWindow() { SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); - KICAD_SETTINGS* settings = mgr.GetAppSettings<KICAD_SETTINGS>(); + KICAD_SETTINGS* settings = mgr.GetAppSettings<KICAD_SETTINGS>( "kicad" ); settings->m_PcmUpdateCheck = m_cbPCMUpdates->GetValue(); #ifndef KICAD_UPDATE_CHECK diff --git a/kicad/pcm/dialogs/dialog_pcm.cpp b/kicad/pcm/dialogs/dialog_pcm.cpp index 628b21ad58..29f98d5d9b 100644 --- a/kicad/pcm/dialogs/dialog_pcm.cpp +++ b/kicad/pcm/dialogs/dialog_pcm.cpp @@ -244,9 +244,9 @@ void DIALOG_PCM::OnManageRepositoriesClicked( wxCommandEvent& event ) m_pcm->SetRepositoryList( dialog_data ); SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); - KICAD_SETTINGS* app_settings = mgr.GetAppSettings<KICAD_SETTINGS>(); + KICAD_SETTINGS* cfg = mgr.GetAppSettings<KICAD_SETTINGS>( "kicad" ); - app_settings->m_PcmRepositories = std::move( dialog_data ); + cfg->m_PcmRepositories = std::move( dialog_data ); setRepositoryListFromPcm(); } diff --git a/kicad/pcm/dialogs/panel_packages_view.cpp b/kicad/pcm/dialogs/panel_packages_view.cpp index f07aeaa8eb..3252a04465 100644 --- a/kicad/pcm/dialogs/panel_packages_view.cpp +++ b/kicad/pcm/dialogs/panel_packages_view.cpp @@ -524,10 +524,10 @@ void PANEL_PACKAGES_VIEW::OnDownloadVersionClicked( wxCommandEvent& event ) const wxString& url = *ver_it->download_url; SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); - KICAD_SETTINGS* app_settings = mgr.GetAppSettings<KICAD_SETTINGS>(); + KICAD_SETTINGS* cfg = mgr.GetAppSettings<KICAD_SETTINGS>( "kicad" ); wxWindow* topLevelParent = wxGetTopLevelParent( this ); - wxFileDialog dialog( topLevelParent, _( "Save Package" ), app_settings->m_PcmLastDownloadDir, + wxFileDialog dialog( topLevelParent, _( "Save Package" ), cfg->m_PcmLastDownloadDir, wxString::Format( wxT( "%s_v%s.zip" ), package.identifier, version ), wxT( "ZIP files (*.zip)|*.zip" ), wxFD_SAVE | wxFD_OVERWRITE_PROMPT ); @@ -535,7 +535,7 @@ void PANEL_PACKAGES_VIEW::OnDownloadVersionClicked( wxCommandEvent& event ) return; wxString path = dialog.GetPath(); - app_settings->m_PcmLastDownloadDir = wxPathOnly( path ); + cfg->m_PcmLastDownloadDir = wxPathOnly( path ); std::ofstream output( path.ToUTF8(), std::ios_base::binary ); diff --git a/kicad/tools/kicad_manager_control.cpp b/kicad/tools/kicad_manager_control.cpp index 7b6fe8fbcd..b137e5079f 100644 --- a/kicad/tools/kicad_manager_control.cpp +++ b/kicad/tools/kicad_manager_control.cpp @@ -225,7 +225,8 @@ int KICAD_MANAGER_CONTROL::NewJobsetFile( const TOOL_EVENT& aEvent ) int KICAD_MANAGER_CONTROL::NewFromTemplate( const TOOL_EVENT& aEvent ) { - KICAD_SETTINGS* settings = Pgm().GetSettingsManager().GetAppSettings<KICAD_SETTINGS>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + KICAD_SETTINGS* settings = mgr.GetAppSettings<KICAD_SETTINGS>( "kicad" ); DIALOG_TEMPLATE_SELECTOR* ps = new DIALOG_TEMPLATE_SELECTOR( m_frame, settings->m_TemplateWindowPos, settings->m_TemplateWindowSize ); @@ -942,7 +943,8 @@ int KICAD_MANAGER_CONTROL::ShowPluginManager( const TOOL_EVENT& aEvent ) m_frame->Kiway().ExpressMail( FRAME_PCB_EDITOR, MAIL_RELOAD_PLUGINS, payload ); } - KICAD_SETTINGS* settings = Pgm().GetSettingsManager().GetAppSettings<KICAD_SETTINGS>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + KICAD_SETTINGS* settings = mgr.GetAppSettings<KICAD_SETTINGS>( "kicad" ); if( changed.count( PCM_PACKAGE_TYPE::PT_LIBRARY ) && ( settings->m_PcmLibAutoAdd || settings->m_PcmLibAutoRemove ) ) diff --git a/kicad/update_manager.cpp b/kicad/update_manager.cpp index 8a0853575b..bb9bb24dbe 100644 --- a/kicad/update_manager.cpp +++ b/kicad/update_manager.cpp @@ -201,7 +201,8 @@ void UPDATE_MANAGER::CheckForUpdate( wxWindow* aNoticeParent ) requestContent.current_version = verString; requestContent.lang = Pgm().GetLanguageTag(); - KICAD_SETTINGS* settings = Pgm().GetSettingsManager().GetAppSettings<KICAD_SETTINGS>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + KICAD_SETTINGS* settings = mgr.GetAppSettings<KICAD_SETTINGS>( "kicad" ); requestContent.last_check = settings->m_lastUpdateCheckTime; @@ -240,8 +241,8 @@ void UPDATE_MANAGER::CheckForUpdate( wxWindow* aNoticeParent ) // basically saving the last received update prevents us from // prompting again SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); - KICAD_SETTINGS* curr_settings = mgr.GetAppSettings<KICAD_SETTINGS>(); - curr_settings->m_lastReceivedUpdate = response.version; + KICAD_SETTINGS* cfg = mgr.GetAppSettings<KICAD_SETTINGS>( "kicad" ); + cfg->m_lastReceivedUpdate = response.version; } } ); } diff --git a/pagelayout_editor/dialogs/panel_pl_editor_color_settings.cpp b/pagelayout_editor/dialogs/panel_pl_editor_color_settings.cpp index f6ed4bbf7a..635e07c586 100644 --- a/pagelayout_editor/dialogs/panel_pl_editor_color_settings.cpp +++ b/pagelayout_editor/dialogs/panel_pl_editor_color_settings.cpp @@ -31,9 +31,9 @@ PANEL_PL_EDITOR_COLOR_SETTINGS::PANEL_PL_EDITOR_COLOR_SETTINGS( wxWindow* aParen bool PANEL_PL_EDITOR_COLOR_SETTINGS::TransferDataToWindow() { - PL_EDITOR_SETTINGS* cfg = Pgm().GetSettingsManager().GetAppSettings<PL_EDITOR_SETTINGS>(); - - COLOR_SETTINGS* current = Pgm().GetSettingsManager().GetColorSettings( cfg->m_ColorTheme ); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + PL_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<PL_EDITOR_SETTINGS>( "pl_editor" ); + COLOR_SETTINGS* current = Pgm().GetSettingsManager().GetColorSettings( cfg->m_ColorTheme ); int width = 0; int height = 0; @@ -66,9 +66,11 @@ bool PANEL_PL_EDITOR_COLOR_SETTINGS::TransferDataFromWindow() if( sel >= 0 ) { - SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); - COLOR_SETTINGS* colors = static_cast<COLOR_SETTINGS*>( m_themes->GetClientData( sel ) ); - mgr.GetAppSettings<PL_EDITOR_SETTINGS>()->m_ColorTheme = colors->GetFilename(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + PL_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<PL_EDITOR_SETTINGS>( "pl_editor" ); + COLOR_SETTINGS* colors = static_cast<COLOR_SETTINGS*>( m_themes->GetClientData( sel ) ); + + cfg->m_ColorTheme = colors->GetFilename(); } return true; diff --git a/pagelayout_editor/pl_draw_panel_gal.cpp b/pagelayout_editor/pl_draw_panel_gal.cpp index f93afcea94..16c42962fa 100644 --- a/pagelayout_editor/pl_draw_panel_gal.cpp +++ b/pagelayout_editor/pl_draw_panel_gal.cpp @@ -54,9 +54,10 @@ PL_DRAW_PANEL_GAL::PL_DRAW_PANEL_GAL( wxWindow* aParentWindow, wxWindowID aWindo m_painter = std::make_unique<KIGFX::DS_PAINTER>( m_gal ); - SETTINGS_MANAGER& settingsManager = Pgm().GetSettingsManager(); - PL_EDITOR_SETTINGS* cfg = settingsManager.GetAppSettings<PL_EDITOR_SETTINGS>(); - m_painter->GetSettings()->LoadColors( settingsManager.GetColorSettings( cfg->m_ColorTheme ) ); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + PL_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<PL_EDITOR_SETTINGS>( "pl_editor" ); + + m_painter->GetSettings()->LoadColors( mgr.GetColorSettings( cfg->m_ColorTheme ) ); m_view->SetPainter( m_painter.get() ); // This fixes the zoom in and zoom out limits diff --git a/pagelayout_editor/pl_editor.cpp b/pagelayout_editor/pl_editor.cpp index 0d5bc1c068..223b2d1a25 100644 --- a/pagelayout_editor/pl_editor.cpp +++ b/pagelayout_editor/pl_editor.cpp @@ -65,7 +65,7 @@ static struct IFACE : public KIFACE_BASE, public UNITS_PROVIDER case PANEL_DS_DISPLAY_OPTIONS: { SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); - APP_SETTINGS_BASE* cfg = mgr.GetAppSettings<PL_EDITOR_SETTINGS>(); + APP_SETTINGS_BASE* cfg = mgr.GetAppSettings<PL_EDITOR_SETTINGS>( "pl_editor" ); return new PANEL_PL_EDITOR_DISPLAY_OPTIONS( aParent, cfg ); } @@ -73,7 +73,7 @@ static struct IFACE : public KIFACE_BASE, public UNITS_PROVIDER case PANEL_DS_GRIDS: { SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); - APP_SETTINGS_BASE* cfg = mgr.GetAppSettings<PL_EDITOR_SETTINGS>(); + APP_SETTINGS_BASE* cfg = mgr.GetAppSettings<PL_EDITOR_SETTINGS>( "pl_editor" ); EDA_BASE_FRAME* frame = aKiway->Player( FRAME_PL_EDITOR, false ); if( frame ) diff --git a/pagelayout_editor/pl_editor_frame.cpp b/pagelayout_editor/pl_editor_frame.cpp index 22e13299fe..6d5710f348 100644 --- a/pagelayout_editor/pl_editor_frame.cpp +++ b/pagelayout_editor/pl_editor_frame.cpp @@ -638,9 +638,9 @@ void PL_EDITOR_FRAME::CommonSettingsChanged( bool aEnvVarsChanged, bool aTextVar { EDA_DRAW_FRAME::CommonSettingsChanged( aEnvVarsChanged, aTextVarsChanged ); - SETTINGS_MANAGER& settingsManager = Pgm().GetSettingsManager(); - PL_EDITOR_SETTINGS* cfg = settingsManager.GetAppSettings<PL_EDITOR_SETTINGS>(); - COLOR_SETTINGS* colors = settingsManager.GetColorSettings( cfg->m_ColorTheme ); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + PL_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<PL_EDITOR_SETTINGS>( "pl_editor" ); + COLOR_SETTINGS* colors = mgr.GetColorSettings( cfg->m_ColorTheme ); // Update gal display options like cursor shape, grid options: GetGalDisplayOptions().ReadWindowSettings( cfg->m_Window ); diff --git a/pcbnew/dialogs/dialog_export_2581.cpp b/pcbnew/dialogs/dialog_export_2581.cpp index 6ecb9ecfd7..a605bf341c 100644 --- a/pcbnew/dialogs/dialog_export_2581.cpp +++ b/pcbnew/dialogs/dialog_export_2581.cpp @@ -244,7 +244,8 @@ void DIALOG_EXPORT_2581::onDistPNChange( wxCommandEvent& event ) bool DIALOG_EXPORT_2581::Init() { - PCBNEW_SETTINGS* cfg = Pgm().GetSettingsManager().GetAppSettings<PCBNEW_SETTINGS>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + PCBNEW_SETTINGS* cfg = mgr.GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" ); std::set<wxString> options; BOARD* board = m_parent->GetBoard(); @@ -352,7 +353,8 @@ bool DIALOG_EXPORT_2581::TransferDataFromWindow() { if( !m_job ) { - PCBNEW_SETTINGS* cfg = Pgm().GetSettingsManager().GetAppSettings<PCBNEW_SETTINGS>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + PCBNEW_SETTINGS* cfg = mgr.GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" ); cfg->m_Export2581.units = m_choiceUnits->GetSelection(); cfg->m_Export2581.precision = m_precision->GetValue(); diff --git a/pcbnew/dialogs/dialog_export_odbpp.cpp b/pcbnew/dialogs/dialog_export_odbpp.cpp index b8a31b9246..ec952d9bcb 100644 --- a/pcbnew/dialogs/dialog_export_odbpp.cpp +++ b/pcbnew/dialogs/dialog_export_odbpp.cpp @@ -123,7 +123,8 @@ void DIALOG_EXPORT_ODBPP::onOKClick( wxCommandEvent& event ) bool DIALOG_EXPORT_ODBPP::Init() { - PCBNEW_SETTINGS* cfg = Pgm().GetSettingsManager().GetAppSettings<PCBNEW_SETTINGS>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + PCBNEW_SETTINGS* cfg = mgr.GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" ); if( !m_job ) { @@ -146,7 +147,8 @@ bool DIALOG_EXPORT_ODBPP::TransferDataFromWindow() { if( !m_job ) { - PCBNEW_SETTINGS* cfg = Pgm().GetSettingsManager().GetAppSettings<PCBNEW_SETTINGS>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + PCBNEW_SETTINGS* cfg = mgr.GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" ); cfg->m_ExportODBPP.units = m_choiceUnits->GetSelection(); cfg->m_ExportODBPP.precision = m_precision->GetValue(); diff --git a/pcbnew/dialogs/dialog_footprint_chooser.cpp b/pcbnew/dialogs/dialog_footprint_chooser.cpp index cd5c33ea03..7782673540 100644 --- a/pcbnew/dialogs/dialog_footprint_chooser.cpp +++ b/pcbnew/dialogs/dialog_footprint_chooser.cpp @@ -188,7 +188,8 @@ void DIALOG_FOOTPRINT_CHOOSER::build3DCanvas() // TODO(JE) use all control options m_boardAdapter.m_MousewheelPanning = settings->m_Input.scroll_modifier_zoom != 0; - auto* cfg = Pgm().GetSettingsManager().GetAppSettings<EDA_3D_VIEWER_SETTINGS>( "3d_viewer" ); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + EDA_3D_VIEWER_SETTINGS* cfg = mgr.GetAppSettings<EDA_3D_VIEWER_SETTINGS>( "3d_viewer" ); if( cfg ) { diff --git a/pcbnew/dialogs/dialog_footprint_wizard_list.cpp b/pcbnew/dialogs/dialog_footprint_wizard_list.cpp index 4d050071f3..0c0f8f1129 100644 --- a/pcbnew/dialogs/dialog_footprint_wizard_list.cpp +++ b/pcbnew/dialogs/dialog_footprint_wizard_list.cpp @@ -52,7 +52,8 @@ DIALOG_FOOTPRINT_WIZARD_LIST::DIALOG_FOOTPRINT_WIZARD_LIST( wxWindow* aParent ) { initLists(); - auto cfg = Pgm().GetSettingsManager().GetAppSettings<PCBNEW_SETTINGS>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + PCBNEW_SETTINGS* cfg = mgr.GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" ); wxSize size; size.x = cfg->m_FootprintWizardList.width; @@ -68,16 +69,8 @@ DIALOG_FOOTPRINT_WIZARD_LIST::DIALOG_FOOTPRINT_WIZARD_LIST( wxWindow* aParent ) DIALOG_FOOTPRINT_WIZARD_LIST::~DIALOG_FOOTPRINT_WIZARD_LIST() { - PCBNEW_SETTINGS* cfg = nullptr; - - try - { - cfg = Pgm().GetSettingsManager().GetAppSettings<PCBNEW_SETTINGS>(); - } - catch( const std::runtime_error& e ) - { - wxFAIL_MSG( e.what() ); - } + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + PCBNEW_SETTINGS* cfg = mgr.GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" ); if( cfg && !IsIconized() ) { diff --git a/pcbnew/dialogs/dialog_plot.cpp b/pcbnew/dialogs/dialog_plot.cpp index c12b1fc3f1..5722111942 100644 --- a/pcbnew/dialogs/dialog_plot.cpp +++ b/pcbnew/dialogs/dialog_plot.cpp @@ -1167,7 +1167,7 @@ void DIALOG_PLOT::Plot( wxCommandEvent& event ) applyPlotSettings(); SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); - PCBNEW_SETTINGS* cfg = mgr.GetAppSettings<PCBNEW_SETTINGS>(); + PCBNEW_SETTINGS* cfg = mgr.GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" ); m_plotOpts.SetColorSettings( mgr.GetColorSettings( cfg->m_ColorTheme ) ); diff --git a/pcbnew/dialogs/panel_edit_options.cpp b/pcbnew/dialogs/panel_edit_options.cpp index c7fc01100f..0ead5be641 100644 --- a/pcbnew/dialogs/panel_edit_options.cpp +++ b/pcbnew/dialogs/panel_edit_options.cpp @@ -108,13 +108,13 @@ bool PANEL_EDIT_OPTIONS::TransferDataToWindow() if( m_isFootprintEditor ) { - FOOTPRINT_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>(); + FOOTPRINT_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" ); loadFPSettings( cfg ); } else { - PCBNEW_SETTINGS* cfg = mgr.GetAppSettings<PCBNEW_SETTINGS>(); + PCBNEW_SETTINGS* cfg = mgr.GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" ); loadPCBSettings( cfg ); } @@ -129,7 +129,7 @@ bool PANEL_EDIT_OPTIONS::TransferDataFromWindow() if( m_isFootprintEditor ) { - FOOTPRINT_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>(); + FOOTPRINT_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" ); cfg->m_RotationAngle = m_rotationAngle.GetAngleValue(); @@ -142,7 +142,7 @@ bool PANEL_EDIT_OPTIONS::TransferDataFromWindow() } else { - PCBNEW_SETTINGS* cfg = mgr.GetAppSettings<PCBNEW_SETTINGS>(); + PCBNEW_SETTINGS* cfg = mgr.GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" ); cfg->m_Display.m_DisplayRatsnestLinesCurved = m_OptDisplayCurvedRatsnestLines->GetValue(); cfg->m_Display.m_ShowModuleRatsnest = m_showSelectedRatsnest->GetValue(); diff --git a/pcbnew/dialogs/panel_fp_editor_color_settings.cpp b/pcbnew/dialogs/panel_fp_editor_color_settings.cpp index 0f639dbcea..6ce8b6177d 100644 --- a/pcbnew/dialogs/panel_fp_editor_color_settings.cpp +++ b/pcbnew/dialogs/panel_fp_editor_color_settings.cpp @@ -34,8 +34,8 @@ PANEL_FP_EDITOR_COLOR_SETTINGS::PANEL_FP_EDITOR_COLOR_SETTINGS( wxWindow* aParen m_colorNamespace = "board"; SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); - FOOTPRINT_EDITOR_SETTINGS* settings = mgr.GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>(); - COLOR_SETTINGS* current = mgr.GetColorSettings( settings->m_ColorTheme ); + FOOTPRINT_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" ); + COLOR_SETTINGS* current = mgr.GetColorSettings( cfg->m_ColorTheme ); // Store the current settings before reloading below current->Store(); @@ -46,7 +46,7 @@ PANEL_FP_EDITOR_COLOR_SETTINGS::PANEL_FP_EDITOR_COLOR_SETTINGS( wxWindow* aParen m_currentSettings = new COLOR_SETTINGS( *current ); mgr.ReloadColorSettings(); - createThemeList( settings->m_ColorTheme ); + createThemeList( cfg->m_ColorTheme ); m_validLayers.push_back( F_Cu ); m_validLayers.push_back( In1_Cu ); // "Internal Layers" @@ -78,9 +78,10 @@ PANEL_FP_EDITOR_COLOR_SETTINGS::~PANEL_FP_EDITOR_COLOR_SETTINGS() bool PANEL_FP_EDITOR_COLOR_SETTINGS::TransferDataFromWindow() { - SETTINGS_MANAGER& settingsMgr = Pgm().GetSettingsManager(); - FOOTPRINT_EDITOR_SETTINGS* settings = settingsMgr.GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>(); - settings->m_ColorTheme = m_currentSettings->GetFilename(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + FOOTPRINT_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" ); + + cfg->m_ColorTheme = m_currentSettings->GetFilename(); return true; } diff --git a/pcbnew/dialogs/panel_fp_editor_defaults.cpp b/pcbnew/dialogs/panel_fp_editor_defaults.cpp index b42ee54d0e..e30bb6221b 100644 --- a/pcbnew/dialogs/panel_fp_editor_defaults.cpp +++ b/pcbnew/dialogs/panel_fp_editor_defaults.cpp @@ -318,7 +318,7 @@ void PANEL_FP_EDITOR_DEFAULTS::loadFPSettings( FOOTPRINT_EDITOR_SETTINGS* aCfg ) bool PANEL_FP_EDITOR_DEFAULTS::TransferDataToWindow() { SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); - FOOTPRINT_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>(); + FOOTPRINT_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" ); loadFPSettings( cfg ); @@ -355,7 +355,7 @@ bool PANEL_FP_EDITOR_DEFAULTS::TransferDataFromWindow() return false; SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); - BOARD_DESIGN_SETTINGS& cfg = mgr.GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>()->m_DesignSettings; + BOARD_DESIGN_SETTINGS& cfg = mgr.GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" )->m_DesignSettings; // A minimal value for sizes and thickness: const int minWidth = pcbIUScale.mmToIU( MINIMUM_LINE_WIDTH_MM ); diff --git a/pcbnew/dialogs/panel_fp_lib_table.cpp b/pcbnew/dialogs/panel_fp_lib_table.cpp index 08d1b2bc20..977788eba4 100644 --- a/pcbnew/dialogs/panel_fp_lib_table.cpp +++ b/pcbnew/dialogs/panel_fp_lib_table.cpp @@ -317,7 +317,8 @@ protected: void PANEL_FP_LIB_TABLE::setupGrid( WX_GRID* aGrid ) { - PCBNEW_SETTINGS* cfg = Pgm().GetSettingsManager().GetAppSettings<PCBNEW_SETTINGS>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + PCBNEW_SETTINGS* cfg = mgr.GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" ); auto autoSizeCol = [&]( WX_GRID* aLocGrid, int aCol ) { @@ -408,7 +409,8 @@ PANEL_FP_LIB_TABLE::PANEL_FP_LIB_TABLE( DIALOG_EDIT_LIBRARY_TABLES* aParent, PRO m_pluginChoices.Add( PCB_IO_MGR::ShowType( fileType ) ); - PCBNEW_SETTINGS* cfg = Pgm().GetSettingsManager().GetAppSettings<PCBNEW_SETTINGS>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + PCBNEW_SETTINGS* cfg = mgr.GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" ); if( cfg->m_lastFootprintLibDir.IsEmpty() ) cfg->m_lastFootprintLibDir = PATHS::GetDefaultUserFootprintsPath(); @@ -951,7 +953,8 @@ void PANEL_FP_LIB_TABLE::browseLibrariesHandler( wxCommandEvent& event ) } const IO_BASE::IO_FILE_DESC& fileDesc = m_supportedFpFiles.at( fileType ); - PCBNEW_SETTINGS* cfg = Pgm().GetSettingsManager().GetAppSettings<PCBNEW_SETTINGS>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + PCBNEW_SETTINGS* cfg = mgr.GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" ); wxString title = wxString::Format( _( "Select %s Library" ), PCB_IO_MGR::ShowType( fileType ) ); wxString openDir = cfg->m_lastFootprintLibDir; diff --git a/pcbnew/dialogs/panel_fp_properties_3d_model.cpp b/pcbnew/dialogs/panel_fp_properties_3d_model.cpp index a668ca7209..a0398c1676 100644 --- a/pcbnew/dialogs/panel_fp_properties_3d_model.cpp +++ b/pcbnew/dialogs/panel_fp_properties_3d_model.cpp @@ -84,7 +84,8 @@ PANEL_FP_PROPERTIES_3D_MODEL::PANEL_FP_PROPERTIES_3D_MODEL( PCB_BASE_EDIT_FRAME* m_modelsGrid->PushEventHandler( trick ); // Get the last 3D directory - PCBNEW_SETTINGS* cfg = Pgm().GetSettingsManager().GetAppSettings<PCBNEW_SETTINGS>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + PCBNEW_SETTINGS* cfg = mgr.GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" ); if( cfg->m_lastFootprint3dDir.IsEmpty() ) { diff --git a/pcbnew/dialogs/panel_pcb_display_options.cpp b/pcbnew/dialogs/panel_pcb_display_options.cpp index 0e161cfb2d..a798175359 100644 --- a/pcbnew/dialogs/panel_pcb_display_options.cpp +++ b/pcbnew/dialogs/panel_pcb_display_options.cpp @@ -69,7 +69,7 @@ bool PANEL_PCB_DISPLAY_OPTIONS::TransferDataToWindow() if( m_isPCBEdit ) { SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); - PCBNEW_SETTINGS* cfg = mgr.GetAppSettings<PCBNEW_SETTINGS>(); + PCBNEW_SETTINGS* cfg = mgr.GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" ); loadPCBSettings( cfg ); } @@ -89,7 +89,8 @@ bool PANEL_PCB_DISPLAY_OPTIONS::TransferDataFromWindow() if( m_isPCBEdit ) { - PCBNEW_SETTINGS* cfg = Pgm().GetSettingsManager().GetAppSettings<PCBNEW_SETTINGS>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + PCBNEW_SETTINGS* cfg = mgr.GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" ); int i = m_OptDisplayTracksClearance->GetSelection(); cfg->m_Display.m_TrackClearance = UTIL::GetValFromConfig( clearanceModeMap, i ); diff --git a/pcbnew/dialogs/panel_pcbnew_color_settings.cpp b/pcbnew/dialogs/panel_pcbnew_color_settings.cpp index cdea2fc2a2..4cd46b96fb 100644 --- a/pcbnew/dialogs/panel_pcbnew_color_settings.cpp +++ b/pcbnew/dialogs/panel_pcbnew_color_settings.cpp @@ -691,15 +691,15 @@ PANEL_PCBNEW_COLOR_SETTINGS::PANEL_PCBNEW_COLOR_SETTINGS( wxWindow* aParent, BOA { m_colorNamespace = "board"; - SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); - PCBNEW_SETTINGS* app_settings = mgr.GetAppSettings<PCBNEW_SETTINGS>(); - COLOR_SETTINGS* current = mgr.GetColorSettings( app_settings->m_ColorTheme ); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + PCBNEW_SETTINGS* cfg = mgr.GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" ); + COLOR_SETTINGS* current = mgr.GetColorSettings( cfg->m_ColorTheme ); // Saved theme doesn't exist? Reset to default - if( current->GetFilename() != app_settings->m_ColorTheme ) - app_settings->m_ColorTheme = current->GetFilename(); + if( current->GetFilename() != cfg->m_ColorTheme ) + cfg->m_ColorTheme = current->GetFilename(); - createThemeList( app_settings->m_ColorTheme ); + createThemeList( cfg->m_ColorTheme ); // Currently this only applies to eeschema m_optOverrideColors->Hide(); @@ -740,8 +740,9 @@ PANEL_PCBNEW_COLOR_SETTINGS::~PANEL_PCBNEW_COLOR_SETTINGS() bool PANEL_PCBNEW_COLOR_SETTINGS::TransferDataFromWindow() { SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); - PCBNEW_SETTINGS* app_settings = mgr.GetAppSettings<PCBNEW_SETTINGS>(); - app_settings->m_ColorTheme = m_currentSettings->GetFilename(); + PCBNEW_SETTINGS* cfg = mgr.GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" ); + + cfg->m_ColorTheme = m_currentSettings->GetFilename(); return true; } diff --git a/pcbnew/footprint_chooser_frame.cpp b/pcbnew/footprint_chooser_frame.cpp index b12a041672..3a0c8b9056 100644 --- a/pcbnew/footprint_chooser_frame.cpp +++ b/pcbnew/footprint_chooser_frame.cpp @@ -597,7 +597,9 @@ void FOOTPRINT_CHOOSER_FRAME::build3DCanvas() m_boardAdapter.m_IsBoardView = false; m_boardAdapter.m_IsPreviewer = true; // Force display 3D models, regardless the 3D viewer options - EDA_3D_VIEWER_SETTINGS* cfg = Pgm().GetSettingsManager().GetAppSettings<EDA_3D_VIEWER_SETTINGS>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + EDA_3D_VIEWER_SETTINGS* cfg = mgr.GetAppSettings<EDA_3D_VIEWER_SETTINGS>( "3d_viewer" ); + m_boardAdapter.m_Cfg = cfg; // Build the 3D canvas diff --git a/pcbnew/footprint_edit_frame.cpp b/pcbnew/footprint_edit_frame.cpp index 91ae2aaeff..76de45f3c7 100644 --- a/pcbnew/footprint_edit_frame.cpp +++ b/pcbnew/footprint_edit_frame.cpp @@ -641,7 +641,11 @@ void FOOTPRINT_EDIT_FRAME::SetPlotSettings( const PCB_PLOT_PARAMS& aSettings ) FOOTPRINT_EDITOR_SETTINGS* FOOTPRINT_EDIT_FRAME::GetSettings() { if( !m_editorSettings ) - m_editorSettings = Pgm().GetSettingsManager().GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>(); + { + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + + m_editorSettings = mgr.GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" ); + } return m_editorSettings; } @@ -649,8 +653,10 @@ FOOTPRINT_EDITOR_SETTINGS* FOOTPRINT_EDIT_FRAME::GetSettings() APP_SETTINGS_BASE* FOOTPRINT_EDIT_FRAME::config() const { - return m_editorSettings ? m_editorSettings - : Pgm().GetSettingsManager().GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>(); + if( m_editorSettings ) + return m_editorSettings; + + return Pgm().GetSettingsManager().GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" ); } @@ -1384,7 +1390,9 @@ void FOOTPRINT_EDIT_FRAME::CommonSettingsChanged( bool aEnvVarsChanged, bool aTe { PCB_BASE_EDIT_FRAME::CommonSettingsChanged( aEnvVarsChanged, aTextVarsChanged ); - auto cfg = Pgm().GetSettingsManager().GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + FOOTPRINT_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" ); + GetGalDisplayOptions().ReadWindowSettings( cfg->m_Window ); GetBoard()->GetDesignSettings() = cfg->m_DesignSettings; diff --git a/pcbnew/footprint_viewer_frame.cpp b/pcbnew/footprint_viewer_frame.cpp index 8a3d2cfe29..a39821c5ea 100644 --- a/pcbnew/footprint_viewer_frame.cpp +++ b/pcbnew/footprint_viewer_frame.cpp @@ -811,7 +811,9 @@ void FOOTPRINT_VIEWER_FRAME::LoadSettings( APP_SETTINGS_BASE* aCfg ) PCB_BASE_FRAME::LoadSettings( aCfg ); // Fetch display and grid settings from Footprint Editor - auto* fpedit = Pgm().GetSettingsManager().GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" ); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + FOOTPRINT_EDITOR_SETTINGS* fpedit = mgr.GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" ); + m_displayOptions = fpedit->m_Display; GetGalDisplayOptions().ReadWindowSettings( fpedit->m_Window ); @@ -861,12 +863,13 @@ WINDOW_SETTINGS* FOOTPRINT_VIEWER_FRAME::GetWindowSettings( APP_SETTINGS_BASE* a COLOR_SETTINGS* FOOTPRINT_VIEWER_FRAME::GetColorSettings( bool aForceRefresh ) const { - auto* cfg = Pgm().GetSettingsManager().GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" ); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + FOOTPRINT_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" ); if( cfg ) - return Pgm().GetSettingsManager().GetColorSettings( cfg->m_ColorTheme ); + return mgr.GetColorSettings( cfg->m_ColorTheme ); else - return Pgm().GetSettingsManager().GetColorSettings(); + return mgr.GetColorSettings(); } diff --git a/pcbnew/pcbnew.cpp b/pcbnew/pcbnew.cpp index 50b91049ce..d1ecc8f7f2 100644 --- a/pcbnew/pcbnew.cpp +++ b/pcbnew/pcbnew.cpp @@ -148,17 +148,17 @@ static struct IFACE : public KIFACE_BASE, public UNITS_PROVIDER case PANEL_FP_DISPLAY_OPTIONS: { - SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); - APP_SETTINGS_BASE* cfg = mgr.GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + FOOTPRINT_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" ); return new PANEL_PCB_DISPLAY_OPTIONS( aParent, cfg ); } case PANEL_FP_GRIDS: { - SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); - APP_SETTINGS_BASE* cfg = mgr.GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>(); - EDA_BASE_FRAME* frame = aKiway->Player( FRAME_FOOTPRINT_EDITOR, false ); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + FOOTPRINT_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" ); + EDA_BASE_FRAME* frame = aKiway->Player( FRAME_FOOTPRINT_EDITOR, false ); if( !frame ) frame = aKiway->Player( FRAME_FOOTPRINT_VIEWER, false ); @@ -174,8 +174,8 @@ static struct IFACE : public KIFACE_BASE, public UNITS_PROVIDER case PANEL_FP_ORIGINS_AXES: { - SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); - APP_SETTINGS_BASE* cfg = mgr.GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + FOOTPRINT_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" ); return new PANEL_PCBNEW_DISPLAY_ORIGIN( aParent, cfg, FRAME_FOOTPRINT_EDITOR ); } @@ -217,17 +217,17 @@ static struct IFACE : public KIFACE_BASE, public UNITS_PROVIDER case PANEL_PCB_DISPLAY_OPTS: { - SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); - APP_SETTINGS_BASE* cfg = mgr.GetAppSettings<PCBNEW_SETTINGS>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + PCBNEW_SETTINGS* cfg = mgr.GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" ); return new PANEL_PCB_DISPLAY_OPTIONS( aParent, cfg ); } case PANEL_PCB_GRIDS: { - SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); - APP_SETTINGS_BASE* cfg = mgr.GetAppSettings<PCBNEW_SETTINGS>(); - EDA_BASE_FRAME* frame = aKiway->Player( FRAME_PCB_EDITOR, false ); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + PCBNEW_SETTINGS* cfg = mgr.GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" ); + EDA_BASE_FRAME* frame = aKiway->Player( FRAME_PCB_EDITOR, false ); if( !frame ) frame = aKiway->Player( FRAME_FOOTPRINT_EDITOR, false ); @@ -243,8 +243,8 @@ static struct IFACE : public KIFACE_BASE, public UNITS_PROVIDER case PANEL_PCB_ORIGINS_AXES: { - SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); - APP_SETTINGS_BASE* cfg = mgr.GetAppSettings<PCBNEW_SETTINGS>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + PCBNEW_SETTINGS* cfg = mgr.GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" ); return new PANEL_PCBNEW_DISPLAY_ORIGIN( aParent, cfg, FRAME_PCB_EDITOR ); } @@ -380,34 +380,31 @@ bool IFACE::OnKifaceStart( PGM_BASE* aProgram, int aCtlBits, KIWAY* aKiway ) // This is process-level-initialization, not project-level-initialization of the DSO. // Do nothing in here pertinent to a project! InitSettings( new PCBNEW_SETTINGS ); - aProgram->GetSettingsManager().RegisterSettings( new FOOTPRINT_EDITOR_SETTINGS ); - aProgram->GetSettingsManager().RegisterSettings( new EDA_3D_VIEWER_SETTINGS ); + + SETTINGS_MANAGER& mgr = aProgram->GetSettingsManager(); + + mgr.RegisterSettings( new FOOTPRINT_EDITOR_SETTINGS ); + mgr.RegisterSettings( new EDA_3D_VIEWER_SETTINGS ); // We intentionally register KifaceSettings after FOOTPRINT_EDITOR_SETTINGS and EDA_3D_VIEWER_SETTINGS // In legacy configs, many settings were in a single editor config and the migration routine // for the main editor file will try and call into the now separate settings stores // to move the settings into them - aProgram->GetSettingsManager().RegisterSettings( KifaceSettings() ); + mgr.RegisterSettings( KifaceSettings() ); // Register the footprint editor settings as well because they share a KiFACE and need to be // loaded prior to use to avoid threading deadlocks - aProgram->GetSettingsManager().RegisterSettings( new CVPCB_SETTINGS ); + mgr.RegisterSettings( new CVPCB_SETTINGS ); start_common( aCtlBits ); if( !loadGlobalLibTable() ) { - // we didnt get anywhere deregister the - aProgram->GetSettingsManager().FlushAndRelease( - aProgram->GetSettingsManager().GetAppSettings<CVPCB_SETTINGS>(), false ); - - aProgram->GetSettingsManager().FlushAndRelease( KifaceSettings(), false ); - - aProgram->GetSettingsManager().FlushAndRelease( - aProgram->GetSettingsManager().GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>(), false ); - - aProgram->GetSettingsManager().FlushAndRelease( - aProgram->GetSettingsManager().GetAppSettings<EDA_3D_VIEWER_SETTINGS>(), false ); + // we didnt get anywhere deregister the settings + mgr.FlushAndRelease( mgr.GetAppSettings<CVPCB_SETTINGS>( "cvpcb" ), false ); + mgr.FlushAndRelease( KifaceSettings(), false ); + mgr.FlushAndRelease( mgr.GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" ), false ); + mgr.FlushAndRelease( mgr.GetAppSettings<EDA_3D_VIEWER_SETTINGS>( "3d_viewer" ), false ); return false; } diff --git a/pcbnew/pcbnew_jobs_handler.cpp b/pcbnew/pcbnew_jobs_handler.cpp index c081a45f3e..657690626f 100644 --- a/pcbnew/pcbnew_jobs_handler.cpp +++ b/pcbnew/pcbnew_jobs_handler.cpp @@ -443,11 +443,10 @@ int PCBNEW_JOBS_HANDLER::JobExportRender( JOB* aJob ) boardAdapter.SetBoard( brd ); boardAdapter.m_IsBoardView = false; - boardAdapter.m_IsPreviewer = - true; // Force display 3D models, regardless the 3D viewer options + boardAdapter.m_IsPreviewer = true; // Force display 3D models, regardless of 3D viewer options - EDA_3D_VIEWER_SETTINGS* cfg = - Pgm().GetSettingsManager().GetAppSettings<EDA_3D_VIEWER_SETTINGS>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + EDA_3D_VIEWER_SETTINGS* cfg = mgr.GetAppSettings<EDA_3D_VIEWER_SETTINGS>( "3d_viewer" ); if( aRenderJob->m_quality == JOB_PCB_RENDER::QUALITY::BASIC ) { diff --git a/pcbnew/pcbnew_printout.cpp b/pcbnew/pcbnew_printout.cpp index 7105841d97..26301ff1b8 100644 --- a/pcbnew/pcbnew_printout.cpp +++ b/pcbnew/pcbnew_printout.cpp @@ -38,6 +38,7 @@ #include <pad.h> #include <advanced_config.h> +#include <pgm_base.h> PCBNEW_PRINTOUT_SETTINGS::PCBNEW_PRINTOUT_SETTINGS( const PAGE_INFO& aPageInfo ) : BOARD_PRINTOUT_SETTINGS( aPageInfo ) @@ -53,7 +54,10 @@ void PCBNEW_PRINTOUT_SETTINGS::Load( APP_SETTINGS_BASE* aConfig ) { BOARD_PRINTOUT_SETTINGS::Load( aConfig ); - if( PCBNEW_SETTINGS* cfg = dynamic_cast<PCBNEW_SETTINGS*>( aConfig ) ) + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + PCBNEW_SETTINGS* cfg = mgr.GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" ); + + if( cfg ) { m_DrillMarks = static_cast<DRILL_MARKS>( cfg->m_Plot.pads_drill_mode ); m_Pagination = static_cast<PAGINATION_T>( cfg->m_Plot.all_layers_on_one_page ); @@ -68,7 +72,10 @@ void PCBNEW_PRINTOUT_SETTINGS::Save( APP_SETTINGS_BASE* aConfig ) { BOARD_PRINTOUT_SETTINGS::Save( aConfig ); - if( PCBNEW_SETTINGS* cfg = dynamic_cast<PCBNEW_SETTINGS*>( aConfig ) ) + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + PCBNEW_SETTINGS* cfg = mgr.GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" ); + + if( cfg ) { cfg->m_Plot.pads_drill_mode = (int)m_DrillMarks; cfg->m_Plot.all_layers_on_one_page = m_Pagination; diff --git a/pcbnew/pcbnew_settings.cpp b/pcbnew/pcbnew_settings.cpp index cd2e25ba40..4911f6e7ea 100644 --- a/pcbnew/pcbnew_settings.cpp +++ b/pcbnew/pcbnew_settings.cpp @@ -937,7 +937,8 @@ bool PCBNEW_SETTINGS::MigrateFromLegacy( wxConfigBase* aCfg ) // Migrate color settings that were stored in the pcbnew config file - COLOR_SETTINGS* cs = Pgm().GetSettingsManager().GetMigratedColorSettings(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + COLOR_SETTINGS* cs = mgr.GetMigratedColorSettings(); auto migrateLegacyColor = [&] ( const std::string& aKey, int aLayerId ) @@ -967,7 +968,7 @@ bool PCBNEW_SETTINGS::MigrateFromLegacy( wxConfigBase* aCfg ) migrateLegacyColor( "Color4DWorksheet", LAYER_DRAWINGSHEET ); migrateLegacyColor( "Color4DGrid", LAYER_PAGE_LIMITS ); - Pgm().GetSettingsManager().SaveColorSettings( cs, "board" ); + mgr.SaveColorSettings( cs, "board" ); Set( "appearance.color_theme", cs->GetFilename() ); @@ -987,12 +988,12 @@ bool PCBNEW_SETTINGS::MigrateFromLegacy( wxConfigBase* aCfg ) } // Footprint editor settings were stored in pcbnew config file. Migrate them here. - auto fpedit = Pgm().GetSettingsManager().GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>(); + FOOTPRINT_EDITOR_SETTINGS* fpedit = mgr.GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" ); fpedit->MigrateFromLegacy( aCfg ); fpedit->Load(); // Same with 3D viewer - auto viewer3d = Pgm().GetSettingsManager().GetAppSettings<EDA_3D_VIEWER_SETTINGS>(); + EDA_3D_VIEWER_SETTINGS* viewer3d = mgr.GetAppSettings<EDA_3D_VIEWER_SETTINGS>( "3d_viewer" ); viewer3d->MigrateFromLegacy( aCfg ); viewer3d->Load(); diff --git a/pcbnew/python/scripting/pcbnew_action_plugins.cpp b/pcbnew/python/scripting/pcbnew_action_plugins.cpp index e31e91d893..5c2cef59d5 100644 --- a/pcbnew/python/scripting/pcbnew_action_plugins.cpp +++ b/pcbnew/python/scripting/pcbnew_action_plugins.cpp @@ -531,7 +531,8 @@ void PCB_EDIT_FRAME::AddActionPluginTools() std::vector<ACTION_PLUGIN*> PCB_EDIT_FRAME::GetOrderedActionPlugins() { - PCBNEW_SETTINGS* cfg = Pgm().GetSettingsManager().GetAppSettings<PCBNEW_SETTINGS>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + PCBNEW_SETTINGS* cfg = mgr.GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" ); std::vector<ACTION_PLUGIN*> plugins; std::vector<ACTION_PLUGIN*> orderedPlugins; @@ -566,7 +567,8 @@ std::vector<ACTION_PLUGIN*> PCB_EDIT_FRAME::GetOrderedActionPlugins() bool PCB_EDIT_FRAME::GetActionPluginButtonVisible( const wxString& aPluginPath, bool aPluginDefault ) { - PCBNEW_SETTINGS* cfg = Pgm().GetSettingsManager().GetAppSettings<PCBNEW_SETTINGS>(); + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + PCBNEW_SETTINGS* cfg = mgr.GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" ); for( const auto& entry : cfg->m_VisibleActionPlugins ) { diff --git a/pcbnew/sel_layer.cpp b/pcbnew/sel_layer.cpp index 3ab7707927..3ff2c2b42d 100644 --- a/pcbnew/sel_layer.cpp +++ b/pcbnew/sel_layer.cpp @@ -67,8 +67,8 @@ COLOR4D PCB_LAYER_PRESENTATION::getLayerColor( int aLayer ) const else { SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); - FOOTPRINT_EDITOR_SETTINGS* settings = mgr.GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>(); - COLOR_SETTINGS* current = mgr.GetColorSettings( settings->m_ColorTheme ); + FOOTPRINT_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" ); + COLOR_SETTINGS* current = mgr.GetColorSettings( cfg->m_ColorTheme ); return current->GetColor( aLayer ); } diff --git a/pcbnew/tools/drawing_tool.cpp b/pcbnew/tools/drawing_tool.cpp index 36853f037a..16652af3b3 100644 --- a/pcbnew/tools/drawing_tool.cpp +++ b/pcbnew/tools/drawing_tool.cpp @@ -338,9 +338,9 @@ void DRAWING_TOOL::UpdateStatusBar() const bool constrained; if( m_frame->IsType( FRAME_PCB_EDITOR ) ) - constrained = mgr.GetAppSettings<PCBNEW_SETTINGS>()->m_Use45DegreeLimit; + constrained = mgr.GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" )->m_Use45DegreeLimit; else - constrained = mgr.GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>()->m_Use45Limit; + constrained = mgr.GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" )->m_Use45Limit; m_frame->DisplayConstraintsMsg( constrained ? _( "Constrain to H, V, 45" ) : wxString( "" ) ); } @@ -2113,9 +2113,9 @@ int DRAWING_TOOL::ToggleHV45Mode( const TOOL_EVENT& toolEvent ) SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); if( frame()->IsType( FRAME_PCB_EDITOR ) ) - TOGGLE( mgr.GetAppSettings<PCBNEW_SETTINGS>()->m_Use45DegreeLimit ); + TOGGLE( mgr.GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" )->m_Use45DegreeLimit ); else - TOGGLE( mgr.GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>()->m_Use45Limit ); + TOGGLE( mgr.GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" )->m_Use45Limit ); UpdateStatusBar(); diff --git a/pcbnew/tools/pcb_editor_conditions.cpp b/pcbnew/tools/pcb_editor_conditions.cpp index 52d42e0413..3a5f216ad7 100644 --- a/pcbnew/tools/pcb_editor_conditions.cpp +++ b/pcbnew/tools/pcb_editor_conditions.cpp @@ -191,7 +191,7 @@ bool PCB_EDITOR_CONDITIONS::get45degModeFunc( const SELECTION& aSelection, PCB_B SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); if( aFrame->IsType( FRAME_PCB_EDITOR ) ) - return mgr.GetAppSettings<PCBNEW_SETTINGS>()->m_Use45DegreeLimit; + return mgr.GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" )->m_Use45DegreeLimit; else - return mgr.GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>()->m_Use45Limit; + return mgr.GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" )->m_Use45Limit; } diff --git a/pcbnew/tools/pcb_tool_base.cpp b/pcbnew/tools/pcb_tool_base.cpp index 7f4f05eec4..8e6f55b49f 100644 --- a/pcbnew/tools/pcb_tool_base.cpp +++ b/pcbnew/tools/pcb_tool_base.cpp @@ -333,9 +333,9 @@ bool PCB_TOOL_BASE::Is45Limited() const SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); if( frame()->IsType( FRAME_PCB_EDITOR ) ) - return mgr.GetAppSettings<PCBNEW_SETTINGS>()->m_Use45DegreeLimit; + return mgr.GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" )->m_Use45DegreeLimit; else - return mgr.GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>()->m_Use45Limit; + return mgr.GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" )->m_Use45Limit; } diff --git a/pcbnew/tools/pcb_viewer_tools.cpp b/pcbnew/tools/pcb_viewer_tools.cpp index 26851d9925..ab3025eb85 100644 --- a/pcbnew/tools/pcb_viewer_tools.cpp +++ b/pcbnew/tools/pcb_viewer_tools.cpp @@ -323,9 +323,9 @@ int PCB_VIEWER_TOOLS::MeasureTool( const TOOL_EVENT& aEvent ) bool force45Deg; if( frame()->IsType( FRAME_PCB_EDITOR ) ) - force45Deg = mgr.GetAppSettings<PCBNEW_SETTINGS>()->m_Use45DegreeLimit; + force45Deg = mgr.GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" )->m_Use45DegreeLimit; else - force45Deg = mgr.GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>()->m_Use45Limit; + force45Deg = mgr.GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" )->m_Use45Limit; twoPtMgr.SetAngleSnap( force45Deg ); twoPtMgr.SetEnd( cursorPos ); diff --git a/pcbnew/tools/position_relative_tool.cpp b/pcbnew/tools/position_relative_tool.cpp index 44d636cd75..cc73ed88f5 100644 --- a/pcbnew/tools/position_relative_tool.cpp +++ b/pcbnew/tools/position_relative_tool.cpp @@ -326,9 +326,9 @@ int POSITION_RELATIVE_TOOL::PositionRelativeInteractively( const TOOL_EVENT& aEv bool force45Deg; if( frame()->IsType( FRAME_PCB_EDITOR ) ) - force45Deg = mgr.GetAppSettings<PCBNEW_SETTINGS>()->m_Use45DegreeLimit; + force45Deg = mgr.GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" )->m_Use45DegreeLimit; else - force45Deg = mgr.GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>()->m_Use45Limit; + force45Deg = mgr.GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" )->m_Use45Limit; twoPtMgr.SetAngleSnap( force45Deg ); twoPtMgr.SetEnd( cursorPos ); diff --git a/qa/qa_utils/pcb_test_frame.cpp b/qa/qa_utils/pcb_test_frame.cpp index ac401dcbc2..175f2876d9 100644 --- a/qa/qa_utils/pcb_test_frame.cpp +++ b/qa/qa_utils/pcb_test_frame.cpp @@ -90,12 +90,8 @@ void PCB_TEST_FRAME_BASE::SetBoard( std::shared_ptr<BOARD> b ) KI_TRACE( traceGalProfile, "%s\n", cntView.to_string() ); #ifdef USE_TOOL_MANAGER - SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); - - mgr.RegisterSettings( new PCBNEW_SETTINGS, false ); - - PCBNEW_SETTINGS* cfg = mgr.GetAppSettings<PCBNEW_SETTINGS>(); - + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + PCBNEW_SETTINGS* cfg = mgr.RegisterSettings( new PCBNEW_SETTINGS, false ); m_toolManager = new TOOL_MANAGER;