diff --git a/eeschema/dialog_edit_component_in_schematic.cpp b/eeschema/dialog_edit_component_in_schematic.cpp index 589737b249..12eb699d17 100644 --- a/eeschema/dialog_edit_component_in_schematic.cpp +++ b/eeschema/dialog_edit_component_in_schematic.cpp @@ -1,6 +1,7 @@ #include #include +#include #include "fctsys.h" #include "gr_basic.h" @@ -155,7 +156,7 @@ void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::copyPanelToOptions() } } - // For components with multiple shames (De Morgan representation) Set the selected shape: + // For components with multiple shapes (De Morgan representation) Set the selected shape: if( convertCheckBox->IsEnabled() ) { m_Cmp->m_Convert = convertCheckBox->GetValue() ? 2 : 1; @@ -488,6 +489,9 @@ void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::copySelectedFieldToPanel() // if fieldNdx == REFERENCE, VALUE, FOOTPRINT, or DATASHEET, then disable editing fieldNameTextCtrl->Enable( fieldNdx >= FIELD1 ); fieldNameTextCtrl->SetEditable( fieldNdx >= FIELD1 ); + moveUpButton->Enable( fieldNdx >= FIELD1 ); // disable move up button for non moveable fields + // if fieldNdx == REFERENCE, VALUE, then disable delete button + deleteFieldButton->Enable( fieldNdx > VALUE ); fieldValueTextCtrl->SetValue( field.m_Text ); @@ -549,7 +553,12 @@ bool DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::copyPanelToSelectedField() field.m_Name = fieldNameTextCtrl->GetValue(); - field.m_Text = fieldValueTextCtrl->GetValue(); + /* Void fields texts for REFERENCE and VALUE (value is the name of the compinent in lib ! ) are not allowed + * change them only for a new non void value + * When woid, usually netlists are broken + */ + if( !fieldValueTextCtrl->GetValue().IsEmpty() || fieldNdx > VALUE ) + field.m_Text = fieldValueTextCtrl->GetValue(); setRowItem( fieldNdx, field ); // update fieldListCtrl diff --git a/eeschema/dialog_edit_libentry_fields_in_lib.cpp b/eeschema/dialog_edit_libentry_fields_in_lib.cpp index 122d856b84..1fd9d01bbd 100644 --- a/eeschema/dialog_edit_libentry_fields_in_lib.cpp +++ b/eeschema/dialog_edit_libentry_fields_in_lib.cpp @@ -530,7 +530,7 @@ void DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::copySelectedFieldToPanel() // if fieldNdx == REFERENCE, VALUE, FOOTPRINT, or DATASHEET, then disable filed name editing fieldNameTextCtrl->Enable( fieldNdx >= FIELD1 ); fieldNameTextCtrl->SetEditable( fieldNdx >= FIELD1 ); - moveUpButton->Enable( fieldNdx >= FIELD1 ); // disable move up button for non moveable fields + moveUpButton->Enable( fieldNdx >= FIELD1 ); // disable move up button for non moveable fields // if fieldNdx == REFERENCE, VALUE, then disable delete button deleteFieldButton->Enable( fieldNdx > VALUE ); @@ -614,14 +614,13 @@ bool DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::copyPanelToSelectedField() rotateCheckBox->SetValue( field.m_Orient == TEXT_ORIENT_VERT ); - /* Void fields for REFERENCE and VALUE are not allowed - * change therm only for a new non void value + /* Void fields texts for REFERENCE and VALUE (value is the name of the compinent in lib ! ) are not allowed + * change them only for a new non void value */ - if( !fieldValueTextCtrl->GetValue().IsEmpty() ) + if( !fieldValueTextCtrl->GetValue().IsEmpty() || fieldNdx > VALUE ) field.m_Text = fieldValueTextCtrl->GetValue(); - if( !fieldNameTextCtrl->GetValue().IsEmpty() ) - field.m_Name = fieldNameTextCtrl->GetValue(); + field.m_Name = fieldNameTextCtrl->GetValue(); setRowItem( fieldNdx, field ); // update fieldListCtrl