Browse Source

Eeschema: fix broken component reference field in hierarchies. (fixes lp:1572812)

pull/12/head
Wayne Stambaugh 10 years ago
parent
commit
ce593f9784
  1. 21
      eeschema/dialogs/dialog_edit_one_field.cpp
  2. 6
      eeschema/dialogs/dialog_edit_one_field.h
  3. 2
      eeschema/edit_component_in_schematic.cpp

21
eeschema/dialogs/dialog_edit_one_field.cpp

@ -252,3 +252,24 @@ DIALOG_SCH_EDIT_ONE_FIELD::DIALOG_SCH_EDIT_ONE_FIELD( SCH_BASE_FRAME* aParent,
init();
}
void DIALOG_SCH_EDIT_ONE_FIELD::UpdateField( SCH_FIELD* aField, SCH_SHEET_PATH* aSheetPath )
{
wxASSERT( aField != NULL || aField->Type() != SCH_FIELD_T );
if( aField->GetId() == REFERENCE )
{
wxASSERT( aSheetPath != NULL );
SCH_COMPONENT* component = dynamic_cast< SCH_COMPONENT* >( aField->GetParent() );
wxASSERT( component != NULL );
if( component != NULL )
component->SetRef( aSheetPath, m_text );
}
aField->SetText( m_text );
updateText( aField );
}

6
eeschema/dialogs/dialog_edit_one_field.h

@ -153,11 +153,7 @@ public:
~DIALOG_SCH_EDIT_ONE_FIELD() {}
void UpdateField( SCH_FIELD* aField )
{
aField->SetText( m_text );
updateText( aField );
}
void UpdateField( SCH_FIELD* aField, SCH_SHEET_PATH* aSheetPath );
};
#endif // DIALOG_EDIT_ONE_FIELD_H_

2
eeschema/edit_component_in_schematic.cpp

@ -79,7 +79,7 @@ void SCH_EDIT_FRAME::EditComponentFieldText( SCH_FIELD* aField )
return;
}
dlg.UpdateField( aField );
dlg.UpdateField( aField, m_CurrentSheet );
m_canvas->MoveCursorToCrossHair();
m_canvas->SetIgnoreMouseEvents( false );
OnModify();

Loading…
Cancel
Save