From 9201417c06e1b8cac5197e8e03a74d0233462642 Mon Sep 17 00:00:00 2001 From: Jeff Young Date: Thu, 19 Apr 2018 18:55:16 +0100 Subject: [PATCH] Handle new fields in global field editor. Fixes: lp:1765443 * https://bugs.launchpad.net/kicad/+bug/1765443 --- eeschema/dialogs/dialog_fields_editor_global.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/eeschema/dialogs/dialog_fields_editor_global.cpp b/eeschema/dialogs/dialog_fields_editor_global.cpp index 6ffb048e82..a985281a37 100644 --- a/eeschema/dialogs/dialog_fields_editor_global.cpp +++ b/eeschema/dialogs/dialog_fields_editor_global.cpp @@ -353,12 +353,15 @@ public: std::map& fieldStore = m_dataStore[ comp->GetTimeStamp() ]; - for( int j = 0; j < comp->GetFieldCount(); ++j ) + for( std::pair fieldData : fieldStore ) { - SCH_FIELD* field = comp->GetField( j ); - auto fieldStoreData = fieldStore.find( field->GetName() ); - if( fieldStoreData != fieldStore.end() ) - field->SetText( fieldStoreData->second ); + wxString fieldName = fieldData.first; + SCH_FIELD* field = comp->FindField( fieldName ); + + if( !field ) + field = comp->AddField( SCH_FIELD( wxPoint( 0, 0 ), -1, comp, fieldName ) ); + + field->SetText( fieldData.second ); } } }