Properties: Fix masking of layers for non-copper items

Fixes https://gitlab.com/kicad/code/kicad/-/issues/12884
This commit is contained in:
Jon Evans 2022-11-24 20:34:40 -05:00
parent 4285b38b74
commit 88495e5be1
3 changed files with 14 additions and 4 deletions

View File

@ -155,6 +155,14 @@ static struct BOARD_CONNECTED_ITEM_DESC
REGISTER_TYPE( BOARD_CONNECTED_ITEM );
propMgr.InheritsAfter( TYPE_HASH( BOARD_CONNECTED_ITEM ), TYPE_HASH( BOARD_ITEM ) );
// Replace layer property as the properties panel will set a restriction for copper layers
// only for BOARD_CONNECTED_ITEM that we don't want to apply to BOARD_ITEM
auto layer = new PROPERTY_ENUM<BOARD_CONNECTED_ITEM, PCB_LAYER_ID, BOARD_ITEM>(
_HKI( "Layer" ),
&BOARD_CONNECTED_ITEM::SetLayer, &BOARD_CONNECTED_ITEM::GetLayer );
layer->SetChoices( layerEnum.Choices() );
propMgr.ReplaceProperty( TYPE_HASH( BOARD_ITEM ), _HKI( "Layer" ), layer );
propMgr.AddProperty( new PROPERTY_ENUM<BOARD_CONNECTED_ITEM, int>( _HKI( "Net" ),
&BOARD_CONNECTED_ITEM::SetNetCode, &BOARD_CONNECTED_ITEM::GetNetCode ) );
propMgr.AddProperty( new PROPERTY<BOARD_CONNECTED_ITEM, wxString>( _HKI( "Net Name" ),

View File

@ -29,6 +29,7 @@
#include <board_connected_item.h>
#include <properties/pg_properties.h>
#include <pcb_shape.h>
#include <pcb_text.h>
#include <pcb_track.h>
#include <settings/color_settings.h>
@ -142,6 +143,7 @@ void PCB_PROPERTIES_PANEL::updateLists( const BOARD* aBoard )
nets.Add( netinfo.second->GetNetname(), netinfo.first );
}
auto netProperty = m_propMgr.GetProperty( TYPE_HASH( BOARD_CONNECTED_ITEM ), _HKI( "Net" ) );
auto netProperty = m_propMgr.GetProperty( TYPE_HASH( BOARD_CONNECTED_ITEM ),
_HKI( "Net" ) );
netProperty->SetChoices( nets );
}

View File

@ -331,9 +331,9 @@ void PCB_TEXT::TransformShapeToPolygon( SHAPE_POLY_SET& aBuffer, PCB_LAYER_ID aL
}
static struct TEXTE_PCB_DESC
static struct PCB_TEXT_DESC
{
TEXTE_PCB_DESC()
PCB_TEXT_DESC()
{
PROPERTY_MANAGER& propMgr = PROPERTY_MANAGER::Instance();
REGISTER_TYPE( PCB_TEXT );
@ -342,4 +342,4 @@ static struct TEXTE_PCB_DESC
propMgr.InheritsAfter( TYPE_HASH( PCB_TEXT ), TYPE_HASH( BOARD_ITEM ) );
propMgr.InheritsAfter( TYPE_HASH( PCB_TEXT ), TYPE_HASH( EDA_TEXT ) );
}
} _TEXTE_PCB_DESC;
} _PCB_TEXT_DESC;