Improve disabled layer test.

1) handle graphic items on copper layers
2) handle items on multiple layers
This commit is contained in:
Jeff Young 2021-09-09 15:17:19 +01:00
parent 567767346c
commit bb2efa0649
1 changed files with 4 additions and 8 deletions

View File

@ -132,14 +132,11 @@ void DRC_TEST_PROVIDER_MISC::testDisabledLayers()
auto checkDisabledLayers =
[&]( BOARD_ITEM* item ) -> bool
{
LSET refLayers ( item->GetLayer() );
if( ( disabledLayers & refLayers ).any() )
if( ( disabledLayers & item->GetLayerSet() ).any() )
{
std::shared_ptr<DRC_ITEM>drcItem = DRC_ITEM::Create( DRCE_DISABLED_LAYER_ITEM );
m_msg.Printf( _( "(layer %s)" ),
item->GetLayerName() );
m_msg.Printf( _( "(layer %s)" ), item->GetLayerName() );
drcItem->SetErrorMessage( drcItem->GetErrorText() + wxS( " " ) + m_msg );
drcItem->SetItems( item );
@ -149,11 +146,10 @@ void DRC_TEST_PROVIDER_MISC::testDisabledLayers()
return true;
};
// fixme: what about graphical items?
forEachGeometryItem( { PCB_TRACE_T, PCB_ARC_T, PCB_VIA_T, PCB_ZONE_T, PCB_PAD_T },
LSET::AllLayersMask(), checkDisabledLayers );
forEachGeometryItem( s_allBasicItems, LSET::AllLayersMask(), checkDisabledLayers );
}
void DRC_TEST_PROVIDER_MISC::testTextVars()
{
auto checkUnresolvedTextVar =