Eeschema: prevent schematic images with bad scales

Prevent obvious scale issues (0.0, nan, etc) from corrupting display of
schematic images.  In these cases, we reset the scale value to 1.0 and
allow the user to input the appropriate value when editing the
schematic.

Fixes: lp:1811066
* https://bugs.launchpad.net/kicad/+bug/1811066
This commit is contained in:
Seth Hillbrand 2019-01-15 07:40:09 -08:00
parent 576261cad1
commit 72c885797e
1 changed files with 11 additions and 3 deletions

View File

@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2016 CERN
* Copyright (C) 2016-2018 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright (C) 2016-2019 KiCad Developers, see AUTHORS.txt for contributors.
*
* @author Wayne Stambaugh <stambaughw@gmail.com>
*
@ -1075,8 +1075,16 @@ SCH_BITMAP* SCH_LEGACY_PLUGIN::loadBitmap( FILE_LINE_READER& aReader )
}
else if( strCompare( "Scale", line, &line ) )
{
/// @todo Make m_scale private and add accessors.
bitmap->GetImage()->SetScale( parseDouble( aReader, line, &line ) );
auto scalefactor = parseDouble( aReader, line, &line );
// Prevent scalefactor values that cannot be displayed.
// In the case of a bad value, we accept that the image might be mis-scaled
// rather than removing the full image. Users can then edit the scale factor in
// Eeschema to the appropriate value
if( !std::isnormal( scalefactor ) )
scalefactor = 1.0;
bitmap->GetImage()->SetScale( scalefactor );
}
else if( strCompare( "Data", line, &line ) )
{