user defined eeschema component fields should fill next available component field slot
This commit is contained in:
commit
cb35b5633a
|
@ -703,17 +703,20 @@ int ReadPartDescr( wxWindow* frame, char* Line, FILE* f, wxString& aMsgDiag,
|
||||||
|
|
||||||
if( fieldNdx >= component->GetFieldCount() )
|
if( fieldNdx >= component->GetFieldCount() )
|
||||||
{
|
{
|
||||||
// add as many fields as needed so the m_FieldId's are
|
// The first MANDATOR_FIELDS _must_ be constructed within
|
||||||
// contiguous, no gaps.
|
// the SCH_COMPONENT constructor. This assert is simply here
|
||||||
while( fieldNdx >= component->GetFieldCount() )
|
// to guard against a change in that constructor.
|
||||||
{
|
wxASSERT( component->GetFieldCount() >= MANDATORY_FIELDS );
|
||||||
int newNdx = component->GetFieldCount();
|
|
||||||
|
|
||||||
SCH_FIELD field( wxPoint( 0, 0 ), newNdx, component,
|
// Ignore the _supplied_ fieldNdx. It is not important anymore
|
||||||
fieldName );
|
// if within the user defined fields region (i.e. >= MANDATORY_FIELDS).
|
||||||
|
// We freely renumber the index to fit the next available field slot.
|
||||||
|
|
||||||
|
fieldNdx = component->GetFieldCount(); // new has this index after insertion
|
||||||
|
|
||||||
|
SCH_FIELD field( wxPoint( 0, 0 ), fieldNdx, component, fieldName );
|
||||||
component->AddField( field );
|
component->AddField( field );
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
component->GetField( fieldNdx )->m_Name = fieldName;
|
component->GetField( fieldNdx )->m_Name = fieldName;
|
||||||
|
|
|
@ -24,7 +24,9 @@ enum NumFieldType {
|
||||||
FOOTPRINT, ///< Field Name Module PCB, i.e. "16DIP300"
|
FOOTPRINT, ///< Field Name Module PCB, i.e. "16DIP300"
|
||||||
DATASHEET, ///< name of datasheet
|
DATASHEET, ///< name of datasheet
|
||||||
|
|
||||||
MANDATORY_FIELDS, ///< the first 4 are mandatory or fixed, and instantiated in FIELD constructors
|
/// The first 4 are mandatory, and must be instantiated in SCH_COMPONENT
|
||||||
|
/// and LIB_COMPONENT constructors
|
||||||
|
MANDATORY_FIELDS,
|
||||||
|
|
||||||
FIELD1 = MANDATORY_FIELDS,
|
FIELD1 = MANDATORY_FIELDS,
|
||||||
FIELD2,
|
FIELD2,
|
||||||
|
|
Loading…
Reference in New Issue