Commit cb35b563 authored by Dick Hollenbeck's avatar Dick Hollenbeck

user defined eeschema component fields should fill next available component field slot

parents e2d4b16b 43d7b723
...@@ -703,16 +703,19 @@ int ReadPartDescr( wxWindow* frame, char* Line, FILE* f, wxString& aMsgDiag, ...@@ -703,16 +703,19 @@ 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).
component->AddField( field ); // 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 );
} }
else else
{ {
......
...@@ -24,7 +24,9 @@ enum NumFieldType { ...@@ -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,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment