Footprint library table fixes.
* Pcbnew: catch exceptions when saving changes to footprint library table. * Pcbnew: update footprint viewer library list if open when footprint library table changes. * CvPcb: update library list when footprint library table changes. * Minor coding policy fixes.
This commit is contained in:
parent
76fed4f995
commit
5821d4bc48
|
@ -514,12 +514,24 @@ void CVPCB_MAINFRAME::ConfigCvpcb( wxCommandEvent& event )
|
|||
#if defined( USE_FP_LIB_TABLE )
|
||||
void CVPCB_MAINFRAME::OnEditFootprintLibraryTable( wxCommandEvent& aEvent )
|
||||
{
|
||||
bool tableChanged = false;
|
||||
int r = InvokePcbLibTableEditor( this, m_globalFootprintTable, m_footprintLibTable );
|
||||
|
||||
if( r & 1 )
|
||||
{
|
||||
FILE_OUTPUTFORMATTER sf( FP_LIB_TABLE::GetGlobalTableFileName() );
|
||||
m_globalFootprintTable->Format( &sf, 0 );
|
||||
try
|
||||
{
|
||||
FILE_OUTPUTFORMATTER sf( FP_LIB_TABLE::GetGlobalTableFileName() );
|
||||
m_globalFootprintTable->Format( &sf, 0 );
|
||||
tableChanged = true;
|
||||
}
|
||||
catch( IO_ERROR& ioe )
|
||||
{
|
||||
wxString msg;
|
||||
msg.Printf( _( "Error occurred saving the global footprint library "
|
||||
"table:\n\n%s" ), ioe.errorText.GetData() );
|
||||
wxMessageBox( msg, _( "File Save Error" ), wxOK | wxICON_ERROR );
|
||||
}
|
||||
}
|
||||
|
||||
if( r & 2 )
|
||||
|
@ -528,9 +540,23 @@ void CVPCB_MAINFRAME::OnEditFootprintLibraryTable( wxCommandEvent& aEvent )
|
|||
fn.SetName( FP_LIB_TABLE::GetFileName() );
|
||||
fn.SetExt( wxEmptyString );
|
||||
|
||||
FILE_OUTPUTFORMATTER sf( fn.GetFullPath() );
|
||||
m_footprintLibTable->Format( &sf, 0 );
|
||||
try
|
||||
{
|
||||
FILE_OUTPUTFORMATTER sf( fn.GetFullPath() );
|
||||
m_footprintLibTable->Format( &sf, 0 );
|
||||
tableChanged = true;
|
||||
}
|
||||
catch( IO_ERROR& ioe )
|
||||
{
|
||||
wxString msg;
|
||||
msg.Printf( _( "Error occurred saving the global footprint library "
|
||||
"table:\n\n%s" ), ioe.errorText.GetData() );
|
||||
wxMessageBox( msg, _( "File Save Error" ), wxOK | wxICON_ERROR );
|
||||
}
|
||||
}
|
||||
|
||||
if( tableChanged )
|
||||
BuildLIBRARY_LISTBOX();
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
|
@ -97,7 +97,7 @@ protected:
|
|||
|
||||
TOOL_MANAGER* m_toolManager;
|
||||
TOOL_DISPATCHER* m_toolDispatcher;
|
||||
|
||||
|
||||
void updateGridSelectBox();
|
||||
void updateZoomSelectBox();
|
||||
virtual void unitsChangeRefresh();
|
||||
|
|
|
@ -111,7 +111,7 @@ protected:
|
|||
|
||||
DRC* m_drc; ///< the DRC controller, see drc.cpp
|
||||
|
||||
PARAM_CFG_ARRAY m_configSettings; ///< List of Pcbnew configuration settings.
|
||||
PARAM_CFG_ARRAY m_configSettings; ///< List of Pcbnew configuration settings.
|
||||
|
||||
wxString m_lastNetListRead; ///< Last net list read with relative path.
|
||||
bool m_useCmpFileForFpNames; ///< is true, use the .cmp file from CvPcb, else use the netlist
|
||||
|
@ -120,7 +120,7 @@ protected:
|
|||
void setupTools();
|
||||
void destroyTools();
|
||||
void onGenericCommand( wxCommandEvent& aEvent );
|
||||
|
||||
|
||||
// we'll use lower case function names for private member functions.
|
||||
void createPopUpMenuForZones( ZONE_CONTAINER* edge_zone, wxMenu* aPopMenu );
|
||||
void createPopUpMenuForFootprints( MODULE* aModule, wxMenu* aPopMenu );
|
||||
|
|
|
@ -95,10 +95,6 @@ public:
|
|||
|
||||
virtual EDA_COLOR_T GetGridColor( void ) const;
|
||||
|
||||
private:
|
||||
|
||||
void OnSize( wxSizeEvent& event );
|
||||
|
||||
/**
|
||||
* Function ReCreateLibraryList
|
||||
*
|
||||
|
@ -107,6 +103,10 @@ private:
|
|||
*/
|
||||
void ReCreateLibraryList();
|
||||
|
||||
private:
|
||||
|
||||
void OnSize( wxSizeEvent& event );
|
||||
|
||||
void ReCreateFootprintList();
|
||||
void OnIterateFootprintList( wxCommandEvent& event );
|
||||
void DisplayLibInfos();
|
||||
|
@ -200,9 +200,9 @@ private:
|
|||
* Virtual functions, not used here, but needed by PCB_BASE_FRAME
|
||||
* (virtual pure functions )
|
||||
*/
|
||||
void OnLeftDClick(wxDC*, const wxPoint&) {}
|
||||
void SaveCopyInUndoList(BOARD_ITEM*, UNDO_REDO_T, const wxPoint&) {}
|
||||
void SaveCopyInUndoList(PICKED_ITEMS_LIST&, UNDO_REDO_T, const wxPoint&) {}
|
||||
void OnLeftDClick( wxDC*, const wxPoint& ) {}
|
||||
void SaveCopyInUndoList( BOARD_ITEM*, UNDO_REDO_T, const wxPoint& ) {}
|
||||
void SaveCopyInUndoList( PICKED_ITEMS_LIST&, UNDO_REDO_T, const wxPoint &) {}
|
||||
|
||||
|
||||
DECLARE_EVENT_TABLE()
|
||||
|
|
|
@ -87,6 +87,7 @@ void PCB_EDIT_FRAME::Process_Config( wxCommandEvent& event )
|
|||
|
||||
case ID_PCB_LIB_TABLE_EDIT:
|
||||
{
|
||||
bool tableChanged = false;
|
||||
int r = InvokePcbLibTableEditor( this, m_globalFootprintTable, m_footprintLibTable );
|
||||
|
||||
if( r & 1 )
|
||||
|
@ -95,6 +96,7 @@ void PCB_EDIT_FRAME::Process_Config( wxCommandEvent& event )
|
|||
{
|
||||
FILE_OUTPUTFORMATTER sf( FP_LIB_TABLE::GetGlobalTableFileName() );
|
||||
m_globalFootprintTable->Format( &sf, 0 );
|
||||
tableChanged = true;
|
||||
}
|
||||
catch( IO_ERROR& ioe )
|
||||
{
|
||||
|
@ -114,6 +116,7 @@ void PCB_EDIT_FRAME::Process_Config( wxCommandEvent& event )
|
|||
try
|
||||
{
|
||||
m_footprintLibTable->Save( fn );
|
||||
tableChanged = true;
|
||||
}
|
||||
catch( IO_ERROR& ioe )
|
||||
{
|
||||
|
@ -123,6 +126,11 @@ void PCB_EDIT_FRAME::Process_Config( wxCommandEvent& event )
|
|||
wxMessageBox( msg, _( "File Save Error" ), wxOK | wxICON_ERROR );
|
||||
}
|
||||
}
|
||||
|
||||
if( tableChanged && FOOTPRINT_VIEWER_FRAME::GetActiveFootprintViewer() != NULL )
|
||||
{
|
||||
FOOTPRINT_VIEWER_FRAME::GetActiveFootprintViewer()->ReCreateLibraryList();
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
|
|
Loading…
Reference in New Issue