|
KiCad PCB EDA Suite
|
Go to the source code of this file.
Classes | |
| struct | TEMPLATE_FIELDNAME |
| Hold a name of a symbol's field, field value, and default visibility. More... | |
| class | TEMPLATES |
Macros | |
| #define | MANDATORY_FIELDS |
| #define | GLOBALLABEL_MANDATORY_FIELDS { FIELD_T::INTERSHEET_REFS } |
| #define | SHEET_MANDATORY_FIELDS |
Enumerations | |
| enum class | FIELD_T : int { USER , REFERENCE , VALUE , FOOTPRINT , DATASHEET , DESCRIPTION , INTERSHEET_REFS , SHEET_NAME , SHEET_FILENAME , SHEET_USER } |
| The set of all field indices assuming an array like sequence that a SCH_COMPONENT or LIB_PART can hold. More... | |
| enum | TRANSLATION { UNTRANSLATED , TRANSLATED } |
Functions | |
| KICOMMON_API wxString | GetDefaultFieldName (FIELD_T aFieldId, TRANSLATION aTranslation) |
| Return a default symbol field name for a mandatory field type. | |
| KICOMMON_API wxString | GetUserFieldName (int aFieldNdx, TRANSLATION aTranslation) |
| KICOMMON_API 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). | |
| KICOMMON_API bool | FieldNamesAreDuplicates (const wxString &aLhs, const wxString &aRhs) |
| Convenience overload defaulting to symbol mandatory fields. | |
| #define GLOBALLABEL_MANDATORY_FIELDS { FIELD_T::INTERSHEET_REFS } |
Definition at line 62 of file template_fieldnames.h.
Referenced by BOOST_AUTO_TEST_CASE(), DIALOG_LABEL_PROPERTIES::OnGridCellChanging(), and SCH_IO_KICAD_SEXPR_PARSER::parseSchField().
| #define MANDATORY_FIELDS |
Definition at line 56 of file template_fieldnames.h.
Referenced by TEMPLATES::AddTemplateFieldName(), FIELDS_TABLE_DATA_MODEL_BASE::CanClearCell(), LIB_SYMBOL_LIBRARY_MANAGER::CreateSymbol(), DIALOG_CHANGE_SYMBOLS::DIALOG_CHANGE_SYMBOLS(), DIALOG_UPDATE_SYMBOL_FIELDS::DIALOG_UPDATE_SYMBOL_FIELDS(), FieldNamesAreDuplicates(), LIB_SYMBOL::Flatten(), VIEW_CONTROLS_GRID_DATA_MODEL::GetValue(), EESCHEMA_JOBS_HANDLER::JobExportBom(), PCBNEW_JOBS_HANDLER::JobExportBom(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadAliases(), SCH_IO_DATABASE::loadSymbolFromRow(), DIALOG_CHANGE_SYMBOLS::onOkButtonClicked(), DIALOG_UPDATE_SYMBOL_FIELDS::onOkButtonClicked(), DIALOG_FIELDS_TABLE::OnRemoveField(), DIALOG_FIELDS_TABLE::OnRenameField(), SCH_IO_KICAD_SEXPR_PARSER::parseProperty(), SCH_IO_KICAD_SEXPR_PARSER::parseSchField(), DIALOG_CHANGE_SYMBOLS::updateFieldsList(), and DIALOG_UPDATE_SYMBOL_FIELDS::updateFieldsList().
| #define SHEET_MANDATORY_FIELDS |
Definition at line 64 of file template_fieldnames.h.
Referenced by BOOST_AUTO_TEST_CASE(), DIALOG_SHEET_PROPERTIES::OnGridCellChanging(), and SCH_IO_KICAD_SEXPR_PARSER::parseSchField().
|
strong |
The set of all field indices assuming an array like sequence that a SCH_COMPONENT or LIB_PART can hold.
The first fields are fixed fields and are defined by MANDATORY_FIELDS. After that come an unlimited number of user defined fields, only some of which have indices defined here.
NOTE: this must stay a enum class to prevent developers from trying to use it as an array index.
| Enumerator | |
|---|---|
| USER | The field ID hasn't been set yet; field is invalid. |
| REFERENCE | Field Reference of part, i.e. "IC21". |
| VALUE | Field Value of part, i.e. "3.3K". |
| FOOTPRINT | Field Name Module PCB, i.e. "16DIP300". |
| DATASHEET | name of datasheet |
| DESCRIPTION | Field Description of part, i.e. "1/4W 1% Metal Film Resistor". |
| INTERSHEET_REFS | Global label cross-reference page numbers. |
| SHEET_NAME | |
| SHEET_FILENAME | |
| SHEET_USER | |
Definition at line 42 of file template_fieldnames.h.
| enum TRANSLATION |
| Enumerator | |
|---|---|
| UNTRANSLATED | |
| TRANSLATED | |
Definition at line 68 of file template_fieldnames.h.
| KICOMMON_API 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.
| KICOMMON_API 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().
| KICOMMON_API 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.
| aTranslation | determines 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().
| KICOMMON_API wxString GetUserFieldName | ( | int | aFieldNdx, |
| TRANSLATION | aTranslation ) |
Definition at line 86 of file template_fieldnames.cpp.
References _, UNTRANSLATED, and USER_FIELD_UNTRANSLATED_FORMAT.
Referenced by PCB_PROPERTIES_PANEL::addBlankField(), SCH_PROPERTIES_PANEL::addBlankField(), GetDefaultFieldName(), PCB_FIELD::GetName(), SCH_IO_KICAD_LEGACY::loadSymbol(), DIALOG_FOOTPRINT_PROPERTIES::OnAddField(), DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::OnAddField(), DIALOG_LIB_SYMBOL_PROPERTIES::OnAddField(), DIALOG_SHEET_PROPERTIES::OnAddField(), DIALOG_SYMBOL_PROPERTIES::OnAddField(), PCB_IO_KICAD_SEXPR_PARSER::parsePCB_TEXT(), and SCH_IO_KICAD_LEGACY_LIB_CACHE::saveField().