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/4369
This commit is contained in:
Wayne Stambaugh 2020-05-08 16:01:14 -04:00
parent 1840fe351e
commit 35f3eb6220
2 changed files with 21 additions and 0 deletions

View File

@ -203,3 +203,22 @@ BITMAP_DEF SCH_JUNCTION::GetMenuImage() const
{ {
return add_junction_xpm; 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

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