mirror of
https://gitlab.com/kicad/code/kicad.git
synced 2025-09-14 18:23:15 +02:00
Fix yet more assumptions about field IDs and order.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19710
This commit is contained in:
parent
d562336760
commit
8fe8637297
@ -689,7 +689,7 @@ void DIALOG_FIELD_PROPERTIES::UpdateField( SCH_COMMIT* aCommit, SCH_FIELD* aFiel
|
|||||||
else if( fieldType == FOOTPRINT_FIELD )
|
else if( fieldType == FOOTPRINT_FIELD )
|
||||||
otherUnit->SetFootprintFieldText( m_text );
|
otherUnit->SetFootprintFieldText( m_text );
|
||||||
else
|
else
|
||||||
otherUnit->GetField( DATASHEET_FIELD )->SetText( m_text );
|
otherUnit->GetField( (MANDATORY_FIELD_T) fieldType )->SetText( m_text );
|
||||||
|
|
||||||
editFrame->UpdateItem( otherUnit, false, true );
|
editFrame->UpdateItem( otherUnit, false, true );
|
||||||
}
|
}
|
||||||
|
@ -556,17 +556,17 @@ wxGridCellAttr* FIELDS_GRID_TABLE::GetAttr( int aRow, int aCol, wxGridCellAttr::
|
|||||||
}
|
}
|
||||||
|
|
||||||
case FDC_VALUE:
|
case FDC_VALUE:
|
||||||
if( m_parentType == SCH_SYMBOL_T && aRow == REFERENCE_FIELD )
|
if( m_parentType == SCH_SYMBOL_T && field.GetId() == REFERENCE_FIELD )
|
||||||
{
|
{
|
||||||
m_referenceAttr->IncRef();
|
m_referenceAttr->IncRef();
|
||||||
return enhanceAttr( m_referenceAttr, aRow, aCol, aKind );
|
return enhanceAttr( m_referenceAttr, aRow, aCol, aKind );
|
||||||
}
|
}
|
||||||
else if( m_parentType == SCH_SYMBOL_T && aRow == VALUE_FIELD )
|
else if( m_parentType == SCH_SYMBOL_T && field.GetId() == VALUE_FIELD )
|
||||||
{
|
{
|
||||||
m_valueAttr->IncRef();
|
m_valueAttr->IncRef();
|
||||||
return enhanceAttr( m_valueAttr, aRow, aCol, aKind );
|
return enhanceAttr( m_valueAttr, aRow, aCol, aKind );
|
||||||
}
|
}
|
||||||
else if( m_parentType == SCH_SYMBOL_T && aRow == FOOTPRINT_FIELD )
|
else if( m_parentType == SCH_SYMBOL_T && field.GetId() == FOOTPRINT_FIELD )
|
||||||
{
|
{
|
||||||
// Power symbols have do not appear in the board, so don't allow
|
// Power symbols have do not appear in the board, so don't allow
|
||||||
// a footprint (m_part can be nullptr when loading a old schematic
|
// a footprint (m_part can be nullptr when loading a old schematic
|
||||||
@ -582,23 +582,23 @@ wxGridCellAttr* FIELDS_GRID_TABLE::GetAttr( int aRow, int aCol, wxGridCellAttr::
|
|||||||
return enhanceAttr( m_footprintAttr, aRow, aCol, aKind );
|
return enhanceAttr( m_footprintAttr, aRow, aCol, aKind );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if( m_parentType == SCH_SYMBOL_T && aRow == DATASHEET_FIELD )
|
else if( m_parentType == SCH_SYMBOL_T && field.GetId() == DATASHEET_FIELD )
|
||||||
{
|
{
|
||||||
m_urlAttr->IncRef();
|
m_urlAttr->IncRef();
|
||||||
return enhanceAttr( m_urlAttr, aRow, aCol, aKind );
|
return enhanceAttr( m_urlAttr, aRow, aCol, aKind );
|
||||||
}
|
}
|
||||||
else if( m_parentType == SCH_SHEET_T && aRow == SHEETNAME )
|
else if( m_parentType == SCH_SHEET_T && field.GetId() == SHEETNAME )
|
||||||
{
|
{
|
||||||
m_referenceAttr->IncRef();
|
m_referenceAttr->IncRef();
|
||||||
return enhanceAttr( m_referenceAttr, aRow, aCol, aKind );
|
return enhanceAttr( m_referenceAttr, aRow, aCol, aKind );
|
||||||
}
|
}
|
||||||
else if( m_parentType == SCH_SHEET_T && aRow == SHEETFILENAME )
|
else if( m_parentType == SCH_SHEET_T && field.GetId() == SHEETFILENAME )
|
||||||
{
|
{
|
||||||
m_filepathAttr->IncRef();
|
m_filepathAttr->IncRef();
|
||||||
return enhanceAttr( m_filepathAttr, aRow, aCol, aKind );
|
return enhanceAttr( m_filepathAttr, aRow, aCol, aKind );
|
||||||
}
|
}
|
||||||
else if( ( m_parentType == SCH_LABEL_LOCATE_ANY_T )
|
else if( ( m_parentType == SCH_LABEL_LOCATE_ANY_T )
|
||||||
&& this->at( (size_t) aRow ).GetCanonicalName() == wxT( "Netclass" ) )
|
&& field.GetCanonicalName() == wxT( "Netclass" ) )
|
||||||
{
|
{
|
||||||
m_netclassAttr->IncRef();
|
m_netclassAttr->IncRef();
|
||||||
return enhanceAttr( m_netclassAttr, aRow, aCol, aKind );
|
return enhanceAttr( m_netclassAttr, aRow, aCol, aKind );
|
||||||
@ -696,7 +696,7 @@ wxString FIELDS_GRID_TABLE::GetValue( int aRow, int aCol )
|
|||||||
else if( m_parentType == SCH_SHEET_T )
|
else if( m_parentType == SCH_SHEET_T )
|
||||||
{
|
{
|
||||||
if( field.IsMandatory() )
|
if( field.IsMandatory() )
|
||||||
return SCH_SHEET::GetDefaultFieldName( aRow, DO_TRANSLATE );
|
return SCH_SHEET::GetDefaultFieldName( field.GetId(), DO_TRANSLATE );
|
||||||
else
|
else
|
||||||
return field.GetName( false );
|
return field.GetName( false );
|
||||||
}
|
}
|
||||||
@ -841,11 +841,11 @@ void FIELDS_GRID_TABLE::SetValue( int aRow, int aCol, const wxString &aValue )
|
|||||||
|
|
||||||
case FDC_VALUE:
|
case FDC_VALUE:
|
||||||
{
|
{
|
||||||
if( m_parentType == SCH_SHEET_T && aRow == SHEETFILENAME )
|
if( m_parentType == SCH_SHEET_T && field.GetId() == SHEETFILENAME )
|
||||||
{
|
{
|
||||||
value = EnsureFileExtension( value, FILEEXT::KiCadSchematicFileExtension );
|
value = EnsureFileExtension( value, FILEEXT::KiCadSchematicFileExtension );
|
||||||
}
|
}
|
||||||
else if( m_parentType == LIB_SYMBOL_T && aRow == VALUE_FIELD )
|
else if( m_parentType == LIB_SYMBOL_T && field.GetId() == VALUE_FIELD )
|
||||||
{
|
{
|
||||||
value = EscapeString( value, CTX_LIBID );
|
value = EscapeString( value, CTX_LIBID );
|
||||||
}
|
}
|
||||||
@ -949,8 +949,7 @@ void FIELDS_GRID_TABLE::SetValue( int aRow, int aCol, const wxString &aValue )
|
|||||||
if( value == DEFAULT_FONT_NAME )
|
if( value == DEFAULT_FONT_NAME )
|
||||||
field.SetFont( nullptr );
|
field.SetFont( nullptr );
|
||||||
else if( value == KICAD_FONT_NAME )
|
else if( value == KICAD_FONT_NAME )
|
||||||
field.SetFont( KIFONT::FONT::GetFont( wxEmptyString, field.IsBold(),
|
field.SetFont( KIFONT::FONT::GetFont( wxEmptyString, field.IsBold(), field.IsItalic() ) );
|
||||||
field.IsItalic() ) );
|
|
||||||
else
|
else
|
||||||
field.SetFont( KIFONT::FONT::GetFont( aValue, field.IsBold(), field.IsItalic() ) );
|
field.SetFont( KIFONT::FONT::GetFont( aValue, field.IsBold(), field.IsItalic() ) );
|
||||||
|
|
||||||
|
@ -230,10 +230,12 @@ bool PCB_FIELDS_GRID_TABLE::CanSetValueAs( int aRow, int aCol, const wxString& a
|
|||||||
wxGridCellAttr* PCB_FIELDS_GRID_TABLE::GetAttr( int aRow, int aCol,
|
wxGridCellAttr* PCB_FIELDS_GRID_TABLE::GetAttr( int aRow, int aCol,
|
||||||
wxGridCellAttr::wxAttrKind aKind )
|
wxGridCellAttr::wxAttrKind aKind )
|
||||||
{
|
{
|
||||||
|
const PCB_FIELD& field = this->at( (size_t) aRow );
|
||||||
|
|
||||||
switch( aCol )
|
switch( aCol )
|
||||||
{
|
{
|
||||||
case PFC_NAME:
|
case PFC_NAME:
|
||||||
if( aRow < GetMandatoryRowCount() )
|
if( field.IsMandatory() )
|
||||||
{
|
{
|
||||||
m_readOnlyAttr->IncRef();
|
m_readOnlyAttr->IncRef();
|
||||||
return enhanceAttr( m_readOnlyAttr, aRow, aCol, aKind );
|
return enhanceAttr( m_readOnlyAttr, aRow, aCol, aKind );
|
||||||
@ -242,17 +244,17 @@ wxGridCellAttr* PCB_FIELDS_GRID_TABLE::GetAttr( int aRow, int aCol,
|
|||||||
return enhanceAttr( nullptr, aRow, aCol, aKind );
|
return enhanceAttr( nullptr, aRow, aCol, aKind );
|
||||||
|
|
||||||
case PFC_VALUE:
|
case PFC_VALUE:
|
||||||
if( aRow == REFERENCE_FIELD )
|
if( field.GetId() == REFERENCE_FIELD )
|
||||||
{
|
{
|
||||||
m_referenceAttr->IncRef();
|
m_referenceAttr->IncRef();
|
||||||
return enhanceAttr( m_referenceAttr, aRow, aCol, aKind );
|
return enhanceAttr( m_referenceAttr, aRow, aCol, aKind );
|
||||||
}
|
}
|
||||||
else if( aRow == VALUE_FIELD )
|
else if( field.GetId() == VALUE_FIELD )
|
||||||
{
|
{
|
||||||
m_valueAttr->IncRef();
|
m_valueAttr->IncRef();
|
||||||
return enhanceAttr( m_valueAttr, aRow, aCol, aKind );
|
return enhanceAttr( m_valueAttr, aRow, aCol, aKind );
|
||||||
}
|
}
|
||||||
else if( aRow == DATASHEET_FIELD )
|
else if( field.GetId() == DATASHEET_FIELD )
|
||||||
{
|
{
|
||||||
m_urlAttr->IncRef();
|
m_urlAttr->IncRef();
|
||||||
return enhanceAttr( m_urlAttr, aRow, aCol, aKind );
|
return enhanceAttr( m_urlAttr, aRow, aCol, aKind );
|
||||||
|
Loading…
x
Reference in New Issue
Block a user