7
mirror of https://gitlab.com/kicad/code/kicad.git synced 2025-04-20 20:51:42 +00:00

Implement Reset to Defaults for all preferences panels.

This commit is contained in:
Jeff Young 2021-11-01 11:20:13 +00:00
parent 4cf3f44532
commit a6dd1bf09b
79 changed files with 835 additions and 310 deletions
3d-viewer/dialogs
common
eeschema
gerbview/dialogs
include
pagelayout_editor
pcbnew/dialogs

View File

@ -107,3 +107,21 @@ bool PANEL_3D_COLORS::TransferDataFromWindow()
return true;
}
void PANEL_3D_COLORS::ResetPanel()
{
COLOR_SETTINGS* colors = Pgm().GetSettingsManager().GetColorSettings();
m_backgroundTop->SetSwatchColor( colors->GetDefaultColor( LAYER_3D_BACKGROUND_TOP ), false );
m_backgroundBottom->SetSwatchColor( colors->GetDefaultColor( LAYER_3D_BACKGROUND_BOTTOM ), false );
m_silkscreenTop->SetSwatchColor( colors->GetDefaultColor( LAYER_3D_SILKSCREEN_TOP ), false );
m_silkscreenBottom->SetSwatchColor( colors->GetDefaultColor( LAYER_3D_SILKSCREEN_BOTTOM ), false );
m_solderMaskTop->SetSwatchColor( colors->GetDefaultColor( LAYER_3D_SOLDERMASK_TOP ), false );
m_solderMaskBottom->SetSwatchColor( colors->GetDefaultColor( LAYER_3D_SOLDERMASK_BOTTOM ), false );
m_solderPaste->SetSwatchColor( colors->GetDefaultColor( LAYER_3D_SOLDERPASTE ), false );
m_surfaceFinish->SetSwatchColor( colors->GetDefaultColor( LAYER_3D_COPPER ), false );
m_boardBody->SetSwatchColor( colors->GetDefaultColor( LAYER_3D_BOARD ), false );
m_boardStackupRB->SetValue( true );
}

View File

@ -32,11 +32,10 @@ class PANEL_3D_COLORS : public PANEL_3D_COLORS_BASE
public:
explicit PANEL_3D_COLORS( wxWindow* aParent );
/// Automatically called when clicking on the OK button
bool TransferDataFromWindow() override;
/// Automatically called after creating the dialog
bool TransferDataToWindow() override;
void ResetPanel() override;
};

View File

@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version 3.9.0 Aug 10 2021)
// C++ code generated with wxFormBuilder (version Oct 26 2018)
// http://www.wxformbuilder.org/
//
// PLEASE DO *NOT* EDIT THIS FILE!
@ -11,7 +11,7 @@
///////////////////////////////////////////////////////////////////////////
PANEL_3D_COLORS_BASE::PANEL_3D_COLORS_BASE( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style, const wxString& name ) : wxPanel( parent, id, pos, size, style, name )
PANEL_3D_COLORS_BASE::PANEL_3D_COLORS_BASE( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style, const wxString& name ) : RESETTABLE_PANEL( parent, id, pos, size, style, name )
{
wxBoxSizer* bSizerMain;
bSizerMain = new wxBoxSizer( wxVERTICAL );

View File

@ -14,7 +14,6 @@
<property name="file">panel_3D_colors_base</property>
<property name="first_id">1000</property>
<property name="help_provider">none</property>
<property name="image_path_wrapper_function_name"></property>
<property name="indent_with_spaces"></property>
<property name="internationalize">1</property>
<property name="name">panel_3D_colors_base</property>
@ -26,7 +25,6 @@
<property name="skip_php_events">1</property>
<property name="skip_python_events">1</property>
<property name="ui_table">UI</property>
<property name="use_array_enum">0</property>
<property name="use_enum">0</property>
<property name="use_microsoft_bom">0</property>
<object class="Panel" expanded="1">
@ -46,9 +44,8 @@
<property name="name">PANEL_3D_COLORS_BASE</property>
<property name="pos"></property>
<property name="size">-1,-1</property>
<property name="subclass">; ; forward_declare</property>
<property name="subclass">RESETTABLE_PANEL; widgets/resettable_panel.h; forward_declare</property>
<property name="tooltip"></property>
<property name="two_step_creation">0</property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style">wxTAB_TRAVERSAL</property>

View File

@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version 3.9.0 Aug 10 2021)
// C++ code generated with wxFormBuilder (version Oct 26 2018)
// http://www.wxformbuilder.org/
//
// PLEASE DO *NOT* EDIT THIS FILE!
@ -12,6 +12,7 @@
#include <wx/intl.h>
class COLOR_SWATCH;
#include "widgets/resettable_panel.h"
#include <wx/string.h>
#include <wx/stattext.h>
#include <wx/gdicmn.h>
@ -29,7 +30,7 @@ class COLOR_SWATCH;
///////////////////////////////////////////////////////////////////////////////
/// Class PANEL_3D_COLORS_BASE
///////////////////////////////////////////////////////////////////////////////
class PANEL_3D_COLORS_BASE : public wxPanel
class PANEL_3D_COLORS_BASE : public RESETTABLE_PANEL
{
private:
@ -58,7 +59,6 @@ class PANEL_3D_COLORS_BASE : public wxPanel
public:
PANEL_3D_COLORS_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxTAB_TRAVERSAL, const wxString& name = wxEmptyString );
~PANEL_3D_COLORS_BASE();
};

View File

@ -41,32 +41,38 @@ void PANEL_3D_DISPLAY_OPTIONS::OnCheckEnableAnimation( wxCommandEvent& event )
}
void PANEL_3D_DISPLAY_OPTIONS::loadViewSettings( EDA_3D_VIEWER_SETTINGS* aCfg )
{
// Check/uncheck checkboxes
m_checkBoxRealisticMode->SetValue( aCfg->m_Render.realistic );
m_checkBoxBoardBody->SetValue( aCfg->m_Render.show_board_body );
m_checkBoxAreas->SetValue( aCfg->m_Render.show_zones );
m_checkBoxSilkscreen->SetValue( aCfg->m_Render.show_silkscreen );
m_checkBoxSolderMask->SetValue( aCfg->m_Render.show_soldermask );
m_checkBoxSolderpaste->SetValue( aCfg->m_Render.show_solderpaste );
m_checkBoxAdhesive->SetValue( aCfg->m_Render.show_adhesive );
m_checkBoxComments->SetValue( aCfg->m_Render.show_comments );
m_checkBoxECO->SetValue( aCfg->m_Render.show_eco );
m_checkBoxSubtractMaskFromSilk->SetValue( aCfg->m_Render.subtract_mask_from_silk );
m_checkBoxClipSilkOnViaAnnulus->SetValue( aCfg->m_Render.clip_silk_on_via_annulus );
m_checkBoxRenderPlatedPadsAsPlated->SetValue( aCfg->m_Render.renderPlatedPadsAsPlated );
m_materialProperties->SetSelection( aCfg->m_Render.material_mode );
// Camera Options
m_checkBoxEnableAnimation->SetValue( aCfg->m_Camera.animation_enabled );
m_sliderAnimationSpeed->SetValue( aCfg->m_Camera.moving_speed_multiplier );
m_staticAnimationSpeed->Enable( aCfg->m_Camera.animation_enabled );
m_sliderAnimationSpeed->Enable( aCfg->m_Camera.animation_enabled );
m_spinCtrlRotationAngle->SetValue( aCfg->m_Camera.rotation_increment );
}
bool PANEL_3D_DISPLAY_OPTIONS::TransferDataToWindow()
{
EDA_3D_VIEWER_SETTINGS* cfg = Pgm().GetSettingsManager().GetAppSettings<EDA_3D_VIEWER_SETTINGS>();
// Check/uncheck checkboxes
m_checkBoxRealisticMode->SetValue( cfg->m_Render.realistic );
m_checkBoxBoardBody->SetValue( cfg->m_Render.show_board_body );
m_checkBoxAreas->SetValue( cfg->m_Render.show_zones );
m_checkBoxSilkscreen->SetValue( cfg->m_Render.show_silkscreen );
m_checkBoxSolderMask->SetValue( cfg->m_Render.show_soldermask );
m_checkBoxSolderpaste->SetValue( cfg->m_Render.show_solderpaste );
m_checkBoxAdhesive->SetValue( cfg->m_Render.show_adhesive );
m_checkBoxComments->SetValue( cfg->m_Render.show_comments );
m_checkBoxECO->SetValue( cfg->m_Render.show_eco );
m_checkBoxSubtractMaskFromSilk->SetValue( cfg->m_Render.subtract_mask_from_silk );
m_checkBoxClipSilkOnViaAnnulus->SetValue( cfg->m_Render.clip_silk_on_via_annulus );
m_checkBoxRenderPlatedPadsAsPlated->SetValue( cfg->m_Render.renderPlatedPadsAsPlated );
m_materialProperties->SetSelection( cfg->m_Render.material_mode );
// Camera Options
m_checkBoxEnableAnimation->SetValue( cfg->m_Camera.animation_enabled );
m_sliderAnimationSpeed->SetValue( cfg->m_Camera.moving_speed_multiplier );
m_staticAnimationSpeed->Enable( cfg->m_Camera.animation_enabled );
m_sliderAnimationSpeed->Enable( cfg->m_Camera.animation_enabled );
m_spinCtrlRotationAngle->SetValue( cfg->m_Camera.rotation_increment );
loadViewSettings( cfg );
return true;
}
@ -103,3 +109,12 @@ bool PANEL_3D_DISPLAY_OPTIONS::TransferDataFromWindow()
return true;
}
void PANEL_3D_DISPLAY_OPTIONS::ResetPanel()
{
EDA_3D_VIEWER_SETTINGS cfg;
cfg.Load(); // Loading without a file will init to defaults
loadViewSettings( &cfg );
}

View File

@ -36,11 +36,13 @@ public:
void OnCheckEnableAnimation( wxCommandEvent& WXUNUSED( event ) ) override;
/// Automatically called when clicking on the OK button
bool TransferDataFromWindow() override;
/// Automatically called after creating the dialog
bool TransferDataToWindow() override;
void ResetPanel() override;
private:
void loadViewSettings( EDA_3D_VIEWER_SETTINGS* aCfg );
};

View File

@ -9,7 +9,7 @@
///////////////////////////////////////////////////////////////////////////
PANEL_3D_DISPLAY_OPTIONS_BASE::PANEL_3D_DISPLAY_OPTIONS_BASE( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style, const wxString& name ) : wxPanel( parent, id, pos, size, style, name )
PANEL_3D_DISPLAY_OPTIONS_BASE::PANEL_3D_DISPLAY_OPTIONS_BASE( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style, const wxString& name ) : RESETTABLE_PANEL( parent, id, pos, size, style, name )
{
wxBoxSizer* bSizerMain;
bSizerMain = new wxBoxSizer( wxHORIZONTAL );

View File

@ -44,7 +44,7 @@
<property name="name">PANEL_3D_DISPLAY_OPTIONS_BASE</property>
<property name="pos"></property>
<property name="size">-1,-1</property>
<property name="subclass">; ; forward_declare</property>
<property name="subclass">RESETTABLE_PANEL; widgets/resettable_panel.h; forward_declare</property>
<property name="tooltip"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>

View File

@ -10,6 +10,7 @@
#include <wx/artprov.h>
#include <wx/xrc/xmlres.h>
#include <wx/intl.h>
#include "widgets/resettable_panel.h"
#include <wx/string.h>
#include <wx/checkbox.h>
#include <wx/gdicmn.h>
@ -31,7 +32,7 @@
///////////////////////////////////////////////////////////////////////////////
/// Class PANEL_3D_DISPLAY_OPTIONS_BASE
///////////////////////////////////////////////////////////////////////////////
class PANEL_3D_DISPLAY_OPTIONS_BASE : public wxPanel
class PANEL_3D_DISPLAY_OPTIONS_BASE : public RESETTABLE_PANEL
{
private:

View File

@ -37,21 +37,27 @@ PANEL_3D_OPENGL_OPTIONS::PANEL_3D_OPENGL_OPTIONS( wxWindow* aParent ) :
}
void PANEL_3D_OPENGL_OPTIONS::loadSettings( EDA_3D_VIEWER_SETTINGS* aCfg )
{
m_checkBoxCuThickness->SetValue( aCfg->m_Render.opengl_copper_thickness );
m_checkBoxBoundingBoxes->SetValue( aCfg->m_Render.opengl_show_model_bbox );
m_checkBoxHighlightOnRollOver->SetValue( aCfg->m_Render.opengl_highlight_on_rollover );
m_choiceAntiAliasing->SetSelection( aCfg->m_Render.opengl_AA_mode );
m_selectionColorSwatch->SetSwatchColor( aCfg->m_Render.opengl_selection_color, false );
m_checkBoxDisableAAMove->SetValue( aCfg->m_Render.opengl_AA_disableOnMove );
m_checkBoxDisableMoveThickness->SetValue( aCfg->m_Render.opengl_thickness_disableOnMove );
m_checkBoxDisableMoveVias->SetValue( aCfg->m_Render.opengl_vias_disableOnMove );
m_checkBoxDisableMoveHoles->SetValue( aCfg->m_Render.opengl_holes_disableOnMove );
}
bool PANEL_3D_OPENGL_OPTIONS::TransferDataToWindow()
{
EDA_3D_VIEWER_SETTINGS* cfg = Pgm().GetSettingsManager().GetAppSettings<EDA_3D_VIEWER_SETTINGS>();
m_checkBoxCuThickness->SetValue( cfg->m_Render.opengl_copper_thickness );
m_checkBoxBoundingBoxes->SetValue( cfg->m_Render.opengl_show_model_bbox );
m_checkBoxHighlightOnRollOver->SetValue( cfg->m_Render.opengl_highlight_on_rollover );
m_choiceAntiAliasing->SetSelection( cfg->m_Render.opengl_AA_mode );
m_selectionColorSwatch->SetSwatchColor( cfg->m_Render.opengl_selection_color, false );
m_checkBoxDisableAAMove->SetValue( cfg->m_Render.opengl_AA_disableOnMove );
m_checkBoxDisableMoveThickness->SetValue( cfg->m_Render.opengl_thickness_disableOnMove );
m_checkBoxDisableMoveVias->SetValue( cfg->m_Render.opengl_vias_disableOnMove );
m_checkBoxDisableMoveHoles->SetValue( cfg->m_Render.opengl_holes_disableOnMove );
loadSettings( cfg );
return true;
}
@ -75,3 +81,12 @@ bool PANEL_3D_OPENGL_OPTIONS::TransferDataFromWindow()
return true;
}
void PANEL_3D_OPENGL_OPTIONS::ResetPanel()
{
EDA_3D_VIEWER_SETTINGS cfg;
cfg.Load(); // Loading without a file will init to defaults
loadSettings( &cfg );
}

