Browse Source

Copy unit numbers to symbol instances when pasting sheets

Fixes https://gitlab.com/kicad/code/kicad/issues/5898 (B)
6.0.7
david-beinder 5 years ago
committed by Seth Hillbrand
parent
commit
2e21489acf
  1. 24
      eeschema/tools/sch_editor_control.cpp

24
eeschema/tools/sch_editor_control.cpp

@ -1300,21 +1300,23 @@ void SCH_EDITOR_CONTROL::updatePastedInstances( const SCH_SHEET_PATH& aPastePath
{
SCH_COMPONENT* symbol = static_cast<SCH_COMPONENT*>( item );
if( aForceKeepAnnotations )
{
KIID_PATH clipItemPath = aClipPath;
clipItemPath.push_back( symbol->m_Uuid );
KIID_PATH clipItemPath = aClipPath;
clipItemPath.push_back( symbol->m_Uuid );
// SCH_REFERENCE_LIST doesn't include the root sheet in the path
clipItemPath.erase( clipItemPath.begin() );
// SCH_REFERENCE_LIST doesn't include the root sheet in the path
clipItemPath.erase( clipItemPath.begin() );
int ii = m_supplementaryClipboardInstances.FindRefByPath( clipItemPath.AsString() );
int ii = m_supplementaryClipboardInstances.FindRefByPath( clipItemPath.AsString() );
if( ii >= 0 )
{
SCH_REFERENCE instance = m_supplementaryClipboardInstances[ ii ];
if( ii >= 0 )
{
SCH_REFERENCE instance = m_supplementaryClipboardInstances[ ii ];
symbol->SetUnit( instance.GetUnit() );
symbol->SetUnitSelection( &aPastePath, instance.GetUnit() );
symbol->SetUnit( instance.GetUnit() );
if( aForceKeepAnnotations )
{
symbol->SetRef( &aPastePath, instance.GetRef() );
symbol->SetValue( &aPastePath, instance.GetValue() );
symbol->SetFootprint( &aPastePath, instance.GetFootprint() );

Loading…
Cancel
Save