From ed4a40ee4f9cb1c6d6eb2e9fda272afe4d0de4b2 Mon Sep 17 00:00:00 2001 From: Jon Evans Date: Sun, 30 Oct 2022 19:46:15 -0400 Subject: [PATCH] Save state of appearance panel panes Fixes https://gitlab.com/kicad/code/kicad/-/issues/9087 --- pcbnew/pcbnew_settings.cpp | 6 ++++++ pcbnew/pcbnew_settings.h | 2 ++ pcbnew/widgets/appearance_controls.cpp | 13 +++++++++++++ 3 files changed, 21 insertions(+) diff --git a/pcbnew/pcbnew_settings.cpp b/pcbnew/pcbnew_settings.cpp index d887f51cf2..f6a8700ca6 100644 --- a/pcbnew/pcbnew_settings.cpp +++ b/pcbnew/pcbnew_settings.cpp @@ -96,6 +96,12 @@ PCBNEW_SETTINGS::PCBNEW_SETTINGS() m_params.emplace_back( new PARAM( "aui.appearance_panel_tab", &m_AuiPanels.appearance_panel_tab, 0, 0, 2 ) ); + m_params.emplace_back( new PARAM( "aui.appearance_expand_layer_display", + &m_AuiPanels.appearance_expand_layer_display, false ) ); + + m_params.emplace_back( new PARAM( "aui.appearance_expand_net_display", + &m_AuiPanels.appearance_expand_net_display, false ) ); + m_params.emplace_back( new PARAM( "aui.show_properties", &m_AuiPanels.show_properties, true ) ); diff --git a/pcbnew/pcbnew_settings.h b/pcbnew/pcbnew_settings.h index b041396862..de6b575493 100644 --- a/pcbnew/pcbnew_settings.h +++ b/pcbnew/pcbnew_settings.h @@ -124,6 +124,8 @@ public: struct AUI_PANELS { int appearance_panel_tab; + bool appearance_expand_layer_display; + bool appearance_expand_net_display; int right_panel_width; bool show_layer_manager; bool show_properties; diff --git a/pcbnew/widgets/appearance_controls.cpp b/pcbnew/widgets/appearance_controls.cpp index 069663603c..f2d57e7d30 100644 --- a/pcbnew/widgets/appearance_controls.cpp +++ b/pcbnew/widgets/appearance_controls.cpp @@ -580,6 +580,14 @@ APPEARANCE_CONTROLS::APPEARANCE_CONTROLS( PCB_BASE_FRAME* aParent, wxWindow* aFo if( m_isFpEditor ) m_notebook->RemovePage( 2 ); + PCBNEW_SETTINGS* settings = m_frame->GetPcbNewSettings(); + + if( settings->m_AuiPanels.appearance_expand_layer_display ) + m_paneLayerDisplayOptions->Expand(); + + if( settings->m_AuiPanels.appearance_expand_net_display ) + m_paneNetDisplayOptions->Expand(); + loadDefaultLayerPresets(); rebuildObjects(); OnBoardChanged(); @@ -594,6 +602,11 @@ APPEARANCE_CONTROLS::APPEARANCE_CONTROLS( PCB_BASE_FRAME* aParent, wxWindow* aFo APPEARANCE_CONTROLS::~APPEARANCE_CONTROLS() { + PCBNEW_SETTINGS* settings = m_frame->GetPcbNewSettings(); + + settings->m_AuiPanels.appearance_expand_layer_display = m_paneLayerDisplayOptions->IsExpanded(); + settings->m_AuiPanels.appearance_expand_net_display = m_paneNetDisplayOptions->IsExpanded(); + delete m_iconProvider; }