Library Editor: save libraries added in the editor to sym-lib-tables
This commit is contained in:
parent
26304c54ed
commit
dfcd42f5ef
|
@ -341,9 +341,14 @@ void LIB_EDIT_FRAME::SetDrawItem( LIB_ITEM* drawItem )
|
||||||
void LIB_EDIT_FRAME::OnCloseWindow( wxCloseEvent& Event )
|
void LIB_EDIT_FRAME::OnCloseWindow( wxCloseEvent& Event )
|
||||||
{
|
{
|
||||||
if( saveAllLibraries() )
|
if( saveAllLibraries() )
|
||||||
|
{
|
||||||
|
saveSymbolLibTables( true, true );
|
||||||
Destroy();
|
Destroy();
|
||||||
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
Event.Veto();
|
Event.Veto();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -268,37 +268,7 @@ void SCH_BASE_FRAME::OnEditSymbolLibTable( wxCommandEvent& aEvent )
|
||||||
if( dlg.ShowModal() == wxID_CANCEL )
|
if( dlg.ShowModal() == wxID_CANCEL )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
try
|
saveSymbolLibTables( true, true );
|
||||||
{
|
|
||||||
FILE_OUTPUTFORMATTER sf( SYMBOL_LIB_TABLE::GetGlobalTableFileName() );
|
|
||||||
|
|
||||||
SYMBOL_LIB_TABLE::GetGlobalLibTable().Format( &sf, 0 );
|
|
||||||
}
|
|
||||||
catch( const IO_ERROR& ioe )
|
|
||||||
{
|
|
||||||
wxString msg = wxString::Format( _( "Error occurred saving the global symbol library "
|
|
||||||
"table:\n\n%s" ),
|
|
||||||
GetChars( ioe.What().GetData() ) );
|
|
||||||
wxMessageBox( msg, _( "File Save Error" ), wxOK | wxICON_ERROR );
|
|
||||||
}
|
|
||||||
|
|
||||||
if( !Prj().GetProjectName().IsEmpty() )
|
|
||||||
{
|
|
||||||
wxFileName fn( Prj().GetProjectPath(), SYMBOL_LIB_TABLE::GetSymbolLibTableFileName() );
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
Prj().SchSymbolLibTable()->Save( fn.GetFullPath() );
|
|
||||||
}
|
|
||||||
catch( const IO_ERROR& ioe )
|
|
||||||
{
|
|
||||||
wxString msg = wxString::Format( _( "Error occurred saving project specific "
|
|
||||||
"symbol library table:\n\n%s" ),
|
|
||||||
GetChars( ioe.What() ) );
|
|
||||||
wxMessageBox( msg, _( "File Save Error" ), wxOK | wxICON_ERROR );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
LIB_EDIT_FRAME* editor = (LIB_EDIT_FRAME*) Kiway().Player( FRAME_SCH_LIB_EDITOR, false );
|
LIB_EDIT_FRAME* editor = (LIB_EDIT_FRAME*) Kiway().Player( FRAME_SCH_LIB_EDITOR, false );
|
||||||
|
|
||||||
|
@ -335,3 +305,47 @@ LIB_PART* SCH_BASE_FRAME::GetLibPart( const LIB_ID& aLibId, bool aUseCacheLib, b
|
||||||
|
|
||||||
return SchGetLibPart( aLibId, Prj().SchSymbolLibTable(), cache, this, aShowErrorMsg );
|
return SchGetLibPart( aLibId, Prj().SchSymbolLibTable(), cache, this, aShowErrorMsg );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool SCH_BASE_FRAME::saveSymbolLibTables( bool aGlobal, bool aProject )
|
||||||
|
{
|
||||||
|
bool success = true;
|
||||||
|
|
||||||
|
if( aGlobal )
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
FILE_OUTPUTFORMATTER sf( SYMBOL_LIB_TABLE::GetGlobalTableFileName() );
|
||||||
|
|
||||||
|
SYMBOL_LIB_TABLE::GetGlobalLibTable().Format( &sf, 0 );
|
||||||
|
}
|
||||||
|
catch( const IO_ERROR& ioe )
|
||||||
|
{
|
||||||
|
success = false;
|
||||||
|
wxString msg = wxString::Format( _( "Error occurred saving the global symbol library "
|
||||||
|
"table:\n\n%s" ),
|
||||||
|
GetChars( ioe.What().GetData() ) );
|
||||||
|
wxMessageBox( msg, _( "File Save Error" ), wxOK | wxICON_ERROR );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if( aProject && !Prj().GetProjectName().IsEmpty() )
|
||||||
|
{
|
||||||
|
wxFileName fn( Prj().GetProjectPath(), SYMBOL_LIB_TABLE::GetSymbolLibTableFileName() );
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Prj().SchSymbolLibTable()->Save( fn.GetFullPath() );
|
||||||
|
}
|
||||||
|
catch( const IO_ERROR& ioe )
|
||||||
|
{
|
||||||
|
success = false;
|
||||||
|
wxString msg = wxString::Format( _( "Error occurred saving project specific "
|
||||||
|
"symbol library table:\n\n%s" ),
|
||||||
|
GetChars( ioe.What() ) );
|
||||||
|
wxMessageBox( msg, _( "File Save Error" ), wxOK | wxICON_ERROR );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return success;
|
||||||
|
}
|
||||||
|
|
|
@ -281,6 +281,15 @@ protected:
|
||||||
* false on cancel
|
* false on cancel
|
||||||
*/
|
*/
|
||||||
bool SelectPartNameToLoad( wxString& aLibrary, wxString& aBufName );
|
bool SelectPartNameToLoad( wxString& aLibrary, wxString& aBufName );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Saves Symbol Library Tables to disk.
|
||||||
|
*
|
||||||
|
* @param aGlobal when true, the Global Table is saved.
|
||||||
|
* @param aProject when true, the Project Table is saved.
|
||||||
|
* @return True when all requested actions succeeded.
|
||||||
|
*/
|
||||||
|
bool saveSymbolLibTables( bool aGlobal, bool aProject );
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // SCH_BASE_FRAME_H_
|
#endif // SCH_BASE_FRAME_H_
|
||||||
|
|
Loading…
Reference in New Issue