Loading cvpcb/readwrite_dlgs.cpp +44 −27 Original line number Diff line number Diff line Loading @@ -41,56 +41,73 @@ void CVPCB_MAINFRAME::SetNewPkg( const wxString& aFootprintName ) { COMPONENT_INFO* Component; bool isUndefined = false; int NumCmp; int LastCmp; wxString msg; COMPONENT_INFO* component; bool hasFootprint = false; int componentIndex; wxString description; if( m_components.empty() ) return; // if no component is selected, select the first one if(m_ListCmp->GetFirstSelected() < 0) { NumCmp = 0; m_ListCmp->SetSelection( NumCmp, true ); componentIndex = 0; m_ListCmp->SetSelection( componentIndex, true ); } while( (NumCmp = m_ListCmp->GetFirstSelected() ) != -1) // iterate over the selection while( m_ListCmp->GetFirstSelected() != -1) { Component = &m_components[NumCmp]; // get the component for the current iteration if( Component == NULL ) componentIndex = m_ListCmp->GetFirstSelected(); component = &m_components[componentIndex]; if( component == NULL ) return; isUndefined = Component->m_Footprint.IsEmpty(); // check to see if the component has allready a footprint set. Component->m_Footprint = aFootprintName; hasFootprint = !(component->m_Footprint.IsEmpty()); msg.Printf( CMP_FORMAT, NumCmp + 1, GetChars( Component->m_Reference ), GetChars( Component->m_Value ), GetChars( Component->m_Footprint ) ); component->m_Footprint = aFootprintName; if( isUndefined ) m_undefinedComponentCnt -= 1; // create the new component description m_ListCmp->SetString( NumCmp, msg ); m_ListCmp->SetSelection( NumCmp, false ); description.Printf( CMP_FORMAT, componentIndex + 1, GetChars( component->m_Reference ), GetChars( component->m_Value ), GetChars( component->m_Footprint ) ); isUndefined = false; LastCmp = NumCmp; // if the component hasn't had a footprint associated with it // it now has, so we decrement the count of components without // a footprint assigned. DisplayStatus(); if( !hasFootprint ) { hasFootprint = true; m_undefinedComponentCnt -= 1; } // set the new description and deselect the processed component m_ListCmp->SetString( componentIndex, description ); m_ListCmp->SetSelection( componentIndex, false ); } // mark this "session" as modified m_modified = true; if( LastCmp < (m_ListCmp->GetCount() - 1) ) NumCmp = LastCmp + 1; // select the next component, if there is one if( componentIndex < (m_ListCmp->GetCount() - 1) ) componentIndex++; m_ListCmp->SetSelection( NumCmp, true ); m_ListCmp->SetSelection( componentIndex, true ); // update the statusbar DisplayStatus(); } Loading Loading
cvpcb/readwrite_dlgs.cpp +44 −27 Original line number Diff line number Diff line Loading @@ -41,56 +41,73 @@ void CVPCB_MAINFRAME::SetNewPkg( const wxString& aFootprintName ) { COMPONENT_INFO* Component; bool isUndefined = false; int NumCmp; int LastCmp; wxString msg; COMPONENT_INFO* component; bool hasFootprint = false; int componentIndex; wxString description; if( m_components.empty() ) return; // if no component is selected, select the first one if(m_ListCmp->GetFirstSelected() < 0) { NumCmp = 0; m_ListCmp->SetSelection( NumCmp, true ); componentIndex = 0; m_ListCmp->SetSelection( componentIndex, true ); } while( (NumCmp = m_ListCmp->GetFirstSelected() ) != -1) // iterate over the selection while( m_ListCmp->GetFirstSelected() != -1) { Component = &m_components[NumCmp]; // get the component for the current iteration if( Component == NULL ) componentIndex = m_ListCmp->GetFirstSelected(); component = &m_components[componentIndex]; if( component == NULL ) return; isUndefined = Component->m_Footprint.IsEmpty(); // check to see if the component has allready a footprint set. Component->m_Footprint = aFootprintName; hasFootprint = !(component->m_Footprint.IsEmpty()); msg.Printf( CMP_FORMAT, NumCmp + 1, GetChars( Component->m_Reference ), GetChars( Component->m_Value ), GetChars( Component->m_Footprint ) ); component->m_Footprint = aFootprintName; if( isUndefined ) m_undefinedComponentCnt -= 1; // create the new component description m_ListCmp->SetString( NumCmp, msg ); m_ListCmp->SetSelection( NumCmp, false ); description.Printf( CMP_FORMAT, componentIndex + 1, GetChars( component->m_Reference ), GetChars( component->m_Value ), GetChars( component->m_Footprint ) ); isUndefined = false; LastCmp = NumCmp; // if the component hasn't had a footprint associated with it // it now has, so we decrement the count of components without // a footprint assigned. DisplayStatus(); if( !hasFootprint ) { hasFootprint = true; m_undefinedComponentCnt -= 1; } // set the new description and deselect the processed component m_ListCmp->SetString( componentIndex, description ); m_ListCmp->SetSelection( componentIndex, false ); } // mark this "session" as modified m_modified = true; if( LastCmp < (m_ListCmp->GetCount() - 1) ) NumCmp = LastCmp + 1; // select the next component, if there is one if( componentIndex < (m_ListCmp->GetCount() - 1) ) componentIndex++; m_ListCmp->SetSelection( NumCmp, true ); m_ListCmp->SetSelection( componentIndex, true ); // update the statusbar DisplayStatus(); } Loading