Move saving preferences out of the destructor.
For other reasons we wrap the adapters in a wxDataObject, which has delayed destruction semantics, but that means the settings stuff may no longer be around when the d'tor executes. Fixes https://gitlab.com/kicad/code/kicad/issues/12371
This commit is contained in:
parent
bc0a753238
commit
93c6d99a6d
|
@ -182,9 +182,6 @@ LIB_TREE::~LIB_TREE()
|
||||||
{
|
{
|
||||||
// Stop the timer during destruction early to avoid potential race conditions (that do happen)
|
// Stop the timer during destruction early to avoid potential race conditions (that do happen)
|
||||||
m_debounceTimer->Stop();
|
m_debounceTimer->Stop();
|
||||||
|
|
||||||
// Save the column widths to the config file
|
|
||||||
m_adapter->SaveSettings();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -199,6 +199,9 @@ PICKED_SYMBOL SCH_BASE_FRAME::PickSymbolFromLibTree( const SYMBOL_LIBRARY_FILTER
|
||||||
if( dlg.ShowModal() == wxID_CANCEL )
|
if( dlg.ShowModal() == wxID_CANCEL )
|
||||||
return PICKED_SYMBOL();
|
return PICKED_SYMBOL();
|
||||||
|
|
||||||
|
// Save any changes to column widths, etc.
|
||||||
|
modelAdapter->SaveSettings();
|
||||||
|
|
||||||
PICKED_SYMBOL sel;
|
PICKED_SYMBOL sel;
|
||||||
LIB_ID id = dlg.GetSelectedLibId( &sel.Unit );
|
LIB_ID id = dlg.GetSelectedLibId( &sel.Unit );
|
||||||
|
|
||||||
|
|
|
@ -581,6 +581,9 @@ bool SYMBOL_EDIT_FRAME::canCloseWindow( wxCloseEvent& aEvent )
|
||||||
if( !saveAllLibraries( true ) )
|
if( !saveAllLibraries( true ) )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
// Save symbol tree column widths
|
||||||
|
m_libMgr->GetAdapter()->SaveSettings();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1016,6 +1016,9 @@ void SYMBOL_VIEWER_FRAME::OnSelectSymbol( wxCommandEvent& aEvent )
|
||||||
if( dlg.ShowQuasiModal() == wxID_CANCEL )
|
if( dlg.ShowQuasiModal() == wxID_CANCEL )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
// Save any changes to column widths, etc.
|
||||||
|
modelAdapter->SaveSettings();
|
||||||
|
|
||||||
id = dlg.GetSelectedLibId( &unit );
|
id = dlg.GetSelectedLibId( &unit );
|
||||||
|
|
||||||
if( !id.IsValid() )
|
if( !id.IsValid() )
|
||||||
|
|
|
@ -735,6 +735,9 @@ bool FOOTPRINT_EDIT_FRAME::canCloseWindow( wxCloseEvent& aEvent )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Save footprint tree column widths
|
||||||
|
m_adapter->SaveSettings();
|
||||||
|
|
||||||
return PCB_BASE_EDIT_FRAME::canCloseWindow( aEvent );
|
return PCB_BASE_EDIT_FRAME::canCloseWindow( aEvent );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -271,6 +271,9 @@ FOOTPRINT* PCB_BASE_FRAME::SelectFootprintFromLibTree( LIB_ID aPreselect )
|
||||||
if( dialog.ShowQuasiModal() == wxID_CANCEL )
|
if( dialog.ShowQuasiModal() == wxID_CANCEL )
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
||||||
|
// Save any changes to column widths, etc.
|
||||||
|
adapter->SaveSettings();
|
||||||
|
|
||||||
if( dialog.IsExternalBrowserSelected() )
|
if( dialog.IsExternalBrowserSelected() )
|
||||||
{
|
{
|
||||||
// SelectFootprintFromLibBrowser() returns the "full" footprint name, i.e.
|
// SelectFootprintFromLibBrowser() returns the "full" footprint name, i.e.
|
||||||
|
|
Loading…
Reference in New Issue