View File

@ -33,11 +33,13 @@ class PANEL_3D_OPENGL_OPTIONS : public PANEL_3D_OPENGL_OPTIONS_BASE
public:
explicit PANEL_3D_OPENGL_OPTIONS( wxWindow* aParent );
/// Automatically called when clicking on the OK button
bool TransferDataFromWindow() override;
/// Automatically called after creating the dialog
bool TransferDataToWindow() override;
void ResetPanel() override;
private:
void loadSettings( EDA_3D_VIEWER_SETTINGS* aCfg );
};

View File

@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version 3.9.0 Aug 10 2021)
// C++ code generated with wxFormBuilder (version Oct 26 2018)
// http://www.wxformbuilder.org/
//
// PLEASE DO *NOT* EDIT THIS FILE!
@ -11,7 +11,7 @@
///////////////////////////////////////////////////////////////////////////
PANEL_3D_OPENGL_OPTIONS_BASE::PANEL_3D_OPENGL_OPTIONS_BASE( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style, const wxString& name ) : wxPanel( parent, id, pos, size, style, name )
PANEL_3D_OPENGL_OPTIONS_BASE::PANEL_3D_OPENGL_OPTIONS_BASE( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style, const wxString& name ) : RESETTABLE_PANEL( parent, id, pos, size, style, name )
{
wxBoxSizer* bSizerMain;
bSizerMain = new wxBoxSizer( wxVERTICAL );

View File

@ -14,7 +14,6 @@
<property name="file">panel_3D_opengl_options_base</property>
<property name="first_id">1000</property>
<property name="help_provider">none</property>
<property name="image_path_wrapper_function_name"></property>
<property name="indent_with_spaces"></property>
<property name="internationalize">1</property>
<property name="name">panel_3D_opengl_optionS_base</property>
@ -26,7 +25,6 @@
<property name="skip_php_events">1</property>
<property name="skip_python_events">1</property>
<property name="ui_table">UI</property>
<property name="use_array_enum">0</property>
<property name="use_enum">0</property>
<property name="use_microsoft_bom">0</property>
<object class="Panel" expanded="1">
@ -46,9 +44,8 @@
<property name="name">PANEL_3D_OPENGL_OPTIONS_BASE</property>
<property name="pos"></property>
<property name="size">-1,-1</property>
<property name="subclass">; ; forward_declare</property>
<property name="subclass">RESETTABLE_PANEL; widgets/resettable_panel.h; forward_declare</property>
<property name="tooltip"></property>
<property name="two_step_creation">0</property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style">wxTAB_TRAVERSAL</property>

View File

@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version 3.9.0 Aug 10 2021)
// C++ code generated with wxFormBuilder (version Oct 26 2018)
// http://www.wxformbuilder.org/
//
// PLEASE DO *NOT* EDIT THIS FILE!
@ -12,6 +12,7 @@
#include <wx/intl.h>
class COLOR_SWATCH;
#include "widgets/resettable_panel.h"
#include <wx/string.h>
#include <wx/checkbox.h>
#include <wx/gdicmn.h>
@ -30,7 +31,7 @@ class COLOR_SWATCH;
///////////////////////////////////////////////////////////////////////////////
/// Class PANEL_3D_OPENGL_OPTIONS_BASE
///////////////////////////////////////////////////////////////////////////////
class PANEL_3D_OPENGL_OPTIONS_BASE : public wxPanel
class PANEL_3D_OPENGL_OPTIONS_BASE : public RESETTABLE_PANEL
{
private:
@ -50,7 +51,6 @@ class PANEL_3D_OPENGL_OPTIONS_BASE : public wxPanel
public:
PANEL_3D_OPENGL_OPTIONS_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxTAB_TRAVERSAL, const wxString& name = wxEmptyString );
~PANEL_3D_OPENGL_OPTIONS_BASE();
};

View File

