Fix Search pane not remembering docking sizes and positions
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14120
This commit is contained in:
parent
d6aefc458c
commit
d94e9b31b1
|
@ -351,12 +351,24 @@ PCB_EDIT_FRAME::PCB_EDIT_FRAME( KIWAY* aKiway, wxWindow* aParent ) :
|
||||||
settings->m_AuiPanels.properties_panel_width, -1 );
|
settings->m_AuiPanels.properties_panel_width, -1 );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( settings->m_AuiPanels.search_panel_height > 0 )
|
if( settings->m_AuiPanels.search_panel_height > 0
|
||||||
|
&& ( settings->m_AuiPanels.search_panel_dock_direction == wxAUI_DOCK_TOP
|
||||||
|
|| settings->m_AuiPanels.search_panel_dock_direction == wxAUI_DOCK_BOTTOM ) )
|
||||||
{
|
{
|
||||||
wxAuiPaneInfo& searchPane = m_auimgr.GetPane( SearchPaneName() );
|
wxAuiPaneInfo& searchPane = m_auimgr.GetPane( SearchPaneName() );
|
||||||
|
searchPane.Direction( settings->m_AuiPanels.search_panel_dock_direction );
|
||||||
SetAuiPaneSize( m_auimgr, searchPane, -1, settings->m_AuiPanels.search_panel_height );
|
SetAuiPaneSize( m_auimgr, searchPane, -1, settings->m_AuiPanels.search_panel_height );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
else if( settings->m_AuiPanels.search_panel_width > 0
|
||||||
|
&& ( settings->m_AuiPanels.search_panel_dock_direction == wxAUI_DOCK_LEFT
|
||||||
|
|| settings->m_AuiPanels.search_panel_dock_direction == wxAUI_DOCK_RIGHT ) )
|
||||||
|
{
|
||||||
|
wxAuiPaneInfo& searchPane = m_auimgr.GetPane( SearchPaneName() );
|
||||||
|
searchPane.Direction( settings->m_AuiPanels.search_panel_dock_direction );
|
||||||
|
SetAuiPaneSize( m_auimgr, searchPane, settings->m_AuiPanels.search_panel_width, -1 );
|
||||||
|
}
|
||||||
|
|
||||||
m_appearancePanel->SetTabIndex( settings->m_AuiPanels.appearance_panel_tab );
|
m_appearancePanel->SetTabIndex( settings->m_AuiPanels.appearance_panel_tab );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1301,9 +1313,12 @@ void PCB_EDIT_FRAME::SaveSettings( APP_SETTINGS_BASE* aCfg )
|
||||||
}
|
}
|
||||||
|
|
||||||
// ensure m_show_search is up to date (the pane can be closed)
|
// ensure m_show_search is up to date (the pane can be closed)
|
||||||
m_show_search = m_auimgr.GetPane( SearchPaneName() ).IsShown();
|
wxAuiPaneInfo& searchPaneInfo = m_auimgr.GetPane( SearchPaneName() );
|
||||||
|
m_show_search = searchPaneInfo.IsShown();
|
||||||
cfg->m_AuiPanels.show_search = m_show_search;
|
cfg->m_AuiPanels.show_search = m_show_search;
|
||||||
cfg->m_AuiPanels.search_panel_height = m_searchPane->GetSize().y;
|
cfg->m_AuiPanels.search_panel_height = m_searchPane->GetSize().y;
|
||||||
|
cfg->m_AuiPanels.search_panel_width = m_searchPane->GetSize().x;
|
||||||
|
cfg->m_AuiPanels.search_panel_dock_direction = searchPaneInfo.dock_direction;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -103,6 +103,12 @@ PCBNEW_SETTINGS::PCBNEW_SETTINGS()
|
||||||
m_params.emplace_back( new PARAM<int>( "aui.search_panel_height",
|
m_params.emplace_back( new PARAM<int>( "aui.search_panel_height",
|
||||||
&m_AuiPanels.search_panel_height, -1 ) );
|
&m_AuiPanels.search_panel_height, -1 ) );
|
||||||
|
|
||||||
|
m_params.emplace_back( new PARAM<int>( "aui.search_panel_width",
|
||||||
|
&m_AuiPanels.search_panel_width, -1 ) );
|
||||||
|
|
||||||
|
m_params.emplace_back( new PARAM<int>( "aui.search_panel_dock_direction",
|
||||||
|
&m_AuiPanels.search_panel_dock_direction, -1 ) );
|
||||||
|
|
||||||
m_params.emplace_back( new PARAM<int>( "aui.appearance_panel_tab",
|
m_params.emplace_back( new PARAM<int>( "aui.appearance_panel_tab",
|
||||||
&m_AuiPanels.appearance_panel_tab, 0, 0, 2 ) );
|
&m_AuiPanels.appearance_panel_tab, 0, 0, 2 ) );
|
||||||
|
|
||||||
|
|
|
@ -140,6 +140,8 @@ public:
|
||||||
int properties_panel_width;
|
int properties_panel_width;
|
||||||
float properties_splitter_proportion;
|
float properties_splitter_proportion;
|
||||||
int search_panel_height;
|
int search_panel_height;
|
||||||
|
int search_panel_width;
|
||||||
|
int search_panel_dock_direction;
|
||||||
bool show_layer_manager;
|
bool show_layer_manager;
|
||||||
bool show_properties;
|
bool show_properties;
|
||||||
bool show_search;
|
bool show_search;
|
||||||
|
|
|
@ -809,12 +809,27 @@ void PCB_EDIT_FRAME::ToggleSearch()
|
||||||
|
|
||||||
if( m_show_search )
|
if( m_show_search )
|
||||||
{
|
{
|
||||||
SetAuiPaneSize( m_auimgr, searchPaneInfo, -1, settings->m_AuiPanels.search_panel_height );
|
searchPaneInfo.Direction( settings->m_AuiPanels.search_panel_dock_direction );
|
||||||
|
|
||||||
|
if( settings->m_AuiPanels.search_panel_dock_direction == wxAUI_DOCK_TOP
|
||||||
|
|| settings->m_AuiPanels.search_panel_dock_direction == wxAUI_DOCK_BOTTOM )
|
||||||
|
{
|
||||||
|
SetAuiPaneSize( m_auimgr, searchPaneInfo,
|
||||||
|
-1, settings->m_AuiPanels.search_panel_height );
|
||||||
|
}
|
||||||
|
else if( settings->m_AuiPanels.search_panel_dock_direction == wxAUI_DOCK_LEFT
|
||||||
|
|| settings->m_AuiPanels.search_panel_dock_direction == wxAUI_DOCK_RIGHT )
|
||||||
|
{
|
||||||
|
SetAuiPaneSize( m_auimgr, searchPaneInfo,
|
||||||
|
settings->m_AuiPanels.search_panel_width, -1 );
|
||||||
|
}
|
||||||
m_searchPane->FocusSearch();
|
m_searchPane->FocusSearch();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
settings->m_AuiPanels.search_panel_height = m_searchPane->GetSize().y;
|
settings->m_AuiPanels.search_panel_height = m_searchPane->GetSize().y;
|
||||||
|
settings->m_AuiPanels.search_panel_width = m_searchPane->GetSize().x;
|
||||||
|
settings->m_AuiPanels.search_panel_dock_direction = searchPaneInfo.dock_direction;
|
||||||
m_auimgr.Update();
|
m_auimgr.Update();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue