KiCad PCB EDA Suite
Loading...
Searching...
No Matches
template_fieldnames.cpp File Reference
#include "template_fieldnames.h"
#include <mutex>
#include <template_fieldnames_lexer.h>
#include <string_utils.h>

Go to the source code of this file.

Macros

#define REFERENCE_UNTRANSLATED   "Reference"
 
#define VALUE_UNTRANSLATED   "Value"
 
#define FOOTPRINT_UNTRANSLATED   "Footprint"
 
#define DATASHEET_UNTRANSLATED   "Datasheet"
 
#define DESCRIPTION_UNTRANSLATED   "Description"
 
#define SHEET_NAME_UNTRANSLATED   "Sheetname"
 
#define SHEET_FILE_UNTRANSLATED   "Sheetfile"
 
#define INTERSHEET_REFS_UNTRANSLATED   "Intersheetrefs"
 
#define USER_FIELD_UNTRANSLATED_FORMAT   "Field%d"
 

Functions

static wxString s_UntranslatedReference (REFERENCE_UNTRANSLATED)
 
static wxString s_UntranslatedValue (VALUE_UNTRANSLATED)
 
static wxString s_UntranslatedFootprint (FOOTPRINT_UNTRANSLATED)
 
static wxString s_UntranslatedDatasheet (DATASHEET_UNTRANSLATED)
 
static wxString s_UntranslatedDescription (DESCRIPTION_UNTRANSLATED)
 
static wxString s_UntranslatedSheetName (SHEET_NAME_UNTRANSLATED)
 
static wxString s_UntranslatedSheetFile (SHEET_FILE_UNTRANSLATED)
 
static wxString s_UntranslatedIntersheetRefs (INTERSHEET_REFS_UNTRANSLATED)
 
wxString GetDefaultFieldName (FIELD_T aFieldId, TRANSLATION aTranslation)
 Return a default symbol field name for a mandatory field type.
 
wxString GetUserFieldName (int aFieldNdx, TRANSLATION aTranslation)
 
bool FieldNamesAreDuplicates (const wxString &aLhs, const wxString &aRhs, std::initializer_list< FIELD_T > aMandatoryFields)
 Test whether two field names should be treated as duplicates for the purposes of field name uniqueness within a given parent (symbol, sheet, or global label).
 
bool FieldNamesAreDuplicates (const wxString &aLhs, const wxString &aRhs)
 Convenience overload defaulting to symbol mandatory fields.
 

Macro Definition Documentation

◆ DATASHEET_UNTRANSLATED

#define DATASHEET_UNTRANSLATED   "Datasheet"

Definition at line 34 of file template_fieldnames.cpp.

Referenced by GetDefaultFieldName(), and s_UntranslatedDatasheet().

◆ DESCRIPTION_UNTRANSLATED

#define DESCRIPTION_UNTRANSLATED   "Description"

Definition at line 35 of file template_fieldnames.cpp.

Referenced by GetDefaultFieldName(), and s_UntranslatedDescription().

◆ FOOTPRINT_UNTRANSLATED

#define FOOTPRINT_UNTRANSLATED   "Footprint"

Definition at line 33 of file template_fieldnames.cpp.

Referenced by GetDefaultFieldName(), and s_UntranslatedFootprint().

◆ INTERSHEET_REFS_UNTRANSLATED

#define INTERSHEET_REFS_UNTRANSLATED   "Intersheetrefs"

Definition at line 38 of file template_fieldnames.cpp.

Referenced by GetDefaultFieldName(), and s_UntranslatedIntersheetRefs().

◆ REFERENCE_UNTRANSLATED

#define REFERENCE_UNTRANSLATED   "Reference"

Definition at line 31 of file template_fieldnames.cpp.

Referenced by GetDefaultFieldName(), and s_UntranslatedReference().

◆ SHEET_FILE_UNTRANSLATED

#define SHEET_FILE_UNTRANSLATED   "Sheetfile"

Definition at line 37 of file template_fieldnames.cpp.

Referenced by GetDefaultFieldName(), and s_UntranslatedSheetFile().

◆ SHEET_NAME_UNTRANSLATED

#define SHEET_NAME_UNTRANSLATED   "Sheetname"

Definition at line 36 of file template_fieldnames.cpp.

Referenced by GetDefaultFieldName(), and s_UntranslatedSheetName().

◆ USER_FIELD_UNTRANSLATED_FORMAT

#define USER_FIELD_UNTRANSLATED_FORMAT   "Field%d"

Definition at line 39 of file template_fieldnames.cpp.

Referenced by GetUserFieldName().

◆ VALUE_UNTRANSLATED

#define VALUE_UNTRANSLATED   "Value"

Definition at line 32 of file template_fieldnames.cpp.

Referenced by GetDefaultFieldName(), and s_UntranslatedValue().

Function Documentation

◆ FieldNamesAreDuplicates() [1/2]

bool FieldNamesAreDuplicates ( const wxString & aLhs,
const wxString & aRhs )

Convenience overload defaulting to symbol mandatory fields.

Definition at line 118 of file template_fieldnames.cpp.

References FieldNamesAreDuplicates(), and MANDATORY_FIELDS.

◆ FieldNamesAreDuplicates() [2/2]

bool FieldNamesAreDuplicates ( const wxString & aLhs,
const wxString & aRhs,
std::initializer_list< FIELD_T > aMandatoryFields )

Test whether two field names should be treated as duplicates for the purposes of field name uniqueness within a given parent (symbol, sheet, or global label).

Mandatory field names in the supplied set are matched case-insensitively because the s-expression parser folds case variants onto the mandatory field with the matching untranslated name on load. User-defined field names retain their original case in storage, so two user fields that differ only in case (e.g. "Manufacturer" vs "MANUFACTURER") are considered distinct.

Pass MANDATORY_FIELDS for symbol contexts, SHEET_MANDATORY_FIELDS for sheets, or GLOBALLABEL_MANDATORY_FIELDS for global labels. Each parent has its own set of untranslated mandatory field names used for case-insensitive matching in the parser.

Definition at line 95 of file template_fieldnames.cpp.

References GetDefaultFieldName(), and UNTRANSLATED.

Referenced by DIALOG_FIELDS_TABLE::AddField(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), FieldNamesAreDuplicates(), FIELDS_TABLE_DATA_MODEL_BASE::GetFieldNameCol(), DIALOG_FIELDS_TABLE::OnAddField(), DIALOG_LABEL_PROPERTIES::OnGridCellChanging(), DIALOG_LIB_SYMBOL_PROPERTIES::OnGridCellChanging(), DIALOG_SHEET_PROPERTIES::OnGridCellChanging(), and DIALOG_SYMBOL_PROPERTIES::OnGridCellChanging().

◆ GetDefaultFieldName()

wxString GetDefaultFieldName ( FIELD_T aFieldId,
TRANSLATION aTranslation )

Return a default symbol field name for a mandatory field type.

These field names are not modifiable but template field names are.

Parameters
aTranslationdetermines whether the field name is translated for display in dialogs.

Definition at line 51 of file template_fieldnames.cpp.

References _, DATASHEET, DATASHEET_UNTRANSLATED, DESCRIPTION, DESCRIPTION_UNTRANSLATED, FOOTPRINT, FOOTPRINT_UNTRANSLATED, GetUserFieldName(), INTERSHEET_REFS, INTERSHEET_REFS_UNTRANSLATED, REFERENCE, REFERENCE_UNTRANSLATED, s_UntranslatedDatasheet(), s_UntranslatedDescription(), s_UntranslatedFootprint(), s_UntranslatedIntersheetRefs(), s_UntranslatedReference(), s_UntranslatedSheetFile(), s_UntranslatedSheetName(), s_UntranslatedValue(), SHEET_FILE_UNTRANSLATED, SHEET_FILENAME, SHEET_NAME, SHEET_NAME_UNTRANSLATED, UNTRANSLATED, VALUE, and VALUE_UNTRANSLATED.