@ -34,39 +34,29 @@ PANEL_3D_RAYTRACING_OPTIONS::PANEL_3D_RAYTRACING_OPTIONS( wxWindow* aParent ) :
}
void PANEL_3D_RAYTRACING_OPTIONS::ResetPanel()
void PANEL_3D_RAYTRACING_OPTIONS::loadSettings( EDA_3D_VIEWER_SETTINGS* aCfg )
{
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
EDA_3D_VIEWER_SETTINGS* cfg = mgr.GetAppSettings<EDA_3D_VIEWER_SETTINGS>();
m_cbRaytracing_renderShadows->SetValue( aCfg->m_Render.raytrace_shadows );
m_cbRaytracing_addFloor->SetValue( aCfg->m_Render.raytrace_backfloor );
m_cbRaytracing_showRefractions->SetValue( aCfg->m_Render.raytrace_refractions );
m_cbRaytracing_showReflections->SetValue( aCfg->m_Render.raytrace_reflections );
m_cbRaytracing_postProcessing->SetValue( aCfg->m_Render.raytrace_post_processing );
m_cbRaytracing_antiAliasing->SetValue( aCfg->m_Render.raytrace_anti_aliasing );
m_cbRaytracing_proceduralTextures->SetValue( aCfg->m_Render.raytrace_procedural_textures );
cfg->m_Render.raytrace_lightColorCamera = COLOR4D( 0.2, 0.2, 0.2, 1.0 );
cfg->m_Render.raytrace_lightColorTop = COLOR4D( 0.247, 0.247, 0.247, 1.0 );
cfg->m_Render.raytrace_lightColorBottom = COLOR4D( 0.247, 0.247, 0.247, 1.0 );
m_numSamples_Shadows->SetValue( aCfg->m_Render.raytrace_nrsamples_shadows );
m_numSamples_Reflections->SetValue( aCfg->m_Render.raytrace_nrsamples_reflections );
m_numSamples_Refractions->SetValue( aCfg->m_Render.raytrace_nrsamples_refractions );
const std::vector<int> default_elevation =
{
67, 67, 67, 67, -67, -67, -67, -67,
};
m_spreadFactor_Shadows->SetValue( StringFromValue( EDA_UNITS::PERCENT,
aCfg->m_Render.raytrace_spread_shadows * 100.0f ) );
m_spreadFactor_Reflections->SetValue( StringFromValue( EDA_UNITS::PERCENT,
aCfg->m_Render.raytrace_spread_reflections * 100.0f ) );
m_spreadFactor_Refractions->SetValue( StringFromValue( EDA_UNITS::PERCENT,
aCfg->m_Render.raytrace_spread_refractions * 100.0f ) );
const std::vector<int> default_azimuth =
{
45, 135, 225, 315, 45, 135, 225, 315,
};
for( size_t i = 0; i < 8; ++i )
{
cfg->m_Render.raytrace_lightElevation[i] = default_elevation[i];
cfg->m_Render.raytrace_lightAzimuth[i] = default_azimuth[i];
}
TransferColorDataToWindow();
}
void PANEL_3D_RAYTRACING_OPTIONS::TransferColorDataToWindow()
{
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
EDA_3D_VIEWER_SETTINGS* cfg = mgr.GetAppSettings<EDA_3D_VIEWER_SETTINGS>();
m_recursiveLevel_Reflections->SetValue( aCfg->m_Render.raytrace_recursivelevel_reflections );
m_recursiveLevel_Refractions->SetValue( aCfg->m_Render.raytrace_recursivelevel_refractions );
auto transfer_color =
[]( COLOR4D aColor, COLOR_SWATCH *aTarget )
@ -82,37 +72,37 @@ void PANEL_3D_RAYTRACING_OPTIONS::TransferColorDataToWindow()
aCtrl->SetValue( StringFromValue( EDA_UNITS::UNSCALED, aValue ) );
};
transfer_color( cfg->m_Render.raytrace_lightColorCamera, m_colourPickerCameraLight );
transfer_color( cfg->m_Render.raytrace_lightColorTop, m_colourPickerTopLight );
transfer_color( cfg->m_Render.raytrace_lightColorBottom, m_colourPickerBottomLight );
transfer_color( aCfg->m_Render.raytrace_lightColorCamera, m_colourPickerCameraLight );
transfer_color( aCfg->m_Render.raytrace_lightColorTop, m_colourPickerTopLight );
transfer_color( aCfg->m_Render.raytrace_lightColorBottom, m_colourPickerBottomLight );
transfer_color( cfg->m_Render.raytrace_lightColor[0], m_colourPickerLight1 );
transfer_color( cfg->m_Render.raytrace_lightColor[1], m_colourPickerLight2 );
transfer_color( cfg->m_Render.raytrace_lightColor[2], m_colourPickerLight3 );
transfer_color( cfg->m_Render.raytrace_lightColor[3], m_colourPickerLight4 );
transfer_color( aCfg->m_Render.raytrace_lightColor[0], m_colourPickerLight1 );
transfer_color( aCfg->m_Render.raytrace_lightColor[1], m_colourPickerLight2 );
transfer_color( aCfg->m_Render.raytrace_lightColor[2], m_colourPickerLight3 );
transfer_color( aCfg->m_Render.raytrace_lightColor[3], m_colourPickerLight4 );
transfer_color( cfg->m_Render.raytrace_lightColor[4], m_colourPickerLight5 );
transfer_color( cfg->m_Render.raytrace_lightColor[5], m_colourPickerLight6 );
transfer_color( cfg->m_Render.raytrace_lightColor[6], m_colourPickerLight7 );
transfer_color( cfg->m_Render.raytrace_lightColor[7], m_colourPickerLight8 );
transfer_color( aCfg->m_Render.raytrace_lightColor[4], m_colourPickerLight5 );
transfer_color( aCfg->m_Render.raytrace_lightColor[5], m_colourPickerLight6 );
transfer_color( aCfg->m_Render.raytrace_lightColor[6], m_colourPickerLight7 );
transfer_color( aCfg->m_Render.raytrace_lightColor[7], m_colourPickerLight8 );
transfer_value( m_lightElevation1, cfg->m_Render.raytrace_lightElevation[0] );
transfer_value( m_lightElevation2, cfg->m_Render.raytrace_lightElevation[1] );
transfer_value( m_lightElevation3, cfg->m_Render.raytrace_lightElevation[2] );
transfer_value( m_lightElevation4, cfg->m_Render.raytrace_lightElevation[3] );
transfer_value( m_lightElevation5, cfg->m_Render.raytrace_lightElevation[4] );
transfer_value( m_lightElevation6, cfg->m_Render.raytrace_lightElevation[5] );
transfer_value( m_lightElevation7, cfg->m_Render.raytrace_lightElevation[6] );
transfer_value( m_lightElevation8, cfg->m_Render.raytrace_lightElevation[7] );
transfer_value( m_lightElevation1, aCfg->m_Render.raytrace_lightElevation[0] );
transfer_value( m_lightElevation2, aCfg->m_Render.raytrace_lightElevation[1] );
transfer_value( m_lightElevation3, aCfg->m_Render.raytrace_lightElevation[2] );
transfer_value( m_lightElevation4, aCfg->m_Render.raytrace_lightElevation[3] );
transfer_value( m_lightElevation5, aCfg->m_Render.raytrace_lightElevation[4] );
transfer_value( m_lightElevation6, aCfg->m_Render.raytrace_lightElevation[5] );
transfer_value( m_lightElevation7, aCfg->m_Render.raytrace_lightElevation[6] );
transfer_value( m_lightElevation8, aCfg->m_Render.raytrace_lightElevation[7] );
transfer_value( m_lightAzimuth1, cfg->m_Render.raytrace_lightAzimuth[0] );
transfer_value( m_lightAzimuth2, cfg->m_Render.raytrace_lightAzimuth[1] );
transfer_value( m_lightAzimuth3, cfg->m_Render.raytrace_lightAzimuth[2] );
transfer_value( m_lightAzimuth4, cfg->m_Render.raytrace_lightAzimuth[3] );
transfer_value( m_lightAzimuth5, cfg->m_Render.raytrace_lightAzimuth[4] );
transfer_value( m_lightAzimuth6, cfg->m_Render.raytrace_lightAzimuth[5] );
transfer_value( m_lightAzimuth7, cfg->m_Render.raytrace_lightAzimuth[6] );
transfer_value( m_lightAzimuth8, cfg->m_Render.raytrace_lightAzimuth[7] );
transfer_value( m_lightAzimuth1, aCfg->m_Render.raytrace_lightAzimuth[0] );
transfer_value( m_lightAzimuth2, aCfg->m_Render.raytrace_lightAzimuth[1] );
transfer_value( m_lightAzimuth3, aCfg->m_Render.raytrace_lightAzimuth[2] );
transfer_value( m_lightAzimuth4, aCfg->m_Render.raytrace_lightAzimuth[3] );
transfer_value( m_lightAzimuth5, aCfg->m_Render.raytrace_lightAzimuth[4] );
transfer_value( m_lightAzimuth6, aCfg->m_Render.raytrace_lightAzimuth[5] );
transfer_value( m_lightAzimuth7, aCfg->m_Render.raytrace_lightAzimuth[6] );
transfer_value( m_lightAzimuth8, aCfg->m_Render.raytrace_lightAzimuth[7] );
}
@ -121,29 +111,7 @@ bool PANEL_3D_RAYTRACING_OPTIONS::TransferDataToWindow()
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
EDA_3D_VIEWER_SETTINGS* cfg = mgr.GetAppSettings<EDA_3D_VIEWER_SETTINGS>();
m_cbRaytracing_renderShadows->SetValue( cfg->m_Render.raytrace_shadows );
m_cbRaytracing_addFloor->SetValue( cfg->m_Render.raytrace_backfloor );
m_cbRaytracing_showRefractions->SetValue( cfg->m_Render.raytrace_refractions );
m_cbRaytracing_showReflections->SetValue( cfg->m_Render.raytrace_reflections );
m_cbRaytracing_postProcessing->SetValue( cfg->m_Render.raytrace_post_processing );
m_cbRaytracing_antiAliasing->SetValue( cfg->m_Render.raytrace_anti_aliasing );
m_cbRaytracing_proceduralTextures->SetValue( cfg->m_Render.raytrace_procedural_textures );
m_numSamples_Shadows->SetValue( cfg->m_Render.raytrace_nrsamples_shadows );
m_numSamples_Reflections->SetValue( cfg->m_Render.raytrace_nrsamples_reflections );
m_numSamples_Refractions->SetValue( cfg->m_Render.raytrace_nrsamples_refractions );
m_spreadFactor_Shadows->SetValue( StringFromValue( EDA_UNITS::PERCENT,
cfg->m_Render.raytrace_spread_shadows * 100.0f ) );
m_spreadFactor_Reflections->SetValue( StringFromValue( EDA_UNITS::PERCENT,
cfg->m_Render.raytrace_spread_reflections * 100.0f ) );
m_spreadFactor_Refractions->SetValue( StringFromValue( EDA_UNITS::PERCENT,
cfg->m_Render.raytrace_spread_refractions * 100.0f ) );
m_recursiveLevel_Reflections->SetValue( cfg->m_Render.raytrace_recursivelevel_reflections );
m_recursiveLevel_Refractions->SetValue( cfg->m_Render.raytrace_recursivelevel_refractions );
TransferColorDataToWindow();
loadSettings( cfg );
return true;
}
@ -215,3 +183,12 @@ bool PANEL_3D_RAYTRACING_OPTIONS::TransferDataFromWindow()
return true;
}
void PANEL_3D_RAYTRACING_OPTIONS::ResetPanel()
{
EDA_3D_VIEWER_SETTINGS cfg;
cfg.Load(); // Loading without a file will init to defaults
loadSettings( &cfg );
}

