mirror of
https://gitlab.com/kicad/code/kicad.git
synced 2025-09-13 17:53:11 +02:00
Don't force callers of GetAppSettings to implement exception processing.
This commit is contained in:
parent
5ed332771c
commit
18e107529a
@ -227,17 +227,11 @@ BOARD_ADAPTER::~BOARD_ADAPTER()
|
||||
|
||||
void BOARD_ADAPTER::ReloadColorSettings() noexcept
|
||||
{
|
||||
wxCHECK( PgmOrNull(), /* void */ );
|
||||
PCBNEW_SETTINGS* cfg = GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" );
|
||||
COLOR_SETTINGS* cs = ::GetColorSettings( cfg ? cfg->m_ColorTheme : DEFAULT_THEME );
|
||||
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
PCBNEW_SETTINGS* cfg = mgr.GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" );
|
||||
COLOR_SETTINGS* colors = mgr.GetColorSettings( cfg ? cfg->m_ColorTheme : wxString( "" ) );
|
||||
|
||||
if( colors )
|
||||
{
|
||||
for( int layer = F_Cu; layer < PCB_LAYER_ID_COUNT; ++layer )
|
||||
m_BoardEditorColors[ layer ] = colors->GetColor( layer );
|
||||
}
|
||||
for( int layer = F_Cu; layer < PCB_LAYER_ID_COUNT; ++layer )
|
||||
m_BoardEditorColors[ layer ] = cs->GetColor( layer );
|
||||
}
|
||||
|
||||
|
||||
@ -617,7 +611,7 @@ std::map<int, COLOR4D> BOARD_ADAPTER::GetDefaultColors() const
|
||||
colors[ LAYER_3D_USER_ECO1 ] = BOARD_ADAPTER::g_DefaultECOs;
|
||||
colors[ LAYER_3D_USER_ECO2 ] = BOARD_ADAPTER::g_DefaultECOs;
|
||||
|
||||
COLOR_SETTINGS* settings = Pgm().GetSettingsManager().GetColorSettings( wxEmptyString );
|
||||
COLOR_SETTINGS* settings = ::GetColorSettings( DEFAULT_THEME );
|
||||
|
||||
for( int layer = LAYER_3D_USER_1; layer <= LAYER_3D_USER_45; ++layer )
|
||||
colors[ layer ] = settings->GetColor( layer );
|
||||
@ -636,7 +630,7 @@ std::map<int, COLOR4D> BOARD_ADAPTER::GetLayerColors() const
|
||||
}
|
||||
else
|
||||
{
|
||||
COLOR_SETTINGS* settings = Pgm().GetSettingsManager().GetColorSettings();
|
||||
COLOR_SETTINGS* settings = ::GetColorSettings( DEFAULT_THEME );
|
||||
|
||||
for( const auto& [ layer, defaultColor /* unused */ ] : GetDefaultColors() )
|
||||
colors[ layer ] = settings->GetColor( layer );
|
||||
@ -746,7 +740,7 @@ std::map<int, COLOR4D> BOARD_ADAPTER::GetLayerColors() const
|
||||
|
||||
void BOARD_ADAPTER::SetLayerColors( const std::map<int, COLOR4D>& aColors )
|
||||
{
|
||||
COLOR_SETTINGS* settings = Pgm().GetSettingsManager().GetColorSettings();
|
||||
COLOR_SETTINGS* settings = ::GetColorSettings( DEFAULT_THEME );
|
||||
|
||||
for( const auto& [ layer, color ] : aColors )
|
||||
{
|
||||
|
@ -1124,14 +1124,14 @@ 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>( "3d_viewer" );
|
||||
|
||||
switch( cfg->m_Render.engine )
|
||||
if( EDA_3D_VIEWER_SETTINGS* cfg = GetAppSettings<EDA_3D_VIEWER_SETTINGS>( "3d_viewer" ) )
|
||||
{
|
||||
case RENDER_ENGINE::OPENGL: m_3d_render = m_3d_render_opengl; break;
|
||||
case RENDER_ENGINE::RAYTRACING: m_3d_render = m_3d_render_raytracing; break;
|
||||
default: m_3d_render = nullptr; break;
|
||||
switch( cfg->m_Render.engine )
|
||||
{
|
||||
case RENDER_ENGINE::OPENGL: m_3d_render = m_3d_render_opengl; break;
|
||||
case RENDER_ENGINE::RAYTRACING: m_3d_render = m_3d_render_raytracing; break;
|
||||
default: m_3d_render = nullptr; break;
|
||||
}
|
||||
}
|
||||
|
||||
if( m_3d_render )
|
||||
|
@ -111,24 +111,26 @@ EDA_3D_VIEWER_FRAME::EDA_3D_VIEWER_FRAME( KIWAY* aKiway, PCB_BASE_FRAME* aParent
|
||||
wxStatusBar *status_bar = CreateStatusBar( arrayDim( status_dims ) );
|
||||
SetStatusWidths( arrayDim( status_dims ), status_dims );
|
||||
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
EDA_3D_VIEWER_SETTINGS* cfg = mgr.GetAppSettings<EDA_3D_VIEWER_SETTINGS>( "3d_viewer" );
|
||||
ANTIALIASING_MODE aaMode = static_cast<ANTIALIASING_MODE>( cfg->m_Render.opengl_AA_mode );
|
||||
ANTIALIASING_MODE aaMode = ANTIALIASING_MODE::AA_NONE;
|
||||
EDA_3D_VIEWER_SETTINGS* cfg = GetAppSettings<EDA_3D_VIEWER_SETTINGS>( "3d_viewer" );
|
||||
|
||||
m_canvas = new EDA_3D_CANVAS( this, OGL_ATT_LIST::GetAttributesList( aaMode, true ),
|
||||
m_boardAdapter, m_currentCamera,
|
||||
PROJECT_PCB::Get3DCacheManager( &Prj() ) );
|
||||
if( cfg )
|
||||
aaMode = static_cast<ANTIALIASING_MODE>( cfg->m_Render.opengl_AA_mode );
|
||||
|
||||
m_canvas = new EDA_3D_CANVAS( this, OGL_ATT_LIST::GetAttributesList( aaMode, true ), m_boardAdapter,
|
||||
m_currentCamera, PROJECT_PCB::Get3DCacheManager( &Prj() ) );
|
||||
|
||||
m_appearancePanel = new APPEARANCE_CONTROLS_3D( this, GetCanvas() );
|
||||
|
||||
LoadSettings( cfg );
|
||||
LoadSettings( GetAppSettings<EDA_3D_VIEWER_SETTINGS>( "3d_viewer" ) );
|
||||
loadCommonSettings();
|
||||
|
||||
m_appearancePanel->SetUserViewports( Prj().GetProjectFile().m_Viewports3D );
|
||||
|
||||
// Create the manager
|
||||
m_toolManager = new TOOL_MANAGER;
|
||||
m_toolManager->SetEnvironment( GetBoard(), nullptr, nullptr, cfg, this );
|
||||
m_toolManager->SetEnvironment( GetBoard(), nullptr, nullptr,
|
||||
GetAppSettings<EDA_3D_VIEWER_SETTINGS>( "3d_viewer" ), this );
|
||||
|
||||
m_actions = new EDA_3D_ACTIONS();
|
||||
m_toolDispatcher = new TOOL_DISPATCHER( m_toolManager );
|
||||
@ -142,7 +144,7 @@ EDA_3D_VIEWER_FRAME::EDA_3D_VIEWER_FRAME( KIWAY* aKiway, PCB_BASE_FRAME* aParent
|
||||
setupUIConditions();
|
||||
|
||||
if( EDA_3D_CONTROLLER* ctrlTool = GetToolManager()->GetTool<EDA_3D_CONTROLLER>() )
|
||||
ctrlTool->SetRotationIncrement( cfg->m_Camera.rotation_increment );
|
||||
ctrlTool->SetRotationIncrement( cfg ? cfg->m_Camera.rotation_increment : 10.0 );
|
||||
|
||||
// Run the viewer control tool, it is supposed to be always active
|
||||
m_toolManager->InvokeTool( "3DViewer.Control" );
|
||||
@ -170,10 +172,11 @@ EDA_3D_VIEWER_FRAME::EDA_3D_VIEWER_FRAME( KIWAY* aKiway, PCB_BASE_FRAME* aParent
|
||||
|
||||
wxAuiPaneInfo& layersManager = m_auimgr.GetPane( "LayersManager" );
|
||||
|
||||
if( cfg->m_AuiPanels.right_panel_width > 0 )
|
||||
if( cfg && cfg->m_AuiPanels.right_panel_width > 0 )
|
||||
SetAuiPaneSize( m_auimgr, layersManager, cfg->m_AuiPanels.right_panel_width, -1 );
|
||||
|
||||
layersManager.Show( cfg->m_AuiPanels.show_layer_manager );
|
||||
if( cfg )
|
||||
layersManager.Show( cfg->m_AuiPanels.show_layer_manager );
|
||||
|
||||
// Call Update() to fix all pane default sizes, especially the "InfoBar" pane before
|
||||
// hiding it.
|
||||
@ -455,35 +458,25 @@ void EDA_3D_VIEWER_FRAME::OnCloseWindow( wxCloseEvent &event )
|
||||
|
||||
void EDA_3D_VIEWER_FRAME::Process_Special_Functions( wxCommandEvent &event )
|
||||
{
|
||||
int id = event.GetId();
|
||||
bool isChecked = event.IsChecked();
|
||||
|
||||
wxLogTrace( m_logTrace, wxT( "EDA_3D_VIEWER_FRAME::Process_Special_Functions id %d "
|
||||
"isChecked %d" ),
|
||||
id,
|
||||
isChecked );
|
||||
|
||||
if( m_canvas == nullptr )
|
||||
return;
|
||||
|
||||
switch( id )
|
||||
switch( event.GetId() )
|
||||
{
|
||||
case ID_MENU3D_RESET_DEFAULTS:
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
EDA_3D_VIEWER_SETTINGS* cfg = mgr.GetAppSettings<EDA_3D_VIEWER_SETTINGS>( "3d_viewer" );
|
||||
|
||||
m_boardAdapter.SetLayerColors( m_boardAdapter.GetDefaultColors() );
|
||||
|
||||
cfg->ResetToDefaults();
|
||||
LoadSettings( cfg );
|
||||
if( EDA_3D_VIEWER_SETTINGS* cfg = GetAppSettings<EDA_3D_VIEWER_SETTINGS>( "3d_viewer" ) )
|
||||
cfg->ResetToDefaults();
|
||||
|
||||
LoadSettings( GetAppSettings<EDA_3D_VIEWER_SETTINGS>( "3d_viewer" ) );
|
||||
|
||||
// Tell canvas that we (may have) changed the render engine
|
||||
RenderEngineChanged();
|
||||
|
||||
NewDisplay( true );
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
default:
|
||||
wxFAIL_MSG( wxT( "Invalid event in EDA_3D_VIEWER_FRAME::Process_Special_Functions()" ) );
|
||||
@ -494,8 +487,7 @@ void EDA_3D_VIEWER_FRAME::Process_Special_Functions( wxCommandEvent &event )
|
||||
|
||||
void EDA_3D_VIEWER_FRAME::onDisableRayTracing( wxCommandEvent& aEvent )
|
||||
{
|
||||
wxLogTrace( m_logTrace, wxT( "EDA_3D_VIEWER_FRAME::%s disabling ray tracing." ),
|
||||
__WXFUNCTION__ );
|
||||
wxLogTrace( m_logTrace, wxT( "EDA_3D_VIEWER_FRAME::%s disabling ray tracing." ), __WXFUNCTION__ );
|
||||
|
||||
m_disable_ray_tracing = true;
|
||||
m_boardAdapter.m_Cfg->m_Render.engine = RENDER_ENGINE::OPENGL;
|
||||
@ -580,19 +572,9 @@ void EDA_3D_VIEWER_FRAME::LoadSettings( APP_SETTINGS_BASE *aCfg )
|
||||
|
||||
void EDA_3D_VIEWER_FRAME::SaveSettings( APP_SETTINGS_BASE *aCfg )
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
EDA_3D_VIEWER_SETTINGS* cfg = mgr.GetAppSettings<EDA_3D_VIEWER_SETTINGS>( "3d_viewer" );
|
||||
EDA_BASE_FRAME::SaveSettings( GetAppSettings<EDA_3D_VIEWER_SETTINGS>( "3d_viewer" ) );
|
||||
|
||||
EDA_BASE_FRAME::SaveSettings( cfg );
|
||||
|
||||
wxLogTrace( m_logTrace, wxT( "EDA_3D_VIEWER_FRAME::SaveSettings" ) );
|
||||
|
||||
wxLogTrace( m_logTrace, m_boardAdapter.m_Cfg->m_Render.engine == RENDER_ENGINE::RAYTRACING ?
|
||||
wxT( "EDA_3D_VIEWER_FRAME::SaveSettings render setting Ray Trace" )
|
||||
:
|
||||
wxT( "EDA_3D_VIEWER_FRAME::SaveSettings render setting OpenGL" ) );
|
||||
|
||||
if( cfg )
|
||||
if( EDA_3D_VIEWER_SETTINGS* cfg = GetAppSettings<EDA_3D_VIEWER_SETTINGS>( "3d_viewer" ) )
|
||||
{
|
||||
cfg->m_AuiPanels.right_panel_width = m_appearancePanel->GetSize().x;
|
||||
|
||||
@ -614,8 +596,7 @@ void EDA_3D_VIEWER_FRAME::CommonSettingsChanged( int aFlags )
|
||||
EDA_BASE_FRAME::CommonSettingsChanged( aFlags );
|
||||
|
||||
loadCommonSettings();
|
||||
applySettings(
|
||||
Pgm().GetSettingsManager().GetAppSettings<EDA_3D_VIEWER_SETTINGS>( "3d_viewer" ) );
|
||||
applySettings( GetAppSettings<EDA_3D_VIEWER_SETTINGS>( "3d_viewer" ) );
|
||||
|
||||
m_appearancePanel->CommonSettingsChanged();
|
||||
|
||||
@ -643,23 +624,24 @@ void EDA_3D_VIEWER_FRAME::ShowChangedLanguage()
|
||||
|
||||
void EDA_3D_VIEWER_FRAME::ToggleAppearanceManager()
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
EDA_3D_VIEWER_SETTINGS* cfg = mgr.GetAppSettings<EDA_3D_VIEWER_SETTINGS>( "3d_viewer" );
|
||||
wxAuiPaneInfo& layersManager = m_auimgr.GetPane( "LayersManager" );
|
||||
wxAuiPaneInfo& layersManager = m_auimgr.GetPane( "LayersManager" );
|
||||
|
||||
// show auxiliary Vertical layers and visibility manager toolbar
|
||||
cfg->m_AuiPanels.show_layer_manager = !cfg->m_AuiPanels.show_layer_manager;
|
||||
|
||||
layersManager.Show( cfg->m_AuiPanels.show_layer_manager );
|
||||
|
||||
if( cfg->m_AuiPanels.show_layer_manager )
|
||||
if( EDA_3D_VIEWER_SETTINGS* cfg = GetAppSettings<EDA_3D_VIEWER_SETTINGS>( "3d_viewer" ) )
|
||||
{
|
||||
SetAuiPaneSize( m_auimgr, layersManager, cfg->m_AuiPanels.right_panel_width, -1 );
|
||||
}
|
||||
else
|
||||
{
|
||||
cfg->m_AuiPanels.right_panel_width = m_appearancePanel->GetSize().x;
|
||||
m_auimgr.Update();
|
||||
// show auxiliary Vertical layers and visibility manager toolbar
|
||||
cfg->m_AuiPanels.show_layer_manager = !cfg->m_AuiPanels.show_layer_manager;
|
||||
|
||||
layersManager.Show( cfg->m_AuiPanels.show_layer_manager );
|
||||
|
||||
if( cfg->m_AuiPanels.show_layer_manager )
|
||||
{
|
||||
SetAuiPaneSize( m_auimgr, layersManager, cfg->m_AuiPanels.right_panel_width, -1 );
|
||||
}
|
||||
else
|
||||
{
|
||||
cfg->m_AuiPanels.right_panel_width = m_appearancePanel->GetSize().x;
|
||||
m_auimgr.Update();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -64,32 +64,28 @@ void PANEL_3D_DISPLAY_OPTIONS::loadViewSettings( EDA_3D_VIEWER_SETTINGS* aCfg )
|
||||
|
||||
bool PANEL_3D_DISPLAY_OPTIONS::TransferDataToWindow()
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
EDA_3D_VIEWER_SETTINGS* cfg = mgr.GetAppSettings<EDA_3D_VIEWER_SETTINGS>( "3d_viewer" );
|
||||
|
||||
loadViewSettings( cfg );
|
||||
|
||||
loadViewSettings( GetAppSettings<EDA_3D_VIEWER_SETTINGS>( "3d_viewer" ) );
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
bool PANEL_3D_DISPLAY_OPTIONS::TransferDataFromWindow()
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
EDA_3D_VIEWER_SETTINGS* cfg = mgr.GetAppSettings<EDA_3D_VIEWER_SETTINGS>( "3d_viewer" );
|
||||
if( EDA_3D_VIEWER_SETTINGS* cfg = GetAppSettings<EDA_3D_VIEWER_SETTINGS>( "3d_viewer" ) )
|
||||
{
|
||||
// Set visibility of items
|
||||
cfg->m_Render.show_zones = m_checkBoxAreas->GetValue();
|
||||
cfg->m_Render.subtract_mask_from_silk = m_checkBoxSubtractMaskFromSilk->GetValue();
|
||||
cfg->m_Render.clip_silk_on_via_annuli = m_checkBoxClipSilkOnViaAnnulus->GetValue();
|
||||
cfg->m_Render.differentiate_plated_copper = m_checkBoxRenderPlatedPadsAsPlated->GetValue();
|
||||
|
||||
// Set visibility of items
|
||||
cfg->m_Render.show_zones = m_checkBoxAreas->GetValue();
|
||||
cfg->m_Render.subtract_mask_from_silk = m_checkBoxSubtractMaskFromSilk->GetValue();
|
||||
cfg->m_Render.clip_silk_on_via_annuli = m_checkBoxClipSilkOnViaAnnulus->GetValue();
|
||||
cfg->m_Render.differentiate_plated_copper = m_checkBoxRenderPlatedPadsAsPlated->GetValue();
|
||||
cfg->m_Render.material_mode = static_cast<MATERIAL_MODE>( m_materialProperties->GetSelection() );
|
||||
|
||||
cfg->m_Render.material_mode = static_cast<MATERIAL_MODE>( m_materialProperties->GetSelection() );
|
||||
|
||||
// Camera Options
|
||||
cfg->m_Camera.animation_enabled = m_checkBoxEnableAnimation->GetValue();
|
||||
cfg->m_Camera.moving_speed_multiplier = m_sliderAnimationSpeed->GetValue();
|
||||
cfg->m_Camera.rotation_increment = m_spinCtrlRotationAngle->GetValue();
|
||||
// Camera Options
|
||||
cfg->m_Camera.animation_enabled = m_checkBoxEnableAnimation->GetValue();
|
||||
cfg->m_Camera.moving_speed_multiplier = m_sliderAnimationSpeed->GetValue();
|
||||
cfg->m_Camera.rotation_increment = m_spinCtrlRotationAngle->GetValue();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -56,32 +56,27 @@ void PANEL_3D_OPENGL_OPTIONS::loadSettings( EDA_3D_VIEWER_SETTINGS* aCfg )
|
||||
|
||||
bool PANEL_3D_OPENGL_OPTIONS::TransferDataToWindow()
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
EDA_3D_VIEWER_SETTINGS* cfg = mgr.GetAppSettings<EDA_3D_VIEWER_SETTINGS>( "3d_viewer" );
|
||||
|
||||
loadSettings( cfg );
|
||||
|
||||
loadSettings( GetAppSettings<EDA_3D_VIEWER_SETTINGS>( "3d_viewer" ) );
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
bool PANEL_3D_OPENGL_OPTIONS::TransferDataFromWindow()
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
EDA_3D_VIEWER_SETTINGS* cfg = mgr.GetAppSettings<EDA_3D_VIEWER_SETTINGS>( "3d_viewer" );
|
||||
if( EDA_3D_VIEWER_SETTINGS* cfg = 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();
|
||||
cfg->m_Render.highlight_on_rollover = m_checkBoxHighlightOnRollOver->GetValue();
|
||||
|
||||
cfg->m_Render.opengl_copper_thickness = m_checkBoxCuThickness->GetValue();
|
||||
cfg->m_Render.show_model_bbox = m_checkBoxBoundingBoxes->GetValue();
|
||||
cfg->m_Render.highlight_on_rollover = m_checkBoxHighlightOnRollOver->GetValue();
|
||||
cfg->m_Render.opengl_AA_mode = static_cast<ANTIALIASING_MODE>( m_choiceAntiAliasing->GetSelection() );
|
||||
cfg->m_Render.opengl_selection_color = m_selectionColorSwatch->GetSwatchColor();
|
||||
|
||||
cfg->m_Render.opengl_AA_mode =
|
||||
static_cast<ANTIALIASING_MODE>( m_choiceAntiAliasing->GetSelection() );
|
||||
cfg->m_Render.opengl_selection_color = m_selectionColorSwatch->GetSwatchColor();
|
||||
|
||||
cfg->m_Render.opengl_AA_disableOnMove = m_checkBoxDisableAAMove->GetValue();
|
||||
cfg->m_Render.opengl_thickness_disableOnMove = m_checkBoxDisableMoveThickness->GetValue();
|
||||
cfg->m_Render.opengl_microvias_disableOnMove = m_checkBoxDisableMoveVias->GetValue();
|
||||
cfg->m_Render.opengl_holes_disableOnMove = m_checkBoxDisableMoveHoles->GetValue();
|
||||
cfg->m_Render.opengl_AA_disableOnMove = m_checkBoxDisableAAMove->GetValue();
|
||||
cfg->m_Render.opengl_thickness_disableOnMove = m_checkBoxDisableMoveThickness->GetValue();
|
||||
cfg->m_Render.opengl_microvias_disableOnMove = m_checkBoxDisableMoveVias->GetValue();
|
||||
cfg->m_Render.opengl_holes_disableOnMove = m_checkBoxDisableMoveHoles->GetValue();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -110,85 +110,78 @@ 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>( "3d_viewer" );
|
||||
|
||||
loadSettings( cfg );
|
||||
|
||||
loadSettings( GetAppSettings<EDA_3D_VIEWER_SETTINGS>( "3d_viewer" ) );
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
bool PANEL_3D_RAYTRACING_OPTIONS::TransferDataFromWindow()
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
EDA_3D_VIEWER_SETTINGS* cfg = mgr.GetAppSettings<EDA_3D_VIEWER_SETTINGS>( "3d_viewer" );
|
||||
if( EDA_3D_VIEWER_SETTINGS* cfg = 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();
|
||||
cfg->m_Render.raytrace_refractions = m_cbRaytracing_showRefractions->GetValue();
|
||||
cfg->m_Render.raytrace_reflections = m_cbRaytracing_showReflections->GetValue();
|
||||
cfg->m_Render.raytrace_post_processing = m_cbRaytracing_postProcessing->GetValue();
|
||||
cfg->m_Render.raytrace_anti_aliasing = m_cbRaytracing_antiAliasing->GetValue();
|
||||
cfg->m_Render.raytrace_procedural_textures = m_cbRaytracing_proceduralTextures->GetValue();
|
||||
|
||||
cfg->m_Render.raytrace_shadows = m_cbRaytracing_renderShadows->GetValue();
|
||||
cfg->m_Render.raytrace_backfloor = m_cbRaytracing_addFloor->GetValue();
|
||||
cfg->m_Render.raytrace_refractions = m_cbRaytracing_showRefractions->GetValue();
|
||||
cfg->m_Render.raytrace_reflections = m_cbRaytracing_showReflections->GetValue();
|
||||
cfg->m_Render.raytrace_post_processing = m_cbRaytracing_postProcessing->GetValue();
|
||||
cfg->m_Render.raytrace_anti_aliasing = m_cbRaytracing_antiAliasing->GetValue();
|
||||
cfg->m_Render.raytrace_procedural_textures = m_cbRaytracing_proceduralTextures->GetValue();
|
||||
cfg->m_Render.raytrace_nrsamples_shadows = m_numSamples_Shadows->GetValue();
|
||||
cfg->m_Render.raytrace_nrsamples_reflections = m_numSamples_Reflections->GetValue();
|
||||
cfg->m_Render.raytrace_nrsamples_refractions = m_numSamples_Refractions->GetValue();
|
||||
|
||||
cfg->m_Render.raytrace_nrsamples_shadows = m_numSamples_Shadows->GetValue();
|
||||
cfg->m_Render.raytrace_nrsamples_reflections = m_numSamples_Reflections->GetValue();
|
||||
cfg->m_Render.raytrace_nrsamples_refractions = m_numSamples_Refractions->GetValue();
|
||||
cfg->m_Render.raytrace_spread_shadows =
|
||||
EDA_UNIT_UTILS::UI::DoubleValueFromString( pcbIUScale, EDA_UNITS::PERCENT,
|
||||
m_spreadFactor_Shadows->GetValue() ) / 100.0f;
|
||||
cfg->m_Render.raytrace_spread_reflections =
|
||||
EDA_UNIT_UTILS::UI::DoubleValueFromString( pcbIUScale, EDA_UNITS::PERCENT,
|
||||
m_spreadFactor_Reflections->GetValue() ) / 100.0f;
|
||||
cfg->m_Render.raytrace_spread_refractions =
|
||||
EDA_UNIT_UTILS::UI::DoubleValueFromString( pcbIUScale, EDA_UNITS::PERCENT,
|
||||
m_spreadFactor_Refractions->GetValue() ) / 100.0f;
|
||||
|
||||
cfg->m_Render.raytrace_spread_shadows =
|
||||
EDA_UNIT_UTILS::UI::DoubleValueFromString( pcbIUScale, EDA_UNITS::PERCENT,
|
||||
m_spreadFactor_Shadows->GetValue() )
|
||||
/ 100.0f;
|
||||
cfg->m_Render.raytrace_spread_reflections =
|
||||
EDA_UNIT_UTILS::UI::DoubleValueFromString( pcbIUScale, EDA_UNITS::PERCENT,
|
||||
m_spreadFactor_Reflections->GetValue() )
|
||||
/ 100.0f;
|
||||
cfg->m_Render.raytrace_spread_refractions =
|
||||
EDA_UNIT_UTILS::UI::DoubleValueFromString( pcbIUScale, EDA_UNITS::PERCENT,
|
||||
m_spreadFactor_Refractions->GetValue() )
|
||||
/ 100.0f;
|
||||
cfg->m_Render.raytrace_recursivelevel_reflections = m_recursiveLevel_Reflections->GetValue();
|
||||
cfg->m_Render.raytrace_recursivelevel_refractions = m_recursiveLevel_Refractions->GetValue();
|
||||
|
||||
cfg->m_Render.raytrace_recursivelevel_reflections = m_recursiveLevel_Reflections->GetValue();
|
||||
cfg->m_Render.raytrace_recursivelevel_refractions = m_recursiveLevel_Refractions->GetValue();
|
||||
cfg->m_Render.raytrace_lightColorCamera = m_colourPickerCameraLight->GetSwatchColor();
|
||||
cfg->m_Render.raytrace_lightColorTop = m_colourPickerTopLight->GetSwatchColor();
|
||||
cfg->m_Render.raytrace_lightColorBottom = m_colourPickerBottomLight->GetSwatchColor();
|
||||
|
||||
cfg->m_Render.raytrace_lightColorCamera = m_colourPickerCameraLight->GetSwatchColor();
|
||||
cfg->m_Render.raytrace_lightColorTop = m_colourPickerTopLight->GetSwatchColor();
|
||||
cfg->m_Render.raytrace_lightColorBottom = m_colourPickerBottomLight->GetSwatchColor();
|
||||
cfg->m_Render.raytrace_lightColor[0] = m_colourPickerLight1->GetSwatchColor();
|
||||
cfg->m_Render.raytrace_lightColor[1] = m_colourPickerLight2->GetSwatchColor();
|
||||
cfg->m_Render.raytrace_lightColor[2] = m_colourPickerLight3->GetSwatchColor();
|
||||
cfg->m_Render.raytrace_lightColor[3] = m_colourPickerLight4->GetSwatchColor();
|
||||
cfg->m_Render.raytrace_lightColor[4] = m_colourPickerLight5->GetSwatchColor();
|
||||
cfg->m_Render.raytrace_lightColor[5] = m_colourPickerLight6->GetSwatchColor();
|
||||
cfg->m_Render.raytrace_lightColor[6] = m_colourPickerLight7->GetSwatchColor();
|
||||
cfg->m_Render.raytrace_lightColor[7] = m_colourPickerLight8->GetSwatchColor();
|
||||
|
||||
cfg->m_Render.raytrace_lightColor[0] = m_colourPickerLight1->GetSwatchColor();
|
||||
cfg->m_Render.raytrace_lightColor[1] = m_colourPickerLight2->GetSwatchColor();
|
||||
cfg->m_Render.raytrace_lightColor[2] = m_colourPickerLight3->GetSwatchColor();
|
||||
cfg->m_Render.raytrace_lightColor[3] = m_colourPickerLight4->GetSwatchColor();
|
||||
cfg->m_Render.raytrace_lightColor[4] = m_colourPickerLight5->GetSwatchColor();
|
||||
cfg->m_Render.raytrace_lightColor[5] = m_colourPickerLight6->GetSwatchColor();
|
||||
cfg->m_Render.raytrace_lightColor[6] = m_colourPickerLight7->GetSwatchColor();
|
||||
cfg->m_Render.raytrace_lightColor[7] = m_colourPickerLight8->GetSwatchColor();
|
||||
auto get_value =
|
||||
[]( wxTextCtrl* aCtrl )
|
||||
{
|
||||
return EDA_UNIT_UTILS::UI::DoubleValueFromString( pcbIUScale, EDA_UNITS::UNSCALED,
|
||||
aCtrl->GetValue() );
|
||||
};
|
||||
|
||||
auto get_value =
|
||||
[]( wxTextCtrl* aCtrl )
|
||||
{
|
||||
return EDA_UNIT_UTILS::UI::DoubleValueFromString( pcbIUScale, EDA_UNITS::UNSCALED,
|
||||
aCtrl->GetValue() );
|
||||
};
|
||||
cfg->m_Render.raytrace_lightElevation[0] = get_value( m_lightElevation1 );
|
||||
cfg->m_Render.raytrace_lightElevation[1] = get_value( m_lightElevation2 );
|
||||
cfg->m_Render.raytrace_lightElevation[2] = get_value( m_lightElevation3 );
|
||||
cfg->m_Render.raytrace_lightElevation[3] = get_value( m_lightElevation4 );
|
||||
cfg->m_Render.raytrace_lightElevation[4] = get_value( m_lightElevation5 );
|
||||
cfg->m_Render.raytrace_lightElevation[5] = get_value( m_lightElevation6 );
|
||||
cfg->m_Render.raytrace_lightElevation[6] = get_value( m_lightElevation7 );
|
||||
cfg->m_Render.raytrace_lightElevation[7] = get_value( m_lightElevation8 );
|
||||
|
||||
cfg->m_Render.raytrace_lightElevation[0] = get_value( m_lightElevation1 );
|
||||
cfg->m_Render.raytrace_lightElevation[1] = get_value( m_lightElevation2 );
|
||||
cfg->m_Render.raytrace_lightElevation[2] = get_value( m_lightElevation3 );
|
||||
cfg->m_Render.raytrace_lightElevation[3] = get_value( m_lightElevation4 );
|
||||
cfg->m_Render.raytrace_lightElevation[4] = get_value( m_lightElevation5 );
|
||||
cfg->m_Render.raytrace_lightElevation[5] = get_value( m_lightElevation6 );
|
||||
cfg->m_Render.raytrace_lightElevation[6] = get_value( m_lightElevation7 );
|
||||
cfg->m_Render.raytrace_lightElevation[7] = get_value( m_lightElevation8 );
|
||||
|
||||
cfg->m_Render.raytrace_lightAzimuth[0] = get_value( m_lightAzimuth1 );
|
||||
cfg->m_Render.raytrace_lightAzimuth[1] = get_value( m_lightAzimuth2 );
|
||||
cfg->m_Render.raytrace_lightAzimuth[2] = get_value( m_lightAzimuth3 );
|
||||
cfg->m_Render.raytrace_lightAzimuth[3] = get_value( m_lightAzimuth4 );
|
||||
cfg->m_Render.raytrace_lightAzimuth[4] = get_value( m_lightAzimuth5 );
|
||||
cfg->m_Render.raytrace_lightAzimuth[5] = get_value( m_lightAzimuth6 );
|
||||
cfg->m_Render.raytrace_lightAzimuth[6] = get_value( m_lightAzimuth7 );
|
||||
cfg->m_Render.raytrace_lightAzimuth[7] = get_value( m_lightAzimuth8 );
|
||||
cfg->m_Render.raytrace_lightAzimuth[0] = get_value( m_lightAzimuth1 );
|
||||
cfg->m_Render.raytrace_lightAzimuth[1] = get_value( m_lightAzimuth2 );
|
||||
cfg->m_Render.raytrace_lightAzimuth[2] = get_value( m_lightAzimuth3 );
|
||||
cfg->m_Render.raytrace_lightAzimuth[3] = get_value( m_lightAzimuth4 );
|
||||
cfg->m_Render.raytrace_lightAzimuth[4] = get_value( m_lightAzimuth5 );
|
||||
cfg->m_Render.raytrace_lightAzimuth[5] = get_value( m_lightAzimuth6 );
|
||||
cfg->m_Render.raytrace_lightAzimuth[6] = get_value( m_lightAzimuth7 );
|
||||
cfg->m_Render.raytrace_lightAzimuth[7] = get_value( m_lightAzimuth8 );
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -212,10 +212,7 @@ void PANEL_PREVIEW_3D_MODEL::loadSettings()
|
||||
// TODO(JE) use all control options
|
||||
m_boardAdapter.m_MousewheelPanning = settings->m_Input.scroll_modifier_zoom != 0;
|
||||
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
EDA_3D_VIEWER_SETTINGS* cfg = mgr.GetAppSettings<EDA_3D_VIEWER_SETTINGS>( "3d_viewer" );
|
||||
|
||||
if( cfg )
|
||||
if( EDA_3D_VIEWER_SETTINGS* cfg = GetAppSettings<EDA_3D_VIEWER_SETTINGS>( "3d_viewer" ) )
|
||||
{
|
||||
// Save the 3D viewer render settings, to restore it after closing the preview
|
||||
m_initialRender = cfg->m_Render;
|
||||
|
@ -645,16 +645,14 @@ bool DESIGN_BLOCK_LIB_TABLE::LoadGlobalTable( DESIGN_BLOCK_LIB_TABLE& aTable )
|
||||
aTable.clear();
|
||||
aTable.Load( fn.GetFullPath() );
|
||||
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
KICAD_SETTINGS* settings = mgr.GetAppSettings<KICAD_SETTINGS>( "kicad" );
|
||||
|
||||
KICAD_SETTINGS* cfg = GetAppSettings<KICAD_SETTINGS>( "kicad" );
|
||||
const ENV_VAR_MAP& env = Pgm().GetLocalEnvVariables();
|
||||
wxString packagesPath;
|
||||
|
||||
if( std::optional<wxString> v = ENV_VAR::GetVersionedEnvVarValue( env, wxT( "3RD_PARTY" ) ) )
|
||||
packagesPath = *v;
|
||||
|
||||
if( settings->m_PcmLibAutoAdd )
|
||||
if( cfg && cfg->m_PcmLibAutoAdd )
|
||||
{
|
||||
// Scan for libraries in PCM packages directory
|
||||
|
||||
@ -663,14 +661,14 @@ bool DESIGN_BLOCK_LIB_TABLE::LoadGlobalTable( DESIGN_BLOCK_LIB_TABLE& aTable )
|
||||
|
||||
if( d.DirExists() )
|
||||
{
|
||||
PCM_DESIGN_BLOCK_LIB_TRAVERSER traverser( packagesPath, aTable, settings->m_PcmLibPrefix );
|
||||
PCM_DESIGN_BLOCK_LIB_TRAVERSER traverser( packagesPath, aTable, cfg->m_PcmLibPrefix );
|
||||
wxDir dir( d.GetPath() );
|
||||
|
||||
dir.Traverse( traverser );
|
||||
}
|
||||
}
|
||||
|
||||
if( settings->m_PcmLibAutoRemove )
|
||||
if( cfg && cfg->m_PcmLibAutoRemove )
|
||||
{
|
||||
// Remove PCM libraries that no longer exist
|
||||
std::vector<wxString> to_remove;
|
||||
|
@ -369,15 +369,14 @@ bool PANEL_COLOR_SETTINGS::saveCurrentTheme( bool aValidate )
|
||||
if( aValidate && !validateSave() )
|
||||
return false;
|
||||
|
||||
SETTINGS_MANAGER& settingsMgr = Pgm().GetSettingsManager();
|
||||
COLOR_SETTINGS* selected = settingsMgr.GetColorSettings( m_currentSettings->GetFilename() );
|
||||
COLOR_SETTINGS* selected = ::GetColorSettings( m_currentSettings->GetFilename() );
|
||||
|
||||
selected->SetOverrideSchItemColors( m_optOverrideColors->GetValue() );
|
||||
|
||||
for( int layer : m_validLayers )
|
||||
selected->SetColor( layer, m_currentSettings->GetColor( layer ) );
|
||||
|
||||
settingsMgr.SaveColorSettings( selected, m_colorNamespace );
|
||||
Pgm().GetSettingsManager().SaveColorSettings( selected, m_colorNamespace );
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -317,79 +317,80 @@ PANEL_DESIGN_BLOCK_LIB_TABLE::PANEL_DESIGN_BLOCK_LIB_TABLE( DIALOG_EDIT_LIBRARY_
|
||||
for( auto& [fileType, desc] : m_supportedDesignBlockFiles )
|
||||
choices.Add( DESIGN_BLOCK_IO_MGR::ShowType( fileType ) );
|
||||
|
||||
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
KICAD_SETTINGS* cfg = mgr.GetAppSettings<KICAD_SETTINGS>( "kicad" );
|
||||
KICAD_SETTINGS* cfg = GetAppSettings<KICAD_SETTINGS>( "kicad" );
|
||||
|
||||
if( cfg->m_lastDesignBlockLibDir.IsEmpty() )
|
||||
cfg->m_lastDesignBlockLibDir = PATHS::GetDefaultUserDesignBlocksPath();
|
||||
|
||||
m_lastProjectLibDir = m_projectBasePath;
|
||||
|
||||
auto autoSizeCol = [&]( WX_GRID* aGrid, int aCol )
|
||||
{
|
||||
int prevWidth = aGrid->GetColSize( aCol );
|
||||
auto autoSizeCol =
|
||||
[&]( WX_GRID* aGrid, int aCol )
|
||||
{
|
||||
int prevWidth = aGrid->GetColSize( aCol );
|
||||
|
||||
aGrid->AutoSizeColumn( aCol, false );
|
||||
aGrid->SetColSize( aCol, std::max( prevWidth, aGrid->GetColSize( aCol ) ) );
|
||||
};
|
||||
aGrid->AutoSizeColumn( aCol, false );
|
||||
aGrid->SetColSize( aCol, std::max( prevWidth, aGrid->GetColSize( aCol ) ) );
|
||||
};
|
||||
|
||||
auto setupGrid = [&]( WX_GRID* aGrid )
|
||||
{
|
||||
// Give a bit more room for wxChoice editors
|
||||
aGrid->SetDefaultRowSize( aGrid->GetDefaultRowSize() + 4 );
|
||||
auto setupGrid =
|
||||
[&]( WX_GRID* aGrid )
|
||||
{
|
||||
// Give a bit more room for wxChoice editors
|
||||
aGrid->SetDefaultRowSize( aGrid->GetDefaultRowSize() + 4 );
|
||||
|
||||
// add Cut, Copy, and Paste to wxGrids
|
||||
aGrid->PushEventHandler( new DESIGN_BLOCK_GRID_TRICKS( m_parent, aGrid ) );
|
||||
// add Cut, Copy, and Paste to wxGrids
|
||||
aGrid->PushEventHandler( new DESIGN_BLOCK_GRID_TRICKS( m_parent, aGrid ) );
|
||||
|
||||
aGrid->SetSelectionMode( wxGrid::wxGridSelectRows );
|
||||
aGrid->SetSelectionMode( wxGrid::wxGridSelectRows );
|
||||
|
||||
wxGridCellAttr* attr;
|
||||
wxGridCellAttr* attr = new wxGridCellAttr;
|
||||
|
||||
attr = new wxGridCellAttr;
|
||||
attr->SetEditor( new GRID_CELL_PATH_EDITOR(
|
||||
m_parent, aGrid, &cfg->m_lastDesignBlockLibDir, true, m_projectBasePath,
|
||||
[this]( WX_GRID* grid, int row ) -> wxString
|
||||
if( cfg )
|
||||
{
|
||||
auto* libTable = static_cast<DESIGN_BLOCK_LIB_TABLE_GRID*>( grid->GetTable() );
|
||||
auto* tableRow =
|
||||
static_cast<DESIGN_BLOCK_LIB_TABLE_ROW*>( libTable->at( row ) );
|
||||
DESIGN_BLOCK_IO_MGR::DESIGN_BLOCK_FILE_T fileType = tableRow->GetFileType();
|
||||
const IO_BASE::IO_FILE_DESC& pluginDesc =
|
||||
m_supportedDesignBlockFiles.at( fileType );
|
||||
attr->SetEditor( new GRID_CELL_PATH_EDITOR(
|
||||
m_parent, aGrid, &cfg->m_lastDesignBlockLibDir, true, m_projectBasePath,
|
||||
[this]( WX_GRID* grid, int row ) -> wxString
|
||||
{
|
||||
auto* libTable = static_cast<DESIGN_BLOCK_LIB_TABLE_GRID*>( grid->GetTable() );
|
||||
auto* tableRow = static_cast<DESIGN_BLOCK_LIB_TABLE_ROW*>( libTable->at( row ) );
|
||||
DESIGN_BLOCK_IO_MGR::DESIGN_BLOCK_FILE_T fileType = tableRow->GetFileType();
|
||||
const IO_BASE::IO_FILE_DESC& pluginDesc = m_supportedDesignBlockFiles.at( fileType );
|
||||
|
||||
if( pluginDesc.m_IsFile )
|
||||
return pluginDesc.FileFilter();
|
||||
else
|
||||
return wxEmptyString;
|
||||
} ) );
|
||||
aGrid->SetColAttr( COL_URI, attr );
|
||||
if( pluginDesc.m_IsFile )
|
||||
return pluginDesc.FileFilter();
|
||||
else
|
||||
return wxEmptyString;
|
||||
} ) );
|
||||
}
|
||||
|
||||
attr = new wxGridCellAttr;
|
||||
attr->SetEditor( new wxGridCellChoiceEditor( choices ) );
|
||||
aGrid->SetColAttr( COL_TYPE, attr );
|
||||
aGrid->SetColAttr( COL_URI, attr );
|
||||
|
||||
attr = new wxGridCellAttr;
|
||||
attr->SetRenderer( new wxGridCellBoolRenderer() );
|
||||
attr->SetReadOnly(); // not really; we delegate interactivity to GRID_TRICKS
|
||||
aGrid->SetColAttr( COL_ENABLED, attr );
|
||||
attr = new wxGridCellAttr;
|
||||
attr->SetEditor( new wxGridCellChoiceEditor( choices ) );
|
||||
aGrid->SetColAttr( COL_TYPE, attr );
|
||||
|
||||
// No visibility control for design block libraries yet; this feature is primarily
|
||||
// useful for database libraries and it's only implemented for schematic symbols
|
||||
// at the moment.
|
||||
aGrid->HideCol( COL_VISIBLE );
|
||||
attr = new wxGridCellAttr;
|
||||
attr->SetRenderer( new wxGridCellBoolRenderer() );
|
||||
attr->SetReadOnly(); // not really; we delegate interactivity to GRID_TRICKS
|
||||
aGrid->SetColAttr( COL_ENABLED, attr );
|
||||
|
||||
// all but COL_OPTIONS, which is edited with Option Editor anyways.
|
||||
autoSizeCol( aGrid, COL_NICKNAME );
|
||||
autoSizeCol( aGrid, COL_TYPE );
|
||||
autoSizeCol( aGrid, COL_URI );
|
||||
autoSizeCol( aGrid, COL_DESCR );
|
||||
// No visibility control for design block libraries yet; this feature is primarily
|
||||
// useful for database libraries and it's only implemented for schematic symbols
|
||||
// at the moment.
|
||||
aGrid->HideCol( COL_VISIBLE );
|
||||
|
||||
// Gives a selection to each grid, mainly for delete button. wxGrid's wake up with
|
||||
// a currentCell which is sometimes not highlighted.
|
||||
if( aGrid->GetNumberRows() > 0 )
|
||||
aGrid->SelectRow( 0 );
|
||||
};
|
||||
// all but COL_OPTIONS, which is edited with Option Editor anyways.
|
||||
autoSizeCol( aGrid, COL_NICKNAME );
|
||||
autoSizeCol( aGrid, COL_TYPE );
|
||||
autoSizeCol( aGrid, COL_URI );
|
||||
autoSizeCol( aGrid, COL_DESCR );
|
||||
|
||||
// Gives a selection to each grid, mainly for delete button. wxGrid's wake up with
|
||||
// a currentCell which is sometimes not highlighted.
|
||||
if( aGrid->GetNumberRows() > 0 )
|
||||
aGrid->SelectRow( 0 );
|
||||
};
|
||||
|
||||
setupGrid( m_global_grid );
|
||||
|
||||
@ -857,14 +858,12 @@ void PANEL_DESIGN_BLOCK_LIB_TABLE::onMigrateLibraries( wxCommandEvent& event )
|
||||
{
|
||||
if( rowsToMigrate.size() == 1 )
|
||||
{
|
||||
msg.Printf( _( "Save '%s' as current KiCad format "
|
||||
"and replace entry in table?" ),
|
||||
msg.Printf( _( "Save '%s' as current KiCad format and replace entry in table?" ),
|
||||
m_cur_grid->GetCellValue( rowsToMigrate[0], COL_NICKNAME ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
msg.Printf( _( "Save %d libraries as current KiCad format "
|
||||
"and replace entries in table?" ),
|
||||
msg.Printf( _( "Save %d libraries as current KiCad format and replace entries in table?" ),
|
||||
(int) rowsToMigrate.size() );
|
||||
}
|
||||
|
||||
@ -897,18 +896,16 @@ void PANEL_DESIGN_BLOCK_LIB_TABLE::onMigrateLibraries( wxCommandEvent& event )
|
||||
"blocks?" ),
|
||||
newLib.GetFullPath() );
|
||||
|
||||
switch( wxMessageBox( msg, _( "Migrate Library" ),
|
||||
wxYES_NO | wxCANCEL | wxICON_QUESTION, m_parent ) )
|
||||
switch( wxMessageBox( msg, _( "Migrate Library" ), wxYES_NO | wxCANCEL | wxICON_QUESTION, m_parent ) )
|
||||
{
|
||||
case wxYES: break;
|
||||
case wxNO: continue;
|
||||
case wxYES: break;
|
||||
case wxNO: continue;
|
||||
case wxCANCEL: return;
|
||||
}
|
||||
}
|
||||
|
||||
wxString options = m_cur_grid->GetCellValue( row, COL_OPTIONS );
|
||||
std::unique_ptr<std::map<std::string, UTF8>> props(
|
||||
LIB_TABLE::ParseOptions( options.ToStdString() ) );
|
||||
wxString options = m_cur_grid->GetCellValue( row, COL_OPTIONS );
|
||||
std::unique_ptr<std::map<std::string, UTF8>> props( LIB_TABLE::ParseOptions( options.ToStdString() ) );
|
||||
|
||||
if( DESIGN_BLOCK_IO_MGR::ConvertLibrary( props.get(), legacyLib.GetFullPath(),
|
||||
newLib.GetFullPath() ) )
|
||||
@ -926,8 +923,7 @@ void PANEL_DESIGN_BLOCK_LIB_TABLE::onMigrateLibraries( wxCommandEvent& event )
|
||||
}
|
||||
else
|
||||
{
|
||||
msg.Printf( _( "Failed to save design block library file '%s'." ),
|
||||
newLib.GetFullPath() );
|
||||
msg.Printf( _( "Failed to save design block library file '%s'." ), newLib.GetFullPath() );
|
||||
DisplayErrorMessage( wxGetTopLevelParent( this ), msg );
|
||||
}
|
||||
}
|
||||
@ -955,51 +951,42 @@ void PANEL_DESIGN_BLOCK_LIB_TABLE::browseLibrariesHandler( wxCommandEvent& event
|
||||
|
||||
if( fileType == DESIGN_BLOCK_IO_MGR::FILE_TYPE_NONE )
|
||||
{
|
||||
wxLogWarning( wxT( "File type selection event received but could not find the file type "
|
||||
"in the table" ) );
|
||||
wxLogWarning( wxT( "File type selection event received but could not find the file type in the table" ) );
|
||||
return;
|
||||
}
|
||||
|
||||
const IO_BASE::IO_FILE_DESC& fileDesc = m_supportedDesignBlockFiles.at( fileType );
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
KICAD_SETTINGS* cfg = mgr.GetAppSettings<KICAD_SETTINGS>( "kicad" );
|
||||
KICAD_SETTINGS* cfg = GetAppSettings<KICAD_SETTINGS>( "kicad" );
|
||||
|
||||
wxString title =
|
||||
wxString::Format( _( "Select %s Library" ), DESIGN_BLOCK_IO_MGR::ShowType( fileType ) );
|
||||
wxString openDir = cfg->m_lastDesignBlockLibDir;
|
||||
wxString title = wxString::Format( _( "Select %s Library" ), DESIGN_BLOCK_IO_MGR::ShowType( fileType ) );
|
||||
wxString dummy;
|
||||
wxString* lastDir;
|
||||
|
||||
if( m_cur_grid == m_project_grid )
|
||||
openDir = m_lastProjectLibDir;
|
||||
lastDir = &m_lastProjectLibDir;
|
||||
else
|
||||
lastDir = cfg ? &cfg->m_lastDesignBlockLibDir : &dummy;
|
||||
|
||||
wxArrayString files;
|
||||
|
||||
wxWindow* topLevelParent = wxGetTopLevelParent( this );
|
||||
wxWindow* topLevelParent = wxGetTopLevelParent( this );
|
||||
|
||||
if( fileDesc.m_IsFile )
|
||||
{
|
||||
wxFileDialog dlg( topLevelParent, title, openDir, wxEmptyString, fileDesc.FileFilter(),
|
||||
wxFileDialog dlg( topLevelParent, title, *lastDir, wxEmptyString, fileDesc.FileFilter(),
|
||||
wxFD_OPEN | wxFD_FILE_MUST_EXIST | wxFD_MULTIPLE );
|
||||
|
||||
int result = dlg.ShowModal();
|
||||
|
||||
if( result == wxID_CANCEL )
|
||||
if( dlg.ShowModal() == wxID_CANCEL )
|
||||
return;
|
||||
|
||||
dlg.GetPaths( files );
|
||||
|
||||
if( m_cur_grid == m_global_grid )
|
||||
cfg->m_lastDesignBlockLibDir = dlg.GetDirectory();
|
||||
else
|
||||
m_lastProjectLibDir = dlg.GetDirectory();
|
||||
*lastDir = dlg.GetDirectory();
|
||||
}
|
||||
else
|
||||
{
|
||||
wxDirDialog dlg( topLevelParent, title, openDir,
|
||||
wxDirDialog dlg( topLevelParent, title, *lastDir,
|
||||
wxDD_DEFAULT_STYLE | wxDD_DIR_MUST_EXIST | wxDD_MULTIPLE );
|
||||
|
||||
int result = dlg.ShowModal();
|
||||
|
||||
if( result == wxID_CANCEL )
|
||||
if( dlg.ShowModal() == wxID_CANCEL )
|
||||
return;
|
||||
|
||||
dlg.GetPaths( files );
|
||||
@ -1007,18 +994,13 @@ void PANEL_DESIGN_BLOCK_LIB_TABLE::browseLibrariesHandler( wxCommandEvent& event
|
||||
if( !files.IsEmpty() )
|
||||
{
|
||||
wxFileName first( files.front() );
|
||||
|
||||
if( m_cur_grid == m_global_grid )
|
||||
cfg->m_lastDesignBlockLibDir = first.GetPath();
|
||||
else
|
||||
m_lastProjectLibDir = first.GetPath();
|
||||
*lastDir = first.GetPath();
|
||||
}
|
||||
}
|
||||
|
||||
// Drop the last directory if the path is a .pretty folder
|
||||
if( cfg->m_lastDesignBlockLibDir.EndsWith( FILEEXT::KiCadDesignBlockLibPathExtension ) )
|
||||
cfg->m_lastDesignBlockLibDir =
|
||||
cfg->m_lastDesignBlockLibDir.BeforeLast( wxFileName::GetPathSeparator() );
|
||||
if( cfg && cfg->m_lastDesignBlockLibDir.EndsWith( FILEEXT::KiCadDesignBlockLibPathExtension ) )
|
||||
cfg->m_lastDesignBlockLibDir = cfg->m_lastDesignBlockLibDir.BeforeLast( wxFileName::GetPathSeparator() );
|
||||
|
||||
const ENV_VAR_MAP& envVars = Pgm().GetLocalEnvVariables();
|
||||
bool addDuplicates = false;
|
||||
@ -1034,8 +1016,7 @@ void PANEL_DESIGN_BLOCK_LIB_TABLE::browseLibrariesHandler( wxCommandEvent& event
|
||||
wxString nickname = LIB_ID::FixIllegalChars( fn.GetName(), true );
|
||||
bool doAdd = true;
|
||||
|
||||
if( fileType == DESIGN_BLOCK_IO_MGR::KICAD_SEXP
|
||||
&& fn.GetExt() != FILEEXT::KiCadDesignBlockLibPathExtension )
|
||||
if( fileType == DESIGN_BLOCK_IO_MGR::KICAD_SEXP && fn.GetExt() != FILEEXT::KiCadDesignBlockLibPathExtension )
|
||||
nickname = LIB_ID::FixIllegalChars( fn.GetFullName(), true ).wx_str();
|
||||
|
||||
if( cur_model()->ContainsNickname( nickname ) )
|
||||
|
@ -47,16 +47,14 @@ PANEL_PACKAGES_AND_UPDATES::PANEL_PACKAGES_AND_UPDATES( wxWindow* parent ) :
|
||||
|
||||
bool PANEL_PACKAGES_AND_UPDATES::TransferDataToWindow()
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
KICAD_SETTINGS* cfg = mgr.GetAppSettings<KICAD_SETTINGS>( "kicad" );
|
||||
|
||||
wxCHECK( cfg, false );
|
||||
|
||||
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 );
|
||||
if( KICAD_SETTINGS* cfg = GetAppSettings<KICAD_SETTINGS>( "kicad" ) )
|
||||
{
|
||||
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;
|
||||
}
|
||||
@ -64,16 +62,14 @@ bool PANEL_PACKAGES_AND_UPDATES::TransferDataToWindow()
|
||||
|
||||
bool PANEL_PACKAGES_AND_UPDATES::TransferDataFromWindow()
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
KICAD_SETTINGS* cfg = mgr.GetAppSettings<KICAD_SETTINGS>( "kicad" );
|
||||
|
||||
wxCHECK( cfg, false );
|
||||
|
||||
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();
|
||||
if( KICAD_SETTINGS* cfg = GetAppSettings<KICAD_SETTINGS>( "kicad" ) )
|
||||
{
|
||||
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;
|
||||
}
|
||||
|
@ -1245,8 +1245,7 @@ COLOR_SETTINGS* EDA_DRAW_FRAME::GetColorSettings( bool aForceRefresh ) const
|
||||
{
|
||||
if( !m_colorSettings || aForceRefresh )
|
||||
{
|
||||
COLOR_SETTINGS* colorSettings = Pgm().GetSettingsManager().GetColorSettings();
|
||||
|
||||
COLOR_SETTINGS* colorSettings = ::GetColorSettings( DEFAULT_THEME );
|
||||
const_cast<EDA_DRAW_FRAME*>( this )->m_colorSettings = colorSettings;
|
||||
}
|
||||
|
||||
|
@ -601,8 +601,7 @@ bool FP_LIB_TABLE::LoadGlobalTable( FP_LIB_TABLE& aTable )
|
||||
SystemDirsAppend( &ss );
|
||||
|
||||
const ENV_VAR_MAP& envVars = Pgm().GetLocalEnvVariables();
|
||||
std::optional<wxString> v = ENV_VAR::GetVersionedEnvVarValue( envVars,
|
||||
wxT( "TEMPLATE_DIR" ) );
|
||||
std::optional<wxString> v = ENV_VAR::GetVersionedEnvVarValue( envVars, wxT( "TEMPLATE_DIR" ) );
|
||||
|
||||
if( v && !v->IsEmpty() )
|
||||
ss.AddPaths( *v, 0 );
|
||||
@ -612,7 +611,7 @@ bool FP_LIB_TABLE::LoadGlobalTable( FP_LIB_TABLE& aTable )
|
||||
// The fallback is to create an empty global footprint table for the user to populate.
|
||||
if( fileName.IsEmpty() || !::wxCopyFile( fileName, fn.GetFullPath(), false ) )
|
||||
{
|
||||
FP_LIB_TABLE emptyTable;
|
||||
FP_LIB_TABLE emptyTable;
|
||||
|
||||
emptyTable.Save( fn.GetFullPath() );
|
||||
}
|
||||
@ -620,16 +619,14 @@ 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" );
|
||||
|
||||
KICAD_SETTINGS* cfg = GetAppSettings<KICAD_SETTINGS>( "kicad" );
|
||||
const ENV_VAR_MAP& env = Pgm().GetLocalEnvVariables();
|
||||
wxString packagesPath;
|
||||
wxString packagesPath;
|
||||
|
||||
if( std::optional<wxString> v = ENV_VAR::GetVersionedEnvVarValue( env, wxT( "3RD_PARTY" ) ) )
|
||||
packagesPath = *v;
|
||||
|
||||
if( settings->m_PcmLibAutoAdd )
|
||||
if( cfg && cfg->m_PcmLibAutoAdd )
|
||||
{
|
||||
// Scan for libraries in PCM packages directory
|
||||
|
||||
@ -638,14 +635,14 @@ bool FP_LIB_TABLE::LoadGlobalTable( FP_LIB_TABLE& aTable )
|
||||
|
||||
if( d.DirExists() )
|
||||
{
|
||||
PCM_FP_LIB_TRAVERSER traverser( packagesPath, aTable, settings->m_PcmLibPrefix );
|
||||
PCM_FP_LIB_TRAVERSER traverser( packagesPath, aTable, cfg->m_PcmLibPrefix );
|
||||
wxDir dir( d.GetPath() );
|
||||
|
||||
dir.Traverse( traverser );
|
||||
}
|
||||
}
|
||||
|
||||
if( settings->m_PcmLibAutoRemove )
|
||||
if( cfg && cfg->m_PcmLibAutoRemove )
|
||||
{
|
||||
// Remove PCM libraries that no longer exist
|
||||
std::vector<wxString> to_remove;
|
||||
|
@ -237,7 +237,7 @@ COLOR_SETTINGS* SETTINGS_MANAGER::GetColorSettings( const wxString& aName )
|
||||
{
|
||||
ret = registerColorSettings( aName );
|
||||
*ret = *m_color_settings.at( COLOR_SETTINGS::COLOR_BUILTIN_DEFAULT );
|
||||
ret->SetFilename( wxT( "user" ) );
|
||||
ret->SetFilename( DEFAULT_THEME );
|
||||
ret->SetReadOnly( false );
|
||||
}
|
||||
|
||||
|
@ -116,7 +116,7 @@ DISPLAY_FOOTPRINTS_FRAME::DISPLAY_FOOTPRINTS_FRAME( KIWAY* aKiway, wxWindow* aPa
|
||||
|
||||
setupUIConditions();
|
||||
|
||||
m_toolbarSettings = Pgm().GetSettingsManager().GetToolbarSettings<DISPLAY_FOOTPRINTS_TOOLBAR_SETTINGS>( "display_footprints-toolbars" );
|
||||
m_toolbarSettings = GetToolbarSettings<DISPLAY_FOOTPRINTS_TOOLBAR_SETTINGS>( "display_footprints-toolbars" );
|
||||
configureToolbars();
|
||||
RecreateToolbars();
|
||||
|
||||
@ -192,13 +192,9 @@ void DISPLAY_FOOTPRINTS_FRAME::setupUIConditions()
|
||||
wxASSERT( mgr );
|
||||
|
||||
#define CHECK( x ) ACTION_CONDITIONS().Check( x )
|
||||
|
||||
mgr->SetConditions( ACTIONS::zoomTool,
|
||||
CHECK( cond.CurrentTool( ACTIONS::zoomTool ) ) );
|
||||
mgr->SetConditions( ACTIONS::selectionTool,
|
||||
CHECK( cond.CurrentTool( ACTIONS::selectionTool ) ) );
|
||||
mgr->SetConditions( ACTIONS::measureTool,
|
||||
CHECK( cond.CurrentTool( ACTIONS::measureTool ) ) );
|
||||
mgr->SetConditions( ACTIONS::zoomTool, CHECK( cond.CurrentTool( ACTIONS::zoomTool ) ) );
|
||||
mgr->SetConditions( ACTIONS::selectionTool, CHECK( cond.CurrentTool( ACTIONS::selectionTool ) ) );
|
||||
mgr->SetConditions( ACTIONS::measureTool, CHECK( cond.CurrentTool( ACTIONS::measureTool ) ) );
|
||||
|
||||
mgr->SetConditions( ACTIONS::toggleGrid, CHECK( cond.GridVisible() ) );
|
||||
mgr->SetConditions( ACTIONS::toggleCursorStyle, CHECK( cond.FullscreenCursor() ) );
|
||||
@ -219,46 +215,50 @@ void DISPLAY_FOOTPRINTS_FRAME::setupUIConditions()
|
||||
void DISPLAY_FOOTPRINTS_FRAME::LoadSettings( APP_SETTINGS_BASE* aCfg )
|
||||
{
|
||||
CVPCB_SETTINGS* cfg = dynamic_cast<CVPCB_SETTINGS*>( aCfg );
|
||||
wxCHECK( cfg, /* void */ );
|
||||
|
||||
// We don't allow people to change this right now, so make sure it's on
|
||||
GetWindowSettings( cfg )->cursor.always_show_cursor = true;
|
||||
|
||||
PCB_BASE_FRAME::LoadSettings( cfg );
|
||||
|
||||
SetDisplayOptions( cfg->m_FootprintViewerDisplayOptions );
|
||||
if( cfg )
|
||||
SetDisplayOptions( cfg->m_FootprintViewerDisplayOptions );
|
||||
}
|
||||
|
||||
|
||||
void DISPLAY_FOOTPRINTS_FRAME::SaveSettings( APP_SETTINGS_BASE* aCfg )
|
||||
{
|
||||
CVPCB_SETTINGS* cfg = dynamic_cast<CVPCB_SETTINGS*>( aCfg );
|
||||
wxCHECK( cfg, /* void */ );
|
||||
PCB_BASE_FRAME::SaveSettings( aCfg );
|
||||
|
||||
PCB_BASE_FRAME::SaveSettings( cfg );
|
||||
|
||||
cfg->m_FootprintViewerDisplayOptions = GetDisplayOptions();
|
||||
cfg->m_FootprintViewerZoom = GetCanvas()->GetView()->GetScale();
|
||||
if( CVPCB_SETTINGS* cfg = dynamic_cast<CVPCB_SETTINGS*>( aCfg ) )
|
||||
{
|
||||
cfg->m_FootprintViewerDisplayOptions = GetDisplayOptions();
|
||||
cfg->m_FootprintViewerZoom = GetCanvas()->GetView()->GetScale();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
WINDOW_SETTINGS* DISPLAY_FOOTPRINTS_FRAME::GetWindowSettings( APP_SETTINGS_BASE* aCfg )
|
||||
{
|
||||
CVPCB_SETTINGS* cfg = Pgm().GetSettingsManager().GetAppSettings<CVPCB_SETTINGS>( "cvpcb" );
|
||||
return &cfg->m_FootprintViewer;
|
||||
static WINDOW_SETTINGS defaultCfg;
|
||||
|
||||
CVPCB_SETTINGS* cfg = GetAppSettings<CVPCB_SETTINGS>( "cvpcb" );
|
||||
return cfg ? &cfg->m_FootprintViewer : &defaultCfg;
|
||||
}
|
||||
|
||||
|
||||
PCB_VIEWERS_SETTINGS_BASE* DISPLAY_FOOTPRINTS_FRAME::GetViewerSettingsBase() const
|
||||
{
|
||||
return Pgm().GetSettingsManager().GetAppSettings<CVPCB_SETTINGS>( "cvpcb" );
|
||||
return GetAppSettings<CVPCB_SETTINGS>( "cvpcb" );
|
||||
}
|
||||
|
||||
|
||||
MAGNETIC_SETTINGS* DISPLAY_FOOTPRINTS_FRAME::GetMagneticItemsSettings()
|
||||
{
|
||||
CVPCB_SETTINGS* cfg = Pgm().GetSettingsManager().GetAppSettings<CVPCB_SETTINGS>( "cvpcb" );
|
||||
return &cfg->m_FootprintViewerMagneticSettings;
|
||||
static MAGNETIC_SETTINGS defaultCfg;
|
||||
|
||||
CVPCB_SETTINGS* cfg = GetAppSettings<CVPCB_SETTINGS>( "cvpcb" );
|
||||
return cfg ? &cfg->m_FootprintViewerMagneticSettings : &defaultCfg;
|
||||
}
|
||||
|
||||
|
||||
@ -268,16 +268,14 @@ COLOR4D DISPLAY_FOOTPRINTS_FRAME::GetGridColor()
|
||||
}
|
||||
|
||||
|
||||
FOOTPRINT* DISPLAY_FOOTPRINTS_FRAME::GetFootprint( const wxString& aFootprintName,
|
||||
REPORTER& aReporter )
|
||||
FOOTPRINT* DISPLAY_FOOTPRINTS_FRAME::GetFootprint( const wxString& aFootprintName, REPORTER& aReporter )
|
||||
{
|
||||
FOOTPRINT* footprint = nullptr;
|
||||
LIB_ID fpid;
|
||||
|
||||
if( fpid.Parse( aFootprintName ) >= 0 )
|
||||
{
|
||||
aReporter.Report( wxString::Format( _( "Footprint ID '%s' is not valid." ),
|
||||
aFootprintName ),
|
||||
aReporter.Report( wxString::Format( _( "Footprint ID '%s' is not valid." ), aFootprintName ),
|
||||
RPT_SEVERITY_ERROR );
|
||||
return nullptr;
|
||||
}
|
||||
@ -291,8 +289,7 @@ FOOTPRINT* DISPLAY_FOOTPRINTS_FRAME::GetFootprint( const wxString& aFootprintNam
|
||||
// See if the library requested is in the library table
|
||||
if( !fpTable->HasLibrary( libNickname ) )
|
||||
{
|
||||
aReporter.Report( wxString::Format( _( "Library '%s' is not in the footprint library "
|
||||
"table." ),
|
||||
aReporter.Report( wxString::Format( _( "Library '%s' is not in the footprint library table." ),
|
||||
libNickname ),
|
||||
RPT_SEVERITY_ERROR );
|
||||
return nullptr;
|
||||
@ -455,12 +452,8 @@ void DISPLAY_FOOTPRINTS_FRAME::UpdateMsgPanel()
|
||||
|
||||
COLOR_SETTINGS* DISPLAY_FOOTPRINTS_FRAME::GetColorSettings( bool aForceRefresh ) const
|
||||
{
|
||||
auto* cfg = Pgm().GetSettingsManager().GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" );
|
||||
|
||||
if( cfg )
|
||||
return Pgm().GetSettingsManager().GetColorSettings( cfg->m_ColorTheme );
|
||||
else
|
||||
return Pgm().GetSettingsManager().GetColorSettings();
|
||||
FOOTPRINT_EDITOR_SETTINGS* cfg = GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" );
|
||||
return ::GetColorSettings( cfg ? cfg->m_ColorTheme : DEFAULT_THEME );
|
||||
}
|
||||
|
||||
|
||||
|
@ -544,18 +544,17 @@ public:
|
||||
|
||||
VECTOR2I pos = last->GetPosition();
|
||||
|
||||
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 )
|
||||
if( SYMBOL_EDITOR_SETTINGS* cfg = GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" ) )
|
||||
{
|
||||
pos.y -= schIUScale.MilsToIU( cfg->m_Repeat.pin_step );
|
||||
}
|
||||
else
|
||||
{
|
||||
pos.x += schIUScale.MilsToIU( cfg->m_Repeat.pin_step );
|
||||
if( last->GetOrientation() == PIN_ORIENTATION::PIN_LEFT
|
||||
|| last->GetOrientation() == PIN_ORIENTATION::PIN_RIGHT )
|
||||
{
|
||||
pos.y -= schIUScale.MilsToIU( cfg->m_Repeat.pin_step );
|
||||
}
|
||||
else
|
||||
{
|
||||
pos.x += schIUScale.MilsToIU( cfg->m_Repeat.pin_step );
|
||||
}
|
||||
}
|
||||
|
||||
newPin->SetPosition( pos );
|
||||
|
@ -187,10 +187,7 @@ bool DIALOG_LIB_SYMBOL_PROPERTIES::TransferDataToWindow()
|
||||
|
||||
// Add in any template fieldnames not yet defined:
|
||||
// Read global fieldname templates
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" );
|
||||
|
||||
if( cfg )
|
||||
if( EESCHEMA_SETTINGS* cfg = GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ) )
|
||||
{
|
||||
TEMPLATES templateMgr;
|
||||
|
||||
|
@ -365,10 +365,7 @@ COLOR_SETTINGS* DIALOG_PLOT_SCHEMATIC::getColorSettings()
|
||||
int selection = m_colorTheme->GetSelection();
|
||||
|
||||
if( selection < 0 )
|
||||
{
|
||||
return m_editFrame->GetSettingsManager()->GetColorSettings(
|
||||
COLOR_SETTINGS::COLOR_BUILTIN_DEFAULT );
|
||||
}
|
||||
return ::GetColorSettings( COLOR_SETTINGS::COLOR_BUILTIN_DEFAULT );
|
||||
|
||||
return static_cast<COLOR_SETTINGS*>( m_colorTheme->GetClientData( selection ) );
|
||||
}
|
||||
|
@ -61,7 +61,6 @@ void PANEL_EESCHEMA_ANNOTATION_OPTIONS::loadEEschemaSettings( EESCHEMA_SETTINGS*
|
||||
case 2: m_rbSheetX1000->SetValue( true ); break;
|
||||
}
|
||||
|
||||
|
||||
int annotateStartNum = 0; // Default "start after" value for annotation
|
||||
|
||||
// See if we can get a "start after" value from the project settings
|
||||
@ -79,41 +78,32 @@ 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" );
|
||||
|
||||
loadEEschemaSettings( cfg );
|
||||
|
||||
loadEEschemaSettings( GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ) );
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
bool PANEL_EESCHEMA_ANNOTATION_OPTIONS::TransferDataFromWindow()
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" );
|
||||
if( EESCHEMA_SETTINGS* cfg = GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ) )
|
||||
{
|
||||
cfg->m_AnnotatePanel.automatic = m_checkAutoAnnotate->GetValue();
|
||||
|
||||
cfg->m_AnnotatePanel.automatic = m_checkAutoAnnotate->GetValue();
|
||||
cfg->m_AnnotatePanel.sort_order = m_rbSortBy_Y_Position->GetValue() ? ANNOTATE_ORDER_T::SORT_BY_Y_POSITION
|
||||
: ANNOTATE_ORDER_T::SORT_BY_X_POSITION;
|
||||
|
||||
cfg->m_AnnotatePanel.sort_order = m_rbSortBy_Y_Position->GetValue()
|
||||
? ANNOTATE_ORDER_T::SORT_BY_Y_POSITION
|
||||
: ANNOTATE_ORDER_T::SORT_BY_X_POSITION;
|
||||
if( m_rbSheetX100->GetValue() )
|
||||
cfg->m_AnnotatePanel.method = ANNOTATE_ALGO_T::SHEET_NUMBER_X_100;
|
||||
else if( m_rbSheetX1000->GetValue() )
|
||||
cfg->m_AnnotatePanel.method = ANNOTATE_ALGO_T::SHEET_NUMBER_X_1000;
|
||||
else
|
||||
cfg->m_AnnotatePanel.method = ANNOTATE_ALGO_T::INCREMENTAL_BY_REF;
|
||||
}
|
||||
|
||||
if( m_rbSheetX100->GetValue() )
|
||||
cfg->m_AnnotatePanel.method = ANNOTATE_ALGO_T::SHEET_NUMBER_X_100;
|
||||
else if( m_rbSheetX1000->GetValue() )
|
||||
cfg->m_AnnotatePanel.method = ANNOTATE_ALGO_T::SHEET_NUMBER_X_1000;
|
||||
else
|
||||
cfg->m_AnnotatePanel.method = ANNOTATE_ALGO_T::INCREMENTAL_BY_REF;
|
||||
|
||||
|
||||
SCH_EDIT_FRAME* schFrame = dynamic_cast<SCH_EDIT_FRAME*>( m_schSettingsProvider );
|
||||
|
||||
if( schFrame )
|
||||
if( SCH_EDIT_FRAME* schFrame = dynamic_cast<SCH_EDIT_FRAME*>( m_schSettingsProvider ) )
|
||||
{
|
||||
SCHEMATIC_SETTINGS& projSettings = schFrame->Schematic().Settings();
|
||||
projSettings.m_AnnotateStartNum =
|
||||
EDA_UNIT_UTILS::UI::ValueFromString( m_textNumberAfter->GetValue() );
|
||||
projSettings.m_AnnotateStartNum = EDA_UNIT_UTILS::UI::ValueFromString( m_textNumberAfter->GetValue() );
|
||||
}
|
||||
|
||||
return true;
|
||||
|
@ -67,10 +67,9 @@ PANEL_EESCHEMA_COLOR_SETTINGS::PANEL_EESCHEMA_COLOR_SETTINGS( wxWindow* aParent
|
||||
{
|
||||
m_colorNamespace = "schematic";
|
||||
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
COMMON_SETTINGS* common_settings = Pgm().GetCommonSettings();
|
||||
EESCHEMA_SETTINGS* app_settings = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" );
|
||||
COLOR_SETTINGS* current = mgr.GetColorSettings( app_settings->m_ColorTheme );
|
||||
EESCHEMA_SETTINGS* app_settings = GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" );
|
||||
COLOR_SETTINGS* current = ::GetColorSettings( app_settings ? app_settings->m_ColorTheme : DEFAULT_THEME );
|
||||
|
||||
// Saved theme doesn't exist? Reset to default
|
||||
if( current->GetFilename() != app_settings->m_ColorTheme )
|
||||
@ -122,10 +121,8 @@ bool PANEL_EESCHEMA_COLOR_SETTINGS::TransferDataFromWindow()
|
||||
if( !saveCurrentTheme( true ) )
|
||||
return false;
|
||||
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" );
|
||||
|
||||
cfg->m_ColorTheme = m_currentSettings->GetFilename();
|
||||
if( EESCHEMA_SETTINGS* cfg = GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ) )
|
||||
cfg->m_ColorTheme = m_currentSettings->GetFilename();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -80,50 +80,44 @@ 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" );
|
||||
|
||||
loadEEschemaSettings( cfg );
|
||||
|
||||
loadEEschemaSettings( GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ) );
|
||||
m_galOptsPanel->TransferDataToWindow();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
bool PANEL_EESCHEMA_DISPLAY_OPTIONS::TransferDataFromWindow()
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" );
|
||||
if( EESCHEMA_SETTINGS* cfg = GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ) )
|
||||
{
|
||||
cfg->m_Appearance.default_font = m_defaultFontCtrl->GetSelection() <= 0
|
||||
// This is a keyword. Do not translate.
|
||||
? wxString( KICAD_FONT_NAME )
|
||||
: m_defaultFontCtrl->GetStringSelection();
|
||||
cfg->m_Appearance.show_hidden_pins = m_checkShowHiddenPins->GetValue();
|
||||
cfg->m_Appearance.show_hidden_fields = m_checkShowHiddenFields->GetValue();
|
||||
cfg->m_Appearance.show_erc_warnings = m_checkShowERCWarnings->GetValue();
|
||||
cfg->m_Appearance.show_erc_errors = m_checkShowERCErrors->GetValue();
|
||||
cfg->m_Appearance.show_erc_exclusions = m_checkShowERCExclusions->GetValue();
|
||||
cfg->m_Appearance.mark_sim_exclusions = m_cbMarkSimExclusions->GetValue();
|
||||
cfg->m_Appearance.show_op_voltages = m_checkShowOPVoltages->GetValue();
|
||||
cfg->m_Appearance.show_op_currents = m_checkShowOPCurrents->GetValue();
|
||||
cfg->m_Appearance.show_pin_alt_icons = m_checkShowPinAltModeIcons->GetValue();
|
||||
cfg->m_Appearance.show_page_limits = m_checkPageLimits->GetValue();
|
||||
|
||||
cfg->m_Appearance.default_font = m_defaultFontCtrl->GetSelection() <= 0
|
||||
// This is a keyword. Do not translate.
|
||||
? wxString( KICAD_FONT_NAME )
|
||||
: m_defaultFontCtrl->GetStringSelection();
|
||||
cfg->m_Appearance.show_hidden_pins = m_checkShowHiddenPins->GetValue();
|
||||
cfg->m_Appearance.show_hidden_fields = m_checkShowHiddenFields->GetValue();
|
||||
cfg->m_Appearance.show_erc_warnings = m_checkShowERCWarnings->GetValue();
|
||||
cfg->m_Appearance.show_erc_errors = m_checkShowERCErrors->GetValue();
|
||||
cfg->m_Appearance.show_erc_exclusions = m_checkShowERCExclusions->GetValue();
|
||||
cfg->m_Appearance.mark_sim_exclusions = m_cbMarkSimExclusions->GetValue();
|
||||
cfg->m_Appearance.show_op_voltages = m_checkShowOPVoltages->GetValue();
|
||||
cfg->m_Appearance.show_op_currents = m_checkShowOPCurrents->GetValue();
|
||||
cfg->m_Appearance.show_pin_alt_icons = m_checkShowPinAltModeIcons->GetValue();
|
||||
cfg->m_Appearance.show_page_limits = m_checkPageLimits->GetValue();
|
||||
cfg->m_Selection.draw_selected_children = m_checkSelDrawChildItems->GetValue();
|
||||
cfg->m_Selection.fill_shapes = m_checkSelFillShapes->GetValue();
|
||||
cfg->m_Selection.selection_thickness = KiROUND( m_selWidthCtrl->GetValue() );
|
||||
cfg->m_Selection.highlight_thickness = KiROUND( m_highlightWidthCtrl->GetValue() );
|
||||
cfg->m_Selection.highlight_netclass_colors = m_highlightNetclassColors->GetValue();
|
||||
cfg->m_Selection.highlight_netclass_colors_thickness = m_colHighlightThickness->GetValue();
|
||||
cfg->m_Selection.highlight_netclass_colors_alpha = m_colHighlightTransparency->GetValue() / 100.0;
|
||||
|
||||
cfg->m_Selection.draw_selected_children = m_checkSelDrawChildItems->GetValue();
|
||||
cfg->m_Selection.fill_shapes = m_checkSelFillShapes->GetValue();
|
||||
cfg->m_Selection.selection_thickness = KiROUND( m_selWidthCtrl->GetValue() );
|
||||
cfg->m_Selection.highlight_thickness = KiROUND( m_highlightWidthCtrl->GetValue() );
|
||||
cfg->m_Selection.highlight_netclass_colors = m_highlightNetclassColors->GetValue();
|
||||
cfg->m_Selection.highlight_netclass_colors_thickness = m_colHighlightThickness->GetValue();
|
||||
cfg->m_Selection.highlight_netclass_colors_alpha =
|
||||
m_colHighlightTransparency->GetValue() / 100.0;
|
||||
|
||||
cfg->m_CrossProbing.on_selection = m_checkCrossProbeOnSelection->GetValue();
|
||||
cfg->m_CrossProbing.center_on_items = m_checkCrossProbeCenter->GetValue();
|
||||
cfg->m_CrossProbing.zoom_to_fit = m_checkCrossProbeZoom->GetValue();
|
||||
cfg->m_CrossProbing.auto_highlight = m_checkCrossProbeAutoHighlight->GetValue();
|
||||
cfg->m_CrossProbing.on_selection = m_checkCrossProbeOnSelection->GetValue();
|
||||
cfg->m_CrossProbing.center_on_items = m_checkCrossProbeCenter->GetValue();
|
||||
cfg->m_CrossProbing.zoom_to_fit = m_checkCrossProbeZoom->GetValue();
|
||||
cfg->m_CrossProbing.auto_highlight = m_checkCrossProbeAutoHighlight->GetValue();
|
||||
}
|
||||
|
||||
m_galOptsPanel->TransferDataFromWindow();
|
||||
|
||||
|
@ -99,9 +99,8 @@ void PANEL_EESCHEMA_EDITING_OPTIONS::loadEEschemaSettings( EESCHEMA_SETTINGS* aC
|
||||
m_vPitch.SetValue( schIUScale.MilsToIU( aCfg->m_Drawing.default_repeat_offset_y ) );
|
||||
m_spinLabelRepeatStep->SetValue( aCfg->m_Drawing.repeat_label_increment );
|
||||
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
COLOR_SETTINGS* settings = mgr.GetColorSettings();
|
||||
COLOR4D schematicBackground = settings->GetColor( LAYER_SCHEMATIC_BACKGROUND );
|
||||
COLOR_SETTINGS* settings = ::GetColorSettings( DEFAULT_THEME );
|
||||
COLOR4D schematicBackground = settings->GetColor( LAYER_SCHEMATIC_BACKGROUND );
|
||||
|
||||
m_borderColorSwatch->SetSwatchBackground( schematicBackground );
|
||||
m_borderColorSwatch->SetDefaultColor( settings->GetDefaultColor( LAYER_SHEET ) );
|
||||
@ -109,8 +108,7 @@ void PANEL_EESCHEMA_EDITING_OPTIONS::loadEEschemaSettings( EESCHEMA_SETTINGS* aC
|
||||
|
||||
m_backgroundColorSwatch->SetSwatchBackground( schematicBackground );
|
||||
m_backgroundColorSwatch->SetDefaultColor( settings->GetDefaultColor( LAYER_SHEET_BACKGROUND ) );
|
||||
m_backgroundColorSwatch->SetSwatchColor( aCfg->m_Drawing.default_sheet_background_color,
|
||||
false );
|
||||
m_backgroundColorSwatch->SetSwatchColor( aCfg->m_Drawing.default_sheet_background_color, false );
|
||||
|
||||
m_choiceLineMode->SetSelection( aCfg->m_Drawing.line_mode );
|
||||
m_choiceArcMode->SetSelection( arcEditModeToComboIndex( aCfg->m_Drawing.arc_edit_mode ) );
|
||||
@ -132,42 +130,38 @@ 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" );
|
||||
|
||||
loadEEschemaSettings( cfg );
|
||||
|
||||
loadEEschemaSettings( GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ) );
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
bool PANEL_EESCHEMA_EDITING_OPTIONS::TransferDataFromWindow()
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" );
|
||||
if( EESCHEMA_SETTINGS* cfg = GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ) )
|
||||
{
|
||||
cfg->m_Drawing.new_power_symbols = static_cast<POWER_SYMBOLS>( m_choicePower->GetSelection() );
|
||||
|
||||
cfg->m_Drawing.new_power_symbols = static_cast<POWER_SYMBOLS>( m_choicePower->GetSelection() );
|
||||
cfg->m_Drawing.default_sheet_border_color = m_borderColorSwatch->GetSwatchColor();
|
||||
cfg->m_Drawing.default_sheet_background_color = m_backgroundColorSwatch->GetSwatchColor();
|
||||
|
||||
cfg->m_Drawing.default_sheet_border_color = m_borderColorSwatch->GetSwatchColor();
|
||||
cfg->m_Drawing.default_sheet_background_color = m_backgroundColorSwatch->GetSwatchColor();
|
||||
cfg->m_Drawing.default_repeat_offset_x = schIUScale.IUToMils( m_hPitch.GetIntValue() );
|
||||
cfg->m_Drawing.default_repeat_offset_y = schIUScale.IUToMils( m_vPitch.GetIntValue() );
|
||||
cfg->m_Drawing.repeat_label_increment = m_spinLabelRepeatStep->GetValue();
|
||||
|
||||
cfg->m_Drawing.default_repeat_offset_x = schIUScale.IUToMils( m_hPitch.GetIntValue() );
|
||||
cfg->m_Drawing.default_repeat_offset_y = schIUScale.IUToMils( m_vPitch.GetIntValue() );
|
||||
cfg->m_Drawing.repeat_label_increment = m_spinLabelRepeatStep->GetValue();
|
||||
cfg->m_Drawing.line_mode = m_choiceLineMode->GetSelection();
|
||||
cfg->m_Drawing.arc_edit_mode = arcEditModeToEnum( m_choiceArcMode->GetSelection() );
|
||||
cfg->m_Appearance.footprint_preview = m_footprintPreview->GetValue();
|
||||
cfg->m_RescueNeverShow = m_neverShowRescue->GetValue();
|
||||
|
||||
cfg->m_Drawing.line_mode = m_choiceLineMode->GetSelection();
|
||||
cfg->m_Drawing.arc_edit_mode = arcEditModeToEnum( m_choiceArcMode->GetSelection() );
|
||||
cfg->m_Appearance.footprint_preview = m_footprintPreview->GetValue();
|
||||
cfg->m_RescueNeverShow = m_neverShowRescue->GetValue();
|
||||
cfg->m_AutoplaceFields.enable = m_checkAutoplaceFields->GetValue();
|
||||
cfg->m_AutoplaceFields.allow_rejustify = m_checkAutoplaceJustify->GetValue();
|
||||
cfg->m_AutoplaceFields.align_to_grid = m_checkAutoplaceAlign->GetValue();
|
||||
|
||||
cfg->m_AutoplaceFields.enable = m_checkAutoplaceFields->GetValue();
|
||||
cfg->m_AutoplaceFields.allow_rejustify = m_checkAutoplaceJustify->GetValue();
|
||||
cfg->m_AutoplaceFields.align_to_grid = m_checkAutoplaceAlign->GetValue();
|
||||
cfg->m_Input.drag_is_move = !m_mouseDragIsDrag->GetValue();
|
||||
|
||||
cfg->m_Input.drag_is_move = !m_mouseDragIsDrag->GetValue();
|
||||
|
||||
cfg->m_Drawing.auto_start_wires = m_cbAutoStartWires->GetValue();
|
||||
cfg->m_Input.esc_clears_net_highlight = m_escClearsNetHighlight->GetValue();
|
||||
cfg->m_Drawing.auto_start_wires = m_cbAutoStartWires->GetValue();
|
||||
cfg->m_Input.esc_clears_net_highlight = m_escClearsNetHighlight->GetValue();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -86,16 +86,17 @@ bool PANEL_SIMULATOR_PREFERENCES::TransferDataFromWindow()
|
||||
return static_cast<SIM_MOUSE_WHEEL_ACTION>( aChoice->GetSelection() );
|
||||
};
|
||||
|
||||
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;
|
||||
if( EESCHEMA_SETTINGS* cfg = 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 );
|
||||
actions.vertical_with_shift = toAction( m_choiceVScrollShift );
|
||||
actions.vertical_with_alt = toAction( m_choiceVScrollAlt );
|
||||
actions.vertical_unmodified = toAction( m_choiceVScrollUnmodified );
|
||||
actions.vertical_with_ctrl = toAction( m_choiceVScrollCtrl );
|
||||
actions.vertical_with_shift = toAction( m_choiceVScrollShift );
|
||||
actions.vertical_with_alt = toAction( m_choiceVScrollAlt );
|
||||
|
||||
actions.horizontal = horizontalScrollSelectionToAction( m_choiceHScroll->GetSelection() );
|
||||
actions.horizontal = horizontalScrollSelectionToAction( m_choiceHScroll->GetSelection() );
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -103,10 +104,9 @@ bool PANEL_SIMULATOR_PREFERENCES::TransferDataFromWindow()
|
||||
|
||||
bool PANEL_SIMULATOR_PREFERENCES::TransferDataToWindow()
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" );
|
||||
if( EESCHEMA_SETTINGS* cfg = GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ) )
|
||||
applyMouseScrollActionsToPanel( cfg->m_Simulator.preferences.mouse_wheel_actions );
|
||||
|
||||
applyMouseScrollActionsToPanel( cfg->m_Simulator.preferences.mouse_wheel_actions );
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -35,15 +35,14 @@ 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" );
|
||||
SYMBOL_EDITOR_SETTINGS* cfg = GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" );
|
||||
|
||||
if( cfg->m_UseEeschemaColorSettings )
|
||||
if( cfg && cfg->m_UseEeschemaColorSettings )
|
||||
m_eeschemaRB->SetValue( true );
|
||||
else
|
||||
m_themeRB->SetValue( true );
|
||||
|
||||
COLOR_SETTINGS* current = mgr.GetColorSettings( cfg->m_ColorTheme );
|
||||
COLOR_SETTINGS* current = ::GetColorSettings( cfg ? cfg->m_ColorTheme : DEFAULT_THEME );
|
||||
|
||||
int width = 0;
|
||||
int height = 0;
|
||||
@ -51,7 +50,7 @@ bool PANEL_SYM_COLOR_SETTINGS::TransferDataToWindow()
|
||||
|
||||
m_themes->Clear();
|
||||
|
||||
for( COLOR_SETTINGS* settings : mgr.GetColorSettingsList() )
|
||||
for( COLOR_SETTINGS* settings : Pgm().GetSettingsManager().GetColorSettingsList() )
|
||||
{
|
||||
int pos = m_themes->Append( settings->GetName(), static_cast<void*>( settings ) );
|
||||
|
||||
@ -72,17 +71,17 @@ 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" );
|
||||
|
||||
cfg->m_UseEeschemaColorSettings = m_eeschemaRB->GetValue();
|
||||
|
||||
if( !cfg->m_UseEeschemaColorSettings )
|
||||
if( SYMBOL_EDITOR_SETTINGS* cfg = GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" ) )
|
||||
{
|
||||
int sel = m_themes->GetSelection();
|
||||
COLOR_SETTINGS* colors = static_cast<COLOR_SETTINGS*>( m_themes->GetClientData( sel ) );
|
||||
cfg->m_UseEeschemaColorSettings = m_eeschemaRB->GetValue();
|
||||
|
||||
cfg->m_ColorTheme = colors->GetFilename();
|
||||
if( !cfg->m_UseEeschemaColorSettings )
|
||||
{
|
||||
int sel = m_themes->GetSelection();
|
||||
COLOR_SETTINGS* colors = static_cast<COLOR_SETTINGS*>( m_themes->GetClientData( sel ) );
|
||||
|
||||
cfg->m_ColorTheme = colors->GetFilename();
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
|
@ -50,10 +50,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" );
|
||||
|
||||
loadSymEditorSettings( cfg );
|
||||
loadSymEditorSettings( GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" ) );
|
||||
|
||||
m_galOptsPanel->TransferDataToWindow();
|
||||
|
||||
@ -63,14 +60,14 @@ 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" );
|
||||
|
||||
cfg->m_ShowHiddenPins = m_checkShowHiddenPins->GetValue();
|
||||
cfg->m_ShowHiddenFields = m_checkShowHiddenFields->GetValue();
|
||||
cfg->m_ShowPinElectricalType = m_showPinElectricalTypes->GetValue();
|
||||
cfg->m_ShowPinAltIcons = m_checkShowPinAltModeIcons->GetValue();
|
||||
m_galOptsPanel->TransferDataFromWindow();
|
||||
if( SYMBOL_EDITOR_SETTINGS* cfg = GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" ) )
|
||||
{
|
||||
cfg->m_ShowHiddenPins = m_checkShowHiddenPins->GetValue();
|
||||
cfg->m_ShowHiddenFields = m_checkShowHiddenFields->GetValue();
|
||||
cfg->m_ShowPinElectricalType = m_showPinElectricalTypes->GetValue();
|
||||
cfg->m_ShowPinAltIcons = m_checkShowPinAltModeIcons->GetValue();
|
||||
m_galOptsPanel->TransferDataFromWindow();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -66,31 +66,27 @@ void PANEL_SYM_EDITING_OPTIONS::loadSymEditorSettings( SYMBOL_EDITOR_SETTINGS* a
|
||||
|
||||
bool PANEL_SYM_EDITING_OPTIONS::TransferDataToWindow()
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
SYMBOL_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" );
|
||||
|
||||
loadSymEditorSettings( cfg );
|
||||
|
||||
loadSymEditorSettings( GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" ) );
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
bool PANEL_SYM_EDITING_OPTIONS::TransferDataFromWindow()
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
SYMBOL_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" );
|
||||
if( SYMBOL_EDITOR_SETTINGS* cfg = GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" ) )
|
||||
{
|
||||
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();
|
||||
|
||||
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
|
||||
cfg->m_Repeat.pin_step = KiROUND( double( cfg->m_Repeat.pin_step ) / MIN_GRID ) * MIN_GRID;
|
||||
// Force pin_step to a grid multiple
|
||||
cfg->m_Repeat.pin_step = KiROUND( double( cfg->m_Repeat.pin_step ) / MIN_GRID ) * MIN_GRID;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -241,16 +241,13 @@ protected:
|
||||
void PANEL_SYM_LIB_TABLE::setupGrid( WX_GRID* aGrid )
|
||||
{
|
||||
auto autoSizeCol =
|
||||
[&]( WX_GRID* aCurrGrid, int aCol )
|
||||
{
|
||||
int prevWidth = aCurrGrid->GetColSize( aCol );
|
||||
[&]( WX_GRID* aCurrGrid, int aCol )
|
||||
{
|
||||
int prevWidth = aCurrGrid->GetColSize( aCol );
|
||||
|
||||
aCurrGrid->AutoSizeColumn( aCol, false );
|
||||
aCurrGrid->SetColSize( aCol, std::max( prevWidth, aCurrGrid->GetColSize( aCol ) ) );
|
||||
};
|
||||
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" );
|
||||
aCurrGrid->AutoSizeColumn( aCol, false );
|
||||
aCurrGrid->SetColSize( aCol, std::max( prevWidth, aCurrGrid->GetColSize( aCol ) ) );
|
||||
};
|
||||
|
||||
// Give a bit more room for combobox editors
|
||||
for( int ii = 0; ii < aGrid->GetNumberRows(); ++ii )
|
||||
@ -262,33 +259,34 @@ void PANEL_SYM_LIB_TABLE::setupGrid( WX_GRID* aGrid )
|
||||
aGrid->SetSelectionMode( wxGrid::wxGridSelectRows );
|
||||
|
||||
// Set special attributes
|
||||
wxGridCellAttr* attr;
|
||||
|
||||
attr = new wxGridCellAttr;
|
||||
wxGridCellAttr* attr = new wxGridCellAttr;
|
||||
|
||||
wxString fileFiltersStr;
|
||||
wxString allWildcardsStr;
|
||||
|
||||
attr->SetEditor( new GRID_CELL_PATH_EDITOR( m_parent, aGrid,
|
||||
&cfg->m_lastSymbolLibDir,
|
||||
true, m_project->GetProjectPath(),
|
||||
[]( WX_GRID* grid, int row ) -> wxString
|
||||
{
|
||||
auto* libTable = static_cast<SYMBOL_LIB_TABLE_GRID*>( grid->GetTable() );
|
||||
auto* tableRow = static_cast<SYMBOL_LIB_TABLE_ROW*>( libTable->at( row ) );
|
||||
|
||||
IO_RELEASER<SCH_IO> pi( SCH_IO_MGR::FindPlugin( tableRow->GetFileType() ) );
|
||||
|
||||
if( pi )
|
||||
if( EESCHEMA_SETTINGS* cfg = GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ) )
|
||||
{
|
||||
attr->SetEditor( new GRID_CELL_PATH_EDITOR(
|
||||
m_parent, aGrid, &cfg->m_lastSymbolLibDir, true, m_project->GetProjectPath(),
|
||||
[]( WX_GRID* grid, int row ) -> wxString
|
||||
{
|
||||
const IO_BASE::IO_FILE_DESC& desc = pi->GetLibraryDesc();
|
||||
auto* libTable = static_cast<SYMBOL_LIB_TABLE_GRID*>( grid->GetTable() );
|
||||
auto* tableRow = static_cast<SYMBOL_LIB_TABLE_ROW*>( libTable->at( row ) );
|
||||
|
||||
if( desc.m_IsFile )
|
||||
return desc.FileFilter();
|
||||
}
|
||||
IO_RELEASER<SCH_IO> pi( SCH_IO_MGR::FindPlugin( tableRow->GetFileType() ) );
|
||||
|
||||
if( pi )
|
||||
{
|
||||
const IO_BASE::IO_FILE_DESC& desc = pi->GetLibraryDesc();
|
||||
|
||||
if( desc.m_IsFile )
|
||||
return desc.FileFilter();
|
||||
}
|
||||
|
||||
return wxEmptyString;
|
||||
} ) );
|
||||
}
|
||||
|
||||
return wxEmptyString;
|
||||
} ) );
|
||||
aGrid->SetColAttr( COL_URI, attr );
|
||||
|
||||
attr = new wxGridCellAttr;
|
||||
@ -345,15 +343,14 @@ PANEL_SYM_LIB_TABLE::PANEL_SYM_LIB_TABLE( DIALOG_EDIT_LIBRARY_TABLES* aParent, P
|
||||
m_pluginChoices.Add( SCH_IO_MGR::ShowType( type ) );
|
||||
}
|
||||
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" );
|
||||
|
||||
if( cfg->m_lastSymbolLibDir.IsEmpty() )
|
||||
cfg->m_lastSymbolLibDir = PATHS::GetDefaultUserSymbolsPath();
|
||||
if( EESCHEMA_SETTINGS* cfg = GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ) )
|
||||
{
|
||||
if( cfg->m_lastSymbolLibDir.IsEmpty() )
|
||||
cfg->m_lastSymbolLibDir = PATHS::GetDefaultUserSymbolsPath();
|
||||
}
|
||||
|
||||
m_lastProjectLibDir = m_project->GetProjectPath();
|
||||
|
||||
|
||||
setupGrid( m_global_grid );
|
||||
|
||||
if( m_projectTable )
|
||||
@ -630,34 +627,28 @@ void PANEL_SYM_LIB_TABLE::browseLibrariesHandler( wxCommandEvent& event )
|
||||
fileFiltersStr = _( "All supported formats" ) + wxT( "|" ) + allWildcardsStr + wxT( "|" )
|
||||
+ fileFiltersStr;
|
||||
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" );
|
||||
|
||||
wxString openDir = cfg->m_lastSymbolLibDir;
|
||||
EESCHEMA_SETTINGS* cfg = GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" );
|
||||
wxString dummy;
|
||||
wxString* lastDir;
|
||||
|
||||
if( m_cur_grid == m_project_grid )
|
||||
openDir = m_lastProjectLibDir;
|
||||
lastDir = &m_lastProjectLibDir;
|
||||
else
|
||||
lastDir = cfg ? &cfg->m_lastSymbolLibDir : &dummy;
|
||||
|
||||
wxWindow* topLevelParent = wxGetTopLevelParent( this );
|
||||
|
||||
wxFileDialog dlg( topLevelParent, _( "Add Library" ), openDir, wxEmptyString, fileFiltersStr,
|
||||
wxFileDialog dlg( topLevelParent, _( "Add Library" ), *lastDir, wxEmptyString, fileFiltersStr,
|
||||
wxFD_OPEN | wxFD_FILE_MUST_EXIST | wxFD_MULTIPLE );
|
||||
|
||||
if( dlg.ShowModal() == wxID_CANCEL )
|
||||
return;
|
||||
|
||||
if( m_cur_grid == m_global_grid )
|
||||
cfg->m_lastSymbolLibDir = dlg.GetDirectory();
|
||||
else
|
||||
m_lastProjectLibDir = dlg.GetDirectory();
|
||||
*lastDir = dlg.GetDirectory();
|
||||
|
||||
const ENV_VAR_MAP& envVars = Pgm().GetLocalEnvVariables();
|
||||
bool addDuplicates = false;
|
||||
bool applyToAll = false;
|
||||
wxString warning = _( "Warning: Duplicate Nickname" );
|
||||
wxString msg = _( "A library nicknamed '%s' already exists." );
|
||||
wxString detailedMsg = _( "One of the nicknames will need to be changed after "
|
||||
"adding this library." );
|
||||
|
||||
wxArrayString filePathsList;
|
||||
dlg.GetPaths( filePathsList );
|
||||
@ -673,9 +664,12 @@ void PANEL_SYM_LIB_TABLE::browseLibrariesHandler( wxCommandEvent& event )
|
||||
if( !applyToAll )
|
||||
{
|
||||
// The cancel button adds the library to the table anyway
|
||||
addDuplicates = OKOrCancelDialog( wxGetTopLevelParent( this ), warning,
|
||||
wxString::Format( msg, nickname ),
|
||||
detailedMsg, _( "Skip" ), _( "Add Anyway" ),
|
||||
addDuplicates = OKOrCancelDialog( wxGetTopLevelParent( this ), _( "Warning: Duplicate Nickname" ),
|
||||
wxString::Format( _( "A library nicknamed '%s' already exists." ),
|
||||
nickname ),
|
||||
_( "One of the nicknames will need to be changed after adding "
|
||||
"this library." ),
|
||||
_( "Skip" ), _( "Add Anyway" ),
|
||||
&applyToAll ) == wxID_CANCEL;
|
||||
}
|
||||
|
||||
|
@ -52,11 +52,11 @@ PANEL_TEMPLATE_FIELDNAMES::PANEL_TEMPLATE_FIELDNAMES( wxWindow* aWindow,
|
||||
m_global = true;
|
||||
m_templateMgr = &m_templateMgrInstance;
|
||||
|
||||
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 );
|
||||
if( EESCHEMA_SETTINGS* cfg = GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ) )
|
||||
{
|
||||
if( !cfg->m_Drawing.field_names.IsEmpty() )
|
||||
m_templateMgr->AddTemplateFieldNames( cfg->m_Drawing.field_names );
|
||||
}
|
||||
}
|
||||
|
||||
m_addFieldButton->SetBitmap( KiBitmapBundle( BITMAPS::small_plus ) );
|
||||
@ -292,10 +292,7 @@ bool PANEL_TEMPLATE_FIELDNAMES::TransferDataFromWindow()
|
||||
|
||||
if( m_global )
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" );
|
||||
|
||||
if( cfg )
|
||||
if( EESCHEMA_SETTINGS* cfg = GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ) )
|
||||
{
|
||||
// Save global fieldname templates
|
||||
STRING_FORMATTER sf;
|
||||
|
@ -163,8 +163,7 @@ static struct IFACE : public KIFACE_BASE, public UNITS_PROVIDER
|
||||
|
||||
void OnKifaceEnd() override;
|
||||
|
||||
wxWindow* CreateKiWindow( wxWindow* aParent, int aClassId, KIWAY* aKiway,
|
||||
int aCtlBits = 0 ) override
|
||||
wxWindow* CreateKiWindow( wxWindow* aParent, int aClassId, KIWAY* aKiway, int aCtlBits = 0 ) override
|
||||
{
|
||||
switch( aClassId )
|
||||
{
|
||||
@ -184,10 +183,7 @@ static struct IFACE : public KIFACE_BASE, public UNITS_PROVIDER
|
||||
}
|
||||
|
||||
case FRAME_SCH_SYMBOL_EDITOR:
|
||||
{
|
||||
SYMBOL_EDIT_FRAME* frame = new SYMBOL_EDIT_FRAME( aKiway, aParent );
|
||||
return frame;
|
||||
}
|
||||
return new SYMBOL_EDIT_FRAME( aKiway, aParent );
|
||||
|
||||
case FRAME_SIMULATOR:
|
||||
{
|
||||
@ -205,16 +201,10 @@ static struct IFACE : public KIFACE_BASE, public UNITS_PROVIDER
|
||||
}
|
||||
|
||||
case FRAME_SCH_VIEWER:
|
||||
{
|
||||
SYMBOL_VIEWER_FRAME* frame = new SYMBOL_VIEWER_FRAME( aKiway, aParent );
|
||||
return frame;
|
||||
}
|
||||
return new SYMBOL_VIEWER_FRAME( aKiway, aParent );
|
||||
|
||||
case FRAME_SYMBOL_CHOOSER:
|
||||
{
|
||||
SYMBOL_CHOOSER_FRAME* frame = new SYMBOL_CHOOSER_FRAME( aKiway, aParent );
|
||||
return frame;
|
||||
}
|
||||
return new SYMBOL_CHOOSER_FRAME( aKiway, aParent );
|
||||
|
||||
case DIALOG_SCH_LIBRARY_TABLE:
|
||||
InvokeSchEditSymbolLibTable( aKiway, aParent );
|
||||
@ -227,17 +217,11 @@ static struct IFACE : public KIFACE_BASE, public UNITS_PROVIDER
|
||||
return nullptr;
|
||||
|
||||
case PANEL_SYM_DISP_OPTIONS:
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
APP_SETTINGS_BASE* cfg = mgr.GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" );
|
||||
|
||||
return new PANEL_SYM_DISPLAY_OPTIONS( aParent, cfg );
|
||||
}
|
||||
return new PANEL_SYM_DISPLAY_OPTIONS( aParent, GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" ) );
|
||||
|
||||
case PANEL_SYM_EDIT_GRIDS:
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
APP_SETTINGS_BASE* cfg = mgr.GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" );
|
||||
APP_SETTINGS_BASE* cfg = GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" );
|
||||
EDA_BASE_FRAME* frame = aKiway->Player( FRAME_SCH_SYMBOL_EDITOR, false );
|
||||
|
||||
if( !frame )
|
||||
@ -270,9 +254,8 @@ static struct IFACE : public KIFACE_BASE, public UNITS_PROVIDER
|
||||
|
||||
case PANEL_SYM_TOOLBARS:
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
APP_SETTINGS_BASE* cfg = mgr.GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" );
|
||||
TOOLBAR_SETTINGS* tb = mgr.GetToolbarSettings<SYMBOL_EDIT_TOOLBAR_SETTINGS>( "symbol_editor-toolbars" );
|
||||
APP_SETTINGS_BASE* cfg = GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" );
|
||||
TOOLBAR_SETTINGS* tb = GetToolbarSettings<SYMBOL_EDIT_TOOLBAR_SETTINGS>( "symbol_editor-toolbars" );
|
||||
|
||||
std::vector<TOOL_ACTION*> actions;
|
||||
std::vector<ACTION_TOOLBAR_CONTROL*> controls;
|
||||
@ -290,17 +273,11 @@ static struct IFACE : public KIFACE_BASE, public UNITS_PROVIDER
|
||||
return new PANEL_SYM_COLOR_SETTINGS( aParent );
|
||||
|
||||
case PANEL_SCH_DISP_OPTIONS:
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" );
|
||||
|
||||
return new PANEL_EESCHEMA_DISPLAY_OPTIONS( aParent, cfg );
|
||||
}
|
||||
return new PANEL_EESCHEMA_DISPLAY_OPTIONS( aParent, GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ) );
|
||||
|
||||
case PANEL_SCH_GRIDS:
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" );
|
||||
EESCHEMA_SETTINGS* cfg = GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" );
|
||||
EDA_BASE_FRAME* frame = aKiway->Player( FRAME_SCH, false );
|
||||
|
||||
if( !frame )
|
||||
@ -332,17 +309,12 @@ static struct IFACE : public KIFACE_BASE, public UNITS_PROVIDER
|
||||
}
|
||||
|
||||
case PANEL_SCH_ANNO_OPTIONS:
|
||||
{
|
||||
EDA_BASE_FRAME* schSettingsProvider = aKiway->Player( FRAME_SCH, false );
|
||||
|
||||
return new PANEL_EESCHEMA_ANNOTATION_OPTIONS( aParent, schSettingsProvider );
|
||||
}
|
||||
return new PANEL_EESCHEMA_ANNOTATION_OPTIONS( aParent, aKiway->Player( FRAME_SCH, false ) );
|
||||
|
||||
case PANEL_SCH_TOOLBARS:
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
APP_SETTINGS_BASE* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" );
|
||||
TOOLBAR_SETTINGS* tb = mgr.GetToolbarSettings<SCH_EDIT_TOOLBAR_SETTINGS>( "eeschema-toolbars" );
|
||||
APP_SETTINGS_BASE* cfg = GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" );
|
||||
TOOLBAR_SETTINGS* tb = GetToolbarSettings<SCH_EDIT_TOOLBAR_SETTINGS>( "eeschema-toolbars" );
|
||||
|
||||
std::vector<TOOL_ACTION*> actions;
|
||||
std::vector<ACTION_TOOLBAR_CONTROL*> controls;
|
||||
|
@ -52,7 +52,7 @@
|
||||
/// Helper for all the old plotting/printing code while it still exists
|
||||
COLOR4D GetLayerColor( SCH_LAYER_ID aLayer )
|
||||
{
|
||||
return Pgm().GetSettingsManager().GetColorSettings()->GetColor( aLayer );
|
||||
return ::GetColorSettings( DEFAULT_THEME )->GetColor( aLayer );
|
||||
}
|
||||
|
||||
|
||||
|
@ -205,7 +205,7 @@ void EESCHEMA_JOBS_HANDLER::InitRenderSettings( SCH_RENDER_SETTINGS* aRenderSett
|
||||
const wxString& aTheme, SCHEMATIC* aSch,
|
||||
const wxString& aDrawingSheetOverride )
|
||||
{
|
||||
COLOR_SETTINGS* cs = Pgm().GetSettingsManager().GetColorSettings( aTheme );
|
||||
COLOR_SETTINGS* cs = ::GetColorSettings( aTheme );
|
||||
aRenderSettings->LoadColors( cs );
|
||||
aRenderSettings->m_ShowHiddenPins = false;
|
||||
aRenderSettings->m_ShowHiddenFields = false;
|
||||
@ -282,14 +282,8 @@ int EESCHEMA_JOBS_HANDLER::JobExportPlot( JOB* aJob )
|
||||
|
||||
if( font.IsEmpty() )
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
EESCHEMA_SETTINGS* cfg =
|
||||
dynamic_cast<EESCHEMA_SETTINGS*>( mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ) );
|
||||
|
||||
if( cfg )
|
||||
font = cfg->m_Appearance.default_font;
|
||||
else
|
||||
font = KICAD_FONT_NAME;
|
||||
EESCHEMA_SETTINGS* cfg = GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" );
|
||||
font = cfg ? cfg->m_Appearance.default_font : KICAD_FONT_NAME;
|
||||
}
|
||||
|
||||
renderSettings->SetDefaultFont( font );
|
||||
@ -983,7 +977,7 @@ int EESCHEMA_JOBS_HANDLER::JobSymExportSvg( JOB* aJob )
|
||||
}
|
||||
|
||||
SCH_RENDER_SETTINGS renderSettings;
|
||||
COLOR_SETTINGS* cs = Pgm().GetSettingsManager().GetColorSettings( svgJob->m_colorTheme );
|
||||
COLOR_SETTINGS* cs = ::GetColorSettings( svgJob->m_colorTheme );
|
||||
renderSettings.LoadColors( cs );
|
||||
renderSettings.SetDefaultPenWidth( DEFAULT_LINE_WIDTH_MILS * schIUScale.IU_PER_MILS );
|
||||
renderSettings.m_ShowHiddenPins = svgJob->m_includeHiddenPins;
|
||||
|
@ -544,7 +544,7 @@ EESCHEMA_SETTINGS::EESCHEMA_SETTINGS() :
|
||||
&m_PlotPanel.color, true ) );
|
||||
|
||||
m_params.emplace_back( new PARAM<wxString>( "plot.color_theme",
|
||||
&m_PlotPanel.color_theme, wxT( "user" ) ) );
|
||||
&m_PlotPanel.color_theme, DEFAULT_THEME ) );
|
||||
|
||||
m_params.emplace_back( new PARAM<int>( "plot.format",
|
||||
&m_PlotPanel.format, 0 ) );
|
||||
@ -951,12 +951,14 @@ bool EESCHEMA_SETTINGS::MigrateFromLegacy( wxConfigBase* aCfg )
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
COLOR_SETTINGS* cs = mgr.GetMigratedColorSettings();
|
||||
|
||||
auto migrateLegacyColor = [&] ( const std::string& aKey, int aLayerId ) {
|
||||
wxString str;
|
||||
auto migrateLegacyColor =
|
||||
[&] ( const std::string& aKey, int aLayerId )
|
||||
{
|
||||
wxString str;
|
||||
|
||||
if( aCfg->Read( aKey, &str ) )
|
||||
cs->SetColor( aLayerId, COLOR4D( str ) );
|
||||
};
|
||||
if( aCfg->Read( aKey, &str ) )
|
||||
cs->SetColor( aLayerId, COLOR4D( str ) );
|
||||
};
|
||||
|
||||
migrateLegacyColor( "Color4DBgCanvasEx", LAYER_SCHEMATIC_BACKGROUND );
|
||||
migrateLegacyColor( "Color4DBodyBgEx", LAYER_DEVICE_BACKGROUND );
|
||||
@ -995,9 +997,11 @@ bool EESCHEMA_SETTINGS::MigrateFromLegacy( wxConfigBase* aCfg )
|
||||
// LibEdit settings were stored with eeschema. If eeschema is the first app to run,
|
||||
// we need to migrate the LibEdit settings here
|
||||
|
||||
SYMBOL_EDITOR_SETTINGS* libedit = mgr.GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" );
|
||||
libedit->MigrateFromLegacy( aCfg );
|
||||
libedit->Load();
|
||||
if( SYMBOL_EDITOR_SETTINGS* sym_edit_cfg = GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" ) )
|
||||
{
|
||||
sym_edit_cfg->MigrateFromLegacy( aCfg );
|
||||
sym_edit_cfg->Load();
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -131,16 +131,14 @@ void PIN_LAYOUT_CACHE::recomputeExtentsCache( bool aDefinitelyDirty, KIFONT::FON
|
||||
VECTOR2D fontSize( aSize, aSize );
|
||||
int penWidth = GetPenSizeForNormal( aSize );
|
||||
|
||||
aCache.m_Extents =
|
||||
aFont->StringBoundaryLimits( aText, fontSize, penWidth, false, false, aFontMetrics );
|
||||
aCache.m_Extents = aFont->StringBoundaryLimits( aText, fontSize, penWidth, false, false, aFontMetrics );
|
||||
}
|
||||
|
||||
|
||||
void PIN_LAYOUT_CACHE::recomputeCaches()
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" );
|
||||
KIFONT::FONT* font = KIFONT::FONT::GetFont( cfg->m_Appearance.default_font );
|
||||
EESCHEMA_SETTINGS* cfg = GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" );
|
||||
KIFONT::FONT* font = KIFONT::FONT::GetFont( cfg ? cfg->m_Appearance.default_font : wxString( "" ) );
|
||||
const KIFONT::METRICS& metrics = m_pin.GetFontMetrics();
|
||||
|
||||
// Due to the fact a shadow text in position INSIDE or OUTSIDE is drawn left or right aligned,
|
||||
@ -156,15 +154,13 @@ void PIN_LAYOUT_CACHE::recomputeCaches()
|
||||
{
|
||||
const bool dirty = isDirty( DIRTY_FLAGS::NUMBER );
|
||||
const wxString number = m_pin.GetShownNumber();
|
||||
recomputeExtentsCache( dirty, font, m_pin.GetNumberTextSize(), number, metrics,
|
||||
m_numExtentsCache );
|
||||
recomputeExtentsCache( dirty, font, m_pin.GetNumberTextSize(), number, metrics, m_numExtentsCache );
|
||||
}
|
||||
|
||||
{
|
||||
const bool dirty = isDirty( DIRTY_FLAGS::NAME );
|
||||
const wxString name = m_pin.GetShownName();
|
||||
recomputeExtentsCache( dirty, font, m_pin.GetNameTextSize(), name, metrics,
|
||||
m_nameExtentsCache );
|
||||
recomputeExtentsCache( dirty, font, m_pin.GetNameTextSize(), name, metrics, m_nameExtentsCache );
|
||||
}
|
||||
|
||||
{
|
||||
|
@ -139,17 +139,18 @@ bool SCH_PRINTOUT::PrintPage( SCH_SCREEN* aScreen, wxDC* aDC, bool aForPrinting
|
||||
|
||||
painter->SetSchematic( &m_parent->Schematic() );
|
||||
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
EESCHEMA_SETTINGS* cfg = m_parent->eeconfig();
|
||||
COLOR_SETTINGS* theme = mgr.GetColorSettings( cfg->m_Printing.color_theme );
|
||||
SCH_SELECTION_TOOL* selTool = m_parent->GetToolManager()->GetTool<SCH_SELECTION_TOOL>();
|
||||
EESCHEMA_SETTINGS* cfg = m_parent->eeconfig();
|
||||
COLOR_SETTINGS* cs = ::GetColorSettings( cfg ? cfg->m_Printing.color_theme : DEFAULT_THEME );
|
||||
SCH_SELECTION_TOOL* selTool = m_parent->GetToolManager()->GetTool<SCH_SELECTION_TOOL>();
|
||||
|
||||
// Target paper size
|
||||
wxRect pageSizePix;
|
||||
wxSize dcPPI = dc->GetPPI();
|
||||
|
||||
if( aForPrinting )
|
||||
{
|
||||
pageSizePix = GetLogicalPageRect();
|
||||
}
|
||||
else
|
||||
{
|
||||
dc->SetUserScale( 1, 1 );
|
||||
@ -188,17 +189,17 @@ bool SCH_PRINTOUT::PrintPage( SCH_SCREEN* aScreen, wxDC* aDC, bool aForPrinting
|
||||
// Set the color scheme
|
||||
dstSettings->LoadColors( m_parent->GetColorSettings( false ) );
|
||||
|
||||
if( cfg->m_Printing.use_theme && theme )
|
||||
dstSettings->LoadColors( theme );
|
||||
if( cfg && cfg->m_Printing.use_theme )
|
||||
dstSettings->LoadColors( cs );
|
||||
|
||||
bool printDrawingSheet = cfg->m_Printing.title_block;
|
||||
bool printDrawingSheet = cfg ? cfg->m_Printing.title_block : true;
|
||||
|
||||
COLOR4D bgColor = m_parent->GetColorSettings()->GetColor( LAYER_SCHEMATIC_BACKGROUND );
|
||||
|
||||
if( cfg->m_Printing.background )
|
||||
if( cfg && cfg->m_Printing.background )
|
||||
{
|
||||
if( cfg->m_Printing.use_theme && theme )
|
||||
bgColor = theme->GetColor( LAYER_SCHEMATIC_BACKGROUND );
|
||||
if( cfg->m_Printing.use_theme )
|
||||
bgColor = cs->GetColor( LAYER_SCHEMATIC_BACKGROUND );
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -212,9 +213,9 @@ bool SCH_PRINTOUT::PrintPage( SCH_SCREEN* aScreen, wxDC* aDC, bool aForPrinting
|
||||
dstSettings->SetLayerColor( LAYER_DRAWINGSHEET,
|
||||
dstSettings->GetLayerColor( LAYER_SCHEMATIC_DRAWINGSHEET ) );
|
||||
|
||||
dstSettings->SetDefaultFont( cfg->m_Appearance.default_font );
|
||||
dstSettings->SetDefaultFont( cfg ? cfg->m_Appearance.default_font : wxString( "" ) );
|
||||
|
||||
if( cfg->m_Printing.monochrome )
|
||||
if( cfg && cfg->m_Printing.monochrome )
|
||||
{
|
||||
for( int i = 0; i < LAYER_ID_COUNT; ++i )
|
||||
dstSettings->SetLayerColor( i, COLOR4D::BLACK );
|
||||
|
@ -152,12 +152,12 @@ APP_SETTINGS_BASE* SCH_BASE_FRAME::GetViewerSettingsBase() const
|
||||
{
|
||||
case FRAME_SCH:
|
||||
default:
|
||||
return Pgm().GetSettingsManager().GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" );
|
||||
return GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" );
|
||||
|
||||
case FRAME_SCH_SYMBOL_EDITOR:
|
||||
case FRAME_SCH_VIEWER:
|
||||
case FRAME_SYMBOL_CHOOSER:
|
||||
return Pgm().GetSettingsManager().GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" );
|
||||
return GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" );
|
||||
}
|
||||
}
|
||||
|
||||
@ -561,22 +561,19 @@ 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" );
|
||||
wxString colorTheme = cfg->m_ColorTheme;
|
||||
EESCHEMA_SETTINGS* cfg = GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" );
|
||||
wxString colorTheme = cfg ? cfg->m_ColorTheme : wxString( "" );
|
||||
|
||||
if( IsType( FRAME_SCH_SYMBOL_EDITOR ) )
|
||||
{
|
||||
SYMBOL_EDITOR_SETTINGS* symCfg =
|
||||
mgr.GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" );
|
||||
|
||||
if( !symCfg->m_UseEeschemaColorSettings )
|
||||
colorTheme = symCfg->m_ColorTheme;
|
||||
if( SYMBOL_EDITOR_SETTINGS* sym_edit_cfg = GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" ) )
|
||||
{
|
||||
if( !sym_edit_cfg->m_UseEeschemaColorSettings )
|
||||
colorTheme = sym_edit_cfg->m_ColorTheme;
|
||||
}
|
||||
}
|
||||
|
||||
COLOR_SETTINGS* colorSettings = mgr.GetColorSettings( colorTheme );
|
||||
|
||||
const_cast<SCH_BASE_FRAME*>( this )->m_colorSettings = colorSettings;
|
||||
const_cast<SCH_BASE_FRAME*>( this )->m_colorSettings = ::GetColorSettings( colorTheme );
|
||||
}
|
||||
|
||||
return m_colorSettings;
|
||||
|
@ -63,12 +63,10 @@ SCH_DRAW_PANEL::SCH_DRAW_PANEL( wxWindow* aParentWindow, wxWindowID aWindowId,
|
||||
|
||||
m_painter.reset( new KIGFX::SCH_PAINTER( m_gal ) );
|
||||
|
||||
COLOR_SETTINGS* cs = nullptr;
|
||||
COLOR_SETTINGS* cs = ::GetColorSettings( DEFAULT_THEME );
|
||||
|
||||
if( auto frame = dynamic_cast<SCH_BASE_FRAME*>( GetParentEDAFrame() ) )
|
||||
if( SCH_BASE_FRAME* frame = dynamic_cast<SCH_BASE_FRAME*>( GetParentEDAFrame() ) )
|
||||
cs = frame->GetColorSettings();
|
||||
else
|
||||
cs = Pgm().GetSettingsManager().GetColorSettings();
|
||||
|
||||
wxASSERT( cs );
|
||||
m_painter->GetSettings()->LoadColors( cs );
|
||||
|
@ -193,7 +193,7 @@ SCH_EDIT_FRAME::SCH_EDIT_FRAME( KIWAY* aKiway, wxWindow* aParent ) :
|
||||
setupUIConditions();
|
||||
ReCreateMenuBar();
|
||||
|
||||
m_toolbarSettings = Pgm().GetSettingsManager().GetToolbarSettings<SCH_EDIT_TOOLBAR_SETTINGS>( "eeschema-toolbars" );
|
||||
m_toolbarSettings = GetToolbarSettings<SCH_EDIT_TOOLBAR_SETTINGS>( "eeschema-toolbars" );
|
||||
configureToolbars();
|
||||
RecreateToolbars();
|
||||
|
||||
@ -1906,24 +1906,25 @@ void SCH_EDIT_FRAME::CommonSettingsChanged( int aFlags )
|
||||
|
||||
ShowAllIntersheetRefs( settings.m_IntersheetRefsShow );
|
||||
|
||||
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 );
|
||||
if( EESCHEMA_SETTINGS* cfg = GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ) )
|
||||
{
|
||||
GetGalDisplayOptions().ReadWindowSettings( cfg->m_Window );
|
||||
GetRenderSettings()->SetDefaultFont( cfg->m_Appearance.default_font );
|
||||
|
||||
KIGFX::VIEW* view = GetCanvas()->GetView();
|
||||
view->SetLayerVisible( LAYER_ERC_ERR, cfg->m_Appearance.show_erc_errors );
|
||||
view->SetLayerVisible( LAYER_ERC_WARN, cfg->m_Appearance.show_erc_warnings );
|
||||
view->SetLayerVisible( LAYER_ERC_EXCLUSION, cfg->m_Appearance.show_erc_exclusions );
|
||||
view->SetLayerVisible( LAYER_OP_VOLTAGES, cfg->m_Appearance.show_op_voltages );
|
||||
view->SetLayerVisible( LAYER_OP_CURRENTS, cfg->m_Appearance.show_op_currents );
|
||||
KIGFX::VIEW* view = GetCanvas()->GetView();
|
||||
view->SetLayerVisible( LAYER_ERC_ERR, cfg->m_Appearance.show_erc_errors );
|
||||
view->SetLayerVisible( LAYER_ERC_WARN, cfg->m_Appearance.show_erc_warnings );
|
||||
view->SetLayerVisible( LAYER_ERC_EXCLUSION, cfg->m_Appearance.show_erc_exclusions );
|
||||
view->SetLayerVisible( LAYER_OP_VOLTAGES, cfg->m_Appearance.show_op_voltages );
|
||||
view->SetLayerVisible( LAYER_OP_CURRENTS, cfg->m_Appearance.show_op_currents );
|
||||
|
||||
RefreshOperatingPointDisplay();
|
||||
RefreshOperatingPointDisplay();
|
||||
|
||||
settings.m_TemplateFieldNames.DeleteAllFieldNameTemplates( true /* global */ );
|
||||
settings.m_TemplateFieldNames.DeleteAllFieldNameTemplates( true /* global */ );
|
||||
|
||||
if( !cfg->m_Drawing.field_names.IsEmpty() )
|
||||
settings.m_TemplateFieldNames.AddTemplateFieldNames( cfg->m_Drawing.field_names );
|
||||
if( !cfg->m_Drawing.field_names.IsEmpty() )
|
||||
settings.m_TemplateFieldNames.AddTemplateFieldNames( cfg->m_Drawing.field_names );
|
||||
}
|
||||
|
||||
SCH_SCREEN* screen = GetCurrentSheet().LastScreen();
|
||||
|
||||
|
@ -29,19 +29,13 @@
|
||||
#include <sch_connection.h>
|
||||
#include <sch_group.h>
|
||||
#include <sch_rule_area.h>
|
||||
#include <sch_item.h>
|
||||
#include <sch_screen.h>
|
||||
#include <sch_sheet_path.h>
|
||||
#include <sch_draw_panel.h>
|
||||
#include <sch_edit_frame.h>
|
||||
#include <schematic.h>
|
||||
#include <symbol.h>
|
||||
#include <connection_graph.h>
|
||||
#include <trace_helpers.h>
|
||||
#include <general.h>
|
||||
#include <netclass.h>
|
||||
#include <project/project_file.h>
|
||||
#include <project/net_settings.h>
|
||||
#include <font/kicad_font_name.h>
|
||||
|
||||
|
||||
// Rendering fonts is expensive (particularly when using outline fonts). At small effective
|
||||
@ -576,10 +570,11 @@ int SCH_ITEM::compare( const SCH_ITEM& aOther, int aCompareFlags ) const
|
||||
|
||||
const wxString& SCH_ITEM::GetDefaultFont() const
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" );
|
||||
static wxString defaultName = KICAD_FONT_NAME;
|
||||
|
||||
return cfg->m_Appearance.default_font;
|
||||
EESCHEMA_SETTINGS* cfg = GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" );
|
||||
|
||||
return cfg ? cfg->m_Appearance.default_font : defaultName;
|
||||
}
|
||||
|
||||
|
||||
|
@ -328,8 +328,7 @@ SCH_LAYER_ID SCH_MARKER::GetColorLayer() const
|
||||
|
||||
KIGFX::COLOR4D SCH_MARKER::getColor() const
|
||||
{
|
||||
COLOR_SETTINGS* colors = Pgm().GetSettingsManager().GetColorSettings();
|
||||
return colors->GetColor( GetColorLayer() );
|
||||
return ::GetColorSettings( DEFAULT_THEME )->GetColor( GetColorLayer() );
|
||||
}
|
||||
|
||||
|
||||
|
@ -101,32 +101,22 @@ SCH_PIN::SCH_PIN( LIB_SYMBOL* aParentSymbol ) :
|
||||
SCH_ITEM( aParentSymbol, SCH_PIN_T, 0, 0 ),
|
||||
m_libPin( nullptr ),
|
||||
m_position( { 0, 0 } ),
|
||||
m_length( schIUScale.MilsToIU( DEFAULT_PIN_LENGTH ) ),
|
||||
m_orientation( PIN_ORIENTATION::PIN_RIGHT ),
|
||||
m_shape( GRAPHIC_PINSHAPE::LINE ),
|
||||
m_type( ELECTRICAL_PINTYPE::PT_UNSPECIFIED ),
|
||||
m_hidden( false ),
|
||||
m_numTextSize( schIUScale.MilsToIU( DEFAULT_PINNUM_SIZE ) ),
|
||||
m_nameTextSize( schIUScale.MilsToIU( DEFAULT_PINNAME_SIZE ) ),
|
||||
m_isDangling( true ),
|
||||
m_layoutCache( std::make_unique<PIN_LAYOUT_CACHE>( *this ) )
|
||||
{
|
||||
// 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();
|
||||
|
||||
if( pgm )
|
||||
if( SYMBOL_EDITOR_SETTINGS* cfg = GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" ) )
|
||||
{
|
||||
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.
|
||||
{
|
||||
m_length = schIUScale.MilsToIU( DEFAULT_PIN_LENGTH );
|
||||
m_numTextSize = schIUScale.MilsToIU( DEFAULT_PINNUM_SIZE );
|
||||
m_nameTextSize = schIUScale.MilsToIU( DEFAULT_PINNAME_SIZE );
|
||||
}
|
||||
|
||||
m_layer = LAYER_DEVICE;
|
||||
}
|
||||
|
@ -881,9 +881,7 @@ wxFileName SCH_PLOTTER::createPlotFileName( const SCH_PLOT_OPTS& aPlotOpts,
|
||||
void SCH_PLOTTER::Plot( PLOT_FORMAT aPlotFormat, const SCH_PLOT_OPTS& aPlotOpts,
|
||||
SCH_RENDER_SETTINGS* aRenderSettings, REPORTER* aReporter )
|
||||
{
|
||||
SETTINGS_MANAGER& settingsMgr = Pgm().GetSettingsManager();
|
||||
|
||||
m_colorSettings = settingsMgr.GetColorSettings( aPlotOpts.m_theme );
|
||||
m_colorSettings = ::GetColorSettings( aPlotOpts.m_theme );
|
||||
|
||||
switch( aPlotFormat )
|
||||
{
|
||||
|
@ -55,7 +55,7 @@ SCH_PREVIEW_PANEL::SCH_PREVIEW_PANEL( wxWindow* aParentWindow, wxWindowID aWindo
|
||||
m_painter.reset( new KIGFX::SCH_PAINTER( m_gal ) );
|
||||
|
||||
SCH_RENDER_SETTINGS* renderSettings = GetRenderSettings();
|
||||
renderSettings->LoadColors( Pgm().GetSettingsManager().GetColorSettings() );
|
||||
renderSettings->LoadColors( ::GetColorSettings( DEFAULT_THEME ) );
|
||||
renderSettings->m_ShowPinsElectricalType = false;
|
||||
renderSettings->m_ShowPinNumbers = false;
|
||||
renderSettings->m_TextOffsetRatio = 0.35;
|
||||
|
@ -1263,7 +1263,7 @@ void SCH_SHEET::Plot( PLOTTER* aPlotter, bool aBackground, const SCH_PLOT_OPTS&
|
||||
|
||||
if( GetDNP() )
|
||||
{
|
||||
COLOR_SETTINGS* colors = Pgm().GetSettingsManager().GetColorSettings();
|
||||
COLOR_SETTINGS* colors = ::GetColorSettings( DEFAULT_THEME );
|
||||
BOX2I bbox = GetBodyBoundingBox();
|
||||
BOX2I pins = GetBoundingBox();
|
||||
VECTOR2D margins( std::max( bbox.GetX() - pins.GetX(),
|
||||
|
@ -67,8 +67,7 @@ SCHEMATIC_SETTINGS::SCHEMATIC_SETTINGS( JSON_SETTINGS* aParent, const std::strin
|
||||
m_MaxError( ARC_LOW_DEF_MM * schIUScale.IU_PER_MM ),
|
||||
m_NgspiceSettings( nullptr )
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" );
|
||||
EESCHEMA_SETTINGS* cfg = GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" );
|
||||
|
||||
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;
|
||||
@ -186,12 +185,11 @@ SCHEMATIC_SETTINGS::SCHEMATIC_SETTINGS( JSON_SETTINGS* aParent, const std::strin
|
||||
}
|
||||
|
||||
// Read global fieldname templates
|
||||
SETTINGS_MANAGER& curr_mgr = Pgm().GetSettingsManager();
|
||||
EESCHEMA_SETTINGS* curr_cfg =
|
||||
curr_mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" );
|
||||
|
||||
if( curr_cfg && !curr_cfg->m_Drawing.field_names.IsEmpty() )
|
||||
m_TemplateFieldNames.AddTemplateFieldNames( curr_cfg->m_Drawing.field_names );
|
||||
if( EESCHEMA_SETTINGS* curr_cfg = GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ) )
|
||||
{
|
||||
if( !curr_cfg->m_Drawing.field_names.IsEmpty() )
|
||||
m_TemplateFieldNames.AddTemplateFieldNames( curr_cfg->m_Drawing.field_names );
|
||||
}
|
||||
}, {} ) );
|
||||
|
||||
m_params.emplace_back( new PARAM<wxString>( "bom_export_filename",
|
||||
|
@ -172,7 +172,7 @@ SIMULATOR_FRAME::SIMULATOR_FRAME( KIWAY* aKiway, wxWindow* aParent ) :
|
||||
// was created.
|
||||
m_tbTopMain->SetToolManager( m_toolManager );
|
||||
|
||||
m_toolbarSettings = Pgm().GetSettingsManager().GetToolbarSettings<SIMULATOR_TOOLBAR_SETTINGS>( "sim-toolbars" );
|
||||
m_toolbarSettings = GetToolbarSettings<SIMULATOR_TOOLBAR_SETTINGS>( "sim-toolbars" );
|
||||
configureToolbars();
|
||||
RecreateToolbars();
|
||||
ReCreateMenuBar();
|
||||
@ -290,18 +290,17 @@ void SIMULATOR_FRAME::CommonSettingsChanged( int aFlags )
|
||||
{
|
||||
KIWAY_PLAYER::CommonSettingsChanged( aFlags );
|
||||
|
||||
auto* cfg = dynamic_cast<EESCHEMA_SETTINGS*>( m_toolManager->GetSettings() );
|
||||
wxASSERT( cfg != nullptr );
|
||||
m_ui->ApplyPreferences( cfg->m_Simulator.preferences );
|
||||
if( EESCHEMA_SETTINGS* cfg = GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ) )
|
||||
m_ui->ApplyPreferences( cfg->m_Simulator.preferences );
|
||||
}
|
||||
|
||||
|
||||
WINDOW_SETTINGS* SIMULATOR_FRAME::GetWindowSettings( APP_SETTINGS_BASE* aCfg )
|
||||
{
|
||||
EESCHEMA_SETTINGS* cfg = dynamic_cast<EESCHEMA_SETTINGS*>( aCfg );
|
||||
wxASSERT( cfg );
|
||||
if( EESCHEMA_SETTINGS* cfg = GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ) )
|
||||
return &cfg->m_Simulator.window;
|
||||
|
||||
return cfg ? &cfg->m_Simulator.window : nullptr;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
|
||||
|
@ -138,7 +138,7 @@ SYMBOL_EDIT_FRAME::SYMBOL_EDIT_FRAME( KIWAY* aKiway, wxWindow* aParent ) :
|
||||
|
||||
SetIcons( icon_bundle );
|
||||
|
||||
m_settings = Pgm().GetSettingsManager().GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" );
|
||||
m_settings = GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" );
|
||||
LoadSettings( m_settings );
|
||||
|
||||
m_libMgr = new LIB_SYMBOL_LIBRARY_MANAGER( *this );
|
||||
@ -181,7 +181,7 @@ SYMBOL_EDIT_FRAME::SYMBOL_EDIT_FRAME( KIWAY* aKiway, wxWindow* aParent ) :
|
||||
|
||||
ReCreateMenuBar();
|
||||
|
||||
m_toolbarSettings = Pgm().GetSettingsManager().GetToolbarSettings<SYMBOL_EDIT_TOOLBAR_SETTINGS>( "symbol_editor-toolbars" );
|
||||
m_toolbarSettings = GetToolbarSettings<SYMBOL_EDIT_TOOLBAR_SETTINGS>( "symbol_editor-toolbars" );
|
||||
configureToolbars();
|
||||
RecreateToolbars();
|
||||
|
||||
@ -304,11 +304,8 @@ SYMBOL_EDIT_FRAME::~SYMBOL_EDIT_FRAME()
|
||||
// current screen is destroyed in EDA_DRAW_FRAME
|
||||
SetScreen( m_dummyScreen );
|
||||
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
SYMBOL_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" );
|
||||
|
||||
if( cfg )
|
||||
mgr.Save( cfg );
|
||||
if( SYMBOL_EDITOR_SETTINGS* cfg = GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" ) )
|
||||
Pgm().GetSettingsManager().Save( cfg );
|
||||
|
||||
delete m_libMgr;
|
||||
}
|
||||
@ -362,12 +359,12 @@ APP_SETTINGS_BASE* SYMBOL_EDIT_FRAME::config() const
|
||||
|
||||
COLOR_SETTINGS* SYMBOL_EDIT_FRAME::GetColorSettings( bool aForceRefresh ) const
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
APP_SETTINGS_BASE* cfg = GetSettings();
|
||||
|
||||
if( GetSettings()->m_UseEeschemaColorSettings )
|
||||
return mgr.GetColorSettings( mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" )->m_ColorTheme );
|
||||
else
|
||||
return mgr.GetColorSettings( GetSettings()->m_ColorTheme );
|
||||
if( cfg && static_cast<SYMBOL_EDITOR_SETTINGS*>( cfg )->m_UseEeschemaColorSettings )
|
||||
cfg = GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" );
|
||||
|
||||
return ::GetColorSettings( cfg ? cfg->m_ColorTheme : DEFAULT_THEME );
|
||||
}
|
||||
|
||||
|
||||
@ -1367,15 +1364,15 @@ void SYMBOL_EDIT_FRAME::CommonSettingsChanged( int aFlags )
|
||||
{
|
||||
SCH_BASE_FRAME::CommonSettingsChanged( aFlags );
|
||||
|
||||
SETTINGS_MANAGER* mgr = GetSettingsManager();
|
||||
SYMBOL_EDITOR_SETTINGS* cfg = mgr->GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" );
|
||||
if( SYMBOL_EDITOR_SETTINGS* cfg = GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" ) )
|
||||
{
|
||||
GetRenderSettings()->m_ShowPinsElectricalType = cfg->m_ShowPinElectricalType;
|
||||
GetRenderSettings()->m_ShowHiddenPins = cfg->m_ShowHiddenPins;
|
||||
GetRenderSettings()->m_ShowHiddenFields = cfg->m_ShowHiddenFields;
|
||||
GetRenderSettings()->m_ShowPinAltIcons = cfg->m_ShowPinAltIcons;
|
||||
|
||||
GetRenderSettings()->m_ShowPinsElectricalType = cfg->m_ShowPinElectricalType;
|
||||
GetRenderSettings()->m_ShowHiddenPins = cfg->m_ShowHiddenPins;
|
||||
GetRenderSettings()->m_ShowHiddenFields = cfg->m_ShowHiddenFields;
|
||||
GetRenderSettings()->m_ShowPinAltIcons = cfg->m_ShowPinAltIcons;
|
||||
|
||||
GetGalDisplayOptions().ReadWindowSettings( cfg->m_Window );
|
||||
GetGalDisplayOptions().ReadWindowSettings( cfg->m_Window );
|
||||
}
|
||||
|
||||
if( m_symbol )
|
||||
m_symbol->ClearCaches();
|
||||
|
@ -661,18 +661,14 @@ 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" );
|
||||
|
||||
wxCHECK( settings, false );
|
||||
|
||||
wxString packagesPath;
|
||||
KICAD_SETTINGS* cfg = GetAppSettings<KICAD_SETTINGS>( "kicad" );
|
||||
wxString packagesPath;
|
||||
const ENV_VAR_MAP& vars = Pgm().GetLocalEnvVariables();
|
||||
|
||||
if( std::optional<wxString> v = ENV_VAR::GetVersionedEnvVarValue( vars, wxT( "3RD_PARTY" ) ) )
|
||||
packagesPath = *v;
|
||||
|
||||
if( settings->m_PcmLibAutoAdd )
|
||||
if( cfg && cfg->m_PcmLibAutoAdd )
|
||||
{
|
||||
// Scan for libraries in PCM packages directory
|
||||
wxFileName d( packagesPath, "" );
|
||||
@ -680,14 +676,14 @@ bool SYMBOL_LIB_TABLE::LoadGlobalTable( SYMBOL_LIB_TABLE& aTable )
|
||||
|
||||
if( d.DirExists() )
|
||||
{
|
||||
PCM_SYM_LIB_TRAVERSER traverser( packagesPath, aTable, settings->m_PcmLibPrefix );
|
||||
PCM_SYM_LIB_TRAVERSER traverser( packagesPath, aTable, cfg->m_PcmLibPrefix );
|
||||
wxDir dir( d.GetPath() );
|
||||
|
||||
dir.Traverse( traverser );
|
||||
}
|
||||
}
|
||||
|
||||
if( settings->m_PcmLibAutoRemove )
|
||||
if( cfg && cfg->m_PcmLibAutoRemove )
|
||||
{
|
||||
// Remove PCM libraries that no longer exist
|
||||
std::vector<wxString> to_remove;
|
||||
|
@ -143,7 +143,7 @@ SYMBOL_VIEWER_FRAME::SYMBOL_VIEWER_FRAME( KIWAY* aKiway, wxWindow* aParent ) :
|
||||
setupTools();
|
||||
setupUIConditions();
|
||||
|
||||
m_toolbarSettings = Pgm().GetSettingsManager().GetToolbarSettings<SYMBOL_VIEWER_TOOLBAR_SETTINGS>( "symbol_viewer-toolbars" );
|
||||
m_toolbarSettings = GetToolbarSettings<SYMBOL_VIEWER_TOOLBAR_SETTINGS>( "symbol_viewer-toolbars" );
|
||||
configureToolbars();
|
||||
RecreateToolbars();
|
||||
|
||||
@ -850,50 +850,50 @@ void SYMBOL_VIEWER_FRAME::DClickOnSymbolList( wxCommandEvent& event )
|
||||
|
||||
void SYMBOL_VIEWER_FRAME::LoadSettings( APP_SETTINGS_BASE* aCfg )
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" );
|
||||
SCH_BASE_FRAME::LoadSettings( GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ) );
|
||||
|
||||
SCH_BASE_FRAME::LoadSettings( cfg );
|
||||
|
||||
// Grid shape, etc.
|
||||
GetGalDisplayOptions().ReadWindowSettings( cfg->m_LibViewPanel.window );
|
||||
|
||||
m_libListWidth = cfg->m_LibViewPanel.lib_list_width;
|
||||
m_symbolListWidth = cfg->m_LibViewPanel.cmp_list_width;
|
||||
|
||||
GetRenderSettings()->m_ShowPinsElectricalType = cfg->m_LibViewPanel.show_pin_electrical_type;
|
||||
GetRenderSettings()->m_ShowPinNumbers = cfg->m_LibViewPanel.show_pin_numbers;
|
||||
|
||||
// Set parameters to a reasonable value.
|
||||
int maxWidth = cfg->m_LibViewPanel.window.state.size_x - 80;
|
||||
|
||||
if( m_libListWidth + m_symbolListWidth > maxWidth )
|
||||
if( EESCHEMA_SETTINGS* cfg = GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ) )
|
||||
{
|
||||
m_libListWidth = maxWidth * ( m_libListWidth / ( m_libListWidth + m_symbolListWidth ) );
|
||||
m_symbolListWidth = maxWidth - m_libListWidth;
|
||||
// Grid shape, etc.
|
||||
GetGalDisplayOptions().ReadWindowSettings( cfg->m_LibViewPanel.window );
|
||||
|
||||
m_libListWidth = cfg->m_LibViewPanel.lib_list_width;
|
||||
m_symbolListWidth = cfg->m_LibViewPanel.cmp_list_width;
|
||||
|
||||
GetRenderSettings()->m_ShowPinsElectricalType = cfg->m_LibViewPanel.show_pin_electrical_type;
|
||||
GetRenderSettings()->m_ShowPinNumbers = cfg->m_LibViewPanel.show_pin_numbers;
|
||||
|
||||
// Set parameters to a reasonable value.
|
||||
int maxWidth = cfg->m_LibViewPanel.window.state.size_x - 80;
|
||||
|
||||
if( m_libListWidth + m_symbolListWidth > maxWidth )
|
||||
{
|
||||
m_libListWidth = maxWidth * ( m_libListWidth / ( m_libListWidth + m_symbolListWidth ) );
|
||||
m_symbolListWidth = maxWidth - m_libListWidth;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void SYMBOL_VIEWER_FRAME::SaveSettings( APP_SETTINGS_BASE* aCfg)
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" );
|
||||
|
||||
SCH_BASE_FRAME::SaveSettings( cfg );
|
||||
SCH_BASE_FRAME::SaveSettings( GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ) );
|
||||
|
||||
if( m_libListWidth && m_libList )
|
||||
m_libListWidth = m_libList->GetSize().x;
|
||||
|
||||
m_symbolListWidth = m_symbolList->GetSize().x;
|
||||
|
||||
cfg->m_LibViewPanel.lib_list_width = m_libListWidth;
|
||||
cfg->m_LibViewPanel.cmp_list_width = m_symbolListWidth;
|
||||
|
||||
if( SCH_RENDER_SETTINGS* renderSettings = GetRenderSettings() )
|
||||
if( EESCHEMA_SETTINGS* cfg = GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ) )
|
||||
{
|
||||
cfg->m_LibViewPanel.show_pin_electrical_type = renderSettings->m_ShowPinsElectricalType;
|
||||
cfg->m_LibViewPanel.show_pin_numbers = renderSettings->m_ShowPinNumbers;
|
||||
cfg->m_LibViewPanel.lib_list_width = m_libListWidth;
|
||||
cfg->m_LibViewPanel.cmp_list_width = m_symbolListWidth;
|
||||
|
||||
if( SCH_RENDER_SETTINGS* renderSettings = GetRenderSettings() )
|
||||
{
|
||||
cfg->m_LibViewPanel.show_pin_electrical_type = renderSettings->m_ShowPinsElectricalType;
|
||||
cfg->m_LibViewPanel.show_pin_numbers = renderSettings->m_ShowPinNumbers;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -910,9 +910,8 @@ void SYMBOL_VIEWER_FRAME::CommonSettingsChanged( int aFlags )
|
||||
{
|
||||
SCH_BASE_FRAME::CommonSettingsChanged( aFlags );
|
||||
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" );
|
||||
GetGalDisplayOptions().ReadWindowSettings( cfg->m_LibViewPanel.window );
|
||||
if( EESCHEMA_SETTINGS* cfg = GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ) )
|
||||
GetGalDisplayOptions().ReadWindowSettings( cfg->m_LibViewPanel.window );
|
||||
|
||||
GetCanvas()->GetGAL()->SetAxesColor( m_colorSettings->GetColor( LAYER_SCHEMATIC_GRID_AXES ) );
|
||||
GetCanvas()->GetGAL()->DrawGrid();
|
||||
|
@ -1517,10 +1517,8 @@ int SCH_EDIT_TOOL::RepeatDrawItem( const TOOL_EVENT& aEvent )
|
||||
|
||||
for( const std::unique_ptr<SCH_ITEM>& item : sourceItems )
|
||||
{
|
||||
SCH_ITEM* newItem = item->Duplicate( IGNORE_PARENT_GROUP );
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" );
|
||||
bool restore_state = false;
|
||||
SCH_ITEM* newItem = item->Duplicate( IGNORE_PARENT_GROUP );
|
||||
bool restore_state = false;
|
||||
|
||||
// Ensure newItem has a suitable parent: the current screen, because an item from
|
||||
// a list of items to repeat must be attached to this current screen
|
||||
@ -1538,9 +1536,11 @@ int SCH_EDIT_TOOL::RepeatDrawItem( const TOOL_EVENT& aEvent )
|
||||
if( SCH_LABEL_BASE* label = dynamic_cast<SCH_LABEL_BASE*>( newItem ) )
|
||||
{
|
||||
// If incrementing tries to go below zero, tell user why the value is repeated
|
||||
|
||||
if( !label->IncrementLabel( cfg->m_Drawing.repeat_label_increment ) )
|
||||
m_frame->ShowInfoBarWarning( _( "Label value cannot go below zero" ), true );
|
||||
if( EESCHEMA_SETTINGS* cfg = GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ) )
|
||||
{
|
||||
if( !label->IncrementLabel( cfg->m_Drawing.repeat_label_increment ) )
|
||||
m_frame->ShowInfoBarWarning( _( "Label value cannot go below zero" ), true );
|
||||
}
|
||||
}
|
||||
|
||||
// If cloning a symbol then put into 'move' mode.
|
||||
@ -1549,7 +1549,7 @@ int SCH_EDIT_TOOL::RepeatDrawItem( const TOOL_EVENT& aEvent )
|
||||
VECTOR2I cursorPos = getViewControls()->GetCursorPosition( true );
|
||||
newItem->Move( cursorPos - newItem->GetPosition() );
|
||||
}
|
||||
else
|
||||
else if( EESCHEMA_SETTINGS* cfg = GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ) )
|
||||
{
|
||||
newItem->Move( VECTOR2I( schIUScale.MilsToIU( cfg->m_Drawing.default_repeat_offset_x ),
|
||||
schIUScale.MilsToIU( cfg->m_Drawing.default_repeat_offset_y ) ) );
|
||||
@ -1621,7 +1621,6 @@ int SCH_EDIT_TOOL::RepeatDrawItem( const TOOL_EVENT& aEvent )
|
||||
m_frame->Schematic().CleanUp( &commit );
|
||||
commit.Push( _( "Repeat Item" ) );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if( !newItems.Empty() )
|
||||
@ -2945,8 +2944,6 @@ int SCH_EDIT_TOOL::BreakWire( const TOOL_EVENT& aEvent )
|
||||
std::vector<SCH_LINE*> lines;
|
||||
|
||||
// Save the current orthogonal mode so we can restore it later
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" );
|
||||
static enum LINE_MODE lineMode = LINE_MODE::LINE_MODE_90;
|
||||
static bool lineModeChanged = false;
|
||||
|
||||
@ -2964,7 +2961,6 @@ int SCH_EDIT_TOOL::BreakWire( const TOOL_EVENT& aEvent )
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
for( EDA_ITEM* item : selection )
|
||||
{
|
||||
if( item->Type() == SCH_LINE_T )
|
||||
@ -3001,11 +2997,14 @@ int SCH_EDIT_TOOL::BreakWire( const TOOL_EVENT& aEvent )
|
||||
|
||||
if( !lines.empty() )
|
||||
{
|
||||
if( cfg->m_Drawing.line_mode != LINE_MODE::LINE_MODE_FREE )
|
||||
if( EESCHEMA_SETTINGS* cfg = GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ) )
|
||||
{
|
||||
lineMode = (enum LINE_MODE) cfg->m_Drawing.line_mode;
|
||||
lineModeChanged = true;
|
||||
m_toolMgr->RunAction( SCH_ACTIONS::lineModeFree );
|
||||
if( cfg->m_Drawing.line_mode != LINE_MODE::LINE_MODE_FREE )
|
||||
{
|
||||
lineMode = (enum LINE_MODE) cfg->m_Drawing.line_mode;
|
||||
lineModeChanged = true;
|
||||
m_toolMgr->RunAction( SCH_ACTIONS::lineModeFree );
|
||||
}
|
||||
}
|
||||
|
||||
m_frame->TestDanglingEnds();
|
||||
|
@ -405,11 +405,13 @@ int SCH_MOVE_TOOL::Main( const TOOL_EVENT& aEvent )
|
||||
|
||||
bool SCH_MOVE_TOOL::doMoveSelection( const TOOL_EVENT& aEvent, SCH_COMMIT* aCommit, bool aIsSlice )
|
||||
{
|
||||
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;
|
||||
bool isLineModeConstrained = false;
|
||||
|
||||
if( EESCHEMA_SETTINGS* cfg = GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ) )
|
||||
isLineModeConstrained = cfg->m_Drawing.line_mode != LINE_MODE::LINE_MODE_FREE;
|
||||
|
||||
m_anchorPos.reset();
|
||||
|
||||
@ -800,10 +802,8 @@ bool SCH_MOVE_TOOL::doMoveSelection( const TOOL_EVENT& aEvent, SCH_COMMIT* aComm
|
||||
|
||||
// Only partially selected drag lines in orthogonal line mode need special
|
||||
// handling
|
||||
if( m_isDrag
|
||||
&& cfg->m_Drawing.line_mode != LINE_MODE::LINE_MODE_FREE
|
||||
&& line
|
||||
&& line->HasFlag( STARTPOINT ) != line->HasFlag( ENDPOINT ) )
|
||||
if( m_isDrag && isLineModeConstrained
|
||||
&& line && line->HasFlag( STARTPOINT ) != line->HasFlag( ENDPOINT ) )
|
||||
{
|
||||
orthoLineDrag( aCommit, line, splitDelta, xBendCount, yBendCount, grid );
|
||||
}
|
||||
|
@ -82,11 +82,9 @@ bool SYMBOL_EDITOR_DRAWING_TOOLS::Init()
|
||||
int SYMBOL_EDITOR_DRAWING_TOOLS::TwoClickPlace( const TOOL_EVENT& aEvent )
|
||||
{
|
||||
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;
|
||||
SYMBOL_EDITOR_SETTINGS* cfg = 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;
|
||||
@ -236,8 +234,12 @@ int SYMBOL_EDITOR_DRAWING_TOOLS::TwoClickPlace( const TOOL_EVENT& aEvent )
|
||||
if( m_drawSpecificBodyStyle )
|
||||
text->SetBodyStyle( m_frame->GetBodyStyle() );
|
||||
|
||||
text->SetTextSize( VECTOR2I( schIUScale.MilsToIU( cfg->m_Defaults.text_size ),
|
||||
schIUScale.MilsToIU( cfg->m_Defaults.text_size ) ) );
|
||||
if( cfg )
|
||||
{
|
||||
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 );
|
||||
@ -367,8 +369,7 @@ 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& mgr = Pgm().GetSettingsManager();
|
||||
SYMBOL_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" );
|
||||
SYMBOL_EDITOR_SETTINGS* cfg = 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;
|
||||
@ -469,15 +470,19 @@ int SYMBOL_EDITOR_DRAWING_TOOLS::doDrawShape( const TOOL_EVENT& aEvent, std::opt
|
||||
|
||||
m_toolMgr->RunAction( ACTIONS::selectionClear );
|
||||
|
||||
int lineWidth = schIUScale.MilsToIU( cfg->m_Defaults.line_width );
|
||||
int lineWidth = schIUScale.MilsToIU( cfg ? cfg->m_Defaults.line_width : DEFAULT_LINE_WIDTH_MILS );
|
||||
|
||||
if( isTextBox )
|
||||
{
|
||||
SCH_TEXTBOX* textbox = new SCH_TEXTBOX( LAYER_DEVICE, lineWidth, m_lastFillStyle );
|
||||
|
||||
textbox->SetParent( symbol );
|
||||
textbox->SetTextSize( VECTOR2I( schIUScale.MilsToIU( cfg->m_Defaults.text_size ),
|
||||
schIUScale.MilsToIU( cfg->m_Defaults.text_size ) ) );
|
||||
|
||||
if( cfg )
|
||||
{
|
||||
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 );
|
||||
|
@ -51,10 +51,8 @@ static int GetLastPinLength()
|
||||
{
|
||||
if( g_LastPinLength == -1 )
|
||||
{
|
||||
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 );
|
||||
if( SYMBOL_EDITOR_SETTINGS* cfg = GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" ) )
|
||||
g_LastPinLength = schIUScale.MilsToIU( cfg->m_Defaults.pin_length );
|
||||
}
|
||||
|
||||
return g_LastPinLength;
|
||||
@ -64,10 +62,8 @@ static int GetLastPinNameSize()
|
||||
{
|
||||
if( g_LastPinNameSize == -1 )
|
||||
{
|
||||
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 );
|
||||
if( SYMBOL_EDITOR_SETTINGS* cfg = GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" ) )
|
||||
g_LastPinNameSize = schIUScale.MilsToIU( cfg->m_Defaults.pin_name_size );
|
||||
}
|
||||
|
||||
return g_LastPinNameSize;
|
||||
@ -77,10 +73,8 @@ static int GetLastPinNumSize()
|
||||
{
|
||||
if( g_LastPinNumSize == -1 )
|
||||
{
|
||||
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 );
|
||||
if( SYMBOL_EDITOR_SETTINGS* cfg = GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" ) )
|
||||
g_LastPinNumSize = schIUScale.MilsToIU( cfg->m_Defaults.pin_num_size );
|
||||
}
|
||||
|
||||
return g_LastPinNumSize;
|
||||
@ -423,33 +417,34 @@ SCH_PIN* SYMBOL_EDITOR_PIN_TOOL::RepeatPin( const SCH_PIN* aSourcePin )
|
||||
commit.Modify( symbol );
|
||||
|
||||
SCH_PIN* pin = static_cast<SCH_PIN*>( aSourcePin->Duplicate( true, &commit ) );
|
||||
VECTOR2I step;
|
||||
|
||||
pin->ClearFlags();
|
||||
pin->SetFlags( IS_NEW );
|
||||
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
SYMBOL_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" );
|
||||
|
||||
switch( pin->GetOrientation() )
|
||||
if( SYMBOL_EDITOR_SETTINGS* cfg = GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" ) )
|
||||
{
|
||||
default:
|
||||
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;
|
||||
VECTOR2I step;
|
||||
|
||||
switch( pin->GetOrientation() )
|
||||
{
|
||||
default:
|
||||
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, cfg->m_Repeat.label_delta );
|
||||
pin->SetName( nextName );
|
||||
|
||||
wxString nextNumber = pin->GetNumber();
|
||||
IncrementString( nextNumber, cfg->m_Repeat.label_delta );
|
||||
pin->SetNumber( nextNumber );
|
||||
}
|
||||
|
||||
pin->Move( step );
|
||||
|
||||
wxString nextName = pin->GetName();
|
||||
IncrementString( nextName, cfg->m_Repeat.label_delta );
|
||||
pin->SetName( nextName );
|
||||
|
||||
wxString nextNumber = pin->GetNumber();
|
||||
IncrementString( nextNumber, cfg->m_Repeat.label_delta );
|
||||
pin->SetNumber( nextNumber );
|
||||
|
||||
if( m_frame->SynchronizePins() )
|
||||
pin->SetFlags( IS_LINKED );
|
||||
|
||||
|
@ -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>( "eeschema" );
|
||||
Pgm().GetSettingsManager().GetAppSettings<SYMBOL_EDITOR_SETTINGS>( "symbol_editor" );
|
||||
GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" );
|
||||
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() );
|
||||
@ -388,19 +388,12 @@ void PANEL_SYMBOL_CHOOSER::OnChar( wxKeyEvent& aEvent )
|
||||
|
||||
wxPanel* PANEL_SYMBOL_CHOOSER::constructRightPanel( wxWindow* aParent )
|
||||
{
|
||||
EDA_DRAW_PANEL_GAL::GAL_TYPE backend;
|
||||
EDA_DRAW_PANEL_GAL::GAL_TYPE backend = EDA_DRAW_PANEL_GAL::GAL_TYPE::GAL_TYPE_OPENGL;
|
||||
|
||||
if( m_frame->GetCanvas() )
|
||||
{
|
||||
backend = m_frame->GetCanvas()->GetBackend();
|
||||
}
|
||||
else
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" );
|
||||
|
||||
else if( EESCHEMA_SETTINGS* cfg = GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ) )
|
||||
backend = (EDA_DRAW_PANEL_GAL::GAL_TYPE) cfg->m_Graphics.canvas_type;
|
||||
}
|
||||
|
||||
wxPanel* panel = new wxPanel( aParent );
|
||||
wxBoxSizer* sizer = new wxBoxSizer( wxVERTICAL );
|
||||
|
@ -50,11 +50,10 @@ SCH_DESIGN_BLOCK_PREVIEW_WIDGET::SCH_DESIGN_BLOCK_PREVIEW_WIDGET( wxWindow* aPar
|
||||
m_statusSizer( nullptr ),
|
||||
m_previewItem( nullptr )
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
COMMON_SETTINGS* common_settings = Pgm().GetCommonSettings();
|
||||
EESCHEMA_SETTINGS* app_settings = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" );
|
||||
EESCHEMA_SETTINGS* cfg = GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" );
|
||||
|
||||
m_galDisplayOptions.ReadConfig( *common_settings, app_settings->m_Window, this );
|
||||
m_galDisplayOptions.ReadConfig( *common_settings, cfg->m_Window, this );
|
||||
m_galDisplayOptions.m_forceDisplayCursor = false;
|
||||
|
||||
EDA_DRAW_PANEL_GAL::GAL_TYPE canvasType = aCanvasType;
|
||||
@ -82,8 +81,8 @@ SCH_DESIGN_BLOCK_PREVIEW_WIDGET::SCH_DESIGN_BLOCK_PREVIEW_WIDGET( wxWindow* aPar
|
||||
KIGFX::VIEW* view = m_preview->GetView();
|
||||
auto settings = static_cast<SCH_RENDER_SETTINGS*>( view->GetPainter()->GetSettings() );
|
||||
|
||||
if( auto* theme = Pgm().GetSettingsManager().GetColorSettings( app_settings->m_ColorTheme ) )
|
||||
settings->LoadColors( theme );
|
||||
if( COLOR_SETTINGS* cs = ::GetColorSettings( cfg ? cfg->m_ColorTheme : DEFAULT_THEME ) )
|
||||
settings->LoadColors( cs );
|
||||
|
||||
const COLOR4D& backgroundColor = settings->GetBackgroundColor();
|
||||
const COLOR4D& foregroundColor = settings->GetCursorColor();
|
||||
|
@ -45,9 +45,8 @@ SYMBOL_PREVIEW_WIDGET::SYMBOL_PREVIEW_WIDGET( wxWindow* aParent, KIWAY* aKiway,
|
||||
m_statusSizer( nullptr ),
|
||||
m_previewItem( nullptr )
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
COMMON_SETTINGS* common_settings = Pgm().GetCommonSettings();
|
||||
EESCHEMA_SETTINGS* app_settings = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" );
|
||||
EESCHEMA_SETTINGS* app_settings = GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" );
|
||||
|
||||
m_galDisplayOptions.ReadConfig( *common_settings, app_settings->m_Window, this );
|
||||
m_galDisplayOptions.m_forceDisplayCursor = false;
|
||||
@ -55,11 +54,8 @@ SYMBOL_PREVIEW_WIDGET::SYMBOL_PREVIEW_WIDGET( wxWindow* aParent, KIWAY* aKiway,
|
||||
EDA_DRAW_PANEL_GAL::GAL_TYPE canvasType = aCanvasType;
|
||||
|
||||
// Allows only a CAIRO or OPENGL canvas:
|
||||
if( canvasType != EDA_DRAW_PANEL_GAL::GAL_TYPE_OPENGL
|
||||
&& canvasType != EDA_DRAW_PANEL_GAL::GAL_FALLBACK )
|
||||
{
|
||||
if( canvasType != EDA_DRAW_PANEL_GAL::GAL_TYPE_OPENGL && canvasType != EDA_DRAW_PANEL_GAL::GAL_FALLBACK )
|
||||
canvasType = EDA_DRAW_PANEL_GAL::GAL_TYPE_OPENGL;
|
||||
}
|
||||
|
||||
m_preview = new SCH_PREVIEW_PANEL( this, wxID_ANY, wxDefaultPosition, wxSize( -1, -1 ),
|
||||
m_galDisplayOptions, canvasType );
|
||||
@ -78,8 +74,8 @@ SYMBOL_PREVIEW_WIDGET::SYMBOL_PREVIEW_WIDGET( wxWindow* aParent, KIWAY* aKiway,
|
||||
KIGFX::VIEW* view = m_preview->GetView();
|
||||
auto settings = static_cast<SCH_RENDER_SETTINGS*>( view->GetPainter()->GetSettings() );
|
||||
|
||||
if( auto* theme = Pgm().GetSettingsManager().GetColorSettings( app_settings->m_ColorTheme ) )
|
||||
settings->LoadColors( theme );
|
||||
if( COLOR_SETTINGS* cs = ::GetColorSettings( app_settings ? app_settings->m_ColorTheme : DEFAULT_THEME ) )
|
||||
settings->LoadColors( cs );
|
||||
|
||||
const COLOR4D& backgroundColor = settings->GetBackgroundColor();
|
||||
const COLOR4D& foregroundColor = settings->GetCursorColor();
|
||||
@ -233,11 +229,11 @@ void SYMBOL_PREVIEW_WIDGET::DisplaySymbol( const LIB_ID& aSymbolID, int aUnit, i
|
||||
m_previewItem->SetPreviewUnit( settings->m_ShowUnit );
|
||||
m_previewItem->SetPreviewBodyStyle( settings->m_ShowBodyStyle );
|
||||
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" );
|
||||
|
||||
if( cfg->m_AutoplaceFields.enable )
|
||||
m_previewItem->AutoplaceFields( nullptr, AUTOPLACE_AUTO );
|
||||
if( EESCHEMA_SETTINGS* cfg = GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ) )
|
||||
{
|
||||
if( cfg->m_AutoplaceFields.enable )
|
||||
m_previewItem->AutoplaceFields( nullptr, AUTOPLACE_AUTO );
|
||||
}
|
||||
|
||||
view->Add( m_previewItem );
|
||||
|
||||
@ -291,11 +287,11 @@ void SYMBOL_PREVIEW_WIDGET::DisplayPart( LIB_SYMBOL* aSymbol, int aUnit, int aBo
|
||||
m_previewItem->SetPreviewUnit( settings->m_ShowUnit );
|
||||
m_previewItem->SetPreviewBodyStyle( settings->m_ShowBodyStyle );
|
||||
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" );
|
||||
|
||||
if( cfg->m_AutoplaceFields.enable )
|
||||
m_previewItem->AutoplaceFields( nullptr, AUTOPLACE_AUTO );
|
||||
if( EESCHEMA_SETTINGS* cfg = GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" ) )
|
||||
{
|
||||
if( cfg->m_AutoplaceFields.enable )
|
||||
m_previewItem->AutoplaceFields( nullptr, AUTOPLACE_AUTO );
|
||||
}
|
||||
|
||||
view->Add( m_previewItem );
|
||||
|
||||
|
@ -31,30 +31,23 @@ 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" );
|
||||
COLOR_SETTINGS* current = mgr.GetColorSettings( app_settings->m_ColorTheme );
|
||||
GERBVIEW_SETTINGS* cfg = GetAppSettings<GERBVIEW_SETTINGS>( "gerbview" );
|
||||
COLOR_SETTINGS* current = ::GetColorSettings( cfg ? cfg->m_ColorTheme : DEFAULT_THEME );
|
||||
|
||||
// Colors can also be modified from the LayersManager, so collect last settings if exist
|
||||
// (They can be no yet saved on disk)
|
||||
GERBVIEW_FRAME* gbr_mainframe = dynamic_cast<GERBVIEW_FRAME*>(
|
||||
wxWindow::FindWindowByName( GERBVIEW_FRAME_NAME ) );
|
||||
if( gbr_mainframe )
|
||||
{
|
||||
gbr_mainframe->m_LayersManager->CollectCurrentColorSettings( current );
|
||||
}
|
||||
if( GERBVIEW_FRAME* frame = dynamic_cast<GERBVIEW_FRAME*>( wxWindow::FindWindowByName( GERBVIEW_FRAME_NAME ) ) )
|
||||
frame->m_LayersManager->CollectCurrentColorSettings( current );
|
||||
|
||||
// Saved theme doesn't exist? Reset to default
|
||||
if( current->GetFilename() != app_settings->m_ColorTheme )
|
||||
app_settings->m_ColorTheme = current->GetFilename();
|
||||
|
||||
createThemeList( app_settings->m_ColorTheme );
|
||||
if( cfg && current->GetFilename() != cfg->m_ColorTheme )
|
||||
cfg->m_ColorTheme = current->GetFilename();
|
||||
|
||||
createThemeList( cfg ? cfg->m_ColorTheme : DEFAULT_THEME );
|
||||
|
||||
// Currently this only applies to eeschema
|
||||
m_optOverrideColors->Hide();
|
||||
|
||||
|
||||
m_currentSettings = new COLOR_SETTINGS( *current );
|
||||
|
||||
for( int i = GERBVIEW_LAYER_ID_START; i < GERBVIEW_LAYER_ID_START + GERBER_DRAWLAYERS_COUNT; i++ )
|
||||
@ -75,10 +68,8 @@ PANEL_GERBVIEW_COLOR_SETTINGS::~PANEL_GERBVIEW_COLOR_SETTINGS()
|
||||
|
||||
bool PANEL_GERBVIEW_COLOR_SETTINGS::TransferDataFromWindow()
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
GERBVIEW_SETTINGS* cfg = mgr.GetAppSettings<GERBVIEW_SETTINGS>( "gerbview" );
|
||||
|
||||
cfg->m_ColorTheme = m_currentSettings->GetFilename();
|
||||
if( GERBVIEW_SETTINGS* cfg = GetAppSettings<GERBVIEW_SETTINGS>( "gerbview" ) )
|
||||
cfg->m_ColorTheme = m_currentSettings->GetFilename();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -29,8 +29,7 @@
|
||||
PANEL_GERBVIEW_DISPLAY_OPTIONS::PANEL_GERBVIEW_DISPLAY_OPTIONS( wxWindow* aParent ) :
|
||||
PANEL_GERBVIEW_DISPLAY_OPTIONS_BASE( aParent, wxID_ANY )
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
GERBVIEW_SETTINGS* cfg = mgr.GetAppSettings<GERBVIEW_SETTINGS>( "gerbview" );
|
||||
GERBVIEW_SETTINGS* cfg = GetAppSettings<GERBVIEW_SETTINGS>( "gerbview" );
|
||||
|
||||
m_galOptsPanel = new GAL_OPTIONS_PANEL( this, cfg );
|
||||
m_galOptionsSizer->Add( m_galOptsPanel, 0, wxEXPAND|wxRIGHT, 15 );
|
||||
@ -71,10 +70,7 @@ bool PANEL_GERBVIEW_DISPLAY_OPTIONS::TransferDataToWindow()
|
||||
{
|
||||
m_galOptsPanel->TransferDataToWindow();
|
||||
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
GERBVIEW_SETTINGS* cfg = mgr.GetAppSettings<GERBVIEW_SETTINGS>( "gerbview" );
|
||||
|
||||
loadSettings( cfg );
|
||||
loadSettings( GetAppSettings<GERBVIEW_SETTINGS>( "gerbview" ) );
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -82,33 +78,28 @@ bool PANEL_GERBVIEW_DISPLAY_OPTIONS::TransferDataToWindow()
|
||||
|
||||
bool PANEL_GERBVIEW_DISPLAY_OPTIONS::TransferDataFromWindow()
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
GERBVIEW_SETTINGS* cfg = mgr.GetAppSettings<GERBVIEW_SETTINGS>( "gerbview" );
|
||||
|
||||
m_galOptsPanel->TransferDataFromWindow();
|
||||
|
||||
cfg->m_Display.m_DisplayLinesFill = !m_OptDisplayLines->GetValue();
|
||||
cfg->m_Display.m_DisplayFlashedItemsFill = !m_OptDisplayFlashedItems->GetValue();
|
||||
cfg->m_Display.m_DisplayPolygonsFill = !m_OptDisplayPolygons->GetValue();
|
||||
cfg->m_Appearance.show_dcodes = m_OptDisplayDCodes->GetValue();
|
||||
if( GERBVIEW_SETTINGS* cfg = GetAppSettings<GERBVIEW_SETTINGS>( "gerbview" ) )
|
||||
{
|
||||
cfg->m_Display.m_DisplayLinesFill = !m_OptDisplayLines->GetValue();
|
||||
cfg->m_Display.m_DisplayFlashedItemsFill = !m_OptDisplayFlashedItems->GetValue();
|
||||
cfg->m_Display.m_DisplayPolygonsFill = !m_OptDisplayPolygons->GetValue();
|
||||
cfg->m_Appearance.show_dcodes = m_OptDisplayDCodes->GetValue();
|
||||
|
||||
if( m_pageSizeA4->GetValue() )
|
||||
cfg->m_Appearance.page_type = wxT( "A4" );
|
||||
else if( m_pageSizeA3->GetValue() )
|
||||
cfg->m_Appearance.page_type = wxT( "A3" );
|
||||
else if( m_pageSizeA2->GetValue() )
|
||||
cfg->m_Appearance.page_type = wxT( "A2" );
|
||||
else if( m_pageSizeA->GetValue() )
|
||||
cfg->m_Appearance.page_type = wxT( "A" );
|
||||
else if( m_pageSizeB->GetValue() )
|
||||
cfg->m_Appearance.page_type = wxT( "B" );
|
||||
else if( m_pageSizeC->GetValue() )
|
||||
cfg->m_Appearance.page_type = wxT( "C" );
|
||||
else
|
||||
cfg->m_Appearance.page_type = wxT( "GERBER" );
|
||||
// clang-format off
|
||||
if( m_pageSizeA4->GetValue() ) cfg->m_Appearance.page_type = wxT( "A4" );
|
||||
else if( m_pageSizeA3->GetValue() ) cfg->m_Appearance.page_type = wxT( "A3" );
|
||||
else if( m_pageSizeA2->GetValue() ) cfg->m_Appearance.page_type = wxT( "A2" );
|
||||
else if( m_pageSizeA->GetValue() ) cfg->m_Appearance.page_type = wxT( "A" );
|
||||
else if( m_pageSizeB->GetValue() ) cfg->m_Appearance.page_type = wxT( "B" );
|
||||
else if( m_pageSizeC->GetValue() ) cfg->m_Appearance.page_type = wxT( "C" );
|
||||
else cfg->m_Appearance.page_type = wxT( "GERBER" );
|
||||
// clang-format on
|
||||
|
||||
cfg->m_Display.m_DisplayPageLimits = m_ShowPageLimitsOpt->GetValue();
|
||||
cfg->m_Display.m_OpacityModeAlphaValue = m_spOpacityCtrl->GetValue();
|
||||
cfg->m_Display.m_DisplayPageLimits = m_ShowPageLimitsOpt->GetValue();
|
||||
cfg->m_Display.m_OpacityModeAlphaValue = m_spOpacityCtrl->GetValue();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -39,13 +39,13 @@ PANEL_GERBVIEW_EXCELLON_SETTINGS::PANEL_GERBVIEW_EXCELLON_SETTINGS( wxWindow* aP
|
||||
|
||||
bool PANEL_GERBVIEW_EXCELLON_SETTINGS::TransferDataToWindow( )
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
GERBVIEW_SETTINGS* cfg = mgr.GetAppSettings<GERBVIEW_SETTINGS>( "gerbview" );
|
||||
EXCELLON_DEFAULTS curr_settings;
|
||||
if( GERBVIEW_SETTINGS* cfg = GetAppSettings<GERBVIEW_SETTINGS>( "gerbview" ) )
|
||||
{
|
||||
EXCELLON_DEFAULTS curr_settings;
|
||||
|
||||
cfg->GetExcellonDefaults( curr_settings );
|
||||
|
||||
applySettingsToPanel( curr_settings );
|
||||
cfg->GetExcellonDefaults( curr_settings );
|
||||
applySettingsToPanel( curr_settings );
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -53,17 +53,17 @@ bool PANEL_GERBVIEW_EXCELLON_SETTINGS::TransferDataToWindow( )
|
||||
|
||||
bool PANEL_GERBVIEW_EXCELLON_SETTINGS::TransferDataFromWindow()
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
GERBVIEW_SETTINGS* cfg = mgr.GetAppSettings<GERBVIEW_SETTINGS>( "gerbview" );
|
||||
|
||||
cfg->m_ExcellonDefaults.m_UnitsMM = m_rbMM->GetValue();
|
||||
cfg->m_ExcellonDefaults.m_LeadingZero = m_rbLZ->GetValue();
|
||||
// The first value of these param is 2, not 0
|
||||
#define FIRST_VALUE 2
|
||||
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;
|
||||
if( GERBVIEW_SETTINGS* cfg = GetAppSettings<GERBVIEW_SETTINGS>( "gerbview" ) )
|
||||
{
|
||||
cfg->m_ExcellonDefaults.m_UnitsMM = m_rbMM->GetValue();
|
||||
cfg->m_ExcellonDefaults.m_LeadingZero = m_rbLZ->GetValue();
|
||||
// The first value of these param is 2, not 0
|
||||
#define FIRST_VALUE 2
|
||||
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;
|
||||
}
|
||||
|
@ -81,8 +81,7 @@ static struct IFACE : public KIFACE_BASE, public UNITS_PROVIDER
|
||||
|
||||
case PANEL_GBR_GRIDS:
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
GERBVIEW_SETTINGS* cfg = mgr.GetAppSettings<GERBVIEW_SETTINGS>( "gerbview" );
|
||||
GERBVIEW_SETTINGS* cfg = GetAppSettings<GERBVIEW_SETTINGS>( "gerbview" );
|
||||
EDA_BASE_FRAME* frame = aKiway->Player( FRAME_GERBER, false );
|
||||
|
||||
if( frame )
|
||||
@ -96,9 +95,8 @@ static struct IFACE : public KIFACE_BASE, public UNITS_PROVIDER
|
||||
|
||||
case PANEL_GBR_TOOLBARS:
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
GERBVIEW_SETTINGS* cfg = mgr.GetAppSettings<GERBVIEW_SETTINGS>( "gerbview" );
|
||||
TOOLBAR_SETTINGS* tb = mgr.GetToolbarSettings<GERBVIEW_TOOLBAR_SETTINGS>( "gerbview-toolbars" );
|
||||
GERBVIEW_SETTINGS* cfg = GetAppSettings<GERBVIEW_SETTINGS>( "gerbview" );
|
||||
TOOLBAR_SETTINGS* tb = GetToolbarSettings<GERBVIEW_TOOLBAR_SETTINGS>( "gerbview-toolbars" );
|
||||
|
||||
std::vector<TOOL_ACTION*> actions;
|
||||
std::vector<ACTION_TOOLBAR_CONTROL*> controls;
|
||||
|
@ -58,16 +58,13 @@ EDA_DRAW_PANEL_GAL( aParentWindow, aWindowId, aPosition, aSize, aOptions, aGalTy
|
||||
|
||||
setDefaultLayerDeps();
|
||||
|
||||
COLOR_SETTINGS* color_settings;
|
||||
COLOR_SETTINGS* cs = ::GetColorSettings( DEFAULT_THEME );
|
||||
|
||||
if( auto frame = dynamic_cast<GERBVIEW_FRAME*>( GetParentEDAFrame() ) )
|
||||
color_settings = frame->GetColorSettings();
|
||||
else
|
||||
color_settings = Pgm().GetSettingsManager().GetColorSettings();
|
||||
if( GERBVIEW_FRAME* frame = dynamic_cast<GERBVIEW_FRAME*>( GetParentEDAFrame() ) )
|
||||
cs = frame->GetColorSettings();
|
||||
|
||||
wxASSERT( color_settings );
|
||||
auto renderSettings = static_cast<KIGFX::GERBVIEW_RENDER_SETTINGS*>( m_painter->GetSettings() );
|
||||
renderSettings->LoadColors( color_settings );
|
||||
renderSettings->LoadColors( cs );
|
||||
}
|
||||
|
||||
|
||||
|
@ -150,22 +150,19 @@ GERBVIEW_FRAME::GERBVIEW_FRAME( KIWAY* aKiway, wxWindow* aParent ) :
|
||||
setupUIConditions();
|
||||
ReCreateMenuBar();
|
||||
|
||||
m_toolbarSettings = Pgm().GetSettingsManager().GetToolbarSettings<GERBVIEW_TOOLBAR_SETTINGS>( "gerbview-toolbars" );
|
||||
m_toolbarSettings = GetToolbarSettings<GERBVIEW_TOOLBAR_SETTINGS>( "gerbview-toolbars" );
|
||||
configureToolbars();
|
||||
RecreateToolbars();
|
||||
|
||||
m_auimgr.SetManagedWindow( this );
|
||||
|
||||
m_auimgr.AddPane( m_tbTopMain, EDA_PANE().HToolbar().Name( "TopMainToolbar" ).Top().Layer( 6 ) );
|
||||
m_auimgr.AddPane( m_tbTopAux, EDA_PANE().HToolbar().Name( "TopAuxToolbar" ).Top()
|
||||
.Layer(4) );
|
||||
m_auimgr.AddPane( m_messagePanel, EDA_PANE().Messages().Name( "MsgPanel" ).Bottom()
|
||||
.Layer( 6 ) );
|
||||
m_auimgr.AddPane( m_tbLeft, EDA_PANE().VToolbar().Name( "LeftToolbar" ).Left()
|
||||
.Layer( 3 ) );
|
||||
m_auimgr.AddPane( m_LayersManager, EDA_PANE().Palette().Name( "LayersManager" ).Right()
|
||||
.Layer( 3 ).Caption( _( "Layers Manager" ) ).PaneBorder( false )
|
||||
.MinSize( 80, -1 ).BestSize( m_LayersManager->GetBestSize() ) );
|
||||
m_auimgr.AddPane( m_tbTopAux, EDA_PANE().HToolbar().Name( "TopAuxToolbar" ).Top().Layer(4) );
|
||||
m_auimgr.AddPane( m_messagePanel, EDA_PANE().Messages().Name( "MsgPanel" ).Bottom().Layer( 6 ) );
|
||||
m_auimgr.AddPane( m_tbLeft, EDA_PANE().VToolbar().Name( "LeftToolbar" ).Left().Layer( 3 ) );
|
||||
m_auimgr.AddPane( m_LayersManager, EDA_PANE().Palette().Name( "LayersManager" ).Right().Layer( 3 )
|
||||
.Caption( _( "Layers Manager" ) ).PaneBorder( false )
|
||||
.MinSize( 80, -1 ).BestSize( m_LayersManager->GetBestSize() ) );
|
||||
|
||||
m_auimgr.AddPane( GetCanvas(), EDA_PANE().Canvas().Name( "DrawFrame" ).Center() );
|
||||
|
||||
@ -376,26 +373,23 @@ void GERBVIEW_FRAME::SaveSettings( APP_SETTINGS_BASE* aCfg )
|
||||
{
|
||||
EDA_DRAW_FRAME::SaveSettings( aCfg );
|
||||
|
||||
GERBVIEW_SETTINGS* cfg = dynamic_cast<GERBVIEW_SETTINGS*>( aCfg );
|
||||
wxCHECK( cfg, /*void*/ );
|
||||
if( GERBVIEW_SETTINGS* cfg = dynamic_cast<GERBVIEW_SETTINGS*>( aCfg ) )
|
||||
{
|
||||
cfg->m_Appearance.page_type = GetPageSettings().GetType();
|
||||
|
||||
cfg->m_Appearance.page_type = GetPageSettings().GetType();
|
||||
m_drillFileHistory.Save( &cfg->m_DrillFileHistory );
|
||||
m_zipFileHistory.Save( &cfg->m_ZipFileHistory );
|
||||
m_jobFileHistory.Save( &cfg->m_JobFileHistory );
|
||||
}
|
||||
|
||||
m_drillFileHistory.Save( &cfg->m_DrillFileHistory );
|
||||
m_zipFileHistory.Save( &cfg->m_ZipFileHistory );
|
||||
m_jobFileHistory.Save( &cfg->m_JobFileHistory );
|
||||
|
||||
COLOR_SETTINGS* cs = Pgm().GetSettingsManager().GetColorSettings();
|
||||
Pgm().GetSettingsManager().SaveColorSettings( cs, "gerbview" );
|
||||
Pgm().GetSettingsManager().SaveColorSettings( ::GetColorSettings( DEFAULT_THEME ), "gerbview" );
|
||||
}
|
||||
|
||||
|
||||
COLOR_SETTINGS* GERBVIEW_FRAME::GetColorSettings( bool aForceRefresh ) const
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
GERBVIEW_SETTINGS* cfg = mgr.GetAppSettings<GERBVIEW_SETTINGS>( "gerbview" );
|
||||
wxString currentTheme = cfg->m_ColorTheme;
|
||||
return mgr.GetColorSettings( currentTheme );
|
||||
GERBVIEW_SETTINGS* cfg = GetAppSettings<GERBVIEW_SETTINGS>( "gerbview" );
|
||||
return ::GetColorSettings( cfg ? cfg->m_ColorTheme : DEFAULT_THEME );
|
||||
}
|
||||
|
||||
|
||||
@ -1219,17 +1213,16 @@ void GERBVIEW_FRAME::CommonSettingsChanged( int aFlags )
|
||||
EDA_DRAW_FRAME::CommonSettingsChanged( aFlags );
|
||||
|
||||
// Update gal display options like cursor shape, grid options:
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
GERBVIEW_SETTINGS* cfg = mgr.GetAppSettings<GERBVIEW_SETTINGS>( "gerbview" );
|
||||
if( GERBVIEW_SETTINGS* cfg = GetAppSettings<GERBVIEW_SETTINGS>( "gerbview" ) )
|
||||
{
|
||||
GetGalDisplayOptions().ReadWindowSettings( cfg->m_Window );
|
||||
|
||||
GetGalDisplayOptions().ReadWindowSettings( cfg->m_Window );
|
||||
|
||||
SetPageSettings( PAGE_INFO( gvconfig()->m_Appearance.page_type ) );
|
||||
SetPageSettings( PAGE_INFO( cfg->m_Appearance.page_type ) );
|
||||
SetElementVisibility( LAYER_DCODES, cfg->m_Appearance.show_dcodes );
|
||||
}
|
||||
|
||||
UpdateXORLayers();
|
||||
|
||||
SetElementVisibility( LAYER_DCODES, gvconfig()->m_Appearance.show_dcodes );
|
||||
|
||||
GetCanvas()->GetView()->MarkTargetDirty( KIGFX::TARGET_NONCACHED );
|
||||
GetCanvas()->GetView()->UpdateAllItems( KIGFX::REPAINT );
|
||||
GetCanvas()->ForceRefresh();
|
||||
|
@ -26,6 +26,7 @@
|
||||
#include <typeinfo>
|
||||
#include <core/wx_stl_compat.h> // for wxString hash
|
||||
#include <settings/color_settings.h>
|
||||
#include <pgm_base.h>
|
||||
|
||||
class COLOR_SETTINGS;
|
||||
class COMMON_SETTINGS;
|
||||
@ -41,6 +42,8 @@ class LOCKFILE;
|
||||
/// Project settings path will be <projectname> + this
|
||||
#define PROJECT_BACKUPS_DIR_SUFFIX wxT( "-backups" )
|
||||
|
||||
#define DEFAULT_THEME wxString( wxT( "user" ) )
|
||||
|
||||
|
||||
class KICOMMON_API SETTINGS_MANAGER
|
||||
{
|
||||
@ -136,7 +139,7 @@ public:
|
||||
}
|
||||
else
|
||||
{
|
||||
throw std::runtime_error( "Tried to GetAppSettings before registering" );
|
||||
wxFAIL_MSG( "Tried to GetAppSettings before registering" );
|
||||
}
|
||||
|
||||
m_app_settings_cache[typeHash] = ret;
|
||||
@ -197,7 +200,7 @@ public:
|
||||
* @param aName is the name of the color scheme to load.
|
||||
* @return a loaded COLOR_SETTINGS object.
|
||||
*/
|
||||
COLOR_SETTINGS* GetColorSettings( const wxString& aName = "user" );
|
||||
COLOR_SETTINGS* GetColorSettings( const wxString& aName );
|
||||
|
||||
std::vector<COLOR_SETTINGS*> GetColorSettingsList()
|
||||
{
|
||||
@ -534,4 +537,30 @@ private:
|
||||
static wxString backupDateTimeFormat;
|
||||
};
|
||||
|
||||
|
||||
template<typename T>
|
||||
T* GetAppSettings( const char* aFilename )
|
||||
{
|
||||
if( PGM_BASE* pgm = PgmOrNull() )
|
||||
return pgm->GetSettingsManager().GetAppSettings<T>( aFilename );
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
|
||||
template<typename T>
|
||||
T* GetToolbarSettings( const wxString& aFilename )
|
||||
{
|
||||
if( PGM_BASE* pgm = PgmOrNull() )
|
||||
return pgm->GetSettingsManager().GetToolbarSettings<T>( aFilename );
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
|
||||
inline COLOR_SETTINGS* GetColorSettings( const wxString& aName )
|
||||
{
|
||||
return Pgm().GetSettingsManager().GetColorSettings( aName );
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -40,13 +40,13 @@ 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->m_PcmUpdateCheck = m_cbPCMUpdates->GetValue();
|
||||
if( KICAD_SETTINGS* settings = GetAppSettings<KICAD_SETTINGS>( "kicad" ) )
|
||||
{
|
||||
settings->m_PcmUpdateCheck = m_cbPCMUpdates->GetValue();
|
||||
#ifndef KICAD_UPDATE_CHECK
|
||||
settings->m_KiCadUpdateCheck = m_cbKiCadUpdates->GetValue();
|
||||
settings->m_KiCadUpdateCheck = m_cbKiCadUpdates->GetValue();
|
||||
#endif
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -206,7 +206,7 @@ KICAD_MANAGER_FRAME::KICAD_MANAGER_FRAME( wxWindow* parent, const wxString& titl
|
||||
setupTools();
|
||||
setupUIConditions();
|
||||
|
||||
m_toolbarSettings = Pgm().GetSettingsManager().GetToolbarSettings<KICAD_MANAGER_TOOLBAR_SETTINGS>( "kicad-toolbars" );
|
||||
m_toolbarSettings = GetToolbarSettings<KICAD_MANAGER_TOOLBAR_SETTINGS>( "kicad-toolbars" );
|
||||
configureToolbars();
|
||||
RecreateToolbars();
|
||||
ReCreateMenuBar();
|
||||
@ -214,8 +214,7 @@ KICAD_MANAGER_FRAME::KICAD_MANAGER_FRAME( wxWindow* parent, const wxString& titl
|
||||
m_auimgr.SetManagedWindow( this );
|
||||
m_auimgr.SetFlags( wxAUI_MGR_LIVE_RESIZE );
|
||||
|
||||
m_auimgr.AddPane( m_tbLeft,
|
||||
EDA_PANE().VToolbar().Name( "TopMainToolbar" ).Left().Layer( 2 ) );
|
||||
m_auimgr.AddPane( m_tbLeft, EDA_PANE().VToolbar().Name( "TopMainToolbar" ).Left().Layer( 2 ) );
|
||||
|
||||
// BestSize() does not always set the actual pane size of m_leftWin to the required value.
|
||||
// It happens when m_leftWin is too large (roughly > 1/3 of the kicad manager frame width.
|
||||
@ -232,10 +231,8 @@ KICAD_MANAGER_FRAME::KICAD_MANAGER_FRAME( wxWindow* parent, const wxString& titl
|
||||
wxAUI_NB_TOP | wxAUI_NB_CLOSE_ON_ALL_TABS | wxAUI_NB_TAB_MOVE
|
||||
| wxAUI_NB_SCROLL_BUTTONS | wxNO_BORDER );
|
||||
|
||||
m_notebook->Bind( wxEVT_AUINOTEBOOK_PAGE_CLOSE,
|
||||
&KICAD_MANAGER_FRAME::onNotebookPageCloseRequest, this );
|
||||
m_notebook->Bind( wxEVT_AUINOTEBOOK_PAGE_CLOSED,
|
||||
&KICAD_MANAGER_FRAME::onNotebookPageCountChanged, this );
|
||||
m_notebook->Bind( wxEVT_AUINOTEBOOK_PAGE_CLOSE, &KICAD_MANAGER_FRAME::onNotebookPageCloseRequest, this );
|
||||
m_notebook->Bind( wxEVT_AUINOTEBOOK_PAGE_CLOSED, &KICAD_MANAGER_FRAME::onNotebookPageCountChanged, this );
|
||||
m_launcher = new PANEL_KICAD_LAUNCHER( m_notebook );
|
||||
|
||||
m_notebook->Freeze();
|
||||
@ -244,9 +241,8 @@ KICAD_MANAGER_FRAME::KICAD_MANAGER_FRAME( wxWindow* parent, const wxString& titl
|
||||
m_notebook->SetTabCtrlHeight( 0 );
|
||||
m_notebook->Thaw();
|
||||
|
||||
m_auimgr.AddPane( m_notebook,
|
||||
EDA_PANE().Canvas().Name( "Editors" ).Center().Caption( EDITORS_CAPTION )
|
||||
.PaneBorder( false ).MinSize( m_notebook->GetBestSize() ) );
|
||||
m_auimgr.AddPane( m_notebook, EDA_PANE().Canvas().Name( "Editors" ).Center().Caption( EDITORS_CAPTION )
|
||||
.PaneBorder( false ).MinSize( m_notebook->GetBestSize() ) );
|
||||
|
||||
m_auimgr.Update();
|
||||
|
||||
|
@ -246,10 +246,8 @@ void DIALOG_PCM::OnManageRepositoriesClicked( wxCommandEvent& event )
|
||||
dialog_data = dialog->GetData();
|
||||
m_pcm->SetRepositoryList( dialog_data );
|
||||
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
KICAD_SETTINGS* cfg = mgr.GetAppSettings<KICAD_SETTINGS>( "kicad" );
|
||||
|
||||
cfg->m_PcmRepositories = std::move( dialog_data );
|
||||
if( KICAD_SETTINGS* cfg = GetAppSettings<KICAD_SETTINGS>( "kicad" ) )
|
||||
cfg->m_PcmRepositories = std::move( dialog_data );
|
||||
|
||||
setRepositoryListFromPcm();
|
||||
}
|
||||
|
@ -522,9 +522,7 @@ void PANEL_PACKAGES_VIEW::OnDownloadVersionClicked( wxCommandEvent& event )
|
||||
}
|
||||
|
||||
const wxString& url = *ver_it->download_url;
|
||||
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
KICAD_SETTINGS* cfg = mgr.GetAppSettings<KICAD_SETTINGS>( "kicad" );
|
||||
KICAD_SETTINGS* cfg = GetAppSettings<KICAD_SETTINGS>( "kicad" );
|
||||
|
||||
wxWindow* topLevelParent = wxGetTopLevelParent( this );
|
||||
wxFileDialog dialog( topLevelParent, _( "Save Package" ), cfg->m_PcmLastDownloadDir,
|
||||
|
@ -235,11 +235,9 @@ int KICAD_MANAGER_CONTROL::NewJobsetFile( const TOOL_EVENT& aEvent )
|
||||
|
||||
int KICAD_MANAGER_CONTROL::NewFromTemplate( const TOOL_EVENT& aEvent )
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
KICAD_SETTINGS* settings = mgr.GetAppSettings<KICAD_SETTINGS>( "kicad" );
|
||||
KICAD_SETTINGS* settings = GetAppSettings<KICAD_SETTINGS>( "kicad" );
|
||||
std::map<wxString, wxFileName> titleDirMap;
|
||||
|
||||
wxFileName templatePath;
|
||||
wxFileName templatePath;
|
||||
|
||||
// KiCad system template path.
|
||||
std::optional<wxString> v = ENV_VAR::GetVersionedEnvVarValue( Pgm().GetLocalEnvVariables(),
|
||||
@ -986,8 +984,7 @@ int KICAD_MANAGER_CONTROL::ShowPluginManager( const TOOL_EVENT& aEvent )
|
||||
m_frame->Kiway().ExpressMail( FRAME_PCB_EDITOR, MAIL_RELOAD_PLUGINS, payload );
|
||||
}
|
||||
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
KICAD_SETTINGS* settings = mgr.GetAppSettings<KICAD_SETTINGS>( "kicad" );
|
||||
KICAD_SETTINGS* settings = GetAppSettings<KICAD_SETTINGS>( "kicad" );
|
||||
|
||||
if( changed.count( PCM_PACKAGE_TYPE::PT_LIBRARY )
|
||||
&& ( settings->m_PcmLibAutoAdd || settings->m_PcmLibAutoRemove ) )
|
||||
|
@ -216,8 +216,7 @@ void UPDATE_MANAGER::CheckForUpdate( wxWindow* aNoticeParent )
|
||||
requestContent.current_version = verString;
|
||||
requestContent.lang = Pgm().GetLanguageTag();
|
||||
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
KICAD_SETTINGS* settings = mgr.GetAppSettings<KICAD_SETTINGS>( "kicad" );
|
||||
KICAD_SETTINGS* settings = GetAppSettings<KICAD_SETTINGS>( "kicad" );
|
||||
|
||||
requestContent.last_check = settings->m_lastUpdateCheckTime;
|
||||
|
||||
@ -255,17 +254,15 @@ void UPDATE_MANAGER::CheckForUpdate( wxWindow* aNoticeParent )
|
||||
{
|
||||
// basically saving the last received update prevents us from
|
||||
// prompting again
|
||||
SETTINGS_MANAGER& set_mgr = Pgm().GetSettingsManager();
|
||||
KICAD_SETTINGS* cfg = set_mgr.GetAppSettings<KICAD_SETTINGS>( "kicad" );
|
||||
cfg->m_lastReceivedUpdate = response.version;
|
||||
if( KICAD_SETTINGS* cfg = GetAppSettings<KICAD_SETTINGS>( "kicad" ) )
|
||||
cfg->m_lastReceivedUpdate = response.version;
|
||||
}
|
||||
} );
|
||||
}
|
||||
}
|
||||
catch( const std::exception& e )
|
||||
{
|
||||
wxLogError( wxString::Format( _( "Unable to parse update response: %s" ),
|
||||
e.what() ) );
|
||||
wxLogError( wxString::Format( _( "Unable to parse update response: %s" ), e.what() ) );
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -31,9 +31,8 @@ PANEL_PL_EDITOR_COLOR_SETTINGS::PANEL_PL_EDITOR_COLOR_SETTINGS( wxWindow* aParen
|
||||
|
||||
bool PANEL_PL_EDITOR_COLOR_SETTINGS::TransferDataToWindow()
|
||||
{
|
||||
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 );
|
||||
PL_EDITOR_SETTINGS* cfg = GetAppSettings<PL_EDITOR_SETTINGS>( "pl_editor" );
|
||||
COLOR_SETTINGS* current = ::GetColorSettings( cfg ? cfg->m_ColorTheme : DEFAULT_THEME );
|
||||
|
||||
int width = 0;
|
||||
int height = 0;
|
||||
@ -66,11 +65,11 @@ bool PANEL_PL_EDITOR_COLOR_SETTINGS::TransferDataFromWindow()
|
||||
|
||||
if( sel >= 0 )
|
||||
{
|
||||
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();
|
||||
if( PL_EDITOR_SETTINGS* cfg = GetAppSettings<PL_EDITOR_SETTINGS>( "pl_editor" ) )
|
||||
{
|
||||
COLOR_SETTINGS* colors = static_cast<COLOR_SETTINGS*>( m_themes->GetClientData( sel ) );
|
||||
cfg->m_ColorTheme = colors->GetFilename();
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
|
@ -54,10 +54,9 @@ PL_DRAW_PANEL_GAL::PL_DRAW_PANEL_GAL( wxWindow* aParentWindow, wxWindowID aWindo
|
||||
|
||||
m_painter = std::make_unique<KIGFX::DS_PAINTER>( m_gal );
|
||||
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
PL_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<PL_EDITOR_SETTINGS>( "pl_editor" );
|
||||
PL_EDITOR_SETTINGS* cfg = GetAppSettings<PL_EDITOR_SETTINGS>( "pl_editor" );
|
||||
|
||||
m_painter->GetSettings()->LoadColors( mgr.GetColorSettings( cfg->m_ColorTheme ) );
|
||||
m_painter->GetSettings()->LoadColors( ::GetColorSettings( cfg ? cfg->m_ColorTheme : DEFAULT_THEME ) );
|
||||
|
||||
m_view->SetPainter( m_painter.get() );
|
||||
// This fixes the zoom in and zoom out limits
|
||||
|
@ -66,17 +66,11 @@ static struct IFACE : public KIFACE_BASE, public UNITS_PROVIDER
|
||||
return new PL_EDITOR_FRAME( aKiway, aParent );
|
||||
|
||||
case PANEL_DS_DISPLAY_OPTIONS:
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
APP_SETTINGS_BASE* cfg = mgr.GetAppSettings<PL_EDITOR_SETTINGS>( "pl_editor" );
|
||||
|
||||
return new PANEL_PL_EDITOR_DISPLAY_OPTIONS( aParent, cfg );
|
||||
}
|
||||
return new PANEL_PL_EDITOR_DISPLAY_OPTIONS( aParent, GetAppSettings<PL_EDITOR_SETTINGS>( "pl_editor" ) );
|
||||
|
||||
case PANEL_DS_GRIDS:
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
APP_SETTINGS_BASE* cfg = mgr.GetAppSettings<PL_EDITOR_SETTINGS>( "pl_editor" );
|
||||
APP_SETTINGS_BASE* cfg = GetAppSettings<PL_EDITOR_SETTINGS>( "pl_editor" );
|
||||
EDA_BASE_FRAME* frame = aKiway->Player( FRAME_PL_EDITOR, false );
|
||||
|
||||
if( frame )
|
||||
@ -90,9 +84,8 @@ static struct IFACE : public KIFACE_BASE, public UNITS_PROVIDER
|
||||
|
||||
case PANEL_DS_TOOLBARS:
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
APP_SETTINGS_BASE* cfg = mgr.GetAppSettings<PL_EDITOR_SETTINGS>( "pl_editor" );
|
||||
TOOLBAR_SETTINGS* tb = mgr.GetToolbarSettings<PL_EDITOR_TOOLBAR_SETTINGS>( "pl_editor-toolbars" );
|
||||
APP_SETTINGS_BASE* cfg = GetAppSettings<PL_EDITOR_SETTINGS>( "pl_editor" );
|
||||
TOOLBAR_SETTINGS* tb = GetToolbarSettings<PL_EDITOR_TOOLBAR_SETTINGS>( "pl_editor-toolbars" );
|
||||
|
||||
std::vector<TOOL_ACTION*> actions;
|
||||
std::vector<ACTION_TOOLBAR_CONTROL*> controls;
|
||||
|
@ -136,7 +136,7 @@ PL_EDITOR_FRAME::PL_EDITOR_FRAME( KIWAY* aKiway, wxWindow* aParent ) :
|
||||
setupUIConditions();
|
||||
ReCreateMenuBar();
|
||||
|
||||
m_toolbarSettings = Pgm().GetSettingsManager().GetToolbarSettings<PL_EDITOR_TOOLBAR_SETTINGS>( "pl_editor-toolbars" );
|
||||
m_toolbarSettings = GetToolbarSettings<PL_EDITOR_TOOLBAR_SETTINGS>( "pl_editor-toolbars" );
|
||||
configureToolbars();
|
||||
RecreateToolbars();
|
||||
|
||||
@ -643,9 +643,8 @@ void PL_EDITOR_FRAME::CommonSettingsChanged( int aFlags )
|
||||
{
|
||||
EDA_DRAW_FRAME::CommonSettingsChanged( aFlags );
|
||||
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
PL_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<PL_EDITOR_SETTINGS>( "pl_editor" );
|
||||
COLOR_SETTINGS* colors = mgr.GetColorSettings( cfg->m_ColorTheme );
|
||||
PL_EDITOR_SETTINGS* cfg = GetAppSettings<PL_EDITOR_SETTINGS>( "pl_editor" );
|
||||
COLOR_SETTINGS* colors = ::GetColorSettings( cfg ? cfg->m_ColorTheme : DEFAULT_THEME );
|
||||
|
||||
// Update gal display options like cursor shape, grid options:
|
||||
GetGalDisplayOptions().ReadWindowSettings( cfg->m_Window );
|
||||
|
@ -509,13 +509,14 @@ void BOARD_COMMIT::Push( const wxString& aMessage, int aCommitFlags )
|
||||
frame->HideSolderMask();
|
||||
}
|
||||
|
||||
PCBNEW_SETTINGS* settings = Pgm().GetSettingsManager().GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" );
|
||||
|
||||
if( !staleRuleAreas.empty() && ( settings->m_Display.m_TrackClearance == SHOW_WITH_VIA_ALWAYS
|
||||
|| settings->m_Display.m_PadClearance ) )
|
||||
if( PCBNEW_SETTINGS* cfg = GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" ) )
|
||||
{
|
||||
if( view )
|
||||
view->UpdateCollidingItems( staleRuleAreas, { PCB_TRACE_T, PCB_ARC_T, PCB_VIA_T, PCB_PAD_T } );
|
||||
if( !staleRuleAreas.empty() && ( cfg->m_Display.m_TrackClearance == SHOW_WITH_VIA_ALWAYS
|
||||
|| cfg->m_Display.m_PadClearance ) )
|
||||
{
|
||||
if( view )
|
||||
view->UpdateCollidingItems( staleRuleAreas, { PCB_TRACE_T, PCB_ARC_T, PCB_VIA_T, PCB_PAD_T } );
|
||||
}
|
||||
}
|
||||
|
||||
if( !staleTeardropPadsAndVias.empty() || !staleTeardropTracks.empty() )
|
||||
|
@ -244,13 +244,9 @@ void DIALOG_EXPORT_2581::onDistPNChange( wxCommandEvent& event )
|
||||
|
||||
bool DIALOG_EXPORT_2581::Init()
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
PCBNEW_SETTINGS* cfg = mgr.GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" );
|
||||
|
||||
std::set<wxString> options;
|
||||
BOARD* board = m_parent->GetBoard();
|
||||
|
||||
for( FOOTPRINT* fp : board->Footprints() )
|
||||
for( FOOTPRINT* fp : m_parent->GetBoard()->Footprints() )
|
||||
{
|
||||
for( PCB_FIELD* field : fp->GetFields() )
|
||||
options.insert( field->GetName() );
|
||||
@ -258,10 +254,13 @@ bool DIALOG_EXPORT_2581::Init()
|
||||
|
||||
if( !m_job )
|
||||
{
|
||||
m_choiceUnits->SetSelection( cfg->m_Export2581.units );
|
||||
m_precision->SetValue( cfg->m_Export2581.precision );
|
||||
m_versionChoice->SetSelection( cfg->m_Export2581.version );
|
||||
m_cbCompress->SetValue( cfg->m_Export2581.compress );
|
||||
if( PCBNEW_SETTINGS* cfg = GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" ) )
|
||||
{
|
||||
m_choiceUnits->SetSelection( cfg->m_Export2581.units );
|
||||
m_precision->SetValue( cfg->m_Export2581.precision );
|
||||
m_versionChoice->SetSelection( cfg->m_Export2581.version );
|
||||
m_cbCompress->SetValue( cfg->m_Export2581.compress );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -359,13 +358,13 @@ bool DIALOG_EXPORT_2581::TransferDataFromWindow()
|
||||
{
|
||||
if( !m_job )
|
||||
{
|
||||
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();
|
||||
cfg->m_Export2581.version = m_versionChoice->GetSelection();
|
||||
cfg->m_Export2581.compress = m_cbCompress->GetValue();
|
||||
if( PCBNEW_SETTINGS* cfg = GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" ) )
|
||||
{
|
||||
cfg->m_Export2581.units = m_choiceUnits->GetSelection();
|
||||
cfg->m_Export2581.precision = m_precision->GetValue();
|
||||
cfg->m_Export2581.version = m_versionChoice->GetSelection();
|
||||
cfg->m_Export2581.compress = m_cbCompress->GetValue();
|
||||
}
|
||||
|
||||
PROJECT_FILE& prj = Prj().GetProjectFile();
|
||||
wxString empty;
|
||||
|
@ -234,15 +234,15 @@ void DIALOG_EXPORT_ODBPP::onOKClick( wxCommandEvent& event )
|
||||
|
||||
bool DIALOG_EXPORT_ODBPP::Init()
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
PCBNEW_SETTINGS* cfg = mgr.GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" );
|
||||
|
||||
if( !m_job )
|
||||
{
|
||||
m_choiceUnits->SetSelection( cfg->m_ExportODBPP.units );
|
||||
m_precision->SetValue( cfg->m_ExportODBPP.precision );
|
||||
m_choiceCompress->SetSelection( cfg->m_ExportODBPP.compressFormat );
|
||||
OnFmtChoiceOptionChanged();
|
||||
if( PCBNEW_SETTINGS* cfg = GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" ) )
|
||||
{
|
||||
m_choiceUnits->SetSelection( cfg->m_ExportODBPP.units );
|
||||
m_precision->SetValue( cfg->m_ExportODBPP.precision );
|
||||
m_choiceCompress->SetSelection( cfg->m_ExportODBPP.compressFormat );
|
||||
OnFmtChoiceOptionChanged();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -266,22 +266,20 @@ bool DIALOG_EXPORT_ODBPP::TransferDataFromWindow()
|
||||
{
|
||||
if( !m_job )
|
||||
{
|
||||
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();
|
||||
cfg->m_ExportODBPP.compressFormat = m_choiceCompress->GetSelection();
|
||||
if( PCBNEW_SETTINGS* cfg = GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" ) )
|
||||
{
|
||||
cfg->m_ExportODBPP.units = m_choiceUnits->GetSelection();
|
||||
cfg->m_ExportODBPP.precision = m_precision->GetValue();
|
||||
cfg->m_ExportODBPP.compressFormat = m_choiceCompress->GetSelection();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
m_job->SetConfiguredOutputPath( m_outputFileName->GetValue() );
|
||||
|
||||
m_job->m_precision = m_precision->GetValue();
|
||||
m_job->m_units =
|
||||
static_cast<JOB_EXPORT_PCB_ODB::ODB_UNITS>( m_choiceUnits->GetSelection() );
|
||||
m_job->m_compressionMode = static_cast<JOB_EXPORT_PCB_ODB::ODB_COMPRESSION>(
|
||||
m_choiceCompress->GetSelection() );
|
||||
m_job->m_units = static_cast<JOB_EXPORT_PCB_ODB::ODB_UNITS>( m_choiceUnits->GetSelection() );
|
||||
m_job->m_compressionMode = static_cast<JOB_EXPORT_PCB_ODB::ODB_COMPRESSION>( m_choiceCompress->GetSelection() );
|
||||
}
|
||||
|
||||
return true;
|
||||
|
@ -47,18 +47,13 @@ enum FPGeneratorRowNames
|
||||
};
|
||||
|
||||
|
||||
DIALOG_FOOTPRINT_WIZARD_LIST::DIALOG_FOOTPRINT_WIZARD_LIST( wxWindow* aParent )
|
||||
: DIALOG_FOOTPRINT_WIZARD_LIST_BASE( aParent )
|
||||
DIALOG_FOOTPRINT_WIZARD_LIST::DIALOG_FOOTPRINT_WIZARD_LIST( wxWindow* aParent ) :
|
||||
DIALOG_FOOTPRINT_WIZARD_LIST_BASE( aParent )
|
||||
{
|
||||
initLists();
|
||||
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
PCBNEW_SETTINGS* cfg = mgr.GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" );
|
||||
|
||||
wxSize size;
|
||||
size.x = cfg->m_FootprintWizardList.width;
|
||||
size.y = cfg->m_FootprintWizardList.height;
|
||||
SetSize( size );
|
||||
if( PCBNEW_SETTINGS* cfg = GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" ) )
|
||||
SetSize( wxSize( cfg->m_FootprintWizardList.width, cfg->m_FootprintWizardList.height ) );
|
||||
|
||||
SetupStandardButtons();
|
||||
finishDialogSettings();
|
||||
@ -69,14 +64,13 @@ DIALOG_FOOTPRINT_WIZARD_LIST::DIALOG_FOOTPRINT_WIZARD_LIST( wxWindow* aParent )
|
||||
|
||||
DIALOG_FOOTPRINT_WIZARD_LIST::~DIALOG_FOOTPRINT_WIZARD_LIST()
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
PCBNEW_SETTINGS* cfg = mgr.GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" );
|
||||
|
||||
if( cfg && !IsIconized() )
|
||||
if( !IsIconized() )
|
||||
{
|
||||
|
||||
cfg->m_FootprintWizardList.width = GetSize().x;
|
||||
cfg->m_FootprintWizardList.height = GetSize().y;
|
||||
if( PCBNEW_SETTINGS* cfg = GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" ) )
|
||||
{
|
||||
cfg->m_FootprintWizardList.width = GetSize().x;
|
||||
cfg->m_FootprintWizardList.height = GetSize().y;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1209,10 +1209,9 @@ void DIALOG_PLOT::Plot( wxCommandEvent& event )
|
||||
|
||||
applyPlotSettings();
|
||||
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
PCBNEW_SETTINGS* cfg = mgr.GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" );
|
||||
PCBNEW_SETTINGS* cfg = GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" );
|
||||
|
||||
m_plotOpts.SetColorSettings( mgr.GetColorSettings( cfg->m_ColorTheme ) );
|
||||
m_plotOpts.SetColorSettings( ::GetColorSettings( cfg ? cfg->m_ColorTheme : DEFAULT_THEME ) );
|
||||
|
||||
m_plotOpts.SetSketchPadLineWidth( board->GetDesignSettings().GetLineThickness( F_Fab ) );
|
||||
|
||||
|
@ -57,9 +57,7 @@ DIALOG_RENDER_JOB::DIALOG_RENDER_JOB( wxWindow* aParent, JOB_PCB_RENDER* aJob )
|
||||
for( const auto& [k, name] : sideMap )
|
||||
m_choiceSide->Append( wxGetTranslation( name ) );
|
||||
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
|
||||
if( EDA_3D_VIEWER_SETTINGS* cfg = mgr.GetAppSettings<EDA_3D_VIEWER_SETTINGS>( "3d_viewer" ) )
|
||||
if( EDA_3D_VIEWER_SETTINGS* cfg = GetAppSettings<EDA_3D_VIEWER_SETTINGS>( "3d_viewer" ) )
|
||||
{
|
||||
for( const LAYER_PRESET_3D& preset : cfg->m_LayerPresets )
|
||||
m_presetCtrl->Append( preset.name );
|
||||
|
@ -246,20 +246,10 @@ bool PANEL_DISPLAY_OPTIONS::Show( bool aShow )
|
||||
|
||||
bool PANEL_DISPLAY_OPTIONS::TransferDataToWindow()
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
|
||||
if( m_isPCBEdit )
|
||||
{
|
||||
PCBNEW_SETTINGS* cfg = mgr.GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" );
|
||||
|
||||
loadPCBSettings( cfg );
|
||||
}
|
||||
loadPCBSettings( GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" ) );
|
||||
else
|
||||
{
|
||||
FOOTPRINT_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" );
|
||||
|
||||
loadFPSettings( cfg );
|
||||
}
|
||||
loadFPSettings( GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" ) );
|
||||
|
||||
m_galOptsPanel->TransferDataToWindow();
|
||||
|
||||
@ -377,40 +367,40 @@ bool PANEL_DISPLAY_OPTIONS::TransferDataFromWindow()
|
||||
|
||||
m_galOptsPanel->TransferDataFromWindow();
|
||||
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
|
||||
if( m_isPCBEdit )
|
||||
{
|
||||
PCBNEW_SETTINGS* cfg = mgr.GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" );
|
||||
if( PCBNEW_SETTINGS* cfg = GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" ) )
|
||||
{
|
||||
int i = m_OptDisplayTracksClearance->GetSelection();
|
||||
cfg->m_Display.m_TrackClearance = UTIL::GetValFromConfig( clearanceModeMap, i );
|
||||
|
||||
int i = m_OptDisplayTracksClearance->GetSelection();
|
||||
cfg->m_Display.m_TrackClearance = UTIL::GetValFromConfig( clearanceModeMap, i );
|
||||
|
||||
cfg->m_Display.m_PadClearance = m_OptDisplayPadClearence->GetValue();
|
||||
cfg->m_ViewersDisplay.m_DisplayPadNumbers = m_OptDisplayPadNumber->GetValue();
|
||||
cfg->m_Display.m_NetNames = m_ShowNetNamesOption->GetSelection();
|
||||
cfg->m_Display.m_ForceShowFieldsWhenFPSelected = m_checkForceShowFieldsWhenFPSelected->GetValue();
|
||||
cfg->m_Display.m_Live3DRefresh = m_live3Drefresh->GetValue();
|
||||
cfg->m_CrossProbing.on_selection = m_checkCrossProbeOnSelection->GetValue();
|
||||
cfg->m_CrossProbing.center_on_items = m_checkCrossProbeCenter->GetValue();
|
||||
cfg->m_CrossProbing.zoom_to_fit = m_checkCrossProbeZoom->GetValue();
|
||||
cfg->m_CrossProbing.auto_highlight = m_checkCrossProbeAutoHighlight->GetValue();
|
||||
cfg->m_Display.m_PadClearance = m_OptDisplayPadClearence->GetValue();
|
||||
cfg->m_ViewersDisplay.m_DisplayPadNumbers = m_OptDisplayPadNumber->GetValue();
|
||||
cfg->m_Display.m_NetNames = m_ShowNetNamesOption->GetSelection();
|
||||
cfg->m_Display.m_ForceShowFieldsWhenFPSelected = m_checkForceShowFieldsWhenFPSelected->GetValue();
|
||||
cfg->m_Display.m_Live3DRefresh = m_live3Drefresh->GetValue();
|
||||
cfg->m_CrossProbing.on_selection = m_checkCrossProbeOnSelection->GetValue();
|
||||
cfg->m_CrossProbing.center_on_items = m_checkCrossProbeCenter->GetValue();
|
||||
cfg->m_CrossProbing.zoom_to_fit = m_checkCrossProbeZoom->GetValue();
|
||||
cfg->m_CrossProbing.auto_highlight = m_checkCrossProbeAutoHighlight->GetValue();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
FOOTPRINT_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" );
|
||||
|
||||
cfg->m_DesignSettings.m_UserLayerNames.clear();
|
||||
wxGridTableBase* table = m_layerNameitemsGrid->GetTable();
|
||||
|
||||
for( int i = 0; i < m_layerNameitemsGrid->GetNumberRows(); ++i )
|
||||
if( FOOTPRINT_EDITOR_SETTINGS* cfg = GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" ) )
|
||||
{
|
||||
PCB_LAYER_ID layer = static_cast<PCB_LAYER_ID>( table->GetValueAsLong( i, 0 ) );
|
||||
wxString orig_name = LSET::Name( static_cast<PCB_LAYER_ID>( layer ) );
|
||||
wxString name = table->GetValue( i, 1 );
|
||||
cfg->m_DesignSettings.m_UserLayerNames.clear();
|
||||
wxGridTableBase* table = m_layerNameitemsGrid->GetTable();
|
||||
|
||||
if( layer >= 0 && IsUserLayer( layer ) && !name.IsEmpty() )
|
||||
cfg->m_DesignSettings.m_UserLayerNames.emplace( orig_name.ToStdString(), name );
|
||||
for( int i = 0; i < m_layerNameitemsGrid->GetNumberRows(); ++i )
|
||||
{
|
||||
PCB_LAYER_ID layer = static_cast<PCB_LAYER_ID>( table->GetValueAsLong( i, 0 ) );
|
||||
wxString orig_name = LSET::Name( static_cast<PCB_LAYER_ID>( layer ) );
|
||||
wxString name = table->GetValue( i, 1 );
|
||||
|
||||
if( layer >= 0 && IsUserLayer( layer ) && !name.IsEmpty() )
|
||||
cfg->m_DesignSettings.m_UserLayerNames.emplace( orig_name.ToStdString(), name );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -157,20 +157,10 @@ void PANEL_EDIT_OPTIONS::loadFPSettings( FOOTPRINT_EDITOR_SETTINGS* aCfg )
|
||||
|
||||
bool PANEL_EDIT_OPTIONS::TransferDataToWindow()
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
|
||||
if( m_isFootprintEditor )
|
||||
{
|
||||
FOOTPRINT_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" );
|
||||
|
||||
loadFPSettings( cfg );
|
||||
}
|
||||
loadFPSettings( GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" ) );
|
||||
else
|
||||
{
|
||||
PCBNEW_SETTINGS* cfg = mgr.GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" );
|
||||
|
||||
loadPCBSettings( cfg );
|
||||
}
|
||||
loadPCBSettings( GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" ) );
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -178,54 +168,54 @@ bool PANEL_EDIT_OPTIONS::TransferDataToWindow()
|
||||
|
||||
bool PANEL_EDIT_OPTIONS::TransferDataFromWindow()
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
|
||||
if( m_isFootprintEditor )
|
||||
{
|
||||
FOOTPRINT_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" );
|
||||
if( FOOTPRINT_EDITOR_SETTINGS* cfg = GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" ) )
|
||||
{
|
||||
cfg->m_RotationAngle = m_rotationAngle.GetAngleValue();
|
||||
|
||||
cfg->m_RotationAngle = m_rotationAngle.GetAngleValue();
|
||||
cfg->m_MagneticItems.pads = m_magneticPads->GetValue() ? MAGNETIC_OPTIONS::CAPTURE_ALWAYS
|
||||
: MAGNETIC_OPTIONS::NO_EFFECT;
|
||||
cfg->m_MagneticItems.graphics = m_magneticGraphics->GetValue();
|
||||
|
||||
cfg->m_MagneticItems.pads = m_magneticPads->GetValue() ? MAGNETIC_OPTIONS::CAPTURE_ALWAYS
|
||||
: MAGNETIC_OPTIONS::NO_EFFECT;
|
||||
cfg->m_MagneticItems.graphics = m_magneticGraphics->GetValue();
|
||||
|
||||
cfg->m_Use45Limit = m_cbConstrainHV45Mode->GetValue();
|
||||
cfg->m_ArcEditMode = arcEditModeToEnum( m_arcEditMode->GetSelection() );
|
||||
cfg->m_Use45Limit = m_cbConstrainHV45Mode->GetValue();
|
||||
cfg->m_ArcEditMode = arcEditModeToEnum( m_arcEditMode->GetSelection() );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
PCBNEW_SETTINGS* cfg = mgr.GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" );
|
||||
if( PCBNEW_SETTINGS* cfg = GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" ) )
|
||||
{
|
||||
cfg->m_Display.m_DisplayRatsnestLinesCurved = m_OptDisplayCurvedRatsnestLines->GetValue();
|
||||
cfg->m_Display.m_ShowModuleRatsnest = m_showSelectedRatsnest->GetValue();
|
||||
cfg->m_Display.m_RatsnestThickness = m_ratsnestThickness->GetValue();
|
||||
|
||||
cfg->m_Display.m_DisplayRatsnestLinesCurved = m_OptDisplayCurvedRatsnestLines->GetValue();
|
||||
cfg->m_Display.m_ShowModuleRatsnest = m_showSelectedRatsnest->GetValue();
|
||||
cfg->m_Display.m_RatsnestThickness = m_ratsnestThickness->GetValue();
|
||||
cfg->m_Use45DegreeLimit = m_cbConstrainHV45Mode->GetValue();
|
||||
cfg->m_RotationAngle = m_rotationAngle.GetAngleValue();
|
||||
cfg->m_ArcEditMode = arcEditModeToEnum( m_arcEditMode->GetSelection() );
|
||||
cfg->m_TrackDragAction = (TRACK_DRAG_ACTION) m_trackMouseDragCtrl->GetSelection();
|
||||
|
||||
cfg->m_Use45DegreeLimit = m_cbConstrainHV45Mode->GetValue();
|
||||
cfg->m_RotationAngle = m_rotationAngle.GetAngleValue();
|
||||
cfg->m_ArcEditMode = arcEditModeToEnum( m_arcEditMode->GetSelection() );
|
||||
cfg->m_TrackDragAction = (TRACK_DRAG_ACTION) m_trackMouseDragCtrl->GetSelection();
|
||||
cfg->m_FlipDirection = m_rbFlipLeftRight->GetValue() ? FLIP_DIRECTION::LEFT_RIGHT
|
||||
: FLIP_DIRECTION::TOP_BOTTOM;
|
||||
|
||||
cfg->m_FlipDirection = m_rbFlipLeftRight->GetValue() ? FLIP_DIRECTION::LEFT_RIGHT
|
||||
: FLIP_DIRECTION::TOP_BOTTOM;
|
||||
cfg->m_AllowFreePads = m_allowFreePads->GetValue();
|
||||
cfg->m_LockingOptions.m_sessionSkipPrompts = m_overrideLocks->GetValue();
|
||||
cfg->m_AutoRefillZones = m_autoRefillZones->GetValue();
|
||||
|
||||
cfg->m_AllowFreePads = m_allowFreePads->GetValue();
|
||||
cfg->m_LockingOptions.m_sessionSkipPrompts = m_overrideLocks->GetValue();
|
||||
cfg->m_AutoRefillZones = m_autoRefillZones->GetValue();
|
||||
cfg->m_MagneticItems.pads = static_cast<MAGNETIC_OPTIONS>( m_magneticPadChoice->GetSelection() );
|
||||
cfg->m_MagneticItems.tracks = static_cast<MAGNETIC_OPTIONS>( m_magneticTrackChoice->GetSelection() );
|
||||
cfg->m_MagneticItems.graphics = !m_magneticGraphicsChoice->GetSelection();
|
||||
|
||||
cfg->m_MagneticItems.pads = static_cast<MAGNETIC_OPTIONS>( m_magneticPadChoice->GetSelection() );
|
||||
cfg->m_MagneticItems.tracks = static_cast<MAGNETIC_OPTIONS>( m_magneticTrackChoice->GetSelection() );
|
||||
cfg->m_MagneticItems.graphics = !m_magneticGraphicsChoice->GetSelection();
|
||||
|
||||
cfg->m_ESCClearsNetHighlight = m_escClearsNetHighlight->GetValue();
|
||||
cfg->m_ShowPageLimits = m_showPageLimits->GetValue();
|
||||
cfg->m_ShowCourtyardCollisions = m_cbCourtyardCollisions->GetValue();
|
||||
cfg->m_ESCClearsNetHighlight = m_escClearsNetHighlight->GetValue();
|
||||
cfg->m_ShowPageLimits = m_showPageLimits->GetValue();
|
||||
cfg->m_ShowCourtyardCollisions = m_cbCourtyardCollisions->GetValue();
|
||||
|
||||
#ifdef __WXOSX_MAC__
|
||||
cfg->m_CtrlClickHighlight = m_rbHighlightNetMac->GetValue();
|
||||
cfg->m_CtrlClickHighlight = m_rbHighlightNetMac->GetValue();
|
||||
#else
|
||||
cfg->m_CtrlClickHighlight = m_rbHighlightNet->GetValue();
|
||||
cfg->m_CtrlClickHighlight = m_rbHighlightNet->GetValue();
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
|
@ -33,20 +33,19 @@ PANEL_FP_EDITOR_COLOR_SETTINGS::PANEL_FP_EDITOR_COLOR_SETTINGS( wxWindow* aParen
|
||||
|
||||
m_colorNamespace = "board";
|
||||
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
FOOTPRINT_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" );
|
||||
COLOR_SETTINGS* current = mgr.GetColorSettings( cfg->m_ColorTheme );
|
||||
FOOTPRINT_EDITOR_SETTINGS* cfg = GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" );
|
||||
COLOR_SETTINGS* current = ::GetColorSettings( cfg ? cfg->m_ColorTheme : DEFAULT_THEME );
|
||||
|
||||
// Store the current settings before reloading below
|
||||
current->Store();
|
||||
mgr.SaveColorSettings( current, "board" );
|
||||
Pgm().GetSettingsManager().SaveColorSettings( current, "board" );
|
||||
|
||||
m_optOverrideColors->SetValue( current->GetOverrideSchItemColors() );
|
||||
|
||||
m_currentSettings = new COLOR_SETTINGS( *current );
|
||||
|
||||
mgr.ReloadColorSettings();
|
||||
createThemeList( cfg->m_ColorTheme );
|
||||
Pgm().GetSettingsManager().ReloadColorSettings();
|
||||
createThemeList( cfg ? cfg->m_ColorTheme : DEFAULT_THEME );
|
||||
|
||||
m_validLayers.push_back( F_Cu );
|
||||
m_validLayers.push_back( In1_Cu ); // "Internal Layers"
|
||||
@ -78,10 +77,8 @@ PANEL_FP_EDITOR_COLOR_SETTINGS::~PANEL_FP_EDITOR_COLOR_SETTINGS()
|
||||
|
||||
bool PANEL_FP_EDITOR_COLOR_SETTINGS::TransferDataFromWindow()
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
FOOTPRINT_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" );
|
||||
|
||||
cfg->m_ColorTheme = m_currentSettings->GetFilename();
|
||||
if( FOOTPRINT_EDITOR_SETTINGS* cfg = GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" ) )
|
||||
cfg->m_ColorTheme = m_currentSettings->GetFilename();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -169,8 +169,7 @@ public:
|
||||
|
||||
static FOOTPRINT_EDITOR_SETTINGS& GetPgmSettings()
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
return *mgr.GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" );
|
||||
return *GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" );
|
||||
}
|
||||
|
||||
|
||||
|
@ -60,8 +60,7 @@ enum
|
||||
|
||||
static FOOTPRINT_EDITOR_SETTINGS& GetPgmSettings()
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
return *mgr.GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" );
|
||||
return *GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" );
|
||||
}
|
||||
|
||||
|
||||
|
@ -317,16 +317,14 @@ protected:
|
||||
|
||||
void PANEL_FP_LIB_TABLE::setupGrid( WX_GRID* aGrid )
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
PCBNEW_SETTINGS* cfg = mgr.GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" );
|
||||
auto autoSizeCol =
|
||||
[&]( WX_GRID* aLocGrid, int aCol )
|
||||
{
|
||||
int prevWidth = aLocGrid->GetColSize( aCol );
|
||||
|
||||
auto autoSizeCol = [&]( WX_GRID* aLocGrid, int aCol )
|
||||
{
|
||||
int prevWidth = aLocGrid->GetColSize( aCol );
|
||||
|
||||
aLocGrid->AutoSizeColumn( aCol, false );
|
||||
aLocGrid->SetColSize( aCol, std::max( prevWidth, aLocGrid->GetColSize( aCol ) ) );
|
||||
};
|
||||
aLocGrid->AutoSizeColumn( aCol, false );
|
||||
aLocGrid->SetColSize( aCol, std::max( prevWidth, aLocGrid->GetColSize( aCol ) ) );
|
||||
};
|
||||
|
||||
// Give a bit more room for wxChoice editors
|
||||
for( int ii = 0; ii < aGrid->GetNumberRows(); ++ii )
|
||||
@ -340,20 +338,25 @@ void PANEL_FP_LIB_TABLE::setupGrid( WX_GRID* aGrid )
|
||||
wxGridCellAttr* attr;
|
||||
|
||||
attr = new wxGridCellAttr;
|
||||
attr->SetEditor( new GRID_CELL_PATH_EDITOR(
|
||||
m_parent, aGrid, &cfg->m_lastFootprintLibDir, true, m_projectBasePath,
|
||||
[this]( WX_GRID* grid, int row ) -> wxString
|
||||
{
|
||||
auto* libTable = static_cast<FP_LIB_TABLE_GRID*>( grid->GetTable() );
|
||||
auto* tableRow = static_cast<FP_LIB_TABLE_ROW*>( libTable->at( row ) );
|
||||
PCB_IO_MGR::PCB_FILE_T fileType = tableRow->GetFileType();
|
||||
const IO_BASE::IO_FILE_DESC& pluginDesc = m_supportedFpFiles.at( fileType );
|
||||
|
||||
if( pluginDesc.m_IsFile )
|
||||
return pluginDesc.FileFilter();
|
||||
else
|
||||
return wxEmptyString;
|
||||
} ) );
|
||||
if( PCBNEW_SETTINGS* cfg = GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" ) )
|
||||
{
|
||||
attr->SetEditor( new GRID_CELL_PATH_EDITOR(
|
||||
m_parent, aGrid, &cfg->m_lastFootprintLibDir, true, m_projectBasePath,
|
||||
[this]( WX_GRID* grid, int row ) -> wxString
|
||||
{
|
||||
auto* libTable = static_cast<FP_LIB_TABLE_GRID*>( grid->GetTable() );
|
||||
auto* tableRow = static_cast<FP_LIB_TABLE_ROW*>( libTable->at( row ) );
|
||||
PCB_IO_MGR::PCB_FILE_T fileType = tableRow->GetFileType();
|
||||
const IO_BASE::IO_FILE_DESC& pluginDesc = m_supportedFpFiles.at( fileType );
|
||||
|
||||
if( pluginDesc.m_IsFile )
|
||||
return pluginDesc.FileFilter();
|
||||
else
|
||||
return wxEmptyString;
|
||||
} ) );
|
||||
}
|
||||
|
||||
aGrid->SetColAttr( COL_URI, attr );
|
||||
|
||||
attr = new wxGridCellAttr;
|
||||
@ -408,12 +411,11 @@ PANEL_FP_LIB_TABLE::PANEL_FP_LIB_TABLE( DIALOG_EDIT_LIBRARY_TABLES* aParent, PRO
|
||||
for( auto& [fileType, desc] : m_supportedFpFiles )
|
||||
m_pluginChoices.Add( PCB_IO_MGR::ShowType( fileType ) );
|
||||
|
||||
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
PCBNEW_SETTINGS* cfg = mgr.GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" );
|
||||
|
||||
if( cfg->m_lastFootprintLibDir.IsEmpty() )
|
||||
cfg->m_lastFootprintLibDir = PATHS::GetDefaultUserFootprintsPath();
|
||||
if( PCBNEW_SETTINGS* cfg = GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" ) )
|
||||
{
|
||||
if( cfg->m_lastFootprintLibDir.IsEmpty() )
|
||||
cfg->m_lastFootprintLibDir = PATHS::GetDefaultUserFootprintsPath();
|
||||
}
|
||||
|
||||
m_lastProjectLibDir = m_projectBasePath;
|
||||
|
||||
@ -509,11 +511,10 @@ PANEL_FP_LIB_TABLE::PANEL_FP_LIB_TABLE( DIALOG_EDIT_LIBRARY_TABLES* aParent, PRO
|
||||
PANEL_FP_LIB_TABLE::~PANEL_FP_LIB_TABLE()
|
||||
{
|
||||
wxMenu* browseMenu = m_browseButton->GetSplitButtonMenu();
|
||||
|
||||
for( auto& [type, desc] : m_supportedFpFiles )
|
||||
{
|
||||
browseMenu->Unbind( wxEVT_COMMAND_MENU_SELECTED,
|
||||
&PANEL_FP_LIB_TABLE::browseLibrariesHandler, this, type );
|
||||
}
|
||||
browseMenu->Unbind( wxEVT_COMMAND_MENU_SELECTED, &PANEL_FP_LIB_TABLE::browseLibrariesHandler, this, type );
|
||||
|
||||
m_browseButton->Unbind( wxEVT_BUTTON, &PANEL_FP_LIB_TABLE::browseLibrariesHandler, this );
|
||||
|
||||
// Delete the GRID_TRICKS.
|
||||
@ -947,14 +948,16 @@ void PANEL_FP_LIB_TABLE::browseLibrariesHandler( wxCommandEvent& event )
|
||||
}
|
||||
|
||||
const IO_BASE::IO_FILE_DESC& fileDesc = m_supportedFpFiles.at( fileType );
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
PCBNEW_SETTINGS* cfg = mgr.GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" );
|
||||
PCBNEW_SETTINGS* cfg = GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" );
|
||||
|
||||
wxString title = wxString::Format( _( "Select %s Library" ), PCB_IO_MGR::ShowType( fileType ) );
|
||||
wxString openDir = cfg->m_lastFootprintLibDir;
|
||||
wxString title = wxString::Format( _( "Select %s Library" ), PCB_IO_MGR::ShowType( fileType ) );
|
||||
wxString dummy;
|
||||
wxString* lastDir;
|
||||
|
||||
if( m_cur_grid == m_project_grid )
|
||||
openDir = m_lastProjectLibDir;
|
||||
lastDir = &m_lastProjectLibDir;
|
||||
else
|
||||
lastDir = cfg ? &cfg->m_lastFootprintLibDir : &dummy;
|
||||
|
||||
wxArrayString files;
|
||||
|
||||
@ -962,29 +965,21 @@ void PANEL_FP_LIB_TABLE::browseLibrariesHandler( wxCommandEvent& event )
|
||||
|
||||
if( fileDesc.m_IsFile )
|
||||
{
|
||||
wxFileDialog dlg( topLevelParent, title, openDir, wxEmptyString, fileDesc.FileFilter(),
|
||||
wxFileDialog dlg( topLevelParent, title, *lastDir, wxEmptyString, fileDesc.FileFilter(),
|
||||
wxFD_OPEN | wxFD_FILE_MUST_EXIST | wxFD_MULTIPLE );
|
||||
|
||||
int result = dlg.ShowModal();
|
||||
|
||||
if( result == wxID_CANCEL )
|
||||
if( dlg.ShowModal() == wxID_CANCEL )
|
||||
return;
|
||||
|
||||
dlg.GetPaths( files );
|
||||
|
||||
if( m_cur_grid == m_global_grid )
|
||||
cfg->m_lastFootprintLibDir = dlg.GetDirectory();
|
||||
else
|
||||
m_lastProjectLibDir = dlg.GetDirectory();
|
||||
*lastDir = dlg.GetDirectory();
|
||||
}
|
||||
else
|
||||
{
|
||||
wxDirDialog dlg( topLevelParent, title, openDir,
|
||||
wxDirDialog dlg( topLevelParent, title, *lastDir,
|
||||
wxDD_DEFAULT_STYLE | wxDD_DIR_MUST_EXIST | wxDD_MULTIPLE );
|
||||
|
||||
int result = dlg.ShowModal();
|
||||
|
||||
if( result == wxID_CANCEL )
|
||||
if( dlg.ShowModal() == wxID_CANCEL )
|
||||
return;
|
||||
|
||||
dlg.GetPaths( files );
|
||||
@ -992,16 +987,12 @@ void PANEL_FP_LIB_TABLE::browseLibrariesHandler( wxCommandEvent& event )
|
||||
if( !files.IsEmpty() )
|
||||
{
|
||||
wxFileName first( files.front() );
|
||||
|
||||
if( m_cur_grid == m_global_grid )
|
||||
cfg->m_lastFootprintLibDir = first.GetPath();
|
||||
else
|
||||
m_lastProjectLibDir = first.GetPath();
|
||||
*lastDir = first.GetPath();
|
||||
}
|
||||
}
|
||||
|
||||
// Drop the last directory if the path is a .pretty folder
|
||||
if( cfg->m_lastFootprintLibDir.EndsWith( FILEEXT::KiCadFootprintLibPathExtension ) )
|
||||
if( cfg && cfg->m_lastFootprintLibDir.EndsWith( FILEEXT::KiCadFootprintLibPathExtension ) )
|
||||
cfg->m_lastFootprintLibDir = cfg->m_lastFootprintLibDir.BeforeLast( wxFileName::GetPathSeparator() );
|
||||
|
||||
const ENV_VAR_MAP& envVars = Pgm().GetLocalEnvVariables();
|
||||
@ -1020,7 +1011,9 @@ void PANEL_FP_LIB_TABLE::browseLibrariesHandler( wxCommandEvent& event )
|
||||
|
||||
if( fileType == PCB_IO_MGR::KICAD_SEXP
|
||||
&& fn.GetExt() != FILEEXT::KiCadFootprintLibPathExtension )
|
||||
{
|
||||
nickname = LIB_ID::FixIllegalChars( fn.GetFullName(), true ).wx_str();
|
||||
}
|
||||
|
||||
if( cur_model()->ContainsNickname( nickname ) )
|
||||
{
|
||||
|
@ -90,10 +90,9 @@ PANEL_FP_PROPERTIES_3D_MODEL::PANEL_FP_PROPERTIES_3D_MODEL( PCB_BASE_EDIT_FRAME*
|
||||
m_modelsGrid->PushEventHandler( trick );
|
||||
|
||||
// Get the last 3D directory
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
PCBNEW_SETTINGS* cfg = mgr.GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" );
|
||||
PCBNEW_SETTINGS* cfg = GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" );
|
||||
|
||||
if( cfg->m_lastFootprint3dDir.IsEmpty() )
|
||||
if( cfg && cfg->m_lastFootprint3dDir.IsEmpty() )
|
||||
{
|
||||
wxGetEnv( ENV_VAR::GetVersionedEnvVarName( wxS( "3DMODEL_DIR" ) ),
|
||||
&cfg->m_lastFootprint3dDir );
|
||||
@ -106,9 +105,14 @@ PANEL_FP_PROPERTIES_3D_MODEL::PANEL_FP_PROPERTIES_3D_MODEL( PCB_BASE_EDIT_FRAME*
|
||||
|
||||
// Filename
|
||||
attr = new wxGridCellAttr;
|
||||
attr->SetEditor( new GRID_CELL_PATH_EDITOR( m_parentDialog, m_modelsGrid,
|
||||
&cfg->m_lastFootprint3dDir, wxT( "*.*" ), true,
|
||||
m_frame->Prj().GetProjectPath() ) );
|
||||
|
||||
if( cfg )
|
||||
{
|
||||
attr->SetEditor( new GRID_CELL_PATH_EDITOR( m_parentDialog, m_modelsGrid,
|
||||
&cfg->m_lastFootprint3dDir, wxT( "*.*" ), true,
|
||||
m_frame->Prj().GetProjectPath() ) );
|
||||
}
|
||||
|
||||
m_modelsGrid->SetColAttr( COL_FILENAME, attr );
|
||||
|
||||
// Show checkbox
|
||||
@ -132,8 +136,7 @@ PANEL_FP_PROPERTIES_3D_MODEL::PANEL_FP_PROPERTIES_3D_MODEL( PCB_BASE_EDIT_FRAME*
|
||||
m_button3DShapeRemove->SetBitmap( KiBitmapBundle( BITMAPS::small_trash ) );
|
||||
|
||||
Bind( wxEVT_SHOW, &PANEL_FP_PROPERTIES_3D_MODEL::onShowEvent, this );
|
||||
m_parentDialog->Bind( wxEVT_ACTIVATE, &PANEL_FP_PROPERTIES_3D_MODEL::onDialogActivateEvent,
|
||||
this );
|
||||
m_parentDialog->Bind( wxEVT_ACTIVATE, &PANEL_FP_PROPERTIES_3D_MODEL::onDialogActivateEvent, this );
|
||||
}
|
||||
|
||||
|
||||
|
@ -687,15 +687,14 @@ PANEL_PCBNEW_COLOR_SETTINGS::PANEL_PCBNEW_COLOR_SETTINGS( wxWindow* aParent, BOA
|
||||
{
|
||||
m_colorNamespace = "board";
|
||||
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
PCBNEW_SETTINGS* cfg = mgr.GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" );
|
||||
COLOR_SETTINGS* current = mgr.GetColorSettings( cfg->m_ColorTheme );
|
||||
PCBNEW_SETTINGS* cfg = GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" );
|
||||
COLOR_SETTINGS* current = ::GetColorSettings( cfg ? cfg->m_ColorTheme : DEFAULT_THEME );
|
||||
|
||||
// Saved theme doesn't exist? Reset to default
|
||||
if( current->GetFilename() != cfg->m_ColorTheme )
|
||||
if( cfg && current->GetFilename() != cfg->m_ColorTheme )
|
||||
cfg->m_ColorTheme = current->GetFilename();
|
||||
|
||||
createThemeList( cfg->m_ColorTheme );
|
||||
createThemeList( cfg ? cfg->m_ColorTheme : DEFAULT_THEME );
|
||||
|
||||
// Currently this only applies to eeschema
|
||||
m_optOverrideColors->Hide();
|
||||
@ -735,10 +734,8 @@ PANEL_PCBNEW_COLOR_SETTINGS::~PANEL_PCBNEW_COLOR_SETTINGS()
|
||||
|
||||
bool PANEL_PCBNEW_COLOR_SETTINGS::TransferDataFromWindow()
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
PCBNEW_SETTINGS* cfg = mgr.GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" );
|
||||
|
||||
cfg->m_ColorTheme = m_currentSettings->GetFilename();
|
||||
if( PCBNEW_SETTINGS* cfg = GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" ) )
|
||||
cfg->m_ColorTheme = m_currentSettings->GetFilename();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -33,12 +33,11 @@ DRC_TEST_PROVIDER_CLEARANCE_BASE::GetGraphicsHandler( const std::vector<PCB_SHAP
|
||||
int aLength )
|
||||
{
|
||||
// todo: Move this to a board-level object instead of getting it from the DRC Engine
|
||||
PGM_BASE* pgm = PgmOrNull();
|
||||
COLOR4D errorColor = COLOR4D( RED );
|
||||
|
||||
if( pgm )
|
||||
if( PgmOrNull() )
|
||||
{
|
||||
COLOR_SETTINGS* colorSettings = pgm->GetSettingsManager().GetColorSettings();
|
||||
COLOR_SETTINGS* colorSettings = ::GetColorSettings( DEFAULT_THEME );
|
||||
errorColor = colorSettings->GetColor( LAYER_DRC_ERROR );
|
||||
}
|
||||
|
||||
|
@ -444,12 +444,8 @@ WINDOW_SETTINGS* FOOTPRINT_CHOOSER_FRAME::GetWindowSettings( APP_SETTINGS_BASE*
|
||||
|
||||
COLOR_SETTINGS* FOOTPRINT_CHOOSER_FRAME::GetColorSettings( bool aForceRefresh ) const
|
||||
{
|
||||
auto* cfg = Pgm().GetSettingsManager().GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" );
|
||||
|
||||
if( cfg )
|
||||
return Pgm().GetSettingsManager().GetColorSettings( cfg->m_ColorTheme );
|
||||
else
|
||||
return Pgm().GetSettingsManager().GetColorSettings();
|
||||
FOOTPRINT_EDITOR_SETTINGS* cfg = GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" );
|
||||
return ::GetColorSettings( cfg ? cfg->m_ColorTheme : DEFAULT_THEME );
|
||||
}
|
||||
|
||||
|
||||
@ -670,10 +666,7 @@ void FOOTPRINT_CHOOSER_FRAME::build3DCanvas()
|
||||
m_boardAdapter.m_IsBoardView = false;
|
||||
m_boardAdapter.m_IsPreviewer = true; // Force display 3D models, regardless the 3D viewer options
|
||||
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
EDA_3D_VIEWER_SETTINGS* cfg = mgr.GetAppSettings<EDA_3D_VIEWER_SETTINGS>( "3d_viewer" );
|
||||
|
||||
m_boardAdapter.m_Cfg = cfg;
|
||||
m_boardAdapter.m_Cfg = GetAppSettings<EDA_3D_VIEWER_SETTINGS>( "3d_viewer" );
|
||||
|
||||
// Build the 3D canvas
|
||||
m_preview3DCanvas = new EDA_3D_CANVAS( m_chooserPanel->m_RightPanel,
|
||||
|
@ -165,7 +165,7 @@ FOOTPRINT_EDIT_FRAME::FOOTPRINT_EDIT_FRAME( KIWAY* aKiway, wxWindow* aParent ) :
|
||||
initLibraryTree();
|
||||
m_treePane = new FOOTPRINT_TREE_PANE( this );
|
||||
|
||||
m_toolbarSettings = Pgm().GetSettingsManager().GetToolbarSettings<FOOTPRINT_EDIT_TOOLBAR_SETTINGS>( "fpedit-toolbars" );
|
||||
m_toolbarSettings = GetToolbarSettings<FOOTPRINT_EDIT_TOOLBAR_SETTINGS>( "fpedit-toolbars" );
|
||||
configureToolbars();
|
||||
RecreateToolbars();
|
||||
ReCreateLayerBox( false );
|
||||
@ -553,13 +553,13 @@ void FOOTPRINT_EDIT_FRAME::updateEnabledLayers()
|
||||
}
|
||||
|
||||
// Enable any layers that the user has gone to the trouble to name
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
FOOTPRINT_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" );
|
||||
|
||||
for( const PCB_LAYER_ID& user : LSET::UserDefinedLayersMask() )
|
||||
if( FOOTPRINT_EDITOR_SETTINGS* cfg = GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" ) )
|
||||
{
|
||||
if( cfg->m_DesignSettings.m_UserLayerNames.contains( LSET::Name( user ).ToStdString() ) )
|
||||
enabledLayers.set( user );
|
||||
for( const PCB_LAYER_ID& user : LSET::UserDefinedLayersMask() )
|
||||
{
|
||||
if( cfg->m_DesignSettings.m_UserLayerNames.contains( LSET::Name( user ).ToStdString() ) )
|
||||
enabledLayers.set( user );
|
||||
}
|
||||
}
|
||||
|
||||
GetBoard()->SetEnabledLayers( enabledLayers );
|
||||
@ -692,11 +692,7 @@ void FOOTPRINT_EDIT_FRAME::SetPlotSettings( const PCB_PLOT_PARAMS& aSettings )
|
||||
FOOTPRINT_EDITOR_SETTINGS* FOOTPRINT_EDIT_FRAME::GetSettings()
|
||||
{
|
||||
if( !m_editorSettings )
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
|
||||
m_editorSettings = mgr.GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" );
|
||||
}
|
||||
m_editorSettings = GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" );
|
||||
|
||||
return m_editorSettings;
|
||||
}
|
||||
@ -808,8 +804,8 @@ EDA_ANGLE FOOTPRINT_EDIT_FRAME::GetRotationAngle() const
|
||||
|
||||
COLOR_SETTINGS* FOOTPRINT_EDIT_FRAME::GetColorSettings( bool aForceRefresh ) const
|
||||
{
|
||||
wxString currentTheme = GetFootprintEditorSettings()->m_ColorTheme;
|
||||
return Pgm().GetSettingsManager().GetColorSettings( currentTheme );
|
||||
FOOTPRINT_EDITOR_SETTINGS* cfg = GetFootprintEditorSettings();
|
||||
return ::GetColorSettings( cfg ? cfg->m_ColorTheme : DEFAULT_THEME );
|
||||
}
|
||||
|
||||
|
||||
@ -1468,13 +1464,13 @@ void FOOTPRINT_EDIT_FRAME::CommonSettingsChanged( int aFlags )
|
||||
{
|
||||
PCB_BASE_EDIT_FRAME::CommonSettingsChanged( aFlags );
|
||||
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
FOOTPRINT_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" );
|
||||
if( FOOTPRINT_EDITOR_SETTINGS* cfg = GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" ) )
|
||||
{
|
||||
GetGalDisplayOptions().ReadWindowSettings( cfg->m_Window );
|
||||
|
||||
GetGalDisplayOptions().ReadWindowSettings( cfg->m_Window );
|
||||
|
||||
GetBoard()->GetDesignSettings() = cfg->m_DesignSettings;
|
||||
updateEnabledLayers();
|
||||
GetBoard()->GetDesignSettings() = cfg->m_DesignSettings;
|
||||
updateEnabledLayers();
|
||||
}
|
||||
|
||||
GetCanvas()->GetView()->UpdateAllLayersColor();
|
||||
GetCanvas()->GetView()->MarkTargetDirty( KIGFX::TARGET_NONCACHED );
|
||||
|
@ -220,7 +220,7 @@ FOOTPRINT_VIEWER_FRAME::FOOTPRINT_VIEWER_FRAME( KIWAY* aKiway, wxWindow* aParent
|
||||
|
||||
setupUIConditions();
|
||||
|
||||
m_toolbarSettings = Pgm().GetSettingsManager().GetToolbarSettings<FOOTPRINT_VIEWER_TOOLBAR_SETTINGS>( "fpviewer-toolbars" );
|
||||
m_toolbarSettings = GetToolbarSettings<FOOTPRINT_VIEWER_TOOLBAR_SETTINGS>( "fpviewer-toolbars" );
|
||||
configureToolbars();
|
||||
RecreateToolbars();
|
||||
ReCreateMenuBar();
|
||||
@ -797,31 +797,31 @@ void FOOTPRINT_VIEWER_FRAME::AddFootprintToPCB()
|
||||
|
||||
void FOOTPRINT_VIEWER_FRAME::LoadSettings( APP_SETTINGS_BASE* aCfg )
|
||||
{
|
||||
PCBNEW_SETTINGS* cfg = dynamic_cast<PCBNEW_SETTINGS*>( aCfg );
|
||||
wxCHECK( cfg, /*void*/ );
|
||||
|
||||
// We don't allow people to change this right now, so make sure it's on
|
||||
GetWindowSettings( cfg )->cursor.always_show_cursor = true;
|
||||
|
||||
PCB_BASE_FRAME::LoadSettings( aCfg );
|
||||
|
||||
// Fetch display and grid settings from Footprint Editor
|
||||
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 );
|
||||
|
||||
m_libListWidth = cfg->m_FootprintViewerLibListWidth;
|
||||
m_fpListWidth = cfg->m_FootprintViewerFPListWidth;
|
||||
|
||||
// Set parameters to a reasonable value.
|
||||
int maxWidth = cfg->m_FootprintViewer.state.size_x - 80;
|
||||
|
||||
if( m_libListWidth + m_fpListWidth > maxWidth )
|
||||
if( PCBNEW_SETTINGS* cfg = dynamic_cast<PCBNEW_SETTINGS*>( aCfg ) )
|
||||
{
|
||||
m_libListWidth = maxWidth * ( m_libListWidth / ( m_libListWidth + m_fpListWidth ) );
|
||||
m_fpListWidth = maxWidth - m_libListWidth;
|
||||
// We don't allow people to change this right now, so make sure it's on
|
||||
GetWindowSettings( cfg )->cursor.always_show_cursor = true;
|
||||
|
||||
PCB_BASE_FRAME::LoadSettings( aCfg );
|
||||
|
||||
// Fetch display and grid settings from Footprint Editor
|
||||
if( FOOTPRINT_EDITOR_SETTINGS* fpedit = GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" ) )
|
||||
{
|
||||
m_displayOptions = fpedit->m_Display;
|
||||
GetGalDisplayOptions().ReadWindowSettings( fpedit->m_Window );
|
||||
}
|
||||
|
||||
m_libListWidth = cfg->m_FootprintViewerLibListWidth;
|
||||
m_fpListWidth = cfg->m_FootprintViewerFPListWidth;
|
||||
|
||||
// Set parameters to a reasonable value.
|
||||
int maxWidth = cfg->m_FootprintViewer.state.size_x - 80;
|
||||
|
||||
if( m_libListWidth + m_fpListWidth > maxWidth )
|
||||
{
|
||||
m_libListWidth = maxWidth * ( m_libListWidth / ( m_libListWidth + m_fpListWidth ) );
|
||||
m_fpListWidth = maxWidth - m_libListWidth;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -856,13 +856,8 @@ WINDOW_SETTINGS* FOOTPRINT_VIEWER_FRAME::GetWindowSettings( APP_SETTINGS_BASE* a
|
||||
|
||||
COLOR_SETTINGS* FOOTPRINT_VIEWER_FRAME::GetColorSettings( bool aForceRefresh ) const
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
FOOTPRINT_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" );
|
||||
|
||||
if( cfg )
|
||||
return mgr.GetColorSettings( cfg->m_ColorTheme );
|
||||
else
|
||||
return mgr.GetColorSettings();
|
||||
FOOTPRINT_EDITOR_SETTINGS* cfg = GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" );
|
||||
return ::GetColorSettings( cfg ? cfg->m_ColorTheme : DEFAULT_THEME );
|
||||
}
|
||||
|
||||
|
||||
|
@ -151,7 +151,7 @@ FOOTPRINT_WIZARD_FRAME::FOOTPRINT_WIZARD_FRAME( KIWAY* aKiway, wxWindow* aParent
|
||||
m_toolManager->InvokeTool( "common.InteractiveSelection" );
|
||||
|
||||
// Create the toolbars
|
||||
m_toolbarSettings = Pgm().GetSettingsManager().GetToolbarSettings<FOOTPRINT_WIZARD_TOOLBAR_SETTINGS>( "fpwizard-toolbars" );
|
||||
m_toolbarSettings = GetToolbarSettings<FOOTPRINT_WIZARD_TOOLBAR_SETTINGS>( "fpwizard-toolbars" );
|
||||
configureToolbars();
|
||||
RecreateToolbars();
|
||||
|
||||
@ -281,9 +281,8 @@ void FOOTPRINT_WIZARD_FRAME::OnSize( wxSizeEvent& SizeEv )
|
||||
|
||||
COLOR_SETTINGS* FOOTPRINT_WIZARD_FRAME::GetColorSettings( bool aForceRefresh ) const
|
||||
{
|
||||
wxString currentTheme = GetFootprintEditorSettings()->m_ColorTheme;
|
||||
|
||||
return Pgm().GetSettingsManager().GetColorSettings( currentTheme );
|
||||
FOOTPRINT_EDITOR_SETTINGS* cfg = GetFootprintEditorSettings();
|
||||
return ::GetColorSettings( cfg ? cfg->m_ColorTheme : DEFAULT_THEME );
|
||||
}
|
||||
|
||||
|
||||
|
@ -55,7 +55,12 @@ void GRID_CELL_LAYER_RENDERER::Draw( wxGrid& aGrid, wxGridCellAttr& aAttr, wxDC&
|
||||
const wxRect& aRect, int aRow, int aCol, bool isSelected )
|
||||
{
|
||||
int value = aGrid.GetTable()->GetValueAsLong( aRow, aCol );
|
||||
COLOR_SETTINGS* cs = nullptr;
|
||||
COLOR_SETTINGS* cs = ::GetColorSettings( DEFAULT_THEME );
|
||||
|
||||
if( m_frame )
|
||||
cs = m_frame->GetColorSettings();
|
||||
else if( FOOTPRINT_EDITOR_SETTINGS* cfg = GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" ) )
|
||||
cs = ::GetColorSettings( cfg->m_ColorTheme );
|
||||
|
||||
wxRect rect = aRect;
|
||||
rect.Inflate( -1 );
|
||||
@ -63,17 +68,6 @@ void GRID_CELL_LAYER_RENDERER::Draw( wxGrid& aGrid, wxGridCellAttr& aAttr, wxDC&
|
||||
// erase background
|
||||
wxGridCellRenderer::Draw( aGrid, aAttr, aDC, aRect, aRow, aCol, isSelected );
|
||||
|
||||
if( m_frame )
|
||||
{
|
||||
cs = m_frame->GetColorSettings();
|
||||
}
|
||||
else
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
FOOTPRINT_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" );
|
||||
cs = mgr.GetColorSettings( cfg->m_ColorTheme );
|
||||
}
|
||||
|
||||
// draw the swatch
|
||||
#ifdef __WXMAC__
|
||||
int size = 14;
|
||||
|
@ -268,7 +268,8 @@ void PCB_BASE_EDIT_FRAME::SetObjectVisible( GAL_LAYER_ID aLayer, bool aVisible )
|
||||
|
||||
COLOR_SETTINGS* PCB_BASE_EDIT_FRAME::GetColorSettings( bool aForceRefresh ) const
|
||||
{
|
||||
return Pgm().GetSettingsManager().GetColorSettings( GetPcbNewSettings()->m_ColorTheme );
|
||||
PCBNEW_SETTINGS* cfg = GetPcbNewSettings();
|
||||
return ::GetColorSettings( cfg ? cfg->m_ColorTheme : DEFAULT_THEME );
|
||||
}
|
||||
|
||||
|
||||
|
@ -454,23 +454,13 @@ void PCB_DRAW_PANEL_GAL::SetDrawingSheet( DS_PROXY_VIEW_ITEM* aDrawingSheet )
|
||||
|
||||
void PCB_DRAW_PANEL_GAL::UpdateColors()
|
||||
{
|
||||
COLOR_SETTINGS* cs = nullptr;
|
||||
|
||||
COLOR_SETTINGS* cs = ::GetColorSettings( DEFAULT_THEME );
|
||||
PCB_BASE_FRAME* frame = dynamic_cast<PCB_BASE_FRAME*>( GetParentEDAFrame() );
|
||||
|
||||
if( frame )
|
||||
{
|
||||
cs = frame->GetColorSettings();
|
||||
}
|
||||
else
|
||||
{
|
||||
auto* app = Pgm().GetSettingsManager().GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" );
|
||||
|
||||
if( app )
|
||||
cs = Pgm().GetSettingsManager().GetColorSettings( app->m_ColorTheme );
|
||||
else
|
||||
cs = Pgm().GetSettingsManager().GetColorSettings();
|
||||
}
|
||||
else if( PCBNEW_SETTINGS* cfg = GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" ) )
|
||||
cs = ::GetColorSettings( cfg->m_ColorTheme );
|
||||
|
||||
wxCHECK_RET( cs, wxT( "null COLOR_SETTINGS" ) );
|
||||
|
||||
|
@ -248,7 +248,7 @@ PCB_EDIT_FRAME::PCB_EDIT_FRAME( KIWAY* aKiway, wxWindow* aParent ) :
|
||||
setupTools();
|
||||
setupUIConditions();
|
||||
|
||||
m_toolbarSettings = Pgm().GetSettingsManager().GetToolbarSettings<PCB_EDIT_TOOLBAR_SETTINGS>( "pcbnew-toolbars" );
|
||||
m_toolbarSettings = GetToolbarSettings<PCB_EDIT_TOOLBAR_SETTINGS>( "pcbnew-toolbars" );
|
||||
configureToolbars();
|
||||
RecreateToolbars();
|
||||
PrepareLayerIndicator( true );
|
||||
|
@ -328,8 +328,7 @@ GAL_LAYER_ID PCB_MARKER::GetColorLayer() const
|
||||
|
||||
KIGFX::COLOR4D PCB_MARKER::getColor() const
|
||||
{
|
||||
COLOR_SETTINGS* colors = Pgm().GetSettingsManager().GetColorSettings();
|
||||
return colors->GetColor( GetColorLayer() );
|
||||
return ::GetColorSettings( DEFAULT_THEME )->GetColor( GetColorLayer() );
|
||||
}
|
||||
|
||||
|
||||
|
@ -464,17 +464,16 @@ void PCB_PLOTTER::PlotJobToPlotOpts( PCB_PLOT_PARAMS& aOpts, JOB_EXPORT_PCB_PLOT
|
||||
case JOB_EXPORT_PCB_PLOT::PLOT_FORMAT::PDF: aOpts.SetFormat( PLOT_FORMAT::PDF ); break;
|
||||
}
|
||||
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
wxString theme = aJob->m_colorTheme;
|
||||
wxString theme = aJob->m_colorTheme;
|
||||
|
||||
// Theme may be empty when running from a job in GUI context, so use the GUI settings.
|
||||
if( theme.IsEmpty() )
|
||||
{
|
||||
PCBNEW_SETTINGS* pcbSettings = mgr.GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" );
|
||||
theme = pcbSettings->m_ColorTheme;
|
||||
if( PCBNEW_SETTINGS* pcbSettings = GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" ) )
|
||||
theme = pcbSettings->m_ColorTheme;
|
||||
}
|
||||
|
||||
COLOR_SETTINGS* colors = mgr.GetColorSettings( aJob->m_colorTheme );
|
||||
COLOR_SETTINGS* colors = ::GetColorSettings( aJob->m_colorTheme );
|
||||
|
||||
if( colors->GetFilename() != theme && !aOpts.GetBlackAndWhite() )
|
||||
{
|
||||
|
@ -94,8 +94,7 @@ static struct IFACE : public KIFACE_BASE, public UNITS_PROVIDER
|
||||
|
||||
void OnKifaceEnd() override;
|
||||
|
||||
wxWindow* CreateKiWindow( wxWindow* aParent, int aClassId, KIWAY* aKiway,
|
||||
int aCtlBits = 0 ) override
|
||||
wxWindow* CreateKiWindow( wxWindow* aParent, int aClassId, KIWAY* aKiway, int aCtlBits = 0 ) override
|
||||
{
|
||||
switch( aClassId )
|
||||
{
|
||||
@ -153,17 +152,11 @@ static struct IFACE : public KIFACE_BASE, public UNITS_PROVIDER
|
||||
return nullptr;
|
||||
|
||||
case PANEL_FP_DISPLAY_OPTIONS:
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
FOOTPRINT_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" );
|
||||
|
||||
return new PANEL_DISPLAY_OPTIONS( aParent, cfg );
|
||||
}
|
||||
return new PANEL_DISPLAY_OPTIONS( aParent, GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" ) );
|
||||
|
||||
case PANEL_FP_GRIDS:
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
FOOTPRINT_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" );
|
||||
FOOTPRINT_EDITOR_SETTINGS* cfg = GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" );
|
||||
EDA_BASE_FRAME* frame = aKiway->Player( FRAME_FOOTPRINT_EDITOR, false );
|
||||
|
||||
if( !frame )
|
||||
@ -179,12 +172,8 @@ static struct IFACE : public KIFACE_BASE, public UNITS_PROVIDER
|
||||
}
|
||||
|
||||
case PANEL_FP_ORIGINS_AXES:
|
||||
{
|
||||
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 );
|
||||
}
|
||||
return new PANEL_PCBNEW_DISPLAY_ORIGIN( aParent, GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" ),
|
||||
FRAME_FOOTPRINT_EDITOR );
|
||||
|
||||
case PANEL_FP_EDIT_OPTIONS:
|
||||
{
|
||||
@ -236,9 +225,8 @@ static struct IFACE : public KIFACE_BASE, public UNITS_PROVIDER
|
||||
|
||||
case PANEL_FP_TOOLBARS:
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
APP_SETTINGS_BASE* cfg = mgr.GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" );
|
||||
TOOLBAR_SETTINGS* tb = mgr.GetToolbarSettings<FOOTPRINT_EDIT_TOOLBAR_SETTINGS>( "fpedit-toolbars" );
|
||||
APP_SETTINGS_BASE* cfg = GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" );
|
||||
TOOLBAR_SETTINGS* tb = GetToolbarSettings<FOOTPRINT_EDIT_TOOLBAR_SETTINGS>( "fpedit-toolbars" );
|
||||
|
||||
std::vector<TOOL_ACTION*> actions;
|
||||
std::vector<ACTION_TOOLBAR_CONTROL*> controls;
|
||||
@ -256,17 +244,11 @@ static struct IFACE : public KIFACE_BASE, public UNITS_PROVIDER
|
||||
return new PANEL_FP_EDITOR_COLOR_SETTINGS( aParent );
|
||||
|
||||
case PANEL_PCB_DISPLAY_OPTS:
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
PCBNEW_SETTINGS* cfg = mgr.GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" );
|
||||
|
||||
return new PANEL_DISPLAY_OPTIONS( aParent, cfg );
|
||||
}
|
||||
return new PANEL_DISPLAY_OPTIONS( aParent, GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" ) );
|
||||
|
||||
case PANEL_PCB_GRIDS:
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
PCBNEW_SETTINGS* cfg = mgr.GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" );
|
||||
PCBNEW_SETTINGS* cfg = GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" );
|
||||
EDA_BASE_FRAME* frame = aKiway->Player( FRAME_PCB_EDITOR, false );
|
||||
|
||||
if( !frame )
|
||||
@ -282,12 +264,8 @@ static struct IFACE : public KIFACE_BASE, public UNITS_PROVIDER
|
||||
}
|
||||
|
||||
case PANEL_PCB_ORIGINS_AXES:
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
PCBNEW_SETTINGS* cfg = mgr.GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" );
|
||||
|
||||
return new PANEL_PCBNEW_DISPLAY_ORIGIN( aParent, cfg, FRAME_PCB_EDITOR );
|
||||
}
|
||||
return new PANEL_PCBNEW_DISPLAY_ORIGIN( aParent, GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" ),
|
||||
FRAME_PCB_EDITOR );
|
||||
|
||||
case PANEL_PCB_EDIT_OPTIONS:
|
||||
{
|
||||
@ -318,9 +296,8 @@ static struct IFACE : public KIFACE_BASE, public UNITS_PROVIDER
|
||||
|
||||
case PANEL_PCB_TOOLBARS:
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
APP_SETTINGS_BASE* cfg = mgr.GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" );
|
||||
TOOLBAR_SETTINGS* tb = mgr.GetToolbarSettings<PCB_EDIT_TOOLBAR_SETTINGS>( "pcbnew-toolbars" );
|
||||
APP_SETTINGS_BASE* cfg = GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" );
|
||||
TOOLBAR_SETTINGS* tb = GetToolbarSettings<PCB_EDIT_TOOLBAR_SETTINGS>( "pcbnew-toolbars" );
|
||||
|
||||
std::vector<TOOL_ACTION*> actions;
|
||||
std::vector<ACTION_TOOLBAR_CONTROL*> controls;
|
||||
@ -347,22 +324,21 @@ static struct IFACE : public KIFACE_BASE, public UNITS_PROVIDER
|
||||
return new PANEL_3D_RAYTRACING_OPTIONS( aParent );
|
||||
|
||||
case PANEL_3DV_TOOLBARS:
|
||||
{
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
APP_SETTINGS_BASE* cfg = mgr.GetAppSettings<EDA_3D_VIEWER_SETTINGS>( "3d_viewer" );
|
||||
TOOLBAR_SETTINGS* tb = mgr.GetToolbarSettings<EDA_3D_VIEWER_TOOLBAR_SETTINGS>( "3d_viewer-toolbars" );
|
||||
{
|
||||
APP_SETTINGS_BASE* cfg = GetAppSettings<EDA_3D_VIEWER_SETTINGS>( "3d_viewer" );
|
||||
TOOLBAR_SETTINGS* tb = GetToolbarSettings<EDA_3D_VIEWER_TOOLBAR_SETTINGS>( "3d_viewer-toolbars" );
|
||||
|
||||
std::vector<TOOL_ACTION*> actions;
|
||||
std::vector<ACTION_TOOLBAR_CONTROL*> controls;
|
||||
std::vector<TOOL_ACTION*> actions;
|
||||
std::vector<ACTION_TOOLBAR_CONTROL*> controls;
|
||||
|
||||
for( TOOL_ACTION* action : ACTION_MANAGER::GetActionList() )
|
||||
actions.push_back( action );
|
||||
for( TOOL_ACTION* action : ACTION_MANAGER::GetActionList() )
|
||||
actions.push_back( action );
|
||||
|
||||
for( ACTION_TOOLBAR_CONTROL* control : ACTION_TOOLBAR::GetCustomControlList() )
|
||||
controls.push_back( control );
|
||||
for( ACTION_TOOLBAR_CONTROL* control : ACTION_TOOLBAR::GetCustomControlList() )
|
||||
controls.push_back( control );
|
||||
|
||||
return new PANEL_TOOLBAR_CUSTOMIZATION( aParent, cfg, tb, actions, controls );
|
||||
}
|
||||
return new PANEL_TOOLBAR_CUSTOMIZATION( aParent, cfg, tb, actions, controls );
|
||||
}
|
||||
|
||||
default:
|
||||
return nullptr;
|
||||
@ -477,10 +453,10 @@ bool IFACE::OnKifaceStart( PGM_BASE* aProgram, int aCtlBits, KIWAY* aKiway )
|
||||
if( !loadGlobalLibTable() )
|
||||
{
|
||||
// we didnt get anywhere deregister the settings
|
||||
mgr.FlushAndRelease( mgr.GetAppSettings<CVPCB_SETTINGS>( "cvpcb" ), false );
|
||||
mgr.FlushAndRelease( 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 );
|
||||
mgr.FlushAndRelease( GetAppSettings<FOOTPRINT_EDITOR_SETTINGS>( "fpedit" ), false );
|
||||
mgr.FlushAndRelease( GetAppSettings<EDA_3D_VIEWER_SETTINGS>( "3d_viewer" ), false );
|
||||
|
||||
return false;
|
||||
}
|
||||
|
@ -617,10 +617,9 @@ int PCBNEW_JOBS_HANDLER::JobExportRender( JOB* aJob )
|
||||
if( aRenderJob->m_appearancePreset.empty() )
|
||||
boardAdapter.m_IsPreviewer = true; // Force display 3D models, regardless of 3D viewer options
|
||||
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
EDA_3D_VIEWER_SETTINGS cfg;
|
||||
|
||||
if( EDA_3D_VIEWER_SETTINGS* userCfg = mgr.GetAppSettings<EDA_3D_VIEWER_SETTINGS>( "3d_viewer" ) )
|
||||
if( EDA_3D_VIEWER_SETTINGS* userCfg = GetAppSettings<EDA_3D_VIEWER_SETTINGS>( "3d_viewer" ) )
|
||||
{
|
||||
cfg.m_Render = userCfg->m_Render;
|
||||
cfg.m_Camera = userCfg->m_Camera;
|
||||
|
@ -54,10 +54,7 @@ void PCBNEW_PRINTOUT_SETTINGS::Load( APP_SETTINGS_BASE* aConfig )
|
||||
{
|
||||
BOARD_PRINTOUT_SETTINGS::Load( aConfig );
|
||||
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
PCBNEW_SETTINGS* cfg = mgr.GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" );
|
||||
|
||||
if( cfg )
|
||||
if( PCBNEW_SETTINGS* cfg = GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" ) )
|
||||
{
|
||||
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 );
|
||||
@ -72,10 +69,7 @@ void PCBNEW_PRINTOUT_SETTINGS::Save( APP_SETTINGS_BASE* aConfig )
|
||||
{
|
||||
BOARD_PRINTOUT_SETTINGS::Save( aConfig );
|
||||
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
PCBNEW_SETTINGS* cfg = mgr.GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" );
|
||||
|
||||
if( cfg )
|
||||
if( PCBNEW_SETTINGS* cfg = GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" ) )
|
||||
{
|
||||
cfg->m_Plot.pads_drill_mode = (int)m_DrillMarks;
|
||||
cfg->m_Plot.all_layers_on_one_page = m_Pagination;
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user