Commit 5821d4bc authored by Wayne Stambaugh's avatar Wayne Stambaugh
Browse files

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.
parent 76fed4f9
Loading
Loading
Loading
Loading
+30 −4
Original line number Diff line number Diff line
@@ -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 )
    {
        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 );

        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

+7 −7
Original line number Diff line number Diff line
@@ -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();
+8 −0
Original line number Diff line number Diff line
@@ -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;
+1 −1

File changed.

Contains only whitespace changes.

+2 −2

File changed.

Contains only whitespace changes.