Naming conventions.

This commit is contained in:
Jeff Young 2021-05-05 22:41:51 +01:00
parent d4e5861c62
commit 2e3860de6f
26 changed files with 189 additions and 198 deletions

View File

@ -30,10 +30,10 @@
using namespace TFIELD_T; using namespace TFIELD_T;
#define REFCANONICAL "Reference" #define REFERENCE_CANONICAL "Reference"
#define VALCANONICAL "Value" #define VALUE_CANONICAL "Value"
#define FTPCANONICAL "Footprint" #define FOOTPRINT_CANONICAL "Footprint"
#define DSHCANONICAL "Datasheet" #define DATASHEET_CANONICAL "Datasheet"
static std::mutex s_defaultFieldMutex; static std::mutex s_defaultFieldMutex;
@ -50,25 +50,25 @@ const wxString TEMPLATE_FIELDNAME::GetDefaultFieldName( int aFieldNdx, bool aTra
{ {
switch( aFieldNdx ) switch( aFieldNdx )
{ {
case REFERENCE_FIELD: return REFCANONICAL; // The component reference, R1, C1, etc. case REFERENCE_FIELD: return REFERENCE_CANONICAL; // The symbol reference, R1, C1, etc.
case VALUE_FIELD: return VALCANONICAL; // The component value + name case VALUE_FIELD: return VALUE_CANONICAL; // The symbol value
case FOOTPRINT_FIELD: return FTPCANONICAL; // The footprint for use with Pcbnew case FOOTPRINT_FIELD: return FOOTPRINT_CANONICAL; // The footprint for use with Pcbnew
case DATASHEET_FIELD: return DSHCANONICAL; // Link to a datasheet for component case DATASHEET_FIELD: return DATASHEET_CANONICAL; // Link to a datasheet for symbol
} }
} }
// Mutex protection is needed so that multiple loader threads don't write to the static variables // Mutex protection is needed so that multiple loader threads don't write to the static
// at once // variables at once
std::lock_guard<std::mutex> lock( s_defaultFieldMutex ); std::lock_guard<std::mutex> lock( s_defaultFieldMutex );
// Fetching translations can take a surprising amount of time when loading libraries, // Fetching translations can take a surprising amount of time when loading libraries,
// so only do it when necessary. // so only do it when necessary.
if( Pgm().GetLocale() != locale ) if( Pgm().GetLocale() != locale )
{ {
referenceDefault = _( REFCANONICAL ); referenceDefault = _( REFERENCE_CANONICAL );
valueDefault = _( VALCANONICAL ); valueDefault = _( VALUE_CANONICAL );
footprintDefault = _( FTPCANONICAL ); footprintDefault = _( FOOTPRINT_CANONICAL );
datasheetDefault = _( DSHCANONICAL ); datasheetDefault = _( DATASHEET_CANONICAL );
fieldDefault = _( "Field%d" ); fieldDefault = _( "Field%d" );
locale = Pgm().GetLocale(); locale = Pgm().GetLocale();
} }
@ -76,19 +76,19 @@ const wxString TEMPLATE_FIELDNAME::GetDefaultFieldName( int aFieldNdx, bool aTra
// Fixed values for the mandatory fields // Fixed values for the mandatory fields
switch( aFieldNdx ) switch( aFieldNdx )
{ {
case REFERENCE_FIELD: return referenceDefault; // The component reference, R1, C1, etc. case REFERENCE_FIELD: return referenceDefault; // The symbol reference, R1, C1, etc.
case VALUE_FIELD: return valueDefault; // The component value + name case VALUE_FIELD: return valueDefault; // The symbol value
case FOOTPRINT_FIELD: return footprintDefault; // The footprint for use with Pcbnew case FOOTPRINT_FIELD: return footprintDefault; // The footprint for use with Pcbnew
case DATASHEET_FIELD: return datasheetDefault; // Link to a datasheet for component case DATASHEET_FIELD: return datasheetDefault; // Link to a datasheet for symbol
default: return wxString::Format( fieldDefault, aFieldNdx ); default: return wxString::Format( fieldDefault, aFieldNdx );
} }
} }
#undef REFCANONICAL #undef REFERENCE_CANONICAL
#undef VALCANONICAL #undef VALUE_CANONICAL
#undef FTPCANONICAL #undef FOOTPRINT_CANONICAL
#undef DSHCANONICAL #undef DATASHEET_CANONICAL
void TEMPLATE_FIELDNAME::Format( OUTPUTFORMATTER* out, int nestLevel ) const void TEMPLATE_FIELDNAME::Format( OUTPUTFORMATTER* out, int nestLevel ) const

View File

