mirror of
https://gitlab.com/kicad/code/kicad.git
synced 2025-04-21 22:13:44 +00:00
Pcbnew: fix track start property display
The display in the properties manager for arc tracks was wrong. Implement a set of Get/SetStartX/Y functions for the traces, to match the End functions. This is needed because PCB_ARC overrides GetPosition to return the arc center, not the start position (whereas PCB_TRACK does return the start for GetPosition) Fixes: https://gitlab.com/kicad/code/kicad/-/issues/19215
This commit is contained in:
parent
ed9e66399e
commit
37469b00b2
@ -172,10 +172,10 @@ DIALOG_TRACK_VIA_PROPERTIES::DIALOG_TRACK_VIA_PROPERTIES( PCB_BASE_FRAME* aParen
|
||||
|
||||
if( !m_tracks ) // first track in the list
|
||||
{
|
||||
m_trackStartX.SetValue( t->GetStart().x );
|
||||
m_trackStartY.SetValue( t->GetStart().y );
|
||||
m_trackEndX.SetValue( t->GetEnd().x );
|
||||
m_trackEndY.SetValue( t->GetEnd().y );
|
||||
m_trackStartX.SetValue( t->GetStartX() );
|
||||
m_trackStartY.SetValue( t->GetStartY() );
|
||||
m_trackEndX.SetValue( t->GetEndX() );
|
||||
m_trackEndY.SetValue( t->GetEndY() );
|
||||
m_trackWidth.SetValue( t->GetWidth() );
|
||||
track_selection_layer = t->GetLayer();
|
||||
m_trackHasSolderMask->SetValue ( t->HasSolderMask() );
|
||||
@ -189,16 +189,16 @@ DIALOG_TRACK_VIA_PROPERTIES::DIALOG_TRACK_VIA_PROPERTIES( PCB_BASE_FRAME* aParen
|
||||
}
|
||||
else // check if values are the same for every selected track
|
||||
{
|
||||
if( m_trackStartX.GetValue() != t->GetStart().x )
|
||||
if( m_trackStartX.GetValue() != t->GetStartX() )
|
||||
m_trackStartX.SetValue( INDETERMINATE_STATE );
|
||||
|
||||
if( m_trackStartY.GetValue() != t->GetStart().y )
|
||||
if( m_trackStartY.GetValue() != t->GetStartY() )
|
||||
m_trackStartY.SetValue( INDETERMINATE_STATE );
|
||||
|
||||
if( m_trackEndX.GetValue() != t->GetEnd().x )
|
||||
if( m_trackEndX.GetValue() != t->GetEndX() )
|
||||
m_trackEndX.SetValue( INDETERMINATE_STATE );
|
||||
|
||||
if( m_trackEndY.GetValue() != t->GetEnd().y )
|
||||
if( m_trackEndY.GetValue() != t->GetEndY() )
|
||||
m_trackEndY.SetValue( INDETERMINATE_STATE );
|
||||
|
||||
if( m_trackWidth.GetValue() != t->GetWidth() )
|
||||
@ -640,16 +640,16 @@ bool DIALOG_TRACK_VIA_PROPERTIES::TransferDataFromWindow()
|
||||
PCB_TRACK* t = static_cast<PCB_TRACK*>( item );
|
||||
|
||||
if( !m_trackStartX.IsIndeterminate() )
|
||||
t->SetStart( VECTOR2I( m_trackStartX.GetIntValue(), t->GetStart().y ) );
|
||||
t->SetStartX( m_trackStartX.GetIntValue() );
|
||||
|
||||
if( !m_trackStartY.IsIndeterminate() )
|
||||
t->SetStart( VECTOR2I( t->GetStart().x, m_trackStartY.GetIntValue() ) );
|
||||
t->SetStartY( m_trackStartY.GetIntValue() );
|
||||
|
||||
if( !m_trackEndX.IsIndeterminate() )
|
||||
t->SetEnd( VECTOR2I( m_trackEndX.GetIntValue(), t->GetEnd().y ) );
|
||||
t->SetEndX( m_trackEndX.GetIntValue() );
|
||||
|
||||
if( !m_trackEndY.IsIndeterminate() )
|
||||
t->SetEnd( VECTOR2I( t->GetEnd().x, m_trackEndY.GetIntValue() ) );
|
||||
t->SetEndY( m_trackEndY.GetIntValue() );
|
||||
|
||||
if( !m_trackWidth.IsIndeterminate() )
|
||||
t->SetWidth( m_trackWidth.GetIntValue() );
|
||||
|
@ -2050,12 +2050,12 @@ static struct TRACK_VIA_DESC
|
||||
propMgr.AddProperty( new PROPERTY<PCB_TRACK, int>( _HKI( "Width" ),
|
||||
&PCB_TRACK::SetWidth, &PCB_TRACK::GetWidth, PROPERTY_DISPLAY::PT_SIZE ) );
|
||||
propMgr.ReplaceProperty( TYPE_HASH( BOARD_ITEM ), _HKI( "Position X" ),
|
||||
new PROPERTY<PCB_TRACK, int, BOARD_ITEM>( _HKI( "Start X" ),
|
||||
&PCB_TRACK::SetX, &PCB_TRACK::GetX, PROPERTY_DISPLAY::PT_COORD,
|
||||
new PROPERTY<PCB_TRACK, int>( _HKI( "Start X" ),
|
||||
&PCB_TRACK::SetStartX, &PCB_TRACK::GetStartX, PROPERTY_DISPLAY::PT_COORD,
|
||||
ORIGIN_TRANSFORMS::ABS_X_COORD) );
|
||||
propMgr.ReplaceProperty( TYPE_HASH( BOARD_ITEM ), _HKI( "Position Y" ),
|
||||
new PROPERTY<PCB_TRACK, int, BOARD_ITEM>( _HKI( "Start Y" ),
|
||||
&PCB_TRACK::SetY, &PCB_TRACK::GetY, PROPERTY_DISPLAY::PT_COORD,
|
||||
new PROPERTY<PCB_TRACK, int>( _HKI( "Start Y" ),
|
||||
&PCB_TRACK::SetStartY, &PCB_TRACK::GetStartY, PROPERTY_DISPLAY::PT_COORD,
|
||||
ORIGIN_TRANSFORMS::ABS_Y_COORD ) );
|
||||
propMgr.AddProperty( new PROPERTY<PCB_TRACK, int>( _HKI( "End X" ),
|
||||
&PCB_TRACK::SetEndX, &PCB_TRACK::GetEndX, PROPERTY_DISPLAY::PT_COORD,
|
||||
|
@ -121,6 +121,12 @@ public:
|
||||
void SetStart( const VECTOR2I& aStart ) { m_Start = aStart; }
|
||||
const VECTOR2I& GetStart() const { return m_Start; }
|
||||
|
||||
void SetStartX( int aX ) { m_Start.x = aX; }
|
||||
void SetStartY( int aY ) { m_Start.y = aY; }
|
||||
|
||||
int GetStartX() const { return m_Start.x; }
|
||||
int GetStartY() const { return m_Start.y; }
|
||||
|
||||
void SetEndX( int aX ) { m_End.x = aX; }
|
||||
void SetEndY( int aY ) { m_End.y = aY; }
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user