Eeschema: fix large diffs when saving schematics.

Apparently the < operator was never implemented for SCH_JUNCTION objects
so they were not get sorted which was causing the large diffs between
schematic saves.

Fixes https://gitlab.com/kicad/code/kicad/issues/4370

(cherry picked from commit 35f3eb6220)
This commit is contained in:
Wayne Stambaugh 2020-05-08 16:01:14 -04:00
parent 86a710e175
commit 5ef9db6d67
2 changed files with 21 additions and 0 deletions

View File

@ -223,3 +223,22 @@ BITMAP_DEF SCH_JUNCTION::GetMenuImage() const
{
return add_junction_xpm;
}
bool SCH_JUNCTION::operator <( const SCH_ITEM& aItem ) const
{
if( Type() != aItem.Type() )
return Type() < aItem.Type();
if( GetLayer() != aItem.GetLayer() )
return GetLayer() < aItem.GetLayer();
auto junction = static_cast<const SCH_JUNCTION*>( &aItem );
if( GetPosition().x != junction->GetPosition().x )
return GetPosition().x < junction->GetPosition().x;
return GetPosition().y < junction->GetPosition().y;
}

View File

@ -113,6 +113,8 @@ public:
EDA_ITEM* Clone() const override;
virtual bool operator <( const SCH_ITEM& aItem ) const override;
#if defined(DEBUG)
void Show( int nestLevel, std::ostream& os ) const override;
#endif