Browse Source

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
pull/16/head
Wayne Stambaugh 6 years ago
parent
commit
35f3eb6220
  1. 19
      eeschema/sch_junction.cpp
  2. 2
      eeschema/sch_junction.h

19
eeschema/sch_junction.cpp

@ -203,3 +203,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;
}

2
eeschema/sch_junction.h

@ -104,6 +104,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

Loading…
Cancel
Save