Update all instances in CvPcb when one is changed.
This commit is contained in:
parent
8648a074da
commit
06ccef3dd4
|
@ -479,22 +479,33 @@ void CVPCB_MAINFRAME::AssociateFootprint( const CVPCB_ASSOCIATION& aAssociation,
|
|||
// Test for validity of the requested footprint
|
||||
if( !fpid.empty() && !fpid.IsValid() )
|
||||
{
|
||||
wxString msg =
|
||||
wxString::Format( _( "\"%s\" is not a valid footprint." ), fpid.Format().wx_str() );
|
||||
wxString msg = wxString::Format( _( "\"%s\" is not a valid footprint." ),
|
||||
fpid.Format().wx_str() );
|
||||
DisplayErrorMessage( this, msg );
|
||||
return;
|
||||
}
|
||||
|
||||
// Set the new footprint
|
||||
component->SetFPID( fpid );
|
||||
const KIID& id = component->GetPath().back();
|
||||
|
||||
// create the new component description and set it
|
||||
wxString description = wxString::Format( CMP_FORMAT,
|
||||
aAssociation.GetComponentIndex() + 1,
|
||||
component->GetReference(),
|
||||
component->GetValue(),
|
||||
component->GetFPID().Format().wx_str() );
|
||||
m_compListBox->SetString( aAssociation.GetComponentIndex(), description );
|
||||
// Set new footprint to all instances of the selected component
|
||||
for( unsigned int idx : GetComponentIndices() )
|
||||
{
|
||||
COMPONENT* candidate = m_netlist.GetComponent( idx );
|
||||
|
||||
if( candidate->GetPath().back() == id )
|
||||
{
|
||||
// Set the new footprint
|
||||
candidate->SetFPID( fpid );
|
||||
|
||||
// create the new component description and set it
|
||||
wxString description = wxString::Format( CMP_FORMAT,
|
||||
idx + 1,
|
||||
candidate->GetReference(),
|
||||
candidate->GetValue(),
|
||||
candidate->GetFPID().Format().wx_str() );
|
||||
m_compListBox->SetString( idx, description );
|
||||
}
|
||||
}
|
||||
|
||||
// Mark the data as being modified
|
||||
m_modified = true;
|
||||
|
|
Loading…
Reference in New Issue