From 66bacb3ea5391ad1357affcefa0ceb293c6d4e9a Mon Sep 17 00:00:00 2001 From: Jeff Young Date: Mon, 28 Apr 2025 10:49:23 +0100 Subject: [PATCH] Honour template fieldname vis flag when adding fields. Fixes https://gitlab.com/kicad/code/kicad/-/issues/20575 --- eeschema/dialogs/dialog_symbol_fields_table.cpp | 2 +- eeschema/fields_data_model.cpp | 9 +++++++-- eeschema/fields_data_model.h | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/eeschema/dialogs/dialog_symbol_fields_table.cpp b/eeschema/dialogs/dialog_symbol_fields_table.cpp index 9bb6b7e1f1..7235009fa6 100644 --- a/eeschema/dialogs/dialog_symbol_fields_table.cpp +++ b/eeschema/dialogs/dialog_symbol_fields_table.cpp @@ -644,7 +644,7 @@ bool DIALOG_SYMBOL_FIELDS_TABLE::TransferDataFromWindow() SCH_COMMIT commit( m_parent ); SCH_SHEET_PATH currentSheet = m_parent->GetCurrentSheet(); - m_dataModel->ApplyData( commit ); + m_dataModel->ApplyData( commit, m_schSettings.m_TemplateFieldNames ); commit.Push( wxS( "Symbol Fields Table Edit" ) ); diff --git a/eeschema/fields_data_model.cpp b/eeschema/fields_data_model.cpp index b241d14706..5ccb386259 100644 --- a/eeschema/fields_data_model.cpp +++ b/eeschema/fields_data_model.cpp @@ -798,7 +798,7 @@ void FIELDS_EDITOR_GRID_DATA_MODEL::ExpandAfterSort() } -void FIELDS_EDITOR_GRID_DATA_MODEL::ApplyData( SCH_COMMIT& aCommit ) +void FIELDS_EDITOR_GRID_DATA_MODEL::ApplyData( SCH_COMMIT& aCommit, TEMPLATES& aTemplateFieldnames ) { for( const SCH_REFERENCE& instance : m_symbolsList ) @@ -843,7 +843,12 @@ void FIELDS_EDITOR_GRID_DATA_MODEL::ApplyData( SCH_COMMIT& aCommit ) { destField = symbol.AddField( SCH_FIELD( &symbol, FIELD_T::USER, srcName ) ); destField->SetTextAngle( symbol.GetField( FIELD_T::REFERENCE )->GetTextAngle() ); - destField->SetVisible( false ); + + if( const TEMPLATE_FIELDNAME* srcTemplate = aTemplateFieldnames.GetFieldName( srcName ) ) + destField->SetVisible( srcTemplate->m_Visible ); + else + destField->SetVisible( false ); + destField->SetTextPos( symbol.GetPosition() ); } diff --git a/eeschema/fields_data_model.h b/eeschema/fields_data_model.h index 72f0239ca2..7e78aa746b 100644 --- a/eeschema/fields_data_model.h +++ b/eeschema/fields_data_model.h @@ -215,7 +215,7 @@ public: void CollapseForSort(); void ExpandAfterSort(); - void ApplyData( SCH_COMMIT& aCommit ); + void ApplyData( SCH_COMMIT& aCommit, TEMPLATES& aTemplateFieldnames ); bool IsEdited() { return m_edited; }