Referenced by NETLIST_EXPORTER_XML::addSymbolFields(), TEMPLATES::AddTemplateFieldName(), BACK_ANNOTATE::applyChangelist(), BOARD_NETLIST_UPDATER::applyComponentVariants(), FOOTPRINT_FIELDS_EDITOR_GRID_DATA_MODEL::applyDataToFootprint(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), FIELDS_TABLE_DATA_MODEL_BASE::CanClearCell(), FIELDS_TABLE_DATA_MODEL_BASE::ColIsFootprint(), FIELDS_TABLE_DATA_MODEL_BASE::ColIsReference(), FIELDS_TABLE_DATA_MODEL_BASE::ColIsValue(), PCB_PROPERTIES_PANEL::createPGProperty(), SCH_PROPERTIES_PANEL::createPGProperty(), PLACEFILE_GERBER_WRITER::CreatePlaceFile(), SCH_SHEET::Deserialize(), DIALOG_CHANGE_SYMBOLS::DIALOG_CHANGE_SYMBOLS(), DIALOG_UPDATE_SYMBOL_FIELDS::DIALOG_UPDATE_SYMBOL_FIELDS(), SCH_EDIT_TOOL::editFieldText(), FieldNamesAreDuplicates(), FOOTPRINT_FIELDS_TABLE_PRESENCE_FIXTURE::FOOTPRINT_FIELDS_TABLE_PRESENCE_FIXTURE(), PLACE_FILE_EXPORTER::GenPositionData(), PLACE_FILE_EXPORTER::GenReportData(), DIALOG_LIB_FIELDS_TABLE::getBuiltInBomPresets(), DIALOG_LIB_FOOTPRINT_FIELDS_TABLE::getBuiltInBomPresets(), FOOTPRINT_FIELDS_EDITOR_GRID_DATA_MODEL::getLiveFieldValueForVariant(), FOOTPRINT::GetMsgPanelInfo(), PCB_FIELD::GetName(), SCH_FIELD::GetName(), PCB_FIELD::GetTextTypeDescription(), SCH_FIELD::GetUntranslatedName(), FIELDS_GRID_TABLE::GetValue(), VIEW_CONTROLS_GRID_DATA_MODEL::GetValue(), SCH_SYMBOL::Init(), LIB_FIELDS_EDITOR_GRID_DATA_MODEL::isPowerSymbolControlledField(), EESCHEMA_JOBS_HANDLER::JobExportBom(), PCBNEW_JOBS_HANDLER::JobExportBom(), SYMBOL_TREE_MODEL_ADAPTER::loadColumnConfig(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadField(), DIALOG_FOOTPRINT_FIELDS_TABLE::LoadFieldNames(), DIALOG_LIB_FIELDS_TABLE::LoadFieldNames(), DIALOG_LIB_FOOTPRINT_FIELDS_TABLE::LoadFieldNames(), DIALOG_SYMBOL_FIELDS_TABLE::LoadFieldNames(), SCH_IO_EAGLE::loadInstance(), SCH_IO_KICAD_LEGACY::loadSymbol(), ISSUE25112_FIXTURE::MakeScopedModel(), DIALOG_CHANGE_SYMBOLS::onOkButtonClicked(), DIALOG_UPDATE_SYMBOL_FIELDS::onOkButtonClicked(), SCH_IO_KICAD_SEXPR_PARSER::parseProperty(), SCH_IO_KICAD_SEXPR_PARSER::parseSchField(), SCH_IO_KICAD_SEXPR_LIB_CACHE::saveField(), SCH_FIELD::SCH_FIELD(), SCH_SHEET::SCH_SHEET(), LIB_FIELDS_EDITOR_GRID_DATA_MODEL::setPowerSymbolDefaults(), DIALOG_FIELDS_TABLE::SetupColumnProperties(), LIB_FIELDS_EDITOR_GRID_DATA_MODEL::SetValue(), FOOTPRINT_FIELDS_EDITOR_GRID_TRICKS::showFieldsTablePopupMenu(), LIB_FIELDS_EDITOR_GRID_TRICKS::showFieldsTablePopupMenu(), LIB_FOOTPRINT_FIELDS_EDITOR_GRID_TRICKS::showFieldsTablePopupMenu(), SYMBOL_FIELDS_EDITOR_GRID_TRICKS::showFieldsTablePopupMenu(), SYMBOL_TREE_MODEL_ADAPTER::SYMBOL_TREE_MODEL_ADAPTER(), DRC_TEST_PROVIDER_SCHEMATIC_PARITY::testNetlist(), BOARD_NETLIST_UPDATER::updateFootprintParameters(), BOARD_NETLIST_UPDATER::UpdateNetlist(), and LIB_FIELDS_EDITOR_GRID_DATA_MODEL::ValidateReferences().

◆ GetUserFieldName()

◆ s_UntranslatedDatasheet()

static wxString s_UntranslatedDatasheet ( DATASHEET_UNTRANSLATED )
static

References DATASHEET_UNTRANSLATED.

Referenced by GetDefaultFieldName().

◆ s_UntranslatedDescription()

static wxString s_UntranslatedDescription ( DESCRIPTION_UNTRANSLATED )
static

References DESCRIPTION_UNTRANSLATED.

Referenced by GetDefaultFieldName().

◆ s_UntranslatedFootprint()

static wxString s_UntranslatedFootprint ( FOOTPRINT_UNTRANSLATED )
static

References FOOTPRINT_UNTRANSLATED.

Referenced by GetDefaultFieldName().

◆ s_UntranslatedIntersheetRefs()

static wxString s_UntranslatedIntersheetRefs ( INTERSHEET_REFS_UNTRANSLATED )
static

◆ s_UntranslatedReference()

static wxString s_UntranslatedReference ( REFERENCE_UNTRANSLATED )
static

References REFERENCE_UNTRANSLATED.

Referenced by GetDefaultFieldName().

◆ s_UntranslatedSheetFile()

static wxString s_UntranslatedSheetFile ( SHEET_FILE_UNTRANSLATED )
static

References SHEET_FILE_UNTRANSLATED.

Referenced by GetDefaultFieldName().

◆ s_UntranslatedSheetName()

static wxString s_UntranslatedSheetName ( SHEET_NAME_UNTRANSLATED )
static

References SHEET_NAME_UNTRANSLATED.

Referenced by GetDefaultFieldName().

◆ s_UntranslatedValue()

static wxString s_UntranslatedValue ( VALUE_UNTRANSLATED )
static

References VALUE_UNTRANSLATED.

Referenced by GetDefaultFieldName().