Replace wxFloatingPointValidator by our UNIT_BINDER in DIALOG_PAD_PROPERTIES.
the change is a try to fix an annoying issue (#6499 similar to #6670) we cannot reproduce but is probably related to a locale issue.
This commit is contained in:
parent
676d35f559
commit
c186a42a54
|
@ -125,12 +125,12 @@ DIALOG_PAD_PROPERTIES::DIALOG_PAD_PROPERTIES( PCB_BASE_FRAME* aParent, D_PAD* aP
|
||||||
m_cornerRadius( aParent, m_cornerRadiusLabel, m_tcCornerRadius, m_cornerRadiusUnits, true ),
|
m_cornerRadius( aParent, m_cornerRadiusLabel, m_tcCornerRadius, m_cornerRadiusUnits, true ),
|
||||||
m_holeX( aParent, m_holeXLabel, m_holeXCtrl, m_holeXUnits, true ),
|
m_holeX( aParent, m_holeXLabel, m_holeXCtrl, m_holeXUnits, true ),
|
||||||
m_holeY( aParent, m_holeYLabel, m_holeYCtrl, m_holeYUnits, true ),
|
m_holeY( aParent, m_holeYLabel, m_holeYCtrl, m_holeYUnits, true ),
|
||||||
m_OrientValidator( 1, &m_OrientValue ),
|
|
||||||
m_clearance( aParent, m_clearanceLabel, m_clearanceCtrl, m_clearanceUnits, true ),
|
m_clearance( aParent, m_clearanceLabel, m_clearanceCtrl, m_clearanceUnits, true ),
|
||||||
m_maskClearance( aParent, m_maskClearanceLabel, m_maskClearanceCtrl, m_maskClearanceUnits, true ),
|
m_maskClearance( aParent, m_maskClearanceLabel, m_maskClearanceCtrl, m_maskClearanceUnits, true ),
|
||||||
m_pasteClearance( aParent, m_pasteClearanceLabel, m_pasteClearanceCtrl, m_pasteClearanceUnits, true ),
|
m_pasteClearance( aParent, m_pasteClearanceLabel, m_pasteClearanceCtrl, m_pasteClearanceUnits, true ),
|
||||||
m_spokeWidth( aParent, m_spokeWidthLabel, m_spokeWidthCtrl, m_spokeWidthUnits, true ),
|
m_spokeWidth( aParent, m_spokeWidthLabel, m_spokeWidthCtrl, m_spokeWidthUnits, true ),
|
||||||
m_thermalGap( aParent, m_thermalGapLabel, m_thermalGapCtrl, m_thermalGapUnits, true )
|
m_thermalGap( aParent, m_thermalGapLabel, m_thermalGapCtrl, m_thermalGapUnits, true ),
|
||||||
|
m_rotationUB( aParent, m_PadOrientText, m_orientation, nullptr, true )
|
||||||
{
|
{
|
||||||
m_currentPad = aPad; // aPad can be NULL, if the dialog is called
|
m_currentPad = aPad; // aPad can be NULL, if the dialog is called
|
||||||
// from the footprint editor to set default pad setup
|
// from the footprint editor to set default pad setup
|
||||||
|
@ -139,9 +139,7 @@ DIALOG_PAD_PROPERTIES::DIALOG_PAD_PROPERTIES( PCB_BASE_FRAME* aParent, D_PAD* aP
|
||||||
|
|
||||||
m_PadNetSelector->SetNetInfo( &m_board->GetNetInfo() );
|
m_PadNetSelector->SetNetInfo( &m_board->GetNetInfo() );
|
||||||
|
|
||||||
m_OrientValidator.SetRange( -360.0, 360.0 );
|
m_rotationUB.SetUnits( DEGREES );
|
||||||
m_orientation->SetValidator( m_OrientValidator );
|
|
||||||
m_OrientValidator.SetWindow( m_orientation );
|
|
||||||
|
|
||||||
m_cbShowPadOutline->SetValue( m_sketchPreview );
|
m_cbShowPadOutline->SetValue( m_sketchPreview );
|
||||||
|
|
||||||
|
@ -697,17 +695,15 @@ void DIALOG_PAD_PROPERTIES::initValues()
|
||||||
m_dummyPad->SetOrientation( angle );
|
m_dummyPad->SetOrientation( angle );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Pad Orient
|
||||||
angle = m_dummyPad->GetOrientation();
|
angle = m_dummyPad->GetOrientation();
|
||||||
|
|
||||||
NORMALIZE_ANGLE_180( angle ); // ? normalizing is in D_PAD::SetOrientation()
|
NORMALIZE_ANGLE_180( angle ); // ? normalizing is in D_PAD::SetOrientation()
|
||||||
|
// Note: use ChangeValue() instead of SetValue() so that we don't generate events
|
||||||
|
m_orientation->ChangeValue( StringFromValue( DEGREES, angle ) );
|
||||||
|
|
||||||
// Set layers used by this pad: :
|
// Set layers used by this pad: :
|
||||||
setPadLayersList( m_dummyPad->GetLayerSet() );
|
setPadLayersList( m_dummyPad->GetLayerSet() );
|
||||||
|
|
||||||
// Pad Orient
|
|
||||||
// Note: use ChangeValue() instead of SetValue() so that we don't generate events
|
|
||||||
m_orientation->ChangeValue( StringFromValue( DEGREES, angle ) );
|
|
||||||
|
|
||||||
switch( m_dummyPad->GetShape() )
|
switch( m_dummyPad->GetShape() )
|
||||||
{
|
{
|
||||||
default:
|
default:
|
||||||
|
@ -1561,7 +1557,8 @@ bool DIALOG_PAD_PROPERTIES::transferDataToPad( D_PAD* aPad )
|
||||||
if( !m_spokeWidth.Validate( 0, INT_MAX ) )
|
if( !m_spokeWidth.Validate( 0, INT_MAX ) )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
m_OrientValidator.TransferFromWindow();
|
m_OrientValue = m_rotationUB.GetValue();
|
||||||
|
NORMALIZE_ANGLE_180( m_OrientValue );
|
||||||
|
|
||||||
aPad->SetAttribute( code_type[m_PadType->GetSelection()] );
|
aPad->SetAttribute( code_type[m_PadType->GetSelection()] );
|
||||||
aPad->SetShape( code_shape[m_PadShape->GetSelection()] );
|
aPad->SetShape( code_shape[m_PadShape->GetSelection()] );
|
||||||
|
@ -1674,7 +1671,7 @@ bool DIALOG_PAD_PROPERTIES::transferDataToPad( D_PAD* aPad )
|
||||||
}
|
}
|
||||||
|
|
||||||
aPad->SetOffset( wxPoint( m_offsetX.GetValue(), m_offsetY.GetValue() ) );
|
aPad->SetOffset( wxPoint( m_offsetX.GetValue(), m_offsetY.GetValue() ) );
|
||||||
aPad->SetOrientation( m_OrientValue * 10.0 );
|
aPad->SetOrientation( m_OrientValue );
|
||||||
aPad->SetName( m_PadNumCtrl->GetValue() );
|
aPad->SetName( m_PadNumCtrl->GetValue() );
|
||||||
aPad->SetNetCode( m_PadNetSelector->GetSelectedNetcode() );
|
aPad->SetNetCode( m_PadNetSelector->GetSelectedNetcode() );
|
||||||
|
|
||||||
|
|
|
@ -88,11 +88,11 @@ private:
|
||||||
UNIT_BINDER m_trapDelta;
|
UNIT_BINDER m_trapDelta;
|
||||||
UNIT_BINDER m_cornerRadius;
|
UNIT_BINDER m_cornerRadius;
|
||||||
UNIT_BINDER m_holeX, m_holeY;
|
UNIT_BINDER m_holeX, m_holeY;
|
||||||
wxFloatingPointValidator<double> m_OrientValidator;
|
|
||||||
double m_OrientValue;
|
|
||||||
UNIT_BINDER m_clearance;
|
UNIT_BINDER m_clearance;
|
||||||
UNIT_BINDER m_maskClearance, m_pasteClearance;
|
UNIT_BINDER m_maskClearance, m_pasteClearance;
|
||||||
UNIT_BINDER m_spokeWidth, m_thermalGap;
|
UNIT_BINDER m_spokeWidth, m_thermalGap;
|
||||||
|
UNIT_BINDER m_rotationUB;
|
||||||
|
double m_OrientValue;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void prepareCanvas(); // Initialize the canvases (legacy or gal) to display the pad
|
void prepareCanvas(); // Initialize the canvases (legacy or gal) to display the pad
|
||||||
|
|
Loading…
Reference in New Issue