DIALOG_PAD_PROPERTIES: Fix incorrect calculation of Round Rect Radius Ratio, when inches are selected.

Fix from master branch.
This commit is contained in:
jean-pierre charras 2019-04-04 15:56:06 +02:00
parent 3899ec136b
commit f35f534ff4
1 changed files with 17 additions and 17 deletions

View File

@ -320,6 +320,7 @@ void DIALOG_PAD_PROPERTIES::OnPaintShowPanel( wxPaintEvent& event )
{ {
// If drill size has been set, use that. Otherwise default to 1mm. // If drill size has been set, use that. Otherwise default to 1mm.
dim = m_dummyPad->GetDrillSize().x; dim = m_dummyPad->GetDrillSize().x;
if( dim == 0 ) if( dim == 0 )
dim = Millimeter2iu( 1.0 ); dim = Millimeter2iu( 1.0 );
} }
@ -343,6 +344,7 @@ void DIALOG_PAD_PROPERTIES::OnPaintShowPanel( wxPaintEvent& event )
if( dim == 0 ) if( dim == 0 )
{ {
dim = m_dummyPad->GetDrillSize().y; dim = m_dummyPad->GetDrillSize().y;
if( dim == 0 ) if( dim == 0 )
dim = Millimeter2iu( 0.1 ); dim = Millimeter2iu( 0.1 );
} }
@ -476,24 +478,20 @@ void DIALOG_PAD_PROPERTIES::onCornerRadiusChange( wxCommandEvent& event )
if( m_dummyPad->GetShape() != PAD_SHAPE_ROUNDRECT ) if( m_dummyPad->GetShape() != PAD_SHAPE_ROUNDRECT )
return; return;
wxString value = m_tcCornerRadius->GetValue(); double rrRadius = m_cornerRadius.GetValue();
double rrRadius;
if( value.ToDouble( &rrRadius ) ) if( rrRadius < 0.0 )
{ {
if( rrRadius < 0.0 ) rrRadius = 0.0;
{ m_tcCornerRadius->ChangeValue( wxString::Format( "%.1f", rrRadius ) );
rrRadius = 0.0;
m_tcCornerRadius->ChangeValue( "0.0" );
}
transferDataToPad( m_dummyPad );
m_dummyPad->SetRoundRectCornerRadius( Millimeter2iu( rrRadius ) );
auto ratio = wxString::Format( "%.1f", m_dummyPad->GetRoundRectRadiusRatio() * 100 );
m_tcCornerSizeRatio->ChangeValue( ratio );
redraw();
} }
transferDataToPad( m_dummyPad );
m_dummyPad->SetRoundRectCornerRadius( rrRadius );
auto ratio = wxString::Format( "%.1f", m_dummyPad->GetRoundRectRadiusRatio() * 100 );
m_tcCornerSizeRatio->ChangeValue( ratio );
redraw();
} }
@ -511,13 +509,15 @@ void DIALOG_PAD_PROPERTIES::onCornerSizePercentChange( wxCommandEvent& event )
if( rrRadiusRatioPercent < 0.0 ) if( rrRadiusRatioPercent < 0.0 )
{ {
rrRadiusRatioPercent = 0.0; rrRadiusRatioPercent = 0.0;
m_tcCornerSizeRatio->ChangeValue( "0.0" ); value.Printf( "%.1f", rrRadiusRatioPercent );
m_tcCornerSizeRatio->ChangeValue( value );
} }
if( rrRadiusRatioPercent > 50.0 ) if( rrRadiusRatioPercent > 50.0 )
{ {
rrRadiusRatioPercent = 0.5; rrRadiusRatioPercent = 0.5;
m_tcCornerSizeRatio->ChangeValue( "50.0" ); value.Printf( "%.1f", rrRadiusRatioPercent*100.0 );
m_tcCornerSizeRatio->ChangeValue( value );
} }
transferDataToPad( m_dummyPad ); transferDataToPad( m_dummyPad );