View File

@ -33,15 +33,13 @@ class PANEL_3D_RAYTRACING_OPTIONS : public PANEL_3D_RAYTRACING_OPTIONS_BASE
public:
explicit PANEL_3D_RAYTRACING_OPTIONS( wxWindow* aParent );
void ResetPanel() override;
/// Automatically called when clicking on the OK button
bool TransferDataFromWindow() override;
/// Automatically called after creating the dialog
bool TransferDataToWindow() override;
void TransferColorDataToWindow();
void ResetPanel() override;
private:
void loadSettings( EDA_3D_VIEWER_SETTINGS* aCfg );
};

View File

@ -1024,7 +1024,7 @@ void EDA_BASE_FRAME::OnPreferences( wxCommandEvent& event )
expand.push_back( book->GetPageCount() );
book->AddPage( new wxPanel( book ), _( "Symbol Editor" ) );
book->AddSubPage( CREATE_PANEL( PANEL_SYM_DISPLAY_OPTIONS ), _( "Display Options" ) );
book->AddSubPage( CREATE_PANEL( PANEL_SYM_DISP_OPTIONS ), _( "Display Options" ) );
book->AddSubPage( CREATE_PANEL( PANEL_SYM_EDIT_OPTIONS ), _( "Editing Options" ) );
book->AddSubPage( CREATE_PANEL( PANEL_SYM_COLORS ), _( "Colors" ) );
@ -1032,7 +1032,7 @@ void EDA_BASE_FRAME::OnPreferences( wxCommandEvent& event )
expand.push_back( book->GetPageCount() );
book->AddPage( new wxPanel( book ), _( "Schematic Editor" ) );
book->AddSubPage( CREATE_PANEL( PANEL_SCH_DISPLAY_OPTIONS ), _( "Display Options" ) );
book->AddSubPage( CREATE_PANEL( PANEL_SCH_DISP_OPTIONS ), _( "Display Options" ) );
book->AddSubPage( CREATE_PANEL( PANEL_SCH_EDIT_OPTIONS ), _( "Editing Options" ) );
book->AddSubPage( CREATE_PANEL( PANEL_SCH_COLORS ), _( "Colors" ) );
book->AddSubPage( CREATE_PANEL( PANEL_SCH_FIELD_NAME_TEMPLATES ), _( "Field Name Templates" ) );