@ -359,7 +359,7 @@ wxString PageLayoutDescrFileWildcard()
} }
// Wildcard for cvpcb component to footprint link file // Wildcard for cvpcb symbol to footprint link file
wxString ComponentFileWildcard() wxString ComponentFileWildcard()
{ {
return _( "KiCad symbol footprint link files" ) + AddFileExtListToFilter( { "cmp" } ); return _( "KiCad symbol footprint link files" ) + AddFileExtListToFilter( { "cmp" } );

View File

@ -23,17 +23,17 @@
*/ */
/****************************************************************************** /******************************************************************************
* Field autoplacer: Tries to find an optimal place for component fields, and * Field autoplacer: Tries to find an optimal place for symbol fields, and places them there.
* places them there. There are two modes: "auto"-autoplace, and "manual" autoplace. * There are two modes: "auto"-autoplace, and "manual" autoplace.
* Auto mode is for when the process is run automatically, like when rotating parts, * Auto mode is for when the process is run automatically, like when rotating parts, and it
* and it avoids doing things that would be helpful for the final positioning but * avoids doing things that would be helpful for the final positioning but annoying if they
* annoying if they happened without permission. * happened without permission.
* Short description of the process: * Short description of the process:
* *
* 1. Compute the dimensions of the fields' bounding box ::computeFBoxSize * 1. Compute the dimensions of the fields' bounding box ::computeFBoxSize
* 2. Determine which side the fields will go on. ::chooseSideForFields * 2. Determine which side the fields will go on. ::chooseSideForFields
* 1. Sort the four sides in preference order, * 1. Sort the four sides in preference order,
* depending on the component's shape and * depending on the symbol's shape and
* orientation ::getPreferredSides * orientation ::getPreferredSides
* 2. If in manual mode, sift out the sides that would * 2. If in manual mode, sift out the sides that would
* cause fields to overlap other items ::getCollidingSides * cause fields to overlap other items ::getCollidingSides
@ -237,7 +237,7 @@ protected:
} }
/** /**
* Count the number of pins on a side of the component. * Count the number of pins on a side of the symbol.
*/ */
unsigned pinsOnSide( SIDE aSide ) unsigned pinsOnSide( SIDE aSide )
{ {
@ -256,9 +256,8 @@ protected:
} }
/** /**
* Populate a list of all drawing items that *may* collide with the fields. That is, * Populate a list of all drawing items that *may* collide with the fields. That is, all
* all drawing items, including other fields, that are not the current component or * drawing items, including other fields, that are not the current symbol or its own fields.
* its own fields.
*/ */
void getPossibleCollisions( std::vector<SCH_ITEM*>& aItems ) void getPossibleCollisions( std::vector<SCH_ITEM*>& aItems )
{ {
@ -306,8 +305,8 @@ protected:
} }
/** /**
* Return a list with the preferred field sides for the component, in * Return a list with the preferred field sides for the symbol, in decreasing order of
* decreasing order of preference. * preference.
*/ */
std::vector<SIDE_AND_NPINS> getPreferredSides() std::vector<SIDE_AND_NPINS> getPreferredSides()
{ {
@ -356,13 +355,13 @@ protected:
} }
else else
{ {
// If the component is horizontally mirrored, swap left and right // If the symbol is horizontally mirrored, swap left and right
if( h_mirrored ) if( h_mirrored )
{ {
std::swap( sides[0], sides[2] ); std::swap( sides[0], sides[2] );
} }
// If the component is very long or is a power symbol, swap H and V // If the symbol is very long or is a power symbol, swap H and V
if( w/h > 3.0 ) if( w/h > 3.0 )
{ {
std::swap( sides[0], sides[1] ); std::swap( sides[0], sides[1] );
@ -458,7 +457,7 @@ protected:
} }
/** /**
* Look where a component's pins are to pick a side to put the fields on * Look where a symbol's pins are to pick a side to put the fields on
* @param aAvoidCollisions - if true, pick last the sides where the label will collide * @param aAvoidCollisions - if true, pick last the sides where the label will collide
* with other items. * with other items.
*/ */

View File

@ -518,9 +518,9 @@ void CONNECTION_GRAPH::updateItemConnectivity( const SCH_SHEET_PATH& aSheet,
} }
else if( item->Type() == SCH_COMPONENT_T ) else if( item->Type() == SCH_COMPONENT_T )
{ {
SCH_COMPONENT* component = static_cast<SCH_COMPONENT*>( item ); SCH_COMPONENT* symbol = static_cast<SCH_COMPONENT*>( item );
for( SCH_PIN* pin : component->GetPins( &aSheet ) ) for( SCH_PIN* pin : symbol->GetPins( &aSheet ) )
{ {
pin->InitializeConnection( aSheet, this ); pin->InitializeConnection( aSheet, this );

View File

@ -338,9 +338,9 @@ private:
* Any item that is stored in the list of items that have a connection point * Any item that is stored in the list of items that have a connection point
* at a given (x, y) location will eventually be electrically connected. * at a given (x, y) location will eventually be electrically connected.
* This means that we can't store SCH_COMPONENTs in this map -- we must store * This means that we can't store SCH_COMPONENTs in this map -- we must store
* a structure that links a specific pin on a component back to that * a structure that links a specific pin on a symbol back to that symbol: a
* component: a SCH_PIN_CONNECTION. This wrapper class is a convenience for * SCH_PIN_CONNECTION. This wrapper class is a convenience for linking a pin
* linking a pin and component to a specific (x, y) point. * and symbol to a specific (x, y) point.
* *
* In the second phase, we iterate over each value in the map, which is a * In the second phase, we iterate over each value in the map, which is a
* vector of items that have overlapping connection points. After some * vector of items that have overlapping connection points. After some

View File

@ -39,7 +39,7 @@
#include <advanced_config.h> #include <advanced_config.h>
#include <netclass.h> #include <netclass.h>
SCH_ITEM* SCH_EDITOR_CONTROL::FindComponentAndItem( const wxString& aReference, SCH_ITEM* SCH_EDITOR_CONTROL::FindSymbolAndItem( const wxString& aReference,
bool aSearchHierarchy, bool aSearchHierarchy,
SCH_SEARCH_T aSearchType, SCH_SEARCH_T aSearchType,
const wxString& aSearchText ) const wxString& aSearchText )
@ -349,7 +349,7 @@ void SCH_EDIT_FRAME::ExecuteRemoteCommand( const char* cmdline )
if( idcmd == nullptr ) // Highlight component only (from CvPcb or Pcbnew) if( idcmd == nullptr ) // Highlight component only (from CvPcb or Pcbnew)
{ {
// Highlight component part_ref, or clear Highlight, if part_ref is not existing // Highlight component part_ref, or clear Highlight, if part_ref is not existing
editor->FindComponentAndItem( part_ref, true, HIGHLIGHT_COMPONENT, wxEmptyString ); editor->FindSymbolAndItem( part_ref, true, HIGHLIGHT_COMPONENT, wxEmptyString );
return; return;
} }
@ -364,21 +364,21 @@ void SCH_EDIT_FRAME::ExecuteRemoteCommand( const char* cmdline )
{ {
// Highlighting the reference itself isn't actually that useful, and it's harder to // Highlighting the reference itself isn't actually that useful, and it's harder to
// see. Highlight the parent and display the message. // see. Highlight the parent and display the message.
editor->FindComponentAndItem( part_ref, true, HIGHLIGHT_COMPONENT, msg ); editor->FindSymbolAndItem( part_ref, true, HIGHLIGHT_COMPONENT, msg );
} }
else if( strcmp( idcmd, "$VAL:" ) == 0 ) else if( strcmp( idcmd, "$VAL:" ) == 0 )
{ {
// Highlighting the value itself isn't actually that useful, and it's harder to see. // Highlighting the value itself isn't actually that useful, and it's harder to see.
// Highlight the parent and display the message. // Highlight the parent and display the message.
editor->FindComponentAndItem( part_ref, true, HIGHLIGHT_COMPONENT, msg ); editor->FindSymbolAndItem( part_ref, true, HIGHLIGHT_COMPONENT, msg );
} }
else if( strcmp( idcmd, "$PAD:" ) == 0 ) else if( strcmp( idcmd, "$PAD:" ) == 0 )
{ {
editor->FindComponentAndItem( part_ref, true, HIGHLIGHT_PIN, msg ); editor->FindSymbolAndItem( part_ref, true, HIGHLIGHT_PIN, msg );
} }
else else
{ {
editor->FindComponentAndItem( part_ref, true, HIGHLIGHT_COMPONENT, wxEmptyString ); editor->FindSymbolAndItem( part_ref, true, HIGHLIGHT_COMPONENT, wxEmptyString );
} }
} }

View File

@ -442,12 +442,12 @@ bool DIALOG_CHANGE_SYMBOLS::processMatchingSymbols()
wxCHECK2( screen, continue ); wxCHECK2( screen, continue );
std::vector<SCH_COMPONENT*> components; std::vector<SCH_COMPONENT*> symbols;
for( SCH_ITEM* item : screen->Items().OfType( SCH_COMPONENT_T ) ) for( SCH_ITEM* item : screen->Items().OfType( SCH_COMPONENT_T ) )
components.push_back( static_cast<SCH_COMPONENT*>( item ) ); symbols.push_back( static_cast<SCH_COMPONENT*>( item ) );
for( SCH_COMPONENT* symbol : components ) for( SCH_COMPONENT* symbol : symbols )
{ {
if( !isMatch( symbol, &instance ) ) if( !isMatch( symbol, &instance ) )
continue; continue;

View File

@ -88,7 +88,7 @@ class DIALOG_CHOOSE_SYMBOL : public DIALOG_SHIM
{ {
public: public:
/** /**
* Create dialog to choose component. * Create dialog to choose symbol.
* *
* @param aParent a SCH_BASE_FRAME parent window. * @param aParent a SCH_BASE_FRAME parent window.
* @param aTitle Dialog title. * @param aTitle Dialog title.
@ -112,10 +112,10 @@ public:
/** /**
* To be called after this dialog returns from ShowModal(). * To be called after this dialog returns from ShowModal().
* *
* For multi-unit components, if the user selects the component itself * For multi-unit symbols, if the user selects the component itself rather than picking
* rather than picking an individual unit, 0 will be returned in aUnit. * an individual unit, 0 will be returned in aUnit.
* Beware that this is an invalid unit number - this should be replaced * Beware that this is an invalid unit number - this should be replaced with whatever
* with whatever default is desired (usually 1). * default is desired (usually 1).
* *
* @param aUnit if not NULL, the selected unit is filled in here. * @param aUnit if not NULL, the selected unit is filled in here.
* @return the #LIB_ID of the symbol that has been selected. * @return the #LIB_ID of the symbol that has been selected.
@ -153,8 +153,7 @@ public:
} }
/** /**
* @return true if the user pressed the thumbnail view of the component to * @return true if the user requested the symbol browser.
* launch the component browser.
*/ */
bool IsExternalBrowserSelected() const bool IsExternalBrowserSelected() const
{ {
@ -175,10 +174,10 @@ protected:
void OnComponentPreselected( wxCommandEvent& aEvent ); void OnComponentPreselected( wxCommandEvent& aEvent );
/** /**
* Handle the selection of an item. This is called when either the search * Handle the selection of an item. This is called when either the search box or the tree
* box or the tree receive an Enter, or the tree receives a double click. * receive an Enter, or the tree receives a double click.
* If the item selected is a category, it is expanded or collapsed; if it * If the item selected is a category, it is expanded or collapsed; if it is a symbol, the
* is a component, the component is picked. * symbol is picked.
*/ */
void OnComponentSelected( wxCommandEvent& aEvent ); void OnComponentSelected( wxCommandEvent& aEvent );

View File

@ -39,7 +39,7 @@ class SCINTILLA_TRICKS;
/** /**
* A base class to edit schematic and component library fields. * A base class to edit schematic and symbol library fields.
* *
* This class is setup in expectation of its children possibly using Kiway player so * This class is setup in expectation of its children possibly using Kiway player so
* #DIALOG_SHIM::ShowQuasiModal is required when calling any subclasses. * #DIALOG_SHIM::ShowQuasiModal is required when calling any subclasses.
@ -103,7 +103,7 @@ protected:
/** /**
* Handle editing a single component field in the library editor. * Handle editing a single symbol field in the library editor.
* *
* @note Use ShowQuasiModal when calling this class! * @note Use ShowQuasiModal when calling this class!
*/ */
@ -119,7 +119,7 @@ public:
{ {
aField->SetText( m_text ); aField->SetText( m_text );
// VALUE === component name, so update the parent component if it changes. // VALUE === symbol name, so update the parent symbol if it changes.
if( aField->GetId() == VALUE_FIELD && aField->GetParent() ) if( aField->GetId() == VALUE_FIELD && aField->GetParent() )
aField->GetParent()->SetName( m_text ); aField->GetParent()->SetName( m_text );
@ -129,7 +129,7 @@ public:
/** /**
* Handle editing a single component field in the schematic editor. * Handle editing a single symbol field in the schematic editor.
* *
* @note Use ShowQuasiModal when calling this class! * @note Use ShowQuasiModal when calling this class!
*/ */

View File

@ -368,7 +368,7 @@ void DIALOG_ERC::testErc()
m_parent->RecalculateConnections( NO_CLEANUP ); m_parent->RecalculateConnections( NO_CLEANUP );
sch->ConnectionGraph()->RunERC(); sch->ConnectionGraph()->RunERC();
// Test is all units of each multiunit component have the same footprint assigned. // Test is all units of each multiunit symbol have the same footprint assigned.
if( settings.IsTestEnabled( ERCE_DIFFERENT_UNIT_FP ) ) if( settings.IsTestEnabled( ERCE_DIFFERENT_UNIT_FP ) )
{ {
AdvancePhase( _( "Checking footprints..." ) ); AdvancePhase( _( "Checking footprints..." ) );

View File

@ -1147,7 +1147,7 @@ void DIALOG_FIELDS_EDITOR_GLOBAL::OnTableCellClick( wxGridEvent& event )
{ {
SCH_EDITOR_CONTROL* editor = m_parent->GetToolManager()->GetTool<SCH_EDITOR_CONTROL>(); SCH_EDITOR_CONTROL* editor = m_parent->GetToolManager()->GetTool<SCH_EDITOR_CONTROL>();
editor->FindComponentAndItem( refs[0].GetRef() + refs[0].GetRefNumber(), true, editor->FindSymbolAndItem( refs[ 0 ].GetRef() + refs[ 0 ].GetRefNumber(), true,
HIGHLIGHT_COMPONENT, wxEmptyString ); HIGHLIGHT_COMPONENT, wxEmptyString );
} }
} }

View File

@ -339,19 +339,19 @@ void DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS::visitItem( const SCH_SHEET_PATH& aShe
if( aItem->Type() == SCH_COMPONENT_T ) if( aItem->Type() == SCH_COMPONENT_T )
{ {
SCH_COMPONENT* component = (SCH_COMPONENT*) aItem; SCH_COMPONENT* symbol = (SCH_COMPONENT*) aItem;
if( m_references->GetValue() ) if( m_references->GetValue() )
processItem( aSheetPath, component->GetField( REFERENCE_FIELD ), aItem ); processItem( aSheetPath, symbol->GetField( REFERENCE_FIELD ), aItem );
if( m_values->GetValue() ) if( m_values->GetValue() )
processItem( aSheetPath, component->GetField( VALUE_FIELD ), aItem ); processItem( aSheetPath, symbol->GetField( VALUE_FIELD ), aItem );
if( m_otherFields->GetValue() ) if( m_otherFields->GetValue() )
{ {
for( int i = 2; i < component->GetFieldCount(); ++i ) for( int i = 2; i < symbol->GetFieldCount(); ++i )
{ {
SCH_FIELD& field = component->GetFields()[i]; SCH_FIELD& field = symbol->GetFields()[i];
const wxString& fieldName = field.GetName(); const wxString& fieldName = field.GetName();
if( !m_fieldnameFilterOpt->GetValue() || m_fieldnameFilter->GetValue().IsEmpty() if( !m_fieldnameFilterOpt->GetValue() || m_fieldnameFilter->GetValue().IsEmpty()

View File

@ -92,7 +92,7 @@ public:
int TestConflictingBusAliases(); int TestConflictingBusAliases();
/** /**
* Test if all units of each multiunit component have the same footprint assigned. * Test if all units of each multiunit symbol have the same footprint assigned.
* @return The error count. * @return The error count.
*/ */
int TestMultiunitFootprints(); int TestMultiunitFootprints();
@ -111,7 +111,7 @@ public:
int TestPinToPin(); int TestPinToPin();
/** /**
* Checks if shared pins on multi-unit components have been connected to different nets * Checks if shared pins on multi-unit symbols have been connected to different nets
* @return the error count * @return the error count
*/ */
int TestMultUnitPinConflicts(); int TestMultUnitPinConflicts();

View File

@ -37,12 +37,12 @@ class SCH_LEGACY_PLUGIN_CACHE;
/** /**
* Field object used in symbol libraries. At least MANDATORY_FIELDS are always present * Field object used in symbol libraries. At least MANDATORY_FIELDS are always present in a
* in a ram resident library symbol. All constructors must ensure this because * RAM-resident library symbol. All constructors must ensure this because the symbol property
* the component property editor assumes it. * editor assumes it.
* <p> * <p>
* A field is a string linked to a component. Unlike purely graphical text, fields can * A field is a string linked to a symbol. Unlike purely graphical text, fields can be used in
* be used in netlist generation and other tools (BOM). * netlist generation and other tools (BOM).
* *
* The first 4 fields have a special meaning: * The first 4 fields have a special meaning:
* *
@ -128,8 +128,8 @@ public:
* Set a user definable field name to \a aName. * Set a user definable field name to \a aName.
* *
* Reserved fields such as value and reference are not renamed. If the field name is * Reserved fields such as value and reference are not renamed. If the field name is
* changed, the field modified flag is set. If the field is the child of a component, * changed, the field modified flag is set. If the field is the child of a symbol, the
* the parent component's modified flag is also set. * parent symbol's modified flag is also set.
* *
* @param aName - User defined field name. * @param aName - User defined field name.
*/ */

View File

@ -68,8 +68,9 @@ bool SCH_EDIT_FRAME::CreateArchiveLibrary( const wxString& aFileName )
wxString errorMsg; wxString errorMsg;
SCH_SCREENS screens( Schematic().Root() ); SCH_SCREENS screens( Schematic().Root() );
// Create a new empty library to archive components: // Create a new empty library to archive symbols:
std::unique_ptr<PART_LIB> archLib = std::make_unique<PART_LIB>( SCH_LIB_TYPE::LT_EESCHEMA, aFileName ); std::unique_ptr<PART_LIB> archLib = std::make_unique<PART_LIB>( SCH_LIB_TYPE::LT_EESCHEMA,
aFileName );
// Save symbols to file only when the library will be fully filled // Save symbols to file only when the library will be fully filled
archLib->EnableBuffering(); archLib->EnableBuffering();
@ -85,20 +86,20 @@ bool SCH_EDIT_FRAME::CreateArchiveLibrary( const wxString& aFileName )
for( auto aItem : screen->Items().OfType( SCH_COMPONENT_T ) ) for( auto aItem : screen->Items().OfType( SCH_COMPONENT_T ) )
{ {
LIB_PART* part = nullptr; LIB_PART* part = nullptr;
auto component = static_cast<SCH_COMPONENT*>( aItem ); SCH_COMPONENT* symbol = static_cast<SCH_COMPONENT*>( aItem );
try try
{ {
if( archLib->FindPart( component->GetLibId() ) ) if( archLib->FindPart( symbol->GetLibId() ) )
continue; continue;
part = GetLibPart( component->GetLibId(), true ); part = GetLibPart( symbol->GetLibId(), true );
} }
catch( const IO_ERROR& ) catch( const IO_ERROR& )
{ {
// Queue up error messages for later. // Queue up error messages for later.
tmp.Printf( _( "Failed to add symbol \"%s\" to library file \"%s\"." ), tmp.Printf( _( "Failed to add symbol \"%s\" to library file \"%s\"." ),
component->GetLibId().GetUniStringLibItemName(), aFileName ); symbol->GetLibId().GetUniStringLibItemName(), aFileName );
// Don't bail out here. Attempt to add as many of the symbols to the library // Don't bail out here. Attempt to add as many of the symbols to the library
// as possible. // as possible.
@ -113,7 +114,7 @@ bool SCH_EDIT_FRAME::CreateArchiveLibrary( const wxString& aFileName )
std::unique_ptr<LIB_PART> flattenedPart = part->Flatten(); std::unique_ptr<LIB_PART> flattenedPart = part->Flatten();
// Use the full LIB_ID as the symbol name to prevent symbol name collisions. // Use the full LIB_ID as the symbol name to prevent symbol name collisions.
flattenedPart->SetName( component->GetLibId().GetUniStringLibId() ); flattenedPart->SetName( symbol->GetLibId().GetUniStringLibId() );
// AddPart() does first clone the part before adding. // AddPart() does first clone the part before adding.
archLib->AddPart( flattenedPart.get() ); archLib->AddPart( flattenedPart.get() );
@ -121,10 +122,10 @@ bool SCH_EDIT_FRAME::CreateArchiveLibrary( const wxString& aFileName )
else else
{ {
tmp.Printf( _( "Symbol %s not found in any library or cache." ), tmp.Printf( _( "Symbol %s not found in any library or cache." ),
component->GetLibId().GetUniStringLibId() ); symbol->GetLibId().GetUniStringLibId() );
} }
if( !tmp.empty() && !errorMsg.Contains( component->GetLibId().GetUniStringLibId() ) ) if( !tmp.empty() && !errorMsg.Contains( symbol->GetLibId().GetUniStringLibId() ) )
{ {
if( errorMsg.empty() ) if( errorMsg.empty() )
errorMsg += tmp; errorMsg += tmp;

View File

@ -141,27 +141,25 @@ public:
void UpdateStatusBar() override; void UpdateStatusBar() override;
/** /**
* Call the library viewer to select component to import into schematic. * Call the library viewer to select symbol to import into schematic.
* if the library viewer is currently running, it is closed and reopened * If the library viewer is currently running, it is closed and reopened in modal mode.
* in modal mode.
* *
* aAllowFields chooses whether or not features that permit the user to edit * aAllowFields chooses whether or not features that permit the user to edit fields
* fields (e.g. footprint selection) should be enabled. This should be false * (e.g. footprint selection) should be enabled. This should be false when they would
* when they would have no effect, for example loading a part into symbol_editor. * have no effect, for example loading a part into symbol_editor.
* *
* @param aFilter is a #SCHLIB_FILTER filter to pass the allowed library names * @param aFilter is an optional #SCHLIB_FILTER filter to pass the allowed library names
* and/or the library name to load the component from and/or some other filter * and/or the library name to load the symbol from and/or some other filter
* if NULL, no filtering. * @param aHistoryList is the list of previously loaded symbols - will be edited
* @param aHistoryList is the list of previously loaded components - will be edited * @param aUseLibBrowser is the flag to call the library viewer to select the symbol
* @param aUseLibBrowser is the flag to call the library viewer to select the component
* @param aUnit is the preselected unit. * @param aUnit is the preselected unit.
* @param aConvert is the preselected De Morgan shape. * @param aConvert is the preselected De Morgan shape.
* @param aHighlight is the name of component to highlight in the list. * @param aHighlight is the name of symbol to highlight in the list.
* highlights none if there isn't one by that name. * highlights none if there isn't one by that name.
* @param aShowFootprints is the whether to show footprints in the dialog. * @param aShowFootprints is the whether to show footprints in the dialog.
* @param aAllowFields is whether to allow field editing in the dialog. * @param aAllowFields is whether to allow field editing in the dialog.
* *
* @return the selected component * @return the selected symbol
*/ */
PICKED_SYMBOL PickSymbolFromLibTree( const SCHLIB_FILTER* aFilter, PICKED_SYMBOL PickSymbolFromLibTree( const SCHLIB_FILTER* aFilter,
std::vector<PICKED_SYMBOL>& aHistoryList, std::vector<PICKED_SYMBOL>& aHistoryList,
@ -187,17 +185,16 @@ public:
LIB_PART* GetFlattenedLibPart( const LIB_ID& aLibId, bool aShowErrorMsg = false ); LIB_PART* GetFlattenedLibPart( const LIB_ID& aLibId, bool aShowErrorMsg = false );
/** /**
* Call the library viewer to select component to import into schematic. * Call the library viewer to select symbol to import into schematic.
* if the library viewer is currently running, it is closed and reopened * If the library viewer is currently running, it is closed and reopened in modal mode.
* in modal mode.
* *
* @param aParent is the caller. * @param aParent is the caller.
* @param aFilter is a filter to pass the allowed library names * @param aFilter is a filter to pass the allowed library names
* and/or some other filter. * and/or some other filter.
* @param aPreselectedLibId is the preselected component #LIB_ID. Not valid if none selected. * @param aPreselectedLibId is the preselected symbol's #LIB_ID. Not valid if none selected.
* @param aUnit is the preselected unit. * @param aUnit is the preselected unit.
* @param aConvert is the preselected deMorgan conversion. * @param aConvert is the preselected deMorgan conversion.
* @return the selected component. * @return the selected symbol.
*/ */
PICKED_SYMBOL PickSymbolFromLibBrowser( wxTopLevelWindow* aParent, PICKED_SYMBOL PickSymbolFromLibBrowser( wxTopLevelWindow* aParent,
const SCHLIB_FILTER* aFilter, const SCHLIB_FILTER* aFilter,

View File

@ -23,12 +23,11 @@
*/ */
/* /*
* Fields are texts attached to a component, having a special meaning * Fields are texts attached to a symbol, some of which have a special meaning.
* Fields 0 and 1 are very important: reference and value * Fields 0 and 1 are very important: reference and value.
* Field 2 is used as default footprint name. * Field 2 is used as default footprint name.
* Field 3 is reserved (not currently used * Field 3 is used to point to a datasheet (usually a URL).
* Fields 4 and more are user fields. * Fields 4+ are user fields. They can be renamed and can appear in reports.
* They can be renamed and can appear in reports
*/ */
#include <wx/menu.h> #include <wx/menu.h>
@ -687,9 +686,9 @@ void SCH_FIELD::Plot( PLOTTER* aPlotter ) const
void SCH_FIELD::SetPosition( const wxPoint& aPosition ) void SCH_FIELD::SetPosition( const wxPoint& aPosition )
{ {
// Actual positions are calculated by the rotation/mirror transform of the // Actual positions are calculated by the rotation/mirror transform of the parent symbol
// parent component of the field. The inverse transform is used to calculate // of the field. The inverse transform is used to calculate the position relative to the
// the position relative to the parent component. // parent symbol.
if( m_parent && m_parent->Type() == SCH_COMPONENT_T ) if( m_parent && m_parent->Type() == SCH_COMPONENT_T )
{ {
SCH_COMPONENT* parentSymbol = static_cast<SCH_COMPONENT*>( m_parent ); SCH_COMPONENT* parentSymbol = static_cast<SCH_COMPONENT*>( m_parent );

View File

@ -37,7 +37,7 @@ class LIB_FIELD;
/** /**
* Instances are attached to a symbol or sheet and provide a place for the component's value, * Instances are attached to a symbol or sheet and provide a place for the symbol's value,
* reference designator, footprint, , a sheet's name, filename, and user definable name-value * reference designator, footprint, , a sheet's name, filename, and user definable name-value
* pairs of arbitrary purpose. * pairs of arbitrary purpose.
* *

View File

@ -788,7 +788,7 @@ void SCH_LEGACY_PLUGIN::LoadContent( LINE_READER& aReader, SCH_SCREEN* aScreen,
if( strCompare( "$Descr", line ) ) if( strCompare( "$Descr", line ) )
loadPageSettings( aReader, aScreen ); loadPageSettings( aReader, aScreen );
else if( strCompare( "$Comp", line ) ) else if( strCompare( "$Comp", line ) )
aScreen->Append( loadComponent( aReader ) ); aScreen->Append( loadSymbol( aReader ) );
else if( strCompare( "$Sheet", line ) ) else if( strCompare( "$Sheet", line ) )
aScreen->Append( loadSheet( aReader ) ); aScreen->Append( loadSheet( aReader ) );
else if( strCompare( "$Bitmap", line ) ) else if( strCompare( "$Bitmap", line ) )
@ -1490,13 +1490,13 @@ SCH_TEXT* SCH_LEGACY_PLUGIN::loadText( LINE_READER& aReader )
} }
SCH_COMPONENT* SCH_LEGACY_PLUGIN::loadComponent( LINE_READER& aReader ) SCH_COMPONENT* SCH_LEGACY_PLUGIN::loadSymbol( LINE_READER& aReader )
{ {
const char* line = aReader.Line(); const char* line = aReader.Line();
wxCHECK( strCompare( "$Comp", line, &line ), NULL ); wxCHECK( strCompare( "$Comp", line, &line ), NULL );
std::unique_ptr<SCH_COMPONENT> component = std::make_unique<SCH_COMPONENT>(); std::unique_ptr<SCH_COMPONENT> symbol = std::make_unique<SCH_COMPONENT>();
line = aReader.ReadLine(); line = aReader.ReadLine();
@ -1526,7 +1526,7 @@ SCH_COMPONENT* SCH_LEGACY_PLUGIN::loadComponent( LINE_READER& aReader )
else else
libId.SetLibItemName( libName, false ); libId.SetLibItemName( libName, false );
component->SetLibId( libId ); symbol->SetLibId( libId );
wxString refDesignator = tokens.GetNextToken(); wxString refDesignator = tokens.GetNextToken();
@ -1547,9 +1547,9 @@ SCH_COMPONENT* SCH_LEGACY_PLUGIN::loadComponent( LINE_READER& aReader )
prefix.Trim( false ); prefix.Trim( false );
if( prefix.IsEmpty() ) if( prefix.IsEmpty() )
component->SetPrefix( wxString( "U" ) ); symbol->SetPrefix( wxString( "U" ) );
else else
component->SetPrefix( prefix ); symbol->SetPrefix( prefix );
} }
else if( strCompare( "U", line, &line ) ) else if( strCompare( "U", line, &line ) )
{ {
@ -1566,7 +1566,7 @@ SCH_COMPONENT* SCH_LEGACY_PLUGIN::loadComponent( LINE_READER& aReader )
m_rootSheet->GetScreen()->SetModify(); m_rootSheet->GetScreen()->SetModify();
} }
component->SetUnit( unit ); symbol->SetUnit( unit );
// Same can also happen with the convert parameter // Same can also happen with the convert parameter
int convert = parseInt( aReader, line, &line ); int convert = parseInt( aReader, line, &line );
@ -1580,13 +1580,13 @@ SCH_COMPONENT* SCH_LEGACY_PLUGIN::loadComponent( LINE_READER& aReader )
m_rootSheet->GetScreen()->SetModify(); m_rootSheet->GetScreen()->SetModify();
} }
component->SetConvert( convert ); symbol->SetConvert( convert );
wxString text; wxString text;
parseUnquotedString( text, aReader, line, &line ); parseUnquotedString( text, aReader, line, &line );
if( text != "00000000" ) if( text != "00000000" )
const_cast<KIID&>( component->m_Uuid ) = KIID( text ); const_cast<KIID&>( symbol->m_Uuid ) = KIID( text );
} }
else if( strCompare( "P", line, &line ) ) else if( strCompare( "P", line, &line ) )
{ {
@ -1594,7 +1594,7 @@ SCH_COMPONENT* SCH_LEGACY_PLUGIN::loadComponent( LINE_READER& aReader )
pos.x = Mils2Iu( parseInt( aReader, line, &line ) ); pos.x = Mils2Iu( parseInt( aReader, line, &line ) );
pos.y = Mils2Iu( parseInt( aReader, line, &line ) ); pos.y = Mils2Iu( parseInt( aReader, line, &line ) );
component->SetPosition( pos ); symbol->SetPosition( pos );
} }
else if( strCompare( "AR", line, &line ) ) else if( strCompare( "AR", line, &line ) )
{ {
@ -1609,7 +1609,7 @@ SCH_COMPONENT* SCH_LEGACY_PLUGIN::loadComponent( LINE_READER& aReader )
parseQuotedString( pathStr, aReader, line, &line ); parseQuotedString( pathStr, aReader, line, &line );
// Note: AR path excludes root sheet, but includes component. Normalize to // Note: AR path excludes root sheet, but includes symbol. Normalize to
// internal format by shifting everything down one and adding the root sheet. // internal format by shifting everything down one and adding the root sheet.
KIID_PATH path( pathStr ); KIID_PATH path( pathStr );
@ -1649,8 +1649,8 @@ SCH_COMPONENT* SCH_LEGACY_PLUGIN::loadComponent( LINE_READER& aReader )
if( tmp < 0 || tmp > MAX_UNIT_COUNT_PER_PACKAGE ) if( tmp < 0 || tmp > MAX_UNIT_COUNT_PER_PACKAGE )
SCH_PARSE_ERROR( "unit value out of range", aReader, line ); SCH_PARSE_ERROR( "unit value out of range", aReader, line );
component->AddHierarchicalReference( path, reference, (int)tmp ); symbol->AddHierarchicalReference( path, reference, (int)tmp );
component->GetField( REFERENCE_FIELD )->SetText( reference ); symbol->GetField( REFERENCE_FIELD )->SetText( reference );
} }
else if( strCompare( "F", line, &line ) ) else if( strCompare( "F", line, &line ) )
@ -1668,23 +1668,23 @@ SCH_COMPONENT* SCH_LEGACY_PLUGIN::loadComponent( LINE_READER& aReader )
int size = Mils2Iu( parseInt( aReader, line, &line ) ); int size = Mils2Iu( parseInt( aReader, line, &line ) );
int attributes = parseHex( aReader, line, &line ); int attributes = parseHex( aReader, line, &line );
if( index >= component->GetFieldCount() ) if( index >= symbol->GetFieldCount() )
{ {
// The first MANDATOR_FIELDS _must_ be constructed within // The first MANDATOR_FIELDS _must_ be constructed within the SCH_COMPONENT
// the SCH_COMPONENT constructor. This assert is simply here // constructor. This assert is simply here to guard against a change in that
// to guard against a change in that constructor. // constructor.
wxASSERT( component->GetFieldCount() >= MANDATORY_FIELDS ); wxASSERT( symbol->GetFieldCount() >= MANDATORY_FIELDS );
// Ignore the _supplied_ fieldNdx. It is not important anymore // Ignore the _supplied_ fieldNdx. It is not important anymore if within the
// if within the user defined fields region (i.e. >= MANDATORY_FIELDS). // user defined fields region (i.e. >= MANDATORY_FIELDS).
// We freely renumber the index to fit the next available field slot. // We freely renumber the index to fit the next available field slot.
index = component->GetFieldCount(); // new has this index after insertion index = symbol->GetFieldCount(); // new has this index after insertion
SCH_FIELD field( wxPoint( 0, 0 ), index, component.get(), name ); SCH_FIELD field( wxPoint( 0, 0 ), index, symbol.get(), name );
component->AddField( field ); symbol->AddField( field );
} }
SCH_FIELD& field = component->GetFields()[index]; SCH_FIELD& field = symbol->GetFields()[index];
// Prior to version 2 of the schematic file format, none of the following existed. // Prior to version 2 of the schematic file format, none of the following existed.
if( m_version > 1 ) if( m_version > 1 )
@ -1702,7 +1702,7 @@ SCH_COMPONENT* SCH_LEGACY_PLUGIN::loadComponent( LINE_READER& aReader )
else if( hjustify == 'R' ) else if( hjustify == 'R' )
field.SetHorizJustify( GR_TEXT_HJUSTIFY_RIGHT ); field.SetHorizJustify( GR_TEXT_HJUSTIFY_RIGHT );
else if( hjustify != 'C' ) else if( hjustify != 'C' )
SCH_PARSE_ERROR( "component field text horizontal justification must be " SCH_PARSE_ERROR( "symbol field text horizontal justification must be "
"L, R, or C", aReader, line ); "L, R, or C", aReader, line );
// We are guaranteed to have a least one character here for older file formats // We are guaranteed to have a least one character here for older file formats
@ -1712,26 +1712,26 @@ SCH_COMPONENT* SCH_LEGACY_PLUGIN::loadComponent( LINE_READER& aReader )
else if( textAttrs[0] == 'B' ) else if( textAttrs[0] == 'B' )
field.SetVertJustify( GR_TEXT_VJUSTIFY_BOTTOM ); field.SetVertJustify( GR_TEXT_VJUSTIFY_BOTTOM );
else if( textAttrs[0] != 'C' ) else if( textAttrs[0] != 'C' )
SCH_PARSE_ERROR( "component field text vertical justification must be " SCH_PARSE_ERROR( "symbol field text vertical justification must be "
"B, T, or C", aReader, line ); "B, T, or C", aReader, line );
// Newer file formats include the bold and italics text attribute. // Newer file formats include the bold and italics text attribute.
if( textAttrs.Length() > 1 ) if( textAttrs.Length() > 1 )
{ {
if( textAttrs.Length() != 3 ) if( textAttrs.Length() != 3 )
SCH_PARSE_ERROR( _( "component field text attributes must be 3 characters wide" ), SCH_PARSE_ERROR( _( "symbol field text attributes must be 3 characters wide" ),
aReader, line ); aReader, line );
if( textAttrs[1] == 'I' ) if( textAttrs[1] == 'I' )
field.SetItalic( true ); field.SetItalic( true );
else if( textAttrs[1] != 'N' ) else if( textAttrs[1] != 'N' )
SCH_PARSE_ERROR( "component field text italics indicator must be I or N", SCH_PARSE_ERROR( "symbol field text italics indicator must be I or N",
aReader, line ); aReader, line );
if( textAttrs[2] == 'B' ) if( textAttrs[2] == 'B' )
field.SetBold( true ); field.SetBold( true );
else if( textAttrs[2] != 'N' ) else if( textAttrs[2] != 'N' )
SCH_PARSE_ERROR( "component field text bold indicator must be B or N", SCH_PARSE_ERROR( "symbol field text bold indicator must be B or N",
aReader, line ); aReader, line );
} }
} }
@ -1746,7 +1746,7 @@ SCH_COMPONENT* SCH_LEGACY_PLUGIN::loadComponent( LINE_READER& aReader )
else if( orientation == 'V' ) else if( orientation == 'V' )
field.SetTextAngle( TEXT_ANGLE_VERT ); field.SetTextAngle( TEXT_ANGLE_VERT );
else else
SCH_PARSE_ERROR( "component field orientation must be H or V", aReader, line ); SCH_PARSE_ERROR( "symbol field orientation must be H or V", aReader, line );
if( name.IsEmpty() ) if( name.IsEmpty() )
name = TEMPLATE_FIELDNAME::GetDefaultFieldName( index ); name = TEMPLATE_FIELDNAME::GetDefaultFieldName( index );
@ -1756,8 +1756,8 @@ SCH_COMPONENT* SCH_LEGACY_PLUGIN::loadComponent( LINE_READER& aReader )
else if( strCompare( "$EndComp", line ) ) else if( strCompare( "$EndComp", line ) )
{ {
// Ensure all flags (some are set by previous initializations) are reset: // Ensure all flags (some are set by previous initializations) are reset:
component->ClearFlags(); symbol->ClearFlags();
return component.release(); return symbol.release();
} }
else else
{ {
@ -1777,30 +1777,30 @@ SCH_COMPONENT* SCH_LEGACY_PLUGIN::loadComponent( LINE_READER& aReader )
transform.x1 = parseInt( aReader, line, &line ); transform.x1 = parseInt( aReader, line, &line );
if( transform.x1 < -1 || transform.x1 > 1 ) if( transform.x1 < -1 || transform.x1 > 1 )
SCH_PARSE_ERROR( "invalid component X1 transform value", aReader, line ); SCH_PARSE_ERROR( "invalid symbol X1 transform value", aReader, line );
transform.y1 = parseInt( aReader, line, &line ); transform.y1 = parseInt( aReader, line, &line );
if( transform.y1 < -1 || transform.y1 > 1 ) if( transform.y1 < -1 || transform.y1 > 1 )
SCH_PARSE_ERROR( "invalid component Y1 transform value", aReader, line ); SCH_PARSE_ERROR( "invalid symbol Y1 transform value", aReader, line );
transform.x2 = parseInt( aReader, line, &line ); transform.x2 = parseInt( aReader, line, &line );
if( transform.x2 < -1 || transform.x2 > 1 ) if( transform.x2 < -1 || transform.x2 > 1 )
SCH_PARSE_ERROR( "invalid component X2 transform value", aReader, line ); SCH_PARSE_ERROR( "invalid symbol X2 transform value", aReader, line );
transform.y2 = parseInt( aReader, line, &line ); transform.y2 = parseInt( aReader, line, &line );
if( transform.y2 < -1 || transform.y2 > 1 ) if( transform.y2 < -1 || transform.y2 > 1 )
SCH_PARSE_ERROR( "invalid component Y2 transform value", aReader, line ); SCH_PARSE_ERROR( "invalid symbol Y2 transform value", aReader, line );
component->SetTransform( transform ); symbol->SetTransform( transform );
} }
line = aReader.ReadLine(); line = aReader.ReadLine();
} }
SCH_PARSE_ERROR( "invalid component line", aReader, line ); SCH_PARSE_ERROR( "invalid symbol line", aReader, line );
return NULL; // Prevents compiler warning. Should never get here. return NULL; // Prevents compiler warning. Should never get here.
} }
@ -2057,11 +2057,10 @@ void SCH_LEGACY_PLUGIN::saveComponent( SCH_COMPONENT* aComponent )
{ {
/*format: /*format:
* AR Path="/140/2" Ref="C99" Part="1" * AR Path="/140/2" Ref="C99" Part="1"
* where 140 is the uid of the containing sheet * where 140 is the uid of the containing sheet and 2 is the timestamp of this symbol.
* and 2 is the timestamp of this component.
* (timestamps are actually 8 hex chars) * (timestamps are actually 8 hex chars)
* Ref is the conventional component reference for this 'path' * Ref is the conventional symbol reference designator for this 'path'
* Part is the conventional component part selection for this 'path' * Part is the conventional symbol unit selection for this 'path'
*/ */
wxString path = "/"; wxString path = "/";

View File

@ -150,7 +150,7 @@ private:
SCH_LINE* loadWire( LINE_READER& aReader ); SCH_LINE* loadWire( LINE_READER& aReader );
SCH_BUS_ENTRY_BASE* loadBusEntry( LINE_READER& aReader ); SCH_BUS_ENTRY_BASE* loadBusEntry( LINE_READER& aReader );
SCH_TEXT* loadText( LINE_READER& aReader ); SCH_TEXT* loadText( LINE_READER& aReader );
SCH_COMPONENT* loadComponent( LINE_READER& aReader ); SCH_COMPONENT* loadSymbol( LINE_READER& aReader );
std::shared_ptr<BUS_ALIAS> loadBusAlias( LINE_READER& aReader, SCH_SCREEN* aScreen ); std::shared_ptr<BUS_ALIAS> loadBusAlias( LINE_READER& aReader, SCH_SCREEN* aScreen );
void saveComponent( SCH_COMPONENT* aComponent ); void saveComponent( SCH_COMPONENT* aComponent );

View File

@ -760,7 +760,7 @@ void SCH_SHEET::Rotate( wxPoint aCenter )
} }
else else
{ {
// Move the fields to the new position because the component itself has moved. // Move the fields to the new position because the parent itself has moved.
for( SCH_FIELD& field : m_fields ) for( SCH_FIELD& field : m_fields )
{ {
wxPoint pos = field.GetTextPos(); wxPoint pos = field.GetTextPos();

View File

@ -56,7 +56,7 @@ std::string toUTFTildaText( const wxString& txt )
/** /**
* Used to draw a dummy shape when a LIB_PART is not found in library * Used to draw a dummy shape when a LIB_PART is not found in library
* *
* This component is a 400 mils square with the text ?? * This symbol is a 400 mils square with the text "??"
* DEF DUMMY U 0 40 Y Y 1 0 N * DEF DUMMY U 0 40 Y Y 1 0 N
* F0 "U" 0 -350 60 H V * F0 "U" 0 -350 60 H V
* F1 "DUMMY" 0 350 60 H V * F1 "DUMMY" 0 350 60 H V
@ -883,35 +883,35 @@ void SCH_COMPONENT::SwapData( SCH_ITEM* aItem )
wxCHECK_RET( (aItem != NULL) && (aItem->Type() == SCH_COMPONENT_T), wxCHECK_RET( (aItem != NULL) && (aItem->Type() == SCH_COMPONENT_T),
wxT( "Cannot swap data with invalid symbol." ) ); wxT( "Cannot swap data with invalid symbol." ) );
SCH_COMPONENT* component = (SCH_COMPONENT*) aItem; SCH_COMPONENT* symbol = (SCH_COMPONENT*) aItem;
std::swap( m_lib_id, component->m_lib_id ); std::swap( m_lib_id, symbol->m_lib_id );
LIB_PART* part = component->m_part.release(); LIB_PART* part = symbol->m_part.release();
component->m_part.reset( m_part.release() ); symbol->m_part.reset( m_part.release() );
component->UpdatePins(); symbol->UpdatePins();
m_part.reset( part ); m_part.reset( part );
UpdatePins(); UpdatePins();
std::swap( m_pos, component->m_pos ); std::swap( m_pos, symbol->m_pos );
std::swap( m_unit, component->m_unit ); std::swap( m_unit, symbol->m_unit );
std::swap( m_convert, component->m_convert ); std::swap( m_convert, symbol->m_convert );
m_fields.swap( component->m_fields ); // std::vector's swap() m_fields.swap( symbol->m_fields ); // std::vector's swap()
for( SCH_FIELD& field : component->m_fields ) for( SCH_FIELD& field : symbol->m_fields )
field.SetParent( component ); field.SetParent( symbol );
for( SCH_FIELD& field : m_fields ) for( SCH_FIELD& field : m_fields )
field.SetParent( this ); field.SetParent( this );
TRANSFORM tmp = m_transform; TRANSFORM tmp = m_transform;
m_transform = component->m_transform; m_transform = symbol->m_transform;
component->m_transform = tmp; symbol->m_transform = tmp;
std::swap( m_instanceReferences, component->m_instanceReferences ); std::swap( m_instanceReferences, symbol->m_instanceReferences );
std::swap( m_schLibSymbolName, component->m_schLibSymbolName ); std::swap( m_schLibSymbolName, symbol->m_schLibSymbolName );
} }

View File

@ -138,18 +138,16 @@ public:
void AssignFootprints( const std::string& aChangedSetOfReferences ); void AssignFootprints( const std::string& aChangedSetOfReferences );
/** /**
* Find a component in the schematic and an item in this component. * Find a symbol in the schematic and an item in this symobl.
* *
* @param aReference The component reference designator to find. * @param aReference The symbol reference designator to find.
* @param aSearchHierarchy If false, search the current sheet only. Otherwise, * @param aSearchHierarchy If false, search the current sheet only. Otherwise,
* the entire hierarchy * the entire hierarchy
* @param aSearchType A #SCH_SEARCH_T value used to determine what to search for. * @param aSearchType A #SCH_SEARCH_T value used to determine what to search for.
* @param aSearchText The text to search for, either in value, reference or elsewhere. * @param aSearchText The text to search for, either in value, reference or elsewhere.
*/ */
SCH_ITEM* FindComponentAndItem( const wxString& aReference, SCH_ITEM* FindSymbolAndItem( const wxString& aReference, bool aSearchHierarchy,
bool aSearchHierarchy, SCH_SEARCH_T aSearchType, const wxString& aSearchText );
SCH_SEARCH_T aSearchType,
const wxString& aSearchText );
private: private:
///< copy selection to clipboard ///< copy selection to clipboard
@ -192,8 +190,7 @@ private:
* field if \a aForceVisibilityState is true. * field if \a aForceVisibilityState is true.
* @return bool = true if success. * @return bool = true if success.
*/ */
bool processCmpToFootprintLinkFile( const wxString& aFullFilename, bool processCmpToFootprintLinkFile( const wxString& aFullFilename, bool aForceVisibilityState,
bool aForceVisibilityState,
bool aVisibilityState ); bool aVisibilityState );
///< Set up handlers for various events. ///< Set up handlers for various events.

View File

@ -514,8 +514,8 @@ void SYMBOL_EDITOR_EDIT_TOOL::editFieldProperties( LIB_FIELD* aField )
LIB_PART* parent = aField->GetParent(); LIB_PART* parent = aField->GetParent();
wxCHECK( parent, /* void */ ); wxCHECK( parent, /* void */ );
// Editing the component value field is equivalent to creating a new component based // Editing the symbol value field is equivalent to creating a new symbol based on the
// on the current component. Set the dialog message to inform the user. // current symbol. Set the dialog message to inform the user.
if( aField->GetId() == VALUE_FIELD ) if( aField->GetId() == VALUE_FIELD )
caption = _( "Edit Symbol Name" ); caption = _( "Edit Symbol Name" );
else else

View File

@ -35,7 +35,7 @@ class SYMBOL_LIBRARY_MANAGER;
class wxBoxSizer; class wxBoxSizer;
/** /**
* Library Editor pane with component tree and symbol library table selector. * Library Editor pane with symbol tree and symbol library table selector.
*/ */
class SYMBOL_TREE_PANE : public wxPanel class SYMBOL_TREE_PANE : public wxPanel
{ {
@ -53,7 +53,7 @@ protected:
void onUpdateUI( wxUpdateUIEvent& aEvent ); void onUpdateUI( wxUpdateUIEvent& aEvent );
SYMBOL_EDIT_FRAME* m_symbolEditFrame; SYMBOL_EDIT_FRAME* m_symbolEditFrame;
LIB_TREE* m_tree; ///< component search tree widget LIB_TREE* m_tree; ///< symbol search tree widget
SYMBOL_LIBRARY_MANAGER* m_libMgr; SYMBOL_LIBRARY_MANAGER* m_libMgr;
}; };

View File

@ -208,7 +208,7 @@ protected:
class LEGACY_NETLIST_READER : public NETLIST_READER class LEGACY_NETLIST_READER : public NETLIST_READER
{ {
/** /**
* Function loadComponent * Function loadSymbol
* read the \a aLine containing the description of a component from a legacy format * read the \a aLine containing the description of a component from a legacy format
* netlist and add it to the netlist. * netlist and add it to the netlist.
* *