From f7420bc82092ff9849ffaee541fad85472fa2a7d Mon Sep 17 00:00:00 2001 From: Jeff Young Date: Thu, 26 Oct 2023 10:59:06 +0100 Subject: [PATCH] Separate Footprint Editor's sketch modes from PCB Editor's. Fixes https://gitlab.com/kicad/code/kicad/-/issues/15345 --- include/footprint_editor_settings.h | 2 +- pcbnew/footprint_editor_settings.cpp | 14 +++++++++++- pcbnew/pcb_base_frame.cpp | 6 +++-- pcbnew/pcb_painter.cpp | 7 ++++-- pcbnew/pcbnew.cpp | 34 ++++++++++++++-------------- 5 files changed, 40 insertions(+), 23 deletions(-) diff --git a/include/footprint_editor_settings.h b/include/footprint_editor_settings.h index 4bf17965b4..ec7fb68833 100644 --- a/include/footprint_editor_settings.h +++ b/include/footprint_editor_settings.h @@ -27,7 +27,7 @@ #include -class FOOTPRINT_EDITOR_SETTINGS : public APP_SETTINGS_BASE +class FOOTPRINT_EDITOR_SETTINGS : public PCB_VIEWERS_SETTINGS_BASE { public: struct AUI_PANELS diff --git a/pcbnew/footprint_editor_settings.cpp b/pcbnew/footprint_editor_settings.cpp index 02477bce80..473a4e658c 100644 --- a/pcbnew/footprint_editor_settings.cpp +++ b/pcbnew/footprint_editor_settings.cpp @@ -37,7 +37,7 @@ const int fpEditSchemaVersion = 2; FOOTPRINT_EDITOR_SETTINGS::FOOTPRINT_EDITOR_SETTINGS() : - APP_SETTINGS_BASE( "fpedit", fpEditSchemaVersion ), + PCB_VIEWERS_SETTINGS_BASE( "fpedit", fpEditSchemaVersion ), m_DesignSettings( nullptr, "fpedit.settings" ), m_MagneticItems(), m_Display(), @@ -88,6 +88,18 @@ FOOTPRINT_EDITOR_SETTINGS::FOOTPRINT_EDITOR_SETTINGS() : m_params.emplace_back( new PARAM( "system.last_import_export_path", &m_LastExportPath, "" ) ); + m_params.emplace_back( new PARAM( "pcb_display.graphics_fill", + &m_ViewersDisplay.m_DisplayGraphicsFill, true ) ); + + m_params.emplace_back( new PARAM( "pcb_display.text_fill", + &m_ViewersDisplay.m_DisplayTextFill, true ) ); + + m_params.emplace_back( new PARAM( "pcb_display.pad_fill", + &m_ViewersDisplay.m_DisplayPadFill, true ) ); + + m_params.emplace_back( new PARAM( "pcb_display.pad_numbers", + &m_ViewersDisplay.m_DisplayPadNumbers, true ) ); + m_params.emplace_back( new PARAM( "window.footprint_text_shown_columns", &m_FootprintTextShownColumns, "0 1 2 3 4 5 6" ) ); diff --git a/pcbnew/pcb_base_frame.cpp b/pcbnew/pcb_base_frame.cpp index bb301d97c1..59ac800b72 100644 --- a/pcbnew/pcb_base_frame.cpp +++ b/pcbnew/pcb_base_frame.cpp @@ -925,12 +925,14 @@ PCB_VIEWERS_SETTINGS_BASE* PCB_BASE_FRAME::GetViewerSettingsBase() const switch( GetFrameType() ) { case FRAME_PCB_EDITOR: - case FRAME_FOOTPRINT_EDITOR: - case FRAME_FOOTPRINT_WIZARD: case FRAME_PCB_DISPLAY3D: default: return Pgm().GetSettingsManager().GetAppSettings(); + case FRAME_FOOTPRINT_EDITOR: + case FRAME_FOOTPRINT_WIZARD: + return Pgm().GetSettingsManager().GetAppSettings(); + case FRAME_FOOTPRINT_VIEWER: case FRAME_FOOTPRINT_CHOOSER: case FRAME_FOOTPRINT_PREVIEW: diff --git a/pcbnew/pcb_painter.cpp b/pcbnew/pcb_painter.cpp index da9af3c4c4..598ad19d84 100644 --- a/pcbnew/pcb_painter.cpp +++ b/pcbnew/pcb_painter.cpp @@ -50,6 +50,7 @@ #include #include #include +#include #include #include @@ -81,12 +82,14 @@ PCB_VIEWERS_SETTINGS_BASE* PCB_PAINTER::viewer_settings() switch( m_frameType ) { case FRAME_PCB_EDITOR: - case FRAME_FOOTPRINT_EDITOR: - case FRAME_FOOTPRINT_WIZARD: case FRAME_PCB_DISPLAY3D: default: return Pgm().GetSettingsManager().GetAppSettings(); + case FRAME_FOOTPRINT_EDITOR: + case FRAME_FOOTPRINT_WIZARD: + return Pgm().GetSettingsManager().GetAppSettings(); + case FRAME_FOOTPRINT_VIEWER: case FRAME_FOOTPRINT_CHOOSER: case FRAME_FOOTPRINT_PREVIEW: diff --git a/pcbnew/pcbnew.cpp b/pcbnew/pcbnew.cpp index 7463dc0aaa..d846e6c61c 100644 --- a/pcbnew/pcbnew.cpp +++ b/pcbnew/pcbnew.cpp @@ -172,6 +172,14 @@ static struct IFACE : public KIFACE_BASE, public UNITS_PROVIDER return new PANEL_GRID_SETTINGS( aParent, this, frame, cfg, FRAME_FOOTPRINT_EDITOR ); } + case PANEL_FP_ORIGINS_AXES: + { + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + APP_SETTINGS_BASE* cfg = mgr.GetAppSettings(); + + return new PANEL_PCBNEW_DISPLAY_ORIGIN( aParent, cfg, FRAME_FOOTPRINT_EDITOR ); + } + case PANEL_FP_EDIT_OPTIONS: { EDA_BASE_FRAME* frame = aKiway->Player( FRAME_FOOTPRINT_EDITOR, false ); @@ -210,19 +218,11 @@ static struct IFACE : public KIFACE_BASE, public UNITS_PROVIDER case PANEL_PCB_DISPLAY_OPTS: { SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); - APP_SETTINGS_BASE* cfg = mgr.GetAppSettings(); + APP_SETTINGS_BASE* cfg = mgr.GetAppSettings(); return new PANEL_PCB_DISPLAY_OPTIONS( aParent, cfg ); } - case PANEL_FP_ORIGINS_AXES: - { - SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); - APP_SETTINGS_BASE* cfg = mgr.GetAppSettings(); - - return new PANEL_PCBNEW_DISPLAY_ORIGIN( aParent, cfg, FRAME_FOOTPRINT_EDITOR ); - } - case PANEL_PCB_GRIDS: { SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); @@ -241,6 +241,14 @@ static struct IFACE : public KIFACE_BASE, public UNITS_PROVIDER return new PANEL_GRID_SETTINGS( aParent, this, frame, cfg, FRAME_PCB_EDITOR ); } + case PANEL_PCB_ORIGINS_AXES: + { + SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); + APP_SETTINGS_BASE* cfg = mgr.GetAppSettings(); + + return new PANEL_PCBNEW_DISPLAY_ORIGIN( aParent, cfg, FRAME_PCB_EDITOR ); + } + case PANEL_PCB_EDIT_OPTIONS: { EDA_BASE_FRAME* frame = aKiway->Player( FRAME_PCB_EDITOR, false ); @@ -271,14 +279,6 @@ static struct IFACE : public KIFACE_BASE, public UNITS_PROVIDER case PANEL_PCB_ACTION_PLUGINS: return new PANEL_PCBNEW_ACTION_PLUGINS( aParent ); - case PANEL_PCB_ORIGINS_AXES: - { - SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager(); - APP_SETTINGS_BASE* cfg = mgr.GetAppSettings(); - - return new PANEL_PCBNEW_DISPLAY_ORIGIN( aParent, cfg, FRAME_PCB_EDITOR ); - } - case PANEL_3DV_DISPLAY_OPTIONS: return new PANEL_3D_DISPLAY_OPTIONS( aParent );