Copy unit numbers to symbol instances when pasting sheets
Fixes https://gitlab.com/kicad/code/kicad/issues/5898 (B)
This commit is contained in:
parent
4bcd56b1f6
commit
2e21489acf
|
@ -1300,21 +1300,23 @@ void SCH_EDITOR_CONTROL::updatePastedInstances( const SCH_SHEET_PATH& aPastePath
|
||||||
{
|
{
|
||||||
SCH_COMPONENT* symbol = static_cast<SCH_COMPONENT*>( item );
|
SCH_COMPONENT* symbol = static_cast<SCH_COMPONENT*>( item );
|
||||||
|
|
||||||
if( aForceKeepAnnotations )
|
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() );
|
||||||
|
|
||||||
|
int ii = m_supplementaryClipboardInstances.FindRefByPath( clipItemPath.AsString() );
|
||||||
|
|
||||||
|
if( ii >= 0 )
|
||||||
{
|
{
|
||||||
KIID_PATH clipItemPath = aClipPath;
|
SCH_REFERENCE instance = m_supplementaryClipboardInstances[ ii ];
|
||||||
clipItemPath.push_back( symbol->m_Uuid );
|
|
||||||
|
|
||||||
// SCH_REFERENCE_LIST doesn't include the root sheet in the path
|
symbol->SetUnitSelection( &aPastePath, instance.GetUnit() );
|
||||||
clipItemPath.erase( clipItemPath.begin() );
|
symbol->SetUnit( instance.GetUnit() );
|
||||||
|
|
||||||
int ii = m_supplementaryClipboardInstances.FindRefByPath( clipItemPath.AsString() );
|
if( aForceKeepAnnotations )
|
||||||
|
|
||||||
if( ii >= 0 )
|
|
||||||
{
|
{
|
||||||
SCH_REFERENCE instance = m_supplementaryClipboardInstances[ ii ];
|
|
||||||
|
|
||||||
symbol->SetUnit( instance.GetUnit() );
|
|
||||||
symbol->SetRef( &aPastePath, instance.GetRef() );
|
symbol->SetRef( &aPastePath, instance.GetRef() );
|
||||||
symbol->SetValue( &aPastePath, instance.GetValue() );
|
symbol->SetValue( &aPastePath, instance.GetValue() );
|
||||||
symbol->SetFootprint( &aPastePath, instance.GetFootprint() );
|
symbol->SetFootprint( &aPastePath, instance.GetFootprint() );
|
||||||
|
|
Loading…
Reference in New Issue