7
mirror of https://gitlab.com/kicad/code/kicad.git synced 2025-04-21 15:43:44 +00:00

Don't allow a "private" marking on a mandatory field.

This commit is contained in:
Jeff Young 2025-01-05 14:47:10 +00:00
parent 089bf75492
commit 189e0688be
3 changed files with 16 additions and 1 deletions

View File

@ -1772,6 +1772,19 @@ static struct SCH_FIELD_DESC
propMgr.OverrideWriteability( TYPE_HASH( SCH_FIELD ), TYPE_HASH( EDA_TEXT ), _HKI( "Text" ),
isNotNamedVariable );
auto isNonMandatoryField =
[]( INSPECTABLE* aItem ) -> bool
{
if( SCH_FIELD* field = dynamic_cast<SCH_FIELD*>( aItem ) )
return !field->IsMandatory();
return false;
};
propMgr.OverrideAvailability( TYPE_HASH( SCH_FIELD ), TYPE_HASH( SCH_ITEM ), _HKI( "Private" ),
isNonMandatoryField );
}
} _SCH_FIELD_DESC;

View File

@ -2227,6 +2227,7 @@ SCH_FIELD* SCH_IO_KICAD_SEXPR_PARSER::parseSchField( SCH_ITEM* aParent )
if( name == GetCanonicalFieldName( ii ) )
{
field->SetId( ii );
field->SetPrivate( false );
break;
}
}
@ -2238,6 +2239,7 @@ SCH_FIELD* SCH_IO_KICAD_SEXPR_PARSER::parseSchField( SCH_ITEM* aParent )
if( name == SCH_SHEET::GetDefaultFieldName( ii, false ) )
{
field->SetId( ii );
field->SetPrivate( false );
break;
}
// Legacy support for old field names

View File

@ -2565,7 +2565,7 @@ static struct PAD_DESC
};
auto hasNormalPadstack =
[=]( INSPECTABLE* aItem ) -> bool
[]( INSPECTABLE* aItem ) -> bool
{
if( PAD* pad = dynamic_cast<PAD*>( aItem ) )
return pad->Padstack().Mode() == PADSTACK::MODE::NORMAL;