View File

@ -253,3 +253,17 @@ bool GAL_OPTIONS_PANEL::TransferDataFromWindow()
return true;
}
bool GAL_OPTIONS_PANEL::ResetPanel( APP_SETTINGS_BASE* aAppSettings )
{
APP_SETTINGS_BASE* saved = m_cfg;
m_cfg = aAppSettings;
TransferDataToWindow();
m_cfg = saved;
return true;
}

View File

@ -364,11 +364,15 @@ void PAGED_DIALOG::OnPageChange( wxBookCtrlEvent& event )
// Enable the reset button only if the page is re-settable
if( m_resetButton )
{
if( auto panel = dynamic_cast<RESETTABLE_PANEL*>( m_treebook->GetPage( page ) ) )
// NB: dynamic_cast doesn't work over Kiway.
wxWindow* panel = m_treebook->GetPage( page );
if( panel && panel->GetWindowStyle() & wxRESETTABLE )
{
m_resetButton->SetLabel( wxString::Format( _( "Reset %s to Defaults" ),
m_treebook->GetPageText( page ) ) );
m_resetButton->SetToolTip( panel->GetResetTooltip() );
m_resetButton->SetToolTip( panel->GetHelpTextAtPoint( wxPoint( -INT_MAX, INT_MAX ),
wxHelpEvent::Origin_Unknown ) );
m_resetButton->Enable( true );
}
else
@ -378,6 +382,7 @@ void PAGED_DIALOG::OnPageChange( wxBookCtrlEvent& event )
m_resetButton->Enable( false );
}
m_resetButton->GetParent()->Layout();
}
// Work around an OSX bug where the wxGrid children don't get placed correctly until
@ -403,8 +408,12 @@ void PAGED_DIALOG::OnResetButton( wxCommandEvent& aEvent )
if( sel == wxNOT_FOUND )
return;
RESETTABLE_PANEL* panel = dynamic_cast<RESETTABLE_PANEL*>( m_treebook->GetPage( sel ) );
// NB: dynamic_cast doesn't work over Kiway
wxWindow* panel = m_treebook->GetPage( sel );
if( panel )
panel->ResetPanel();
{
wxCommandEvent resetCommand( wxEVT_COMMAND_BUTTON_CLICKED, ID_RESET_PANEL );
panel->ProcessWindowEvent( resetCommand );
}
}

View File

@ -125,6 +125,7 @@ set( EESCHEMA_DLGS
dialogs/panel_setup_formatting_base.cpp
dialogs/panel_setup_pinmap.cpp
dialogs/panel_setup_pinmap_base.cpp
dialogs/panel_sym_display_options.cpp
dialogs/panel_sym_editing_options.cpp
dialogs/panel_sym_editing_options_base.cpp
dialogs/panel_sym_color_settings.cpp

View File

@ -41,11 +41,8 @@ PANEL_EESCHEMA_DISPLAY_OPTIONS::PANEL_EESCHEMA_DISPLAY_OPTIONS( wxWindow* aParen
}
bool PANEL_EESCHEMA_DISPLAY_OPTIONS::TransferDataToWindow()
void PANEL_EESCHEMA_DISPLAY_OPTIONS::loadEEschemaSettings( EESCHEMA_SETTINGS* cfg )
{
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>();
m_checkShowHiddenPins->SetValue( cfg->m_Appearance.show_hidden_pins );
m_checkShowHiddenFields->SetValue( cfg->m_Appearance.show_hidden_fields );
m_checkPageLimits->SetValue( cfg->m_Appearance.show_page_limits );
@ -59,6 +56,15 @@ bool PANEL_EESCHEMA_DISPLAY_OPTIONS::TransferDataToWindow()
m_checkCrossProbeCenter->SetValue( cfg->m_CrossProbing.center_on_items );
m_checkCrossProbeZoom->SetValue( cfg->m_CrossProbing.zoom_to_fit );
m_checkCrossProbeAutoHighlight->SetValue( cfg->m_CrossProbing.auto_highlight );
}
bool PANEL_EESCHEMA_DISPLAY_OPTIONS::TransferDataToWindow()
{
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>();
loadEEschemaSettings( cfg );
m_galOptsPanel->TransferDataToWindow();
@ -91,3 +97,14 @@ bool PANEL_EESCHEMA_DISPLAY_OPTIONS::TransferDataFromWindow()
}
void PANEL_EESCHEMA_DISPLAY_OPTIONS::ResetPanel()
{
EESCHEMA_SETTINGS cfg;
cfg.Load(); // Loading without a file will init to defaults
loadEEschemaSettings( &cfg );
m_galOptsPanel->ResetPanel( &cfg );
}

View File

@ -24,6 +24,7 @@
class APP_SETTINGS_BASE;
class GAL_OPTIONS_PANEL;
class EESCHEMA_SETTINGS;
class PANEL_EESCHEMA_DISPLAY_OPTIONS : public PANEL_EESCHEMA_DISPLAY_OPTIONS_BASE
@ -31,10 +32,15 @@ class PANEL_EESCHEMA_DISPLAY_OPTIONS : public PANEL_EESCHEMA_DISPLAY_OPTIONS_BAS
public:
PANEL_EESCHEMA_DISPLAY_OPTIONS( wxWindow* aParent, APP_SETTINGS_BASE* aAppSettings );
private:
bool TransferDataToWindow() override;
bool TransferDataFromWindow() override;
void ResetPanel() override;
private:
void loadEEschemaSettings( EESCHEMA_SETTINGS* aCfg );
private:
GAL_OPTIONS_PANEL* m_galOptsPanel;
};

View File

@ -9,7 +9,7 @@
///////////////////////////////////////////////////////////////////////////
PANEL_EESCHEMA_DISPLAY_OPTIONS_BASE::PANEL_EESCHEMA_DISPLAY_OPTIONS_BASE( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style, const wxString& name ) : wxPanel( parent, id, pos, size, style, name )
PANEL_EESCHEMA_DISPLAY_OPTIONS_BASE::PANEL_EESCHEMA_DISPLAY_OPTIONS_BASE( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style, const wxString& name ) : RESETTABLE_PANEL( parent, id, pos, size, style, name )
{
wxBoxSizer* bPanelSizer;
bPanelSizer = new wxBoxSizer( wxHORIZONTAL );

View File

@ -44,7 +44,7 @@
<property name="name">PANEL_EESCHEMA_DISPLAY_OPTIONS_BASE</property>
<property name="pos"></property>
<property name="size">-1,-1</property>
<property name="subclass">; forward_declare</property>
<property name="subclass">RESETTABLE_PANEL; widgets/resettable_panel.h; Not forward_declare</property>
<property name="tooltip"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>

Some files were not shown because too many files have changed in this diff Show More