Browse Source

Set VIATYPE setting via property type as well

pull/18/head
Mark Roszko 3 months ago
parent
commit
907c424f5f
  1. 14
      pcbnew/pcb_track.cpp
  2. 7
      pcbnew/pcb_track.h

14
pcbnew/pcb_track.cpp

@ -1348,27 +1348,19 @@ void PCB_VIA::SetTopLayer( PCB_LAYER_ID aLayer )
if( aLayer == Padstack().Drill().end )
return;
if( IsCopperLayerLowerThan( aLayer, Padstack().Drill().end ) )
{
std::swap( aLayer, Padstack().Drill().end );
}
Padstack().Drill().start = aLayer;
SanitizeLayers();
}
void PCB_VIA::SetBottomLayer( PCB_LAYER_ID aLayer )
{
// refuse invalid via
if( aLayer == Padstack().Drill().start || !IsCopperLayerLowerThan( aLayer, Padstack().Drill().start ) )
if( aLayer == Padstack().Drill().start )
return;
if( !IsCopperLayerLowerThan( aLayer, Padstack().Drill().start ) )
{
std::swap( aLayer, Padstack().Drill().start );
}
Padstack().Drill().end = aLayer;
SanitizeLayers();
}

7
pcbnew/pcb_track.h

@ -448,7 +448,12 @@ public:
bool HasValidLayerPair( int aCopperLayerCount );
VIATYPE GetViaType() const { return m_viaType; }
void SetViaType( VIATYPE aViaType ) { m_viaType = aViaType; }
void SetViaType( VIATYPE aViaType )
{
m_viaType = aViaType;
// If someone updates a VIA to TH, we want to kick out any non-outer layers
SanitizeLayers();
}
const PADSTACK& Padstack() const { return m_padStack; }
PADSTACK& Padstack() { return m_padStack; }

Loading…
Cancel
Save