Enable user layers in footprint editor.
Fixes: lp:1746279 * https://bugs.launchpad.net/kicad/+bug/1746279
This commit is contained in:
parent
c88b43e356
commit
a860a8db54
|
@ -783,6 +783,13 @@ LSET LSET::BackMask()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
LSET LSET::ForbiddenFootprintLayers()
|
||||||
|
{
|
||||||
|
static const LSET saved = InternalCuMask().set( Edge_Cuts ).set( Margin );
|
||||||
|
return saved;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
LSET LSET::ForbiddenTextLayers()
|
LSET LSET::ForbiddenTextLayers()
|
||||||
{
|
{
|
||||||
static const LSET saved( 2, Edge_Cuts, Margin );
|
static const LSET saved( 2, Edge_Cuts, Margin );
|
||||||
|
|
|
@ -523,6 +523,18 @@ public:
|
||||||
|
|
||||||
static LSET UserMask();
|
static LSET UserMask();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function ForbiddenFootprintLayers
|
||||||
|
* Layers which are not allowed within footprint definitions. Currently internal
|
||||||
|
* copper layers, Edge.Cuts and Margin.
|
||||||
|
*/
|
||||||
|
|
||||||
|
static LSET ForbiddenFootprintLayers();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function ForbiddenTextLayers
|
||||||
|
* Layers which are now allowed to have text on them. Currently Edge.Cuts and Margin.
|
||||||
|
*/
|
||||||
static LSET ForbiddenTextLayers();
|
static LSET ForbiddenTextLayers();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -156,9 +156,7 @@ bool PCB_LAYER_WIDGET::isAllowedInFpMode( int aId )
|
||||||
bool PCB_LAYER_WIDGET::isLayerAllowedInFpMode( PCB_LAYER_ID aLayer )
|
bool PCB_LAYER_WIDGET::isLayerAllowedInFpMode( PCB_LAYER_ID aLayer )
|
||||||
{
|
{
|
||||||
static LSET allowed = LSET::AllTechMask();
|
static LSET allowed = LSET::AllTechMask();
|
||||||
// Currently not in use because putting a graphic item on a copper layer
|
allowed.set( F_Cu ).set( B_Cu );
|
||||||
// is not currently supported by DRC.
|
|
||||||
// allowed.set( F_Cu ).set( B_Cu );
|
|
||||||
return allowed.test( aLayer );
|
return allowed.test( aLayer );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -519,11 +517,10 @@ void PCB_LAYER_WIDGET::ReFill()
|
||||||
brd->GetLayerName( layer ), layer, myframe->Settings().Colors().GetLayerColor( layer ),
|
brd->GetLayerName( layer ), layer, myframe->Settings().Colors().GetLayerColor( layer ),
|
||||||
dsc, true ) );
|
dsc, true ) );
|
||||||
|
|
||||||
if( m_fp_editor_mode && !isLayerAllowedInFpMode( layer ) )
|
if( m_fp_editor_mode && LSET::ForbiddenFootprintLayers().test( layer ) )
|
||||||
{
|
{
|
||||||
getLayerComp( GetLayerRowCount()-1, COLUMN_COLOR_LYRNAME )->Enable( false );
|
getLayerComp( GetLayerRowCount()-1, COLUMN_COLOR_LYRNAME )->Enable( false );
|
||||||
getLayerComp( GetLayerRowCount()-1,
|
getLayerComp( GetLayerRowCount()-1, COLUMN_COLORBM )->SetToolTip( wxEmptyString );
|
||||||
COLUMN_COLORBM )->SetToolTip( wxEmptyString );
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -568,11 +565,10 @@ void PCB_LAYER_WIDGET::ReFill()
|
||||||
brd->GetLayerName( layer ), layer, myframe->Settings().Colors().GetLayerColor( layer ),
|
brd->GetLayerName( layer ), layer, myframe->Settings().Colors().GetLayerColor( layer ),
|
||||||
wxGetTranslation( non_cu_seq[i].tooltip ), true ) );
|
wxGetTranslation( non_cu_seq[i].tooltip ), true ) );
|
||||||
|
|
||||||
if( m_fp_editor_mode && !isLayerAllowedInFpMode( layer ) )
|
if( m_fp_editor_mode && LSET::ForbiddenFootprintLayers().test( layer ) )
|
||||||
{
|
{
|
||||||
getLayerComp( GetLayerRowCount()-1, COLUMN_COLOR_LYRNAME )->Enable( false );
|
getLayerComp( GetLayerRowCount()-1, COLUMN_COLOR_LYRNAME )->Enable( false );
|
||||||
getLayerComp( GetLayerRowCount()-1,
|
getLayerComp( GetLayerRowCount()-1, COLUMN_COLORBM )->SetToolTip( wxEmptyString );
|
||||||
COLUMN_COLORBM )->SetToolTip( wxEmptyString );
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -616,7 +612,7 @@ bool PCB_LAYER_WIDGET::OnLayerSelect( int aLayer )
|
||||||
// false from this function.
|
// false from this function.
|
||||||
PCB_LAYER_ID layer = ToLAYER_ID( aLayer );
|
PCB_LAYER_ID layer = ToLAYER_ID( aLayer );
|
||||||
|
|
||||||
if( m_fp_editor_mode && !isLayerAllowedInFpMode( layer ) )
|
if( m_fp_editor_mode && LSET::ForbiddenFootprintLayers().test( layer ) )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
myframe->SetActiveLayer( layer );
|
myframe->SetActiveLayer( layer );
|
||||||
|
|
Loading…
Reference in New Issue