diff --git a/common/database/database_lib_settings.cpp b/common/database/database_lib_settings.cpp index c62ce31008..3b8ebc2cd2 100644 --- a/common/database/database_lib_settings.cpp +++ b/common/database/database_lib_settings.cpp @@ -81,13 +81,26 @@ DATABASE_LIB_SETTINGS::DATABASE_LIB_SETTINGS( const std::string& aFilename ) : if( fieldJson.empty() || !fieldJson.is_object() ) continue; + std::string column = fieldJson.contains( "column" ) + ? fieldJson["column"].get() : ""; + + std::string name = fieldJson.contains( "name" ) + ? fieldJson["name"].get() : ""; + + bool visible_on_add = !fieldJson.contains( "visible_on_add" ) + || fieldJson["visible_on_add"].get(); + + bool visible_in_chooser = + !fieldJson.contains( "visible_in_chooser" ) + || fieldJson["visible_in_chooser"].get(); + + bool show_name = fieldJson.contains( "show_name" ) + && fieldJson["show_name"].get(); + table.fields.emplace_back( DATABASE_FIELD_MAPPING( { - fieldJson["column"].get(), - fieldJson["name"].get(), - fieldJson["visible_on_add"].get(), - fieldJson["visible_in_chooser"].get() + column, name, visible_on_add, visible_in_chooser, show_name } ) ); } } diff --git a/eeschema/sch_plugins/database/sch_database_plugin.cpp b/eeschema/sch_plugins/database/sch_database_plugin.cpp index fdede46178..339658e05f 100644 --- a/eeschema/sch_plugins/database/sch_database_plugin.cpp +++ b/eeschema/sch_plugins/database/sch_database_plugin.cpp @@ -328,6 +328,7 @@ LIB_SYMBOL* SCH_DATABASE_PLUGIN::loadSymbolFromRow( const wxString& aSymbolName, LIB_FIELD& field = symbol->GetValueField(); field.SetText( value ); field.SetVisible( mapping.visible_on_add ); + field.SetNameShown( mapping.show_name ); continue; } else if( mapping.name == wxT( "Datasheet" ) ) @@ -335,6 +336,7 @@ LIB_SYMBOL* SCH_DATABASE_PLUGIN::loadSymbolFromRow( const wxString& aSymbolName, LIB_FIELD& field = symbol->GetDatasheetField(); field.SetText( value ); field.SetVisible( mapping.visible_on_add ); + field.SetNameShown( mapping.show_name ); if( mapping.visible_on_add ) field.SetAutoAdded( true ); @@ -347,6 +349,7 @@ LIB_SYMBOL* SCH_DATABASE_PLUGIN::loadSymbolFromRow( const wxString& aSymbolName, field->SetText( value ); field->SetVisible( mapping.visible_on_add ); field->SetAutoAdded( true ); + field->SetNameShown( mapping.show_name ); symbol->AddField( field ); } diff --git a/include/database/database_lib_settings.h b/include/database/database_lib_settings.h index 579a34a359..b08641f6df 100644 --- a/include/database/database_lib_settings.h +++ b/include/database/database_lib_settings.h @@ -48,6 +48,7 @@ struct DATABASE_FIELD_MAPPING std::string name; ///< KiCad field name bool visible_on_add; ///< Whether to show the field when placing the symbol bool visible_in_chooser; ///< Whether the column is shown by default in the chooser + bool show_name; ///< Whether or not to show the field name as well as its value }; diff --git a/qa/data/dblib/qa_dblib.kicad_dbl b/qa/data/dblib/qa_dblib.kicad_dbl index d77d3bcb57..5516d0ab89 100644 --- a/qa/data/dblib/qa_dblib.kicad_dbl +++ b/qa/data/dblib/qa_dblib.kicad_dbl @@ -25,13 +25,16 @@ "column": "Manufacturer", "name": "Manufacturer", "visible_on_add": false, - "visible_in_chooser": false + "visible_in_chooser": false, + "show_name": true }, { "column": "MPN", "name": "MPN", "visible_on_add": false, "visible_in_chooser": true + , + "show_name": true }, { "column": "Value", @@ -55,7 +58,8 @@ "column": "Power Rating", "name": "Power Rating", "visible_on_add": true, - "visible_in_chooser": false + "visible_in_chooser": false, + "show_name": true }, { "column": "Description",