SCH_LABEL_BASE::SetPosition(): ensure field positions are also handled.

Fixes #14520
https://gitlab.com/kicad/code/kicad/issues/14520
This commit is contained in:
jean-pierre charras 2023-04-12 11:15:17 +02:00
parent f56e569a25
commit de579af352
2 changed files with 18 additions and 8 deletions

View File

@ -290,6 +290,21 @@ VECTOR2I SCH_LABEL_BASE::GetSchematicTextOffset( const RENDER_SETTINGS* aSetting
return text_offset;
}
void SCH_LABEL_BASE::SetPosition( const VECTOR2I& aPosition )
{
VECTOR2I offset = aPosition - GetTextPos();
Move( offset );
}
void SCH_LABEL_BASE::Move( const VECTOR2I& aMoveVector )
{
SCH_TEXT::Move( aMoveVector );
for( SCH_FIELD& field : m_fields )
field.Offset( aMoveVector );
}
void SCH_LABEL_BASE::Rotate( const VECTOR2I& aCenter )
{

View File

@ -112,17 +112,12 @@ public:
*/
bool IncrementLabel( int aIncrement );
void Move( const VECTOR2I& aMoveVector ) override
{
SCH_TEXT::Move( aMoveVector );
for( SCH_FIELD& field : m_fields )
field.Offset( aMoveVector );
}
void Move( const VECTOR2I& aMoveVector ) override;
void Rotate( const VECTOR2I& aCenter ) override;
void Rotate90( bool aClockwise ) override;
void SetPosition( const VECTOR2I& aPosition ) override;
void AutoplaceFields( SCH_SCREEN* aScreen, bool aManual ) override;
/**