diff --git a/pcbnew/pcb_shape.cpp b/pcbnew/pcb_shape.cpp index c3a1956ed3..5d4a2ccc11 100644 --- a/pcbnew/pcb_shape.cpp +++ b/pcbnew/pcb_shape.cpp @@ -395,6 +395,17 @@ static struct PCB_SHAPE_DESC propMgr.InheritsAfter( TYPE_HASH( PCB_SHAPE ), TYPE_HASH( BOARD_ITEM ) ); propMgr.InheritsAfter( TYPE_HASH( PCB_SHAPE ), TYPE_HASH( EDA_SHAPE ) ); + // Need to initialise enum_map before we can use a Property enum for it + ENUM_MAP& layerEnum = ENUM_MAP::Instance(); + + if( layerEnum.Choices().GetCount() == 0 ) + { + layerEnum.Undefined( UNDEFINED_LAYER ); + + for( LSEQ seq = LSET::AllLayersMask().Seq(); seq; ++seq ) + layerEnum.Map( *seq, LSET::Name( *seq ) ); + } + auto layerProperty = new PROPERTY_ENUM( _HKI( "Layer" ), &PCB_SHAPE::SetLayer, &PCB_SHAPE::GetLayer );