Renaming: replace convert with body-style.

No functional changes.
This commit is contained in:
Jeff Young 2024-01-26 16:16:13 +00:00
parent c5bd62434b
commit ae735d3eb4
76 changed files with 9664 additions and 9509 deletions

View File

@ -159,8 +159,8 @@ DIALOG_FIELD_PROPERTIES::~DIALOG_FIELD_PROPERTIES()
void DIALOG_FIELD_PROPERTIES::init() void DIALOG_FIELD_PROPERTIES::init()
{ {
// Disable options for graphic text editing which are not needed for fields. // Disable options for graphic text editing which are not needed for fields.
m_CommonConvert->Show( false ); m_commonToAllBodyStyles->Show( false );
m_CommonUnit->Show( false ); m_commonToAllUnits->Show( false );
// Predefined fields cannot contain some chars and cannot be empty, so they need a // Predefined fields cannot contain some chars and cannot be empty, so they need a
// SCH_FIELD_VALIDATOR (m_StyledTextCtrl cannot use a SCH_FIELD_VALIDATOR). // SCH_FIELD_VALIDATOR (m_StyledTextCtrl cannot use a SCH_FIELD_VALIDATOR).

View File

@ -266,11 +266,11 @@ DIALOG_FIELD_PROPERTIES_BASE::DIALOG_FIELD_PROPERTIES_BASE( wxWindow* parent, wx
m_yPosUnits->Wrap( -1 ); m_yPosUnits->Wrap( -1 );
gbSizer1->Add( m_yPosUnits, wxGBPosition( 4, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxLEFT, 3 ); gbSizer1->Add( m_yPosUnits, wxGBPosition( 4, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxLEFT, 3 );
m_CommonUnit = new wxCheckBox( this, wxID_ANY, _("Common to all units"), wxDefaultPosition, wxDefaultSize, 0 ); m_commonToAllUnits = new wxCheckBox( this, wxID_ANY, _("Common to all units"), wxDefaultPosition, wxDefaultSize, 0 );
gbSizer1->Add( m_CommonUnit, wxGBPosition( 3, 4 ), wxGBSpan( 1, 1 ), wxRIGHT, 5 ); gbSizer1->Add( m_commonToAllUnits, wxGBPosition( 3, 4 ), wxGBSpan( 1, 1 ), wxRIGHT, 5 );
m_CommonConvert = new wxCheckBox( this, wxID_ANY, _("Common to all body styles"), wxDefaultPosition, wxDefaultSize, 0 ); m_commonToAllBodyStyles = new wxCheckBox( this, wxID_ANY, _("Common to all body styles"), wxDefaultPosition, wxDefaultSize, 0 );
gbSizer1->Add( m_CommonConvert, wxGBPosition( 4, 4 ), wxGBSpan( 1, 1 ), wxRIGHT, 5 ); gbSizer1->Add( m_commonToAllBodyStyles, wxGBPosition( 4, 4 ), wxGBSpan( 1, 1 ), wxRIGHT, 5 );
bPropertiesSizer->Add( gbSizer1, 1, wxEXPAND|wxRIGHT|wxLEFT, 5 ); bPropertiesSizer->Add( gbSizer1, 1, wxEXPAND|wxRIGHT|wxLEFT, 5 );

View File

@ -2773,7 +2773,7 @@
<property name="minimize_button">0</property> <property name="minimize_button">0</property>
<property name="minimum_size"></property> <property name="minimum_size"></property>
<property name="moveable">1</property> <property name="moveable">1</property>
<property name="name">m_CommonUnit</property> <property name="name">m_commonToAllUnits</property>
<property name="pane_border">1</property> <property name="pane_border">1</property>
<property name="pane_position"></property> <property name="pane_position"></property>
<property name="pane_size"></property> <property name="pane_size"></property>
@ -2841,7 +2841,7 @@
<property name="minimize_button">0</property> <property name="minimize_button">0</property>
<property name="minimum_size"></property> <property name="minimum_size"></property>
<property name="moveable">1</property> <property name="moveable">1</property>
<property name="name">m_CommonConvert</property> <property name="name">m_commonToAllBodyStyles</property>
<property name="pane_border">1</property> <property name="pane_border">1</property>
<property name="pane_position"></property> <property name="pane_position"></property>
<property name="pane_size"></property> <property name="pane_size"></property>

View File

@ -83,8 +83,8 @@ class DIALOG_FIELD_PROPERTIES_BASE : public DIALOG_SHIM
wxStaticText* m_yPosLabel; wxStaticText* m_yPosLabel;
wxTextCtrl* m_yPosCtrl; wxTextCtrl* m_yPosCtrl;
wxStaticText* m_yPosUnits; wxStaticText* m_yPosUnits;
wxCheckBox* m_CommonUnit; wxCheckBox* m_commonToAllUnits;
wxCheckBox* m_CommonConvert; wxCheckBox* m_commonToAllBodyStyles;
wxStdDialogButtonSizer* m_sdbSizerButtons; wxStdDialogButtonSizer* m_sdbSizerButtons;
wxButton* m_sdbSizerButtonsOK; wxButton* m_sdbSizerButtonsOK;
wxButton* m_sdbSizerButtonsCancel; wxButton* m_sdbSizerButtonsCancel;

View File

@ -226,12 +226,12 @@ public:
break; break;
case COL_DEMORGAN: case COL_DEMORGAN:
switch( pin->GetConvert() ) switch( pin->GetBodyStyle() )
{ {
case LIB_ITEM::LIB_CONVERT::BASE: case LIB_ITEM::BODY_STYLE::BASE:
val = DEMORGAN_STD; val = DEMORGAN_STD;
break; break;
case LIB_ITEM::LIB_CONVERT::DEMORGAN: case LIB_ITEM::BODY_STYLE::DEMORGAN:
val = DEMORGAN_ALT; val = DEMORGAN_ALT;
break; break;
default: default:
@ -437,11 +437,11 @@ public:
case COL_DEMORGAN: case COL_DEMORGAN:
if( value == DEMORGAN_STD ) if( value == DEMORGAN_STD )
pin->SetConvert( 1 ); pin->SetBodyStyle( 1 );
else if( value == DEMORGAN_ALT ) else if( value == DEMORGAN_ALT )
pin->SetConvert( 2 ); pin->SetBodyStyle( 2 );
else else
pin->SetConvert( 0 ); pin->SetBodyStyle( 0 );
break; break;
default: default:

View File

@ -126,18 +126,18 @@ bool DIALOG_LIB_SHAPE_PROPERTIES::TransferDataToWindow()
m_checkApplyToAllUnits->SetValue( m_checkApplyToAllUnits->SetValue(
symbol && symbol->GetUnitCount() > 1 && m_shape->GetUnit() == 0 ); symbol && symbol->GetUnitCount() > 1 && m_shape->GetUnit() == 0 );
m_checkApplyToAllUnits->Enable( symbol && symbol->GetUnitCount() > 1 ); m_checkApplyToAllUnits->Enable( symbol && symbol->GetUnitCount() > 1 );
m_checkApplyToAllConversions->SetValue( m_shape->GetConvert() == 0 ); m_checkApplyToAllBodyStyles->SetValue( m_shape->GetBodyStyle() == 0 );
bool enblConvOptStyle = symbol && symbol->HasConversion(); bool enableAlternateBodyStyle = symbol && symbol->HasAlternateBodyStyle();
// If a symbol contains no conversion-specific pins or graphic items, symbol->HasConversion() // If a symbol contains no body-style-specific pins or graphic items,
// will return false. // symbol->HasAlternateBodyStyle() will return false.
// But when creating a new symbol, with DeMorgan option set, the ApplyToAllConversions // But when creating a new symbol, with DeMorgan option set, the m_checkApplyToAllBodyStyles
// must be enabled in order to be able to create graphic items shared by all body styles. // must be enabled in order to be able to create graphic items shared by all body styles.
if( m_frame->GetShowDeMorgan() ) if( m_frame->GetShowDeMorgan() )
enblConvOptStyle = true; enableAlternateBodyStyle = true;
m_checkApplyToAllConversions->Enable( enblConvOptStyle ); m_checkApplyToAllBodyStyles->Enable( enableAlternateBodyStyle );
m_rbFillNone->Enable( true ); m_rbFillNone->Enable( true );
m_rbFillOutline->Enable( true ); m_rbFillOutline->Enable( true );
@ -282,9 +282,9 @@ bool DIALOG_LIB_SHAPE_PROPERTIES::TransferDataFromWindow()
m_shape->SetPrivate( m_privateCheckbox->GetValue() ); m_shape->SetPrivate( m_privateCheckbox->GetValue() );
if( GetApplyToAllConversions() ) if( GetApplyToAllConversions() )
m_shape->SetConvert( 0 ); m_shape->SetBodyStyle( 0 );
else else
m_shape->SetConvert( m_frame->GetConvert() ); m_shape->SetBodyStyle( m_frame->GetBodyStyle() );
if( GetApplyToAllUnits() ) if( GetApplyToAllUnits() )
m_shape->SetUnit( 0 ); m_shape->SetUnit( 0 );
@ -297,7 +297,7 @@ bool DIALOG_LIB_SHAPE_PROPERTIES::TransferDataFromWindow()
bool DIALOG_LIB_SHAPE_PROPERTIES::GetApplyToAllConversions() bool DIALOG_LIB_SHAPE_PROPERTIES::GetApplyToAllConversions()
{ {
return m_checkApplyToAllConversions->IsChecked(); return m_checkApplyToAllBodyStyles->IsChecked();
} }

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version 3.10.1-0-g8feb16b) // C++ code generated with wxFormBuilder (version 4.0.0-0-g0efcecf)
// http://www.wxformbuilder.org/ // http://www.wxformbuilder.org/
// //
// PLEASE DO *NOT* EDIT THIS FILE! // PLEASE DO *NOT* EDIT THIS FILE!
@ -154,8 +154,8 @@ DIALOG_LIB_SHAPE_PROPERTIES_BASE::DIALOG_LIB_SHAPE_PROPERTIES_BASE( wxWindow* pa
bBottom->Add( 0, 0, 1, wxEXPAND, 5 ); bBottom->Add( 0, 0, 1, wxEXPAND, 5 );
m_checkApplyToAllConversions = new wxCheckBox( this, wxID_ANY, _("Common to all body &styles (De Morgan)"), wxDefaultPosition, wxDefaultSize, 0 ); m_checkApplyToAllBodyStyles = new wxCheckBox( this, wxID_ANY, _("Common to all body &styles (De Morgan)"), wxDefaultPosition, wxDefaultSize, 0 );
bBottom->Add( m_checkApplyToAllConversions, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); bBottom->Add( m_checkApplyToAllBodyStyles, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
mainSizer->Add( bBottom, 0, wxEXPAND|wxALL, 10 ); mainSizer->Add( bBottom, 0, wxEXPAND|wxALL, 10 );

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version 3.10.1-0-g8feb16b) // C++ code generated with wxFormBuilder (version 4.0.0-0-g0efcecf)
// http://www.wxformbuilder.org/ // http://www.wxformbuilder.org/
// //
// PLEASE DO *NOT* EDIT THIS FILE! // PLEASE DO *NOT* EDIT THIS FILE!
@ -74,7 +74,7 @@ class DIALOG_LIB_SHAPE_PROPERTIES_BASE : public DIALOG_SHIM
COLOR_SWATCH* m_fillColorSwatch; COLOR_SWATCH* m_fillColorSwatch;
wxCheckBox* m_privateCheckbox; wxCheckBox* m_privateCheckbox;
wxCheckBox* m_checkApplyToAllUnits; wxCheckBox* m_checkApplyToAllUnits;
wxCheckBox* m_checkApplyToAllConversions; wxCheckBox* m_checkApplyToAllBodyStyles;
wxStdDialogButtonSizer* m_sdbSizer; wxStdDialogButtonSizer* m_sdbSizer;
wxButton* m_sdbSizerOK; wxButton* m_sdbSizerOK;
wxButton* m_sdbSizerCancel; wxButton* m_sdbSizerCancel;

View File

@ -174,11 +174,12 @@ bool DIALOG_LIB_SYMBOL_PROPERTIES::TransferDataToWindow()
m_OptionPartsInterchangeable->SetValue( !m_libEntry->UnitsLocked() || m_OptionPartsInterchangeable->SetValue( !m_libEntry->UnitsLocked() ||
m_libEntry->GetUnitCount() == 1 ); m_libEntry->GetUnitCount() == 1 );
// If a symbol contains no conversion-specific pins or graphic items, symbol->HasConversion() // If a symbol contains no body-style-specific pins or graphic items,
// will return false. But when editing a symbol with DeMorgan option set, we don't want to // symbol->HasAlternateBodyStyle() will return false.
// keep turning it off just because there aren't any conversion-specific items yet, so we force // But when editing a symbol with DeMorgan option set, we don't want to keep turning it off
// it to on if the parent frame has it enabled. // just because there aren't any body-style-specific items yet, so we force it to on if the
m_AsConvertButt->SetValue( m_Parent->GetShowDeMorgan() ); // parent frame has it enabled.
m_hasAlternateBodyStyles->SetValue( m_Parent->GetShowDeMorgan() );
m_OptionPower->SetValue( m_libEntry->IsPower() ); m_OptionPower->SetValue( m_libEntry->IsPower() );
@ -296,7 +297,7 @@ bool DIALOG_LIB_SYMBOL_PROPERTIES::Validate()
return false; return false;
} }
if( !m_AsConvertButt->GetValue() && m_libEntry->HasConversion() ) if( !m_hasAlternateBodyStyles->GetValue() && m_libEntry->HasAlternateBodyStyle() )
{ {
if( !IsOK( this, _( "Delete alternate body style (De Morgan) from symbol?" ) ) ) if( !IsOK( this, _( "Delete alternate body style (De Morgan) from symbol?" ) ) )
return false; return false;
@ -391,8 +392,8 @@ bool DIALOG_LIB_SYMBOL_PROPERTIES::TransferDataFromWindow()
m_libEntry->SetUnitCount( m_SelNumberOfUnits->GetValue() ); m_libEntry->SetUnitCount( m_SelNumberOfUnits->GetValue() );
m_libEntry->LockUnits( m_libEntry->GetUnitCount() > 1 && m_libEntry->LockUnits( m_libEntry->GetUnitCount() > 1 &&
!m_OptionPartsInterchangeable->GetValue() ); !m_OptionPartsInterchangeable->GetValue() );
m_libEntry->SetConversion( m_AsConvertButt->GetValue() ); m_libEntry->SetHasAlternateBodyStyle( m_hasAlternateBodyStyles->GetValue() );
m_Parent->SetShowDeMorgan( m_AsConvertButt->GetValue() ); m_Parent->SetShowDeMorgan( m_hasAlternateBodyStyles->GetValue() );
if( m_OptionPower->GetValue() ) if( m_OptionPower->GetValue() )
{ {
@ -429,9 +430,10 @@ bool DIALOG_LIB_SYMBOL_PROPERTIES::TransferDataFromWindow()
m_Parent->UpdateAfterSymbolProperties( &oldName ); m_Parent->UpdateAfterSymbolProperties( &oldName );
// It's possible that the symbol being edited has no pins, in which case there may be no // It's possible that the symbol being edited has no pins, in which case there may be no
// alternate body style objects causing #LIB_SYMBOL::HasCoversion() to always return false. // alternate body style objects causing #LIB_SYMBOL::HasAlternateBodyStyle() to always return
// This allows the user to edit the alternate body style just in case this condition occurs. // false. This allows the user to edit the alternate body style just in case this condition
m_Parent->SetShowDeMorgan( m_AsConvertButt->GetValue() ); // occurs.
m_Parent->SetShowDeMorgan( m_hasAlternateBodyStyles->GetValue() );
return true; return true;
} }

View File

@ -187,10 +187,10 @@ DIALOG_LIB_SYMBOL_PROPERTIES_BASE::DIALOG_LIB_SYMBOL_PROPERTIES_BASE( wxWindow*
sbSizerSymbol->Add( 0, 8, 0, wxEXPAND, 5 ); sbSizerSymbol->Add( 0, 8, 0, wxEXPAND, 5 );
m_AsConvertButt = new wxCheckBox( sbSizerSymbol->GetStaticBox(), wxID_ANY, _("Has alternate body style (De Morgan)"), wxDefaultPosition, wxDefaultSize, 0 ); m_hasAlternateBodyStyles = new wxCheckBox( sbSizerSymbol->GetStaticBox(), wxID_ANY, _("Has alternate body style (De Morgan)"), wxDefaultPosition, wxDefaultSize, 0 );
m_AsConvertButt->SetToolTip( _("Check this option if the symbol has an alternate body style for a De Morgan logic equivalence.\nFor instance, this should be checked for a NAND gate to provide an alternate representation as an OR gate with inverted inputs.") ); m_hasAlternateBodyStyles->SetToolTip( _("Check this option if the symbol has an alternate body style for a De Morgan logic equivalence.\nFor instance, this should be checked for a NAND gate to provide an alternate representation as an OR gate with inverted inputs.") );
sbSizerSymbol->Add( m_AsConvertButt, 0, wxBOTTOM|wxRIGHT|wxLEFT, 4 ); sbSizerSymbol->Add( m_hasAlternateBodyStyles, 0, wxBOTTOM|wxRIGHT|wxLEFT, 4 );
sbSizerSymbol->Add( 0, 7, 0, wxEXPAND, 5 ); sbSizerSymbol->Add( 0, 7, 0, wxEXPAND, 5 );
@ -391,7 +391,7 @@ DIALOG_LIB_SYMBOL_PROPERTIES_BASE::DIALOG_LIB_SYMBOL_PROPERTIES_BASE( wxWindow*
m_SelNumberOfUnits->Connect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( DIALOG_LIB_SYMBOL_PROPERTIES_BASE::OnSpinCtrl ), NULL, this ); m_SelNumberOfUnits->Connect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( DIALOG_LIB_SYMBOL_PROPERTIES_BASE::OnSpinCtrl ), NULL, this );
m_SelNumberOfUnits->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_LIB_SYMBOL_PROPERTIES_BASE::OnSpinCtrlText ), NULL, this ); m_SelNumberOfUnits->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_LIB_SYMBOL_PROPERTIES_BASE::OnSpinCtrlText ), NULL, this );
m_OptionPartsInterchangeable->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_LIB_SYMBOL_PROPERTIES_BASE::OnCheckBox ), NULL, this ); m_OptionPartsInterchangeable->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_LIB_SYMBOL_PROPERTIES_BASE::OnCheckBox ), NULL, this );
m_AsConvertButt->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_LIB_SYMBOL_PROPERTIES_BASE::OnCheckBox ), NULL, this ); m_hasAlternateBodyStyles->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_LIB_SYMBOL_PROPERTIES_BASE::OnCheckBox ), NULL, this );
m_OptionPower->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_LIB_SYMBOL_PROPERTIES_BASE::onPowerCheckBox ), NULL, this ); m_OptionPower->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_LIB_SYMBOL_PROPERTIES_BASE::onPowerCheckBox ), NULL, this );
m_ShowPinNumButt->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_LIB_SYMBOL_PROPERTIES_BASE::OnCheckBox ), NULL, this ); m_ShowPinNumButt->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_LIB_SYMBOL_PROPERTIES_BASE::OnCheckBox ), NULL, this );
m_ShowPinNameButt->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_LIB_SYMBOL_PROPERTIES_BASE::OnCheckBox ), NULL, this ); m_ShowPinNameButt->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_LIB_SYMBOL_PROPERTIES_BASE::OnCheckBox ), NULL, this );
@ -426,7 +426,7 @@ DIALOG_LIB_SYMBOL_PROPERTIES_BASE::~DIALOG_LIB_SYMBOL_PROPERTIES_BASE()
m_SelNumberOfUnits->Disconnect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( DIALOG_LIB_SYMBOL_PROPERTIES_BASE::OnSpinCtrl ), NULL, this ); m_SelNumberOfUnits->Disconnect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( DIALOG_LIB_SYMBOL_PROPERTIES_BASE::OnSpinCtrl ), NULL, this );
m_SelNumberOfUnits->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_LIB_SYMBOL_PROPERTIES_BASE::OnSpinCtrlText ), NULL, this ); m_SelNumberOfUnits->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_LIB_SYMBOL_PROPERTIES_BASE::OnSpinCtrlText ), NULL, this );
m_OptionPartsInterchangeable->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_LIB_SYMBOL_PROPERTIES_BASE::OnCheckBox ), NULL, this ); m_OptionPartsInterchangeable->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_LIB_SYMBOL_PROPERTIES_BASE::OnCheckBox ), NULL, this );
m_AsConvertButt->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_LIB_SYMBOL_PROPERTIES_BASE::OnCheckBox ), NULL, this ); m_hasAlternateBodyStyles->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_LIB_SYMBOL_PROPERTIES_BASE::OnCheckBox ), NULL, this );
m_OptionPower->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_LIB_SYMBOL_PROPERTIES_BASE::onPowerCheckBox ), NULL, this ); m_OptionPower->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_LIB_SYMBOL_PROPERTIES_BASE::onPowerCheckBox ), NULL, this );
m_ShowPinNumButt->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_LIB_SYMBOL_PROPERTIES_BASE::OnCheckBox ), NULL, this ); m_ShowPinNumButt->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_LIB_SYMBOL_PROPERTIES_BASE::OnCheckBox ), NULL, this );
m_ShowPinNameButt->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_LIB_SYMBOL_PROPERTIES_BASE::OnCheckBox ), NULL, this ); m_ShowPinNameButt->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_LIB_SYMBOL_PROPERTIES_BASE::OnCheckBox ), NULL, this );

View File

@ -1318,7 +1318,7 @@
<property name="minimize_button">0</property> <property name="minimize_button">0</property>
<property name="minimum_size"></property> <property name="minimum_size"></property>
<property name="moveable">1</property> <property name="moveable">1</property>
<property name="name">m_AsConvertButt</property> <property name="name">m_hasAlternateBodyStyles</property>
<property name="pane_border">1</property> <property name="pane_border">1</property>
<property name="pane_position"></property> <property name="pane_position"></property>
<property name="pane_size"></property> <property name="pane_size"></property>

View File

@ -66,7 +66,7 @@ class DIALOG_LIB_SYMBOL_PROPERTIES_BASE : public DIALOG_SHIM
wxStaticText* m_staticTextNbUnits; wxStaticText* m_staticTextNbUnits;
wxSpinCtrl* m_SelNumberOfUnits; wxSpinCtrl* m_SelNumberOfUnits;
wxCheckBox* m_OptionPartsInterchangeable; wxCheckBox* m_OptionPartsInterchangeable;
wxCheckBox* m_AsConvertButt; wxCheckBox* m_hasAlternateBodyStyles;
wxCheckBox* m_OptionPower; wxCheckBox* m_OptionPower;
wxCheckBox* m_ShowPinNumButt; wxCheckBox* m_ShowPinNumButt;
wxCheckBox* m_ShowPinNameButt; wxCheckBox* m_ShowPinNameButt;

View File

@ -122,7 +122,7 @@ DIALOG_LIB_TEXT_PROPERTIES::~DIALOG_LIB_TEXT_PROPERTIES()
bool DIALOG_LIB_TEXT_PROPERTIES::TransferDataToWindow() bool DIALOG_LIB_TEXT_PROPERTIES::TransferDataToWindow()
{ {
wxCHECK( m_CommonUnit, false ); wxCHECK( m_commonToAllUnits, false );
LIB_SYMBOL* symbol = nullptr; LIB_SYMBOL* symbol = nullptr;
@ -143,9 +143,9 @@ bool DIALOG_LIB_TEXT_PROPERTIES::TransferDataToWindow()
m_bold->Check( m_graphicText->IsBold() ); m_bold->Check( m_graphicText->IsBold() );
m_privateCheckbox->SetValue( m_graphicText->IsPrivate() ); m_privateCheckbox->SetValue( m_graphicText->IsPrivate() );
m_CommonUnit->SetValue( m_commonToAllUnits->SetValue( symbol && symbol->GetUnitCount() > 1
symbol && symbol->GetUnitCount() > 1 && m_graphicText->GetUnit() == 0 ); && m_graphicText->GetUnit() == 0 );
m_CommonConvert->SetValue( m_graphicText->GetConvert() == 0 ); m_commonToAllBodyStyles->SetValue( m_graphicText->GetBodyStyle() == 0 );
if( m_graphicText->GetTextAngle().IsHorizontal() ) if( m_graphicText->GetTextAngle().IsHorizontal() )
m_horizontal->Check(); m_horizontal->Check();
@ -176,8 +176,8 @@ bool DIALOG_LIB_TEXT_PROPERTIES::TransferDataToWindow()
m_textSize.SetValue( schIUScale.MilsToIU( cfg->m_Defaults.text_size ) ); m_textSize.SetValue( schIUScale.MilsToIU( cfg->m_Defaults.text_size ) );
m_CommonUnit->SetValue( symbol->GetUnitCount() > 1 && !tools->GetDrawSpecificUnit() ); m_commonToAllUnits->SetValue( symbol->GetUnitCount() > 1 && !tools->GetDrawSpecificUnit() );
m_CommonConvert->SetValue( !tools->GetDrawSpecificConvert() ); m_commonToAllBodyStyles->SetValue( !tools->GetDrawSpecificBodyStyle() );
if( tools->GetLastTextAngle().IsHorizontal() ) if( tools->GetLastTextAngle().IsHorizontal() )
m_horizontal->Check(); m_horizontal->Check();
@ -185,7 +185,7 @@ bool DIALOG_LIB_TEXT_PROPERTIES::TransferDataToWindow()
m_vertical->Check(); m_vertical->Check();
} }
m_CommonUnit->Enable( symbol && symbol->GetUnitCount() > 1 ); m_commonToAllUnits->Enable( symbol && symbol->GetUnitCount() > 1 );
return true; return true;
} }
@ -252,15 +252,15 @@ bool DIALOG_LIB_TEXT_PROPERTIES::TransferDataFromWindow()
m_graphicText->SetPrivate( m_privateCheckbox->GetValue() ); m_graphicText->SetPrivate( m_privateCheckbox->GetValue() );
if( !m_CommonUnit->GetValue() ) if( !m_commonToAllUnits->GetValue() )
m_graphicText->SetUnit( m_parent->GetUnit() ); m_graphicText->SetUnit( m_parent->GetUnit() );
else else
m_graphicText->SetUnit( 0 ); m_graphicText->SetUnit( 0 );
if( !m_CommonConvert->GetValue() ) if( !m_commonToAllBodyStyles->GetValue() )
m_graphicText->SetConvert( m_parent->GetConvert() ); m_graphicText->SetBodyStyle( m_parent->GetBodyStyle() );
else else
m_graphicText->SetConvert( 0 ); m_graphicText->SetBodyStyle( 0 );
m_graphicText->SetItalic( m_italic->IsChecked() ); m_graphicText->SetItalic( m_italic->IsChecked() );
m_graphicText->SetBold( m_bold->IsChecked() ); m_graphicText->SetBold( m_bold->IsChecked() );
@ -283,8 +283,8 @@ bool DIALOG_LIB_TEXT_PROPERTIES::TransferDataFromWindow()
// Record settings used for next time: // Record settings used for next time:
auto* tools = m_parent->GetToolManager()->GetTool<SYMBOL_EDITOR_DRAWING_TOOLS>(); auto* tools = m_parent->GetToolManager()->GetTool<SYMBOL_EDITOR_DRAWING_TOOLS>();
tools->SetLastTextAngle( m_graphicText->GetTextAngle() ); tools->SetLastTextAngle( m_graphicText->GetTextAngle() );
tools->SetDrawSpecificConvert( !m_CommonConvert->GetValue() ); tools->SetDrawSpecificBodyStyle( !m_commonToAllBodyStyles->GetValue() );
tools->SetDrawSpecificUnit( !m_CommonUnit->GetValue() ); tools->SetDrawSpecificUnit( !m_commonToAllUnits->GetValue() );
} }
m_parent->SetMsgPanel( m_graphicText ); m_parent->SetMsgPanel( m_graphicText );

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version 3.10.1-0-g8feb16b) // C++ code generated with wxFormBuilder (version 4.0.0-0-g0efcecf)
// http://www.wxformbuilder.org/ // http://www.wxformbuilder.org/
// //
// PLEASE DO *NOT* EDIT THIS FILE! // PLEASE DO *NOT* EDIT THIS FILE!
@ -196,11 +196,11 @@ DIALOG_LIB_TEXT_PROPERTIES_BASE::DIALOG_LIB_TEXT_PROPERTIES_BASE( wxWindow* pare
m_privateCheckbox = new wxCheckBox( this, wxID_ANY, _("Private to Symbol Editor"), wxDefaultPosition, wxDefaultSize, 0 ); m_privateCheckbox = new wxCheckBox( this, wxID_ANY, _("Private to Symbol Editor"), wxDefaultPosition, wxDefaultSize, 0 );
gbSizer1->Add( m_privateCheckbox, wxGBPosition( 5, 0 ), wxGBSpan( 1, 2 ), wxLEFT, 5 ); gbSizer1->Add( m_privateCheckbox, wxGBPosition( 5, 0 ), wxGBSpan( 1, 2 ), wxLEFT, 5 );
m_CommonUnit = new wxCheckBox( this, wxID_ANY, _("Common to all units"), wxDefaultPosition, wxDefaultSize, 0 ); m_commonToAllUnits = new wxCheckBox( this, wxID_ANY, _("Common to all units"), wxDefaultPosition, wxDefaultSize, 0 );
gbSizer1->Add( m_CommonUnit, wxGBPosition( 5, 3 ), wxGBSpan( 1, 1 ), wxLEFT, 100 ); gbSizer1->Add( m_commonToAllUnits, wxGBPosition( 5, 3 ), wxGBSpan( 1, 1 ), wxLEFT, 100 );
m_CommonConvert = new wxCheckBox( this, wxID_ANY, _("Common to all body styles"), wxDefaultPosition, wxDefaultSize, 0 ); m_commonToAllBodyStyles = new wxCheckBox( this, wxID_ANY, _("Common to all body styles"), wxDefaultPosition, wxDefaultSize, 0 );
gbSizer1->Add( m_CommonConvert, wxGBPosition( 6, 3 ), wxGBSpan( 1, 1 ), wxLEFT, 100 ); gbSizer1->Add( m_commonToAllBodyStyles, wxGBPosition( 6, 3 ), wxGBSpan( 1, 1 ), wxLEFT, 100 );
bPropertiesSizer->Add( gbSizer1, 1, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 ); bPropertiesSizer->Add( gbSizer1, 1, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version 3.10.1-0-g8feb16b) // C++ code generated with wxFormBuilder (version 4.0.0-0-g0efcecf)
// http://www.wxformbuilder.org/ // http://www.wxformbuilder.org/
// //
// PLEASE DO *NOT* EDIT THIS FILE! // PLEASE DO *NOT* EDIT THIS FILE!
@ -71,8 +71,8 @@ class DIALOG_LIB_TEXT_PROPERTIES_BASE : public DIALOG_SHIM
wxPanel* m_panelBorderColor1; wxPanel* m_panelBorderColor1;
COLOR_SWATCH* m_textColorSwatch; COLOR_SWATCH* m_textColorSwatch;
wxCheckBox* m_privateCheckbox; wxCheckBox* m_privateCheckbox;
wxCheckBox* m_CommonUnit; wxCheckBox* m_commonToAllUnits;
wxCheckBox* m_CommonConvert; wxCheckBox* m_commonToAllBodyStyles;
wxStdDialogButtonSizer* m_sdbSizerButtons; wxStdDialogButtonSizer* m_sdbSizerButtons;
wxButton* m_sdbSizerButtonsOK; wxButton* m_sdbSizerButtonsOK;
wxButton* m_sdbSizerButtonsCancel; wxButton* m_sdbSizerButtonsCancel;

View File

@ -213,10 +213,10 @@ bool DIALOG_LIB_TEXTBOX_PROPERTIES::TransferDataToWindow()
m_fillColorSwatch->Enable( m_currentText->IsFilled() ); m_fillColorSwatch->Enable( m_currentText->IsFilled() );
m_privateCheckbox->SetValue( m_currentText->IsPrivate() ); m_privateCheckbox->SetValue( m_currentText->IsPrivate() );
m_CommonUnit->SetValue( m_commonToAllUnits->SetValue(
symbol && symbol->GetUnitCount() > 1 && m_currentText->GetUnit() == 0 ); symbol && symbol->GetUnitCount() > 1 && m_currentText->GetUnit() == 0 );
m_CommonUnit->Enable( symbol && symbol->GetUnitCount() > 1 ); m_commonToAllUnits->Enable( symbol && symbol->GetUnitCount() > 1 );
m_CommonConvert->SetValue( m_currentText->GetConvert() == 0 ); m_commonToAllBodyStyles->SetValue( m_currentText->GetBodyStyle() == 0 );
return true; return true;
} }
@ -340,21 +340,21 @@ bool DIALOG_LIB_TEXTBOX_PROPERTIES::TransferDataFromWindow()
m_currentText->SetPrivate( m_privateCheckbox->GetValue() ); m_currentText->SetPrivate( m_privateCheckbox->GetValue() );
if( !m_CommonUnit->GetValue() ) if( !m_commonToAllUnits->GetValue() )
m_currentText->SetUnit( m_frame->GetUnit() ); m_currentText->SetUnit( m_frame->GetUnit() );
else else
m_currentText->SetUnit( 0 ); m_currentText->SetUnit( 0 );
if( !m_CommonConvert->GetValue() ) if( !m_commonToAllBodyStyles->GetValue() )
m_currentText->SetConvert( m_frame->GetConvert() ); m_currentText->SetBodyStyle( m_frame->GetBodyStyle() );
else else
m_currentText->SetConvert( 0 ); m_currentText->SetBodyStyle( 0 );
// Record settings used for next time: // Record settings used for next time:
auto* tools = m_frame->GetToolManager()->GetTool<SYMBOL_EDITOR_DRAWING_TOOLS>(); auto* tools = m_frame->GetToolManager()->GetTool<SYMBOL_EDITOR_DRAWING_TOOLS>();
tools->SetLastTextAngle( m_currentText->GetTextAngle() ); tools->SetLastTextAngle( m_currentText->GetTextAngle() );
tools->SetDrawSpecificConvert( !m_CommonConvert->GetValue() ); tools->SetDrawSpecificBodyStyle( !m_commonToAllBodyStyles->GetValue() );
tools->SetDrawSpecificUnit( !m_CommonUnit->GetValue() ); tools->SetDrawSpecificUnit( !m_commonToAllUnits->GetValue() );
m_frame->SetMsgPanel( m_currentText ); m_frame->SetMsgPanel( m_currentText );

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version 3.10.1-0-g8feb16b) // C++ code generated with wxFormBuilder (version 4.0.0-0-g0efcecf)
// http://www.wxformbuilder.org/ // http://www.wxformbuilder.org/
// //
// PLEASE DO *NOT* EDIT THIS FILE! // PLEASE DO *NOT* EDIT THIS FILE!
@ -285,11 +285,11 @@ DIALOG_LIB_TEXTBOX_PROPERTIES_BASE::DIALOG_LIB_TEXTBOX_PROPERTIES_BASE( wxWindow
m_privateCheckbox = new wxCheckBox( this, wxID_ANY, _("Private to symbol editor"), wxDefaultPosition, wxDefaultSize, 0 ); m_privateCheckbox = new wxCheckBox( this, wxID_ANY, _("Private to symbol editor"), wxDefaultPosition, wxDefaultSize, 0 );
m_textEntrySizer->Add( m_privateCheckbox, wxGBPosition( 9, 0 ), wxGBSpan( 1, 2 ), 0, 5 ); m_textEntrySizer->Add( m_privateCheckbox, wxGBPosition( 9, 0 ), wxGBSpan( 1, 2 ), 0, 5 );
m_CommonUnit = new wxCheckBox( this, wxID_ANY, _("Common to all units"), wxDefaultPosition, wxDefaultSize, 0 ); m_commonToAllUnits = new wxCheckBox( this, wxID_ANY, _("Common to all units"), wxDefaultPosition, wxDefaultSize, 0 );
m_textEntrySizer->Add( m_CommonUnit, wxGBPosition( 9, 4 ), wxGBSpan( 1, 2 ), 0, 5 ); m_textEntrySizer->Add( m_commonToAllUnits, wxGBPosition( 9, 4 ), wxGBSpan( 1, 2 ), 0, 5 );
m_CommonConvert = new wxCheckBox( this, wxID_ANY, _("Common to all body styles"), wxDefaultPosition, wxDefaultSize, 0 ); m_commonToAllBodyStyles = new wxCheckBox( this, wxID_ANY, _("Common to all body styles"), wxDefaultPosition, wxDefaultSize, 0 );
m_textEntrySizer->Add( m_CommonConvert, wxGBPosition( 10, 4 ), wxGBSpan( 1, 2 ), wxRIGHT, 90 ); m_textEntrySizer->Add( m_commonToAllBodyStyles, wxGBPosition( 10, 4 ), wxGBSpan( 1, 2 ), wxRIGHT, 90 );
m_textEntrySizer->AddGrowableCol( 3 ); m_textEntrySizer->AddGrowableCol( 3 );

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version 3.10.1-0-g8feb16b) // C++ code generated with wxFormBuilder (version 4.0.0-0-g0efcecf)
// http://www.wxformbuilder.org/ // http://www.wxformbuilder.org/
// //
// PLEASE DO *NOT* EDIT THIS FILE! // PLEASE DO *NOT* EDIT THIS FILE!
@ -88,8 +88,8 @@ class DIALOG_LIB_TEXTBOX_PROPERTIES_BASE : public DIALOG_SHIM
wxPanel* m_panelFillColor; wxPanel* m_panelFillColor;
COLOR_SWATCH* m_fillColorSwatch; COLOR_SWATCH* m_fillColorSwatch;
wxCheckBox* m_privateCheckbox; wxCheckBox* m_privateCheckbox;
wxCheckBox* m_CommonUnit; wxCheckBox* m_commonToAllUnits;
wxCheckBox* m_CommonConvert; wxCheckBox* m_commonToAllBodyStyles;
wxStdDialogButtonSizer* m_sdbSizer1; wxStdDialogButtonSizer* m_sdbSizer1;
wxButton* m_sdbSizer1OK; wxButton* m_sdbSizer1OK;
wxButton* m_sdbSizer1Cancel; wxButton* m_sdbSizer1Cancel;

View File

@ -197,7 +197,7 @@ DIALOG_PIN_PROPERTIES::DIALOG_PIN_PROPERTIES( SYMBOL_EDIT_FRAME* parent, LIB_PIN
OnAddAlternate( aEvent ); OnAddAlternate( aEvent );
} ) ); } ) );
if( aPin->GetParent()->HasConversion() ) if( aPin->GetParent()->HasAlternateBodyStyle() )
{ {
m_alternatesTurndown->Collapse(); m_alternatesTurndown->Collapse();
m_alternatesTurndown->Disable(); m_alternatesTurndown->Disable();
@ -268,7 +268,7 @@ bool DIALOG_PIN_PROPERTIES::TransferDataToWindow()
m_pinLength.SetValue( m_pin->GetLength() ); m_pinLength.SetValue( m_pin->GetLength() );
m_checkApplyToAllParts->Enable( m_pin->GetParent()->IsMulti() ); m_checkApplyToAllParts->Enable( m_pin->GetParent()->IsMulti() );
m_checkApplyToAllParts->SetValue( m_pin->GetParent()->IsMulti() && m_pin->GetUnit() == 0 ); m_checkApplyToAllParts->SetValue( m_pin->GetParent()->IsMulti() && m_pin->GetUnit() == 0 );
m_checkApplyToAllConversions->SetValue( m_pin->GetConvert() == 0 ); m_checkApplyToAllBodyStyles->SetValue( m_pin->GetBodyStyle() == 0 );
m_checkShow->SetValue( m_pin->IsVisible() ); m_checkShow->SetValue( m_pin->IsVisible() );
m_dummyPin->SetVisible( m_pin->IsVisible() ); m_dummyPin->SetVisible( m_pin->IsVisible() );
@ -360,7 +360,7 @@ bool DIALOG_PIN_PROPERTIES::TransferDataFromWindow()
m_pin->ChangeLength( m_pinLength.GetValue() ); m_pin->ChangeLength( m_pinLength.GetValue() );
m_pin->SetType( m_choiceElectricalType->GetPinTypeSelection() ); m_pin->SetType( m_choiceElectricalType->GetPinTypeSelection() );
m_pin->SetShape( m_choiceStyle->GetPinShapeSelection() ); m_pin->SetShape( m_choiceStyle->GetPinShapeSelection() );
m_pin->SetConvert( m_checkApplyToAllConversions->GetValue() ? 0 : m_frame->GetConvert() ); m_pin->SetBodyStyle( m_checkApplyToAllBodyStyles->GetValue() ? 0 : m_frame->GetBodyStyle() );
m_pin->SetUnit( m_checkApplyToAllParts->GetValue() ? 0 : m_frame->GetUnit() ); m_pin->SetUnit( m_checkApplyToAllParts->GetValue() ? 0 : m_frame->GetUnit() );
m_pin->SetVisible( m_checkShow->GetValue() ); m_pin->SetVisible( m_checkShow->GetValue() );

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version 3.10.1-0-g8feb16b) // C++ code generated with wxFormBuilder (version 4.0.0-0-g0efcecf)
// http://www.wxformbuilder.org/ // http://www.wxformbuilder.org/
// //
// PLEASE DO *NOT* EDIT THIS FILE! // PLEASE DO *NOT* EDIT THIS FILE!
@ -154,8 +154,8 @@ DIALOG_PIN_PROPERTIES_BASE::DIALOG_PIN_PROPERTIES_BASE( wxWindow* parent, wxWind
m_checkApplyToAllParts = new wxCheckBox( this, wxID_ANY, _("Common to all &units in symbol"), wxDefaultPosition, wxDefaultSize, 0 ); m_checkApplyToAllParts = new wxCheckBox( this, wxID_ANY, _("Common to all &units in symbol"), wxDefaultPosition, wxDefaultSize, 0 );
checkboxesSizer->Add( m_checkApplyToAllParts, 0, wxBOTTOM, 3 ); checkboxesSizer->Add( m_checkApplyToAllParts, 0, wxBOTTOM, 3 );
m_checkApplyToAllConversions = new wxCheckBox( this, wxID_ANY, _("Common to all body &styles (De Morgan)"), wxDefaultPosition, wxDefaultSize, 0 ); m_checkApplyToAllBodyStyles = new wxCheckBox( this, wxID_ANY, _("Common to all body &styles (De Morgan)"), wxDefaultPosition, wxDefaultSize, 0 );
checkboxesSizer->Add( m_checkApplyToAllConversions, 0, wxBOTTOM, 3 ); checkboxesSizer->Add( m_checkApplyToAllBodyStyles, 0, wxBOTTOM, 3 );
checkboxesSizer->Add( 0, 0, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 ); checkboxesSizer->Add( 0, 0, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 );
@ -283,7 +283,7 @@ DIALOG_PIN_PROPERTIES_BASE::DIALOG_PIN_PROPERTIES_BASE( wxWindow* parent, wxWind
m_choiceStyle->Connect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( DIALOG_PIN_PROPERTIES_BASE::OnPropertiesChange ), NULL, this ); m_choiceStyle->Connect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( DIALOG_PIN_PROPERTIES_BASE::OnPropertiesChange ), NULL, this );
m_choiceOrientation->Connect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( DIALOG_PIN_PROPERTIES_BASE::OnPropertiesChange ), NULL, this ); m_choiceOrientation->Connect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( DIALOG_PIN_PROPERTIES_BASE::OnPropertiesChange ), NULL, this );
m_checkApplyToAllParts->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PIN_PROPERTIES_BASE::OnPropertiesChange ), NULL, this ); m_checkApplyToAllParts->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PIN_PROPERTIES_BASE::OnPropertiesChange ), NULL, this );
m_checkApplyToAllConversions->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PIN_PROPERTIES_BASE::OnPropertiesChange ), NULL, this ); m_checkApplyToAllBodyStyles->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PIN_PROPERTIES_BASE::OnPropertiesChange ), NULL, this );
m_checkShow->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PIN_PROPERTIES_BASE::OnPropertiesChange ), NULL, this ); m_checkShow->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PIN_PROPERTIES_BASE::OnPropertiesChange ), NULL, this );
m_panelShowPin->Connect( wxEVT_PAINT, wxPaintEventHandler( DIALOG_PIN_PROPERTIES_BASE::OnPaintShowPanel ), NULL, this ); m_panelShowPin->Connect( wxEVT_PAINT, wxPaintEventHandler( DIALOG_PIN_PROPERTIES_BASE::OnPaintShowPanel ), NULL, this );
m_alternatesTurndown->Connect( wxEVT_COLLAPSIBLEPANE_CHANGED, wxCollapsiblePaneEventHandler( DIALOG_PIN_PROPERTIES_BASE::OnCollapsiblePaneChange ), NULL, this ); m_alternatesTurndown->Connect( wxEVT_COLLAPSIBLEPANE_CHANGED, wxCollapsiblePaneEventHandler( DIALOG_PIN_PROPERTIES_BASE::OnCollapsiblePaneChange ), NULL, this );
@ -305,7 +305,7 @@ DIALOG_PIN_PROPERTIES_BASE::~DIALOG_PIN_PROPERTIES_BASE()
m_choiceStyle->Disconnect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( DIALOG_PIN_PROPERTIES_BASE::OnPropertiesChange ), NULL, this ); m_choiceStyle->Disconnect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( DIALOG_PIN_PROPERTIES_BASE::OnPropertiesChange ), NULL, this );
m_choiceOrientation->Disconnect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( DIALOG_PIN_PROPERTIES_BASE::OnPropertiesChange ), NULL, this ); m_choiceOrientation->Disconnect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( DIALOG_PIN_PROPERTIES_BASE::OnPropertiesChange ), NULL, this );
m_checkApplyToAllParts->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PIN_PROPERTIES_BASE::OnPropertiesChange ), NULL, this ); m_checkApplyToAllParts->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PIN_PROPERTIES_BASE::OnPropertiesChange ), NULL, this );
m_checkApplyToAllConversions->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PIN_PROPERTIES_BASE::OnPropertiesChange ), NULL, this ); m_checkApplyToAllBodyStyles->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PIN_PROPERTIES_BASE::OnPropertiesChange ), NULL, this );
m_checkShow->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PIN_PROPERTIES_BASE::OnPropertiesChange ), NULL, this ); m_checkShow->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PIN_PROPERTIES_BASE::OnPropertiesChange ), NULL, this );
m_panelShowPin->Disconnect( wxEVT_PAINT, wxPaintEventHandler( DIALOG_PIN_PROPERTIES_BASE::OnPaintShowPanel ), NULL, this ); m_panelShowPin->Disconnect( wxEVT_PAINT, wxPaintEventHandler( DIALOG_PIN_PROPERTIES_BASE::OnPaintShowPanel ), NULL, this );
m_alternatesTurndown->Disconnect( wxEVT_COLLAPSIBLEPANE_CHANGED, wxCollapsiblePaneEventHandler( DIALOG_PIN_PROPERTIES_BASE::OnCollapsiblePaneChange ), NULL, this ); m_alternatesTurndown->Disconnect( wxEVT_COLLAPSIBLEPANE_CHANGED, wxCollapsiblePaneEventHandler( DIALOG_PIN_PROPERTIES_BASE::OnCollapsiblePaneChange ), NULL, this );

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version 3.10.1-0-g8feb16b) // C++ code generated with wxFormBuilder (version 4.0.0-0-g0efcecf)
// http://www.wxformbuilder.org/ // http://www.wxformbuilder.org/
// //
// PLEASE DO *NOT* EDIT THIS FILE! // PLEASE DO *NOT* EDIT THIS FILE!
@ -77,7 +77,7 @@ class DIALOG_PIN_PROPERTIES_BASE : public DIALOG_SHIM
wxStaticText* m_nameSizeUnits; wxStaticText* m_nameSizeUnits;
wxStaticText* m_numberSizeUnits; wxStaticText* m_numberSizeUnits;
wxCheckBox* m_checkApplyToAllParts; wxCheckBox* m_checkApplyToAllParts;
wxCheckBox* m_checkApplyToAllConversions; wxCheckBox* m_checkApplyToAllBodyStyles;
wxCheckBox* m_checkShow; wxCheckBox* m_checkShow;
wxStaticText* m_staticText16; wxStaticText* m_staticText16;
wxPanel* m_panelShowPin; wxPanel* m_panelShowPin;

View File

@ -83,7 +83,7 @@ DIALOG_SIM_MODEL<T_symbol, T_field>::DIALOG_SIM_MODEL( wxWindow* aParent, EDA_BA
for( LIB_PIN* pin : aSymbol.GetAllLibPins() ) for( LIB_PIN* pin : aSymbol.GetAllLibPins() )
{ {
// De Morgan conversions are equivalences, not additional items to simulate // De Morgan conversions are equivalences, not additional items to simulate
if( !pin->GetParent()->HasConversion() || pin->GetConvert() < 2 ) if( !pin->GetParent()->HasAlternateBodyStyle() || pin->GetBodyStyle() < 2 )
m_sortedPartPins.push_back( pin ); m_sortedPartPins.push_back( pin );
} }

View File

@ -348,7 +348,7 @@ DIALOG_SYMBOL_PROPERTIES::DIALOG_SYMBOL_PROPERTIES( SCH_EDIT_FRAME* aParent,
m_shownColumns = m_fieldsGrid->GetShownColumns(); m_shownColumns = m_fieldsGrid->GetShownColumns();
} }
if( m_part && m_part->HasConversion() ) if( m_part && m_part->HasAlternateBodyStyle() )
{ {
// DeMorgan conversions are a subclass of alternate pin assignments, so don't allow // DeMorgan conversions are a subclass of alternate pin assignments, so don't allow
// free-form alternate assignments as well. (We won't know how to map the alternates // free-form alternate assignments as well. (We won't know how to map the alternates
@ -499,9 +499,9 @@ bool DIALOG_SYMBOL_PROPERTIES::TransferDataToWindow()
m_unitChoice->Enable( false ); m_unitChoice->Enable( false );
} }
if( m_part && m_part->HasConversion() ) if( m_part && m_part->HasAlternateBodyStyle() )
{ {
if( m_symbol->GetConvert() > LIB_ITEM::LIB_CONVERT::BASE ) if( m_symbol->GetBodyStyle() > LIB_ITEM::BODY_STYLE::BASE )
m_cbAlternateSymbol->SetValue( true ); m_cbAlternateSymbol->SetValue( true );
} }
else else
@ -696,9 +696,9 @@ bool DIALOG_SYMBOL_PROPERTIES::TransferDataFromWindow()
// For symbols with multiple shapes (De Morgan representation) Set the selected shape: // For symbols with multiple shapes (De Morgan representation) Set the selected shape:
if( m_cbAlternateSymbol->IsEnabled() && m_cbAlternateSymbol->GetValue() ) if( m_cbAlternateSymbol->IsEnabled() && m_cbAlternateSymbol->GetValue() )
m_symbol->SetConvert( LIB_ITEM::LIB_CONVERT::DEMORGAN ); m_symbol->SetBodyStyle( LIB_ITEM::BODY_STYLE::DEMORGAN );
else else
m_symbol->SetConvert( LIB_ITEM::LIB_CONVERT::BASE ); m_symbol->SetBodyStyle( LIB_ITEM::BODY_STYLE::BASE );
//Set the part selection in multiple part per package //Set the part selection in multiple part per package
int unit_selection = m_unitChoice->IsEnabled() ? m_unitChoice->GetSelection() + 1 : 1; int unit_selection = m_unitChoice->IsEnabled() ? m_unitChoice->GetSelection() + 1 : 1;

View File

@ -378,7 +378,7 @@ void PANEL_EESCHEMA_COLOR_SETTINGS::createPreviewItems()
LIB_SHAPE* comp_body = new LIB_SHAPE( symbol, SHAPE_T::POLY ); LIB_SHAPE* comp_body = new LIB_SHAPE( symbol, SHAPE_T::POLY );
comp_body->SetUnit( 0 ); comp_body->SetUnit( 0 );
comp_body->SetConvert( 0 ); comp_body->SetBodyStyle( 0 );
comp_body->SetStroke( STROKE_PARAMS( schIUScale.MilsToIU( 10 ), LINE_STYLE::SOLID ) ); comp_body->SetStroke( STROKE_PARAMS( schIUScale.MilsToIU( 10 ), LINE_STYLE::SOLID ) );
comp_body->SetFillMode( FILL_T::FILLED_WITH_BG_BODYCOLOR ); comp_body->SetFillMode( FILL_T::FILLED_WITH_BG_BODYCOLOR );
comp_body->AddPoint( MILS_POINT( p.x - 200, p.y + 200 ) ); comp_body->AddPoint( MILS_POINT( p.x - 200, p.y + 200 ) );

View File

@ -87,7 +87,7 @@ const std::vector<KICAD_T> EE_COLLECTOR::FieldOwners = {
INSPECT_RESULT EE_COLLECTOR::Inspect( EDA_ITEM* aItem, void* aTestData ) INSPECT_RESULT EE_COLLECTOR::Inspect( EDA_ITEM* aItem, void* aTestData )
{ {
if( m_Unit || m_Convert ) if( m_Unit || m_BodyStyle )
{ {
LIB_ITEM* lib_item = dynamic_cast<LIB_ITEM*>( aItem ); LIB_ITEM* lib_item = dynamic_cast<LIB_ITEM*>( aItem );
@ -99,7 +99,7 @@ INSPECT_RESULT EE_COLLECTOR::Inspect( EDA_ITEM* aItem, void* aTestData )
if( m_Unit && lib_item->GetUnit() && lib_item->GetUnit() != m_Unit ) if( m_Unit && lib_item->GetUnit() && lib_item->GetUnit() != m_Unit )
return INSPECT_RESULT::CONTINUE; return INSPECT_RESULT::CONTINUE;
if( m_Convert && lib_item->GetConvert() && lib_item->GetConvert() != m_Convert ) if( m_BodyStyle && lib_item->GetBodyStyle() && lib_item->GetBodyStyle() != m_BodyStyle )
return INSPECT_RESULT::CONTINUE; return INSPECT_RESULT::CONTINUE;
} }
} }
@ -122,8 +122,8 @@ void EE_COLLECTOR::Collect( SCH_SCREEN* aScreen, const std::vector<KICAD_T>& aFi
Empty(); // empty the collection just in case Empty(); // empty the collection just in case
SetScanTypes( aFilterList ); SetScanTypes( aFilterList );
m_Unit = aUnit; m_Unit = aUnit;
m_Convert = aConvert; m_BodyStyle = aConvert;
// remember where the snapshot was taken from and pass refPos to the Inspect() function. // remember where the snapshot was taken from and pass refPos to the Inspect() function.
SetRefPos( aPos ); SetRefPos( aPos );
@ -143,7 +143,7 @@ void EE_COLLECTOR::Collect( LIB_ITEMS_CONTAINER& aItems, const std::vector<KICAD
SetScanTypes( aFilterList ); SetScanTypes( aFilterList );
m_Unit = aUnit; m_Unit = aUnit;
m_Convert = aConvert; m_BodyStyle = aConvert;
// remember where the snapshot was taken from and pass refPos to the Inspect() function. // remember where the snapshot was taken from and pass refPos to the Inspect() function.
SetRefPos( aPos ); SetRefPos( aPos );

View File

@ -44,9 +44,9 @@ public:
static const std::vector<KICAD_T> FieldOwners; static const std::vector<KICAD_T> FieldOwners;
EE_COLLECTOR( const std::vector<KICAD_T>& aScanTypes = { SCH_LOCATE_ANY_T } ) : EE_COLLECTOR( const std::vector<KICAD_T>& aScanTypes = { SCH_LOCATE_ANY_T } ) :
m_Unit( 0 ), m_Unit( 0 ),
m_Convert( 0 ), m_BodyStyle( 0 ),
m_ShowPinElectricalTypes( false ) m_ShowPinElectricalTypes( false )
{ {
SetScanTypes( aScanTypes ); SetScanTypes( aScanTypes );
} }
@ -102,7 +102,7 @@ public:
public: public:
int m_Unit; // Fixed symbol unit filter (for symbol editor) int m_Unit; // Fixed symbol unit filter (for symbol editor)
int m_Convert; // Fixed DeMorgan filter (for symbol editor) int m_BodyStyle; // Fixed DeMorgan filter (for symbol editor)
bool m_ShowPinElectricalTypes; bool m_ShowPinElectricalTypes;
}; };

View File

@ -692,7 +692,7 @@ int EESCHEMA_JOBS_HANDLER::doSymExportSvg( JOB_SYM_EXPORT_SVG* aSvgJob,
// iterate from unit 1, unit 0 would be "all units" which we don't want // iterate from unit 1, unit 0 would be "all units" which we don't want
for( int unit = 1; unit < symbol->GetUnitCount() + 1; unit++ ) for( int unit = 1; unit < symbol->GetUnitCount() + 1; unit++ )
{ {
for( int convert = 1; convert < ( symbol->HasConversion() ? 2 : 1 ) + 1; ++convert ) for( int bodyStyle = 1; bodyStyle < ( symbol->HasAlternateBodyStyle() ? 2 : 1 ) + 1; ++bodyStyle )
{ {
wxString filename; wxString filename;
wxFileName fn; wxFileName fn;
@ -715,7 +715,7 @@ int EESCHEMA_JOBS_HANDLER::doSymExportSvg( JOB_SYM_EXPORT_SVG* aSvgJob,
{ {
filename += wxString::Format( "_%d", unit ); filename += wxString::Format( "_%d", unit );
if( convert == 2 ) if( bodyStyle == 2 )
filename += wxS( "_demorgan" ); filename += wxS( "_demorgan" );
fn.SetName( filename ); fn.SetName( filename );
@ -725,7 +725,7 @@ int EESCHEMA_JOBS_HANDLER::doSymExportSvg( JOB_SYM_EXPORT_SVG* aSvgJob,
} }
else else
{ {
if( convert == 2 ) if( bodyStyle == 2 )
filename += wxS( "_demorgan" ); filename += wxS( "_demorgan" );
fn.SetName( filename ); fn.SetName( filename );
@ -735,7 +735,7 @@ int EESCHEMA_JOBS_HANDLER::doSymExportSvg( JOB_SYM_EXPORT_SVG* aSvgJob,
} }
// Get the symbol bounding box to fit the plot page to it // Get the symbol bounding box to fit the plot page to it
BOX2I symbolBB = symbol->Flatten()->GetUnitBoundingBox( unit, convert, false ); BOX2I symbolBB = symbol->Flatten()->GetUnitBoundingBox( unit, bodyStyle, false );
PAGE_INFO pageInfo( PAGE_INFO::Custom ); PAGE_INFO pageInfo( PAGE_INFO::Custom );
pageInfo.SetHeightMils( schIUScale.IUToMils( symbolBB.GetHeight() * 1.2 ) ); pageInfo.SetHeightMils( schIUScale.IUToMils( symbolBB.GetHeight() * 1.2 ) );
pageInfo.SetWidthMils( schIUScale.IUToMils( symbolBB.GetWidth() * 1.2 ) ); pageInfo.SetWidthMils( schIUScale.IUToMils( symbolBB.GetWidth() * 1.2 ) );
@ -775,12 +775,12 @@ int EESCHEMA_JOBS_HANDLER::doSymExportSvg( JOB_SYM_EXPORT_SVG* aSvgJob,
plotPos.y = pageInfo.GetHeightIU( schIUScale.IU_PER_MILS ) / 2; plotPos.y = pageInfo.GetHeightIU( schIUScale.IU_PER_MILS ) / 2;
// note, we want the fields from the original symbol pointer (in case of non-alias) // note, we want the fields from the original symbol pointer (in case of non-alias)
symbolToPlot->Plot( plotter, unit, convert, background, plotPos, temp, false ); symbolToPlot->Plot( plotter, unit, bodyStyle, background, plotPos, temp, false );
symbol->PlotLibFields( plotter, unit, convert, background, plotPos, temp, false, symbol->PlotLibFields( plotter, unit, bodyStyle, background, plotPos, temp, false,
aSvgJob->m_includeHiddenFields ); aSvgJob->m_includeHiddenFields );
symbolToPlot->Plot( plotter, unit, convert, !background, plotPos, temp, false ); symbolToPlot->Plot( plotter, unit, bodyStyle, !background, plotPos, temp, false );
symbol->PlotLibFields( plotter, unit, convert, !background, plotPos, temp, false, symbol->PlotLibFields( plotter, unit, bodyStyle, !background, plotPos, temp, false,
aSvgJob->m_includeHiddenFields ); aSvgJob->m_includeHiddenFields );
plotter->EndPlot(); plotter->EndPlot();

View File

@ -498,7 +498,7 @@ int ERC_TESTER::TestMissingUnits()
{ {
if( refList.GetItem( ii ).GetUnit() == missing_unit ) if( refList.GetItem( ii ).GetUnit() == missing_unit )
{ {
convert = refList.GetItem( ii ).GetSymbol()->GetConvert(); convert = refList.GetItem( ii ).GetSymbol()->GetBodyStyle();
break; break;
} }
} }

View File

@ -35,10 +35,10 @@ const int fill_tab[3] = { 'N', 'F', 'f' };
LIB_ITEM::LIB_ITEM( KICAD_T aType, LIB_SYMBOL* aSymbol, int aUnit, int aConvert ) : LIB_ITEM::LIB_ITEM( KICAD_T aType, LIB_SYMBOL* aSymbol, int aUnit, int aConvert ) :
EDA_ITEM( aSymbol, aType ), EDA_ITEM( aSymbol, aType ),
m_unit( aUnit ), m_unit( aUnit ),
m_convert( aConvert ), m_bodyStyle( aConvert ),
m_private( false ) m_private( false )
{ {
} }
@ -56,9 +56,9 @@ void LIB_ITEM::GetMsgPanelInfo( EDA_DRAW_FRAME* aFrame, std::vector<MSG_PANEL_IT
aList.emplace_back( _( "Unit" ), msg ); aList.emplace_back( _( "Unit" ), msg );
if( m_convert == LIB_ITEM::LIB_CONVERT::BASE ) if( m_bodyStyle == LIB_ITEM::BODY_STYLE::BASE )
msg = _( "no" ); msg = _( "no" );
else if( m_convert == LIB_ITEM::LIB_CONVERT::DEMORGAN ) else if( m_bodyStyle == LIB_ITEM::BODY_STYLE::DEMORGAN )
msg = _( "yes" ); msg = _( "yes" );
else else
msg = wxT( "?" ); msg = wxT( "?" );
@ -79,8 +79,8 @@ int LIB_ITEM::compare( const LIB_ITEM& aOther, int aCompareFlags ) const
if( !( aCompareFlags & COMPARE_FLAGS::UNIT ) && m_unit != aOther.m_unit ) if( !( aCompareFlags & COMPARE_FLAGS::UNIT ) && m_unit != aOther.m_unit )
return m_unit - aOther.m_unit; return m_unit - aOther.m_unit;
if( !( aCompareFlags & COMPARE_FLAGS::UNIT ) && m_convert != aOther.m_convert ) if( !( aCompareFlags & COMPARE_FLAGS::UNIT ) && m_bodyStyle != aOther.m_bodyStyle )
return m_convert - aOther.m_convert; return m_bodyStyle - aOther.m_bodyStyle;
if( IsPrivate() != aOther.IsPrivate() ) if( IsPrivate() != aOther.IsPrivate() )
return IsPrivate() < aOther.IsPrivate(); return IsPrivate() < aOther.IsPrivate();

View File

@ -73,8 +73,12 @@ public:
virtual ~LIB_ITEM() { } virtual ~LIB_ITEM() { }
// Define the enums for basic // Define the enums for basic body styles
enum LIB_CONVERT : int { BASE = 1, DEMORGAN = 2 }; enum BODY_STYLE : int
{
BASE = 1,
DEMORGAN = 2
};
/** /**
* The list of flags used by the #compare function. * The list of flags used by the #compare function.
@ -224,7 +228,7 @@ public:
if( m_unit != aItem.m_unit ) if( m_unit != aItem.m_unit )
similarity *= 0.9; similarity *= 0.9;
if( m_convert != aItem.m_convert ) if( m_bodyStyle != aItem.m_bodyStyle )
similarity *= 0.9; similarity *= 0.9;
if( m_private != aItem.m_private ) if( m_private != aItem.m_private )
@ -335,8 +339,8 @@ public:
void SetUnit( int aUnit ) { m_unit = aUnit; } void SetUnit( int aUnit ) { m_unit = aUnit; }
int GetUnit() const { return m_unit; } int GetUnit() const { return m_unit; }
void SetConvert( int aConvert ) { m_convert = aConvert; } void SetBodyStyle( int aBodyStyle ) { m_bodyStyle = aBodyStyle; }
int GetConvert() const { return m_convert; } int GetBodyStyle() const { return m_bodyStyle; }
void SetPrivate( bool aPrivate ) { m_private = aPrivate; } void SetPrivate( bool aPrivate ) { m_private = aPrivate; }
bool IsPrivate() const { return m_private; } bool IsPrivate() const { return m_private; }
@ -398,7 +402,7 @@ protected:
* Shape identification for alternate body styles. Set 0 if the item is common to all * Shape identification for alternate body styles. Set 0 if the item is common to all
* body styles. This is typially used for representing DeMorgan variants in KiCad. * body styles. This is typially used for representing DeMorgan variants in KiCad.
*/ */
int m_convert; int m_bodyStyle;
/** /**
* Private items are shown only in the Symbol Editor. * Private items are shown only in the Symbol Editor.

View File

@ -123,7 +123,7 @@ LIB_PIN::LIB_PIN( LIB_SYMBOL* aParent ) :
LIB_PIN::LIB_PIN( LIB_SYMBOL* aParent, const wxString& aName, const wxString& aNumber, LIB_PIN::LIB_PIN( LIB_SYMBOL* aParent, const wxString& aName, const wxString& aNumber,
PIN_ORIENTATION aOrientation, ELECTRICAL_PINTYPE aPinType, int aLength, PIN_ORIENTATION aOrientation, ELECTRICAL_PINTYPE aPinType, int aLength,
int aNameTextSize, int aNumTextSize, int aConvert, const VECTOR2I& aPos, int aNameTextSize, int aNumTextSize, int aBodyStyle, const VECTOR2I& aPos,
int aUnit ) : int aUnit ) :
LIB_ITEM( LIB_PIN_T, aParent ), LIB_ITEM( LIB_PIN_T, aParent ),
m_position( aPos ), m_position( aPos ),
@ -138,7 +138,7 @@ LIB_PIN::LIB_PIN( LIB_SYMBOL* aParent, const wxString& aName, const wxString& aN
SetName( aName ); SetName( aName );
SetNumber( aNumber ); SetNumber( aNumber );
SetUnit( aUnit ); SetUnit( aUnit );
SetConvert( aConvert ); SetBodyStyle( aBodyStyle );
} }

View File

@ -355,7 +355,7 @@ int LIB_SYMBOL::Compare( const LIB_SYMBOL& aRhs, int aCompareFlags, REPORTER* aR
{ {
const LIB_PIN* aPin = static_cast<const LIB_PIN*>( aPinItem ); const LIB_PIN* aPin = static_cast<const LIB_PIN*>( aPinItem );
const LIB_PIN* bPin = aRhs.GetPin( aPin->GetNumber(), aPin->GetUnit(), const LIB_PIN* bPin = aRhs.GetPin( aPin->GetNumber(), aPin->GetUnit(),
aPin->GetConvert() ); aPin->GetBodyStyle() );
if( !bPin ) if( !bPin )
{ {
@ -777,7 +777,7 @@ wxString LIB_SYMBOL::LetterSubReference( int aUnit, int aFirstId )
void LIB_SYMBOL::PrintBackground( const RENDER_SETTINGS* aSettings, const VECTOR2I& aOffset, void LIB_SYMBOL::PrintBackground( const RENDER_SETTINGS* aSettings, const VECTOR2I& aOffset,
int aUnit, int aConvert, const LIB_SYMBOL_OPTIONS& aOpts, int aUnit, int aBodyStyle, const LIB_SYMBOL_OPTIONS& aOpts,
bool aDimmed ) bool aDimmed )
{ {
/* draw background for filled items using background option /* draw background for filled items using background option
@ -800,7 +800,7 @@ void LIB_SYMBOL::PrintBackground( const RENDER_SETTINGS* aSettings, const VECTOR
if( aUnit && shape.m_unit && ( shape.m_unit != aUnit ) ) if( aUnit && shape.m_unit && ( shape.m_unit != aUnit ) )
continue; continue;
if( aConvert && shape.m_convert && ( shape.m_convert != aConvert ) ) if( aBodyStyle && shape.m_bodyStyle && ( shape.m_bodyStyle != aBodyStyle ) )
continue; continue;
if( shape.GetFillMode() == FILL_T::FILLED_WITH_BG_BODYCOLOR ) if( shape.GetFillMode() == FILL_T::FILLED_WITH_BG_BODYCOLOR )
@ -812,7 +812,7 @@ void LIB_SYMBOL::PrintBackground( const RENDER_SETTINGS* aSettings, const VECTOR
void LIB_SYMBOL::Print( const RENDER_SETTINGS* aSettings, const VECTOR2I& aOffset, int aUnit, void LIB_SYMBOL::Print( const RENDER_SETTINGS* aSettings, const VECTOR2I& aOffset, int aUnit,
int aConvert, const LIB_SYMBOL_OPTIONS& aOpts, bool aDimmed ) int aBodyStyle, const LIB_SYMBOL_OPTIONS& aOpts, bool aDimmed )
{ {
for( LIB_ITEM& item : m_drawings ) for( LIB_ITEM& item : m_drawings )
@ -825,7 +825,7 @@ void LIB_SYMBOL::Print( const RENDER_SETTINGS* aSettings, const VECTOR2I& aOffse
if( aUnit && item.m_unit && ( item.m_unit != aUnit ) ) if( aUnit && item.m_unit && ( item.m_unit != aUnit ) )
continue; continue;
if( aConvert && item.m_convert && ( item.m_convert != aConvert ) ) if( aBodyStyle && item.m_bodyStyle && ( item.m_bodyStyle != aBodyStyle ) )
continue; continue;
if( item.Type() == LIB_FIELD_T ) if( item.Type() == LIB_FIELD_T )
@ -862,7 +862,7 @@ void LIB_SYMBOL::Print( const RENDER_SETTINGS* aSettings, const VECTOR2I& aOffse
} }
void LIB_SYMBOL::Plot( PLOTTER *aPlotter, int aUnit, int aConvert, bool aBackground, void LIB_SYMBOL::Plot( PLOTTER *aPlotter, int aUnit, int aBodyStyle, bool aBackground,
const VECTOR2I &aOffset, const TRANSFORM &aTransform, bool aDimmed ) const const VECTOR2I &aOffset, const TRANSFORM &aTransform, bool aDimmed ) const
{ {
wxASSERT( aPlotter != nullptr ); wxASSERT( aPlotter != nullptr );
@ -895,7 +895,7 @@ void LIB_SYMBOL::Plot( PLOTTER *aPlotter, int aUnit, int aConvert, bool aBackgro
if( aUnit && item.m_unit && ( item.m_unit != aUnit ) ) if( aUnit && item.m_unit && ( item.m_unit != aUnit ) )
continue; continue;
if( aConvert && item.m_convert && ( item.m_convert != aConvert ) ) if( aBodyStyle && item.m_bodyStyle && ( item.m_bodyStyle != aBodyStyle ) )
continue; continue;
item.Plot( aPlotter, aBackground, aOffset, aTransform, aDimmed ); item.Plot( aPlotter, aBackground, aOffset, aTransform, aDimmed );
@ -903,7 +903,7 @@ void LIB_SYMBOL::Plot( PLOTTER *aPlotter, int aUnit, int aConvert, bool aBackgro
} }
void LIB_SYMBOL::PlotLibFields( PLOTTER* aPlotter, int aUnit, int aConvert, bool aBackground, void LIB_SYMBOL::PlotLibFields( PLOTTER* aPlotter, int aUnit, int aBodyStyle, bool aBackground,
const VECTOR2I& aOffset, const TRANSFORM& aTransform, bool aDimmed, const VECTOR2I& aOffset, const TRANSFORM& aTransform, bool aDimmed,
bool aPlotHidden ) bool aPlotHidden )
{ {
@ -934,7 +934,7 @@ void LIB_SYMBOL::PlotLibFields( PLOTTER* aPlotter, int aUnit, int aConvert, bool
if( aUnit && item.m_unit && ( item.m_unit != aUnit ) ) if( aUnit && item.m_unit && ( item.m_unit != aUnit ) )
continue; continue;
if( aConvert && item.m_convert && ( item.m_convert != aConvert ) ) if( aBodyStyle && item.m_bodyStyle && ( item.m_bodyStyle != aBodyStyle ) )
continue; continue;
LIB_FIELD& field = (LIB_FIELD&) item; LIB_FIELD& field = (LIB_FIELD&) item;
@ -1034,13 +1034,13 @@ void LIB_SYMBOL::AddDrawItem( LIB_ITEM* aItem, bool aSort )
} }
void LIB_SYMBOL::GetPins( LIB_PINS& aList, int aUnit, int aConvert ) const void LIB_SYMBOL::GetPins( LIB_PINS& aList, int aUnit, int aBodyStyle ) const
{ {
/* Notes: /* Notes:
* when aUnit == 0: no unit filtering * when aUnit == 0: no unit filtering
* when aConvert == 0: no convert (shape selection) filtering * when aBodyStyle == 0: no body style filtering
* when m_unit == 0, the body item is common to units * when m_unit == 0, the item is common to all units
* when m_convert == 0, the body item is common to shapes * when m_bodyStyle == 0, the item is common to all body styles
*/ */
LIB_SYMBOL_SPTR parent = m_parent.lock(); LIB_SYMBOL_SPTR parent = m_parent.lock();
@ -1053,7 +1053,7 @@ void LIB_SYMBOL::GetPins( LIB_PINS& aList, int aUnit, int aConvert ) const
continue; continue;
// De Morgan variant filtering: // De Morgan variant filtering:
if( aConvert && item.m_convert && ( item.m_convert != aConvert ) ) if( aBodyStyle && item.m_bodyStyle && ( item.m_bodyStyle != aBodyStyle ) )
continue; continue;
aList.push_back( (LIB_PIN*) &item ); aList.push_back( (LIB_PIN*) &item );
@ -1079,11 +1079,11 @@ int LIB_SYMBOL::GetPinCount()
} }
LIB_PIN* LIB_SYMBOL::GetPin( const wxString& aNumber, int aUnit, int aConvert ) const LIB_PIN* LIB_SYMBOL::GetPin( const wxString& aNumber, int aUnit, int aBodyStyle ) const
{ {
LIB_PINS pinList; LIB_PINS pinList;
GetPins( pinList, aUnit, aConvert ); GetPins( pinList, aUnit, aBodyStyle );
for( LIB_PIN* pin : pinList ) for( LIB_PIN* pin : pinList )
{ {
@ -1101,13 +1101,13 @@ bool LIB_SYMBOL::PinsConflictWith( const LIB_SYMBOL& aOtherPart, bool aTestNums,
bool aTestType, bool aTestOrientation, bool aTestLength ) const bool aTestType, bool aTestOrientation, bool aTestLength ) const
{ {
LIB_PINS thisPinList; LIB_PINS thisPinList;
GetPins( thisPinList, /* aUnit */ 0, /* aConvert */ 0 ); GetPins( thisPinList, /* aUnit */ 0, /* aBodyStyle */ 0 );
for( const LIB_PIN* eachThisPin : thisPinList ) for( const LIB_PIN* eachThisPin : thisPinList )
{ {
wxASSERT( eachThisPin ); wxASSERT( eachThisPin );
LIB_PINS otherPinList; LIB_PINS otherPinList;
aOtherPart.GetPins( otherPinList, /* aUnit */ 0, /* aConvert */ 0 ); aOtherPart.GetPins( otherPinList, /* aUnit */ 0, /* aBodyStyle */ 0 );
bool foundMatch = false; bool foundMatch = false;
for( const LIB_PIN* eachOtherPin : otherPinList ) for( const LIB_PIN* eachOtherPin : otherPinList )
@ -1119,7 +1119,7 @@ bool LIB_SYMBOL::PinsConflictWith( const LIB_SYMBOL& aOtherPart, bool aTestNums,
continue; continue;
// Same body stype? // Same body stype?
if( eachThisPin->GetConvert() != eachOtherPin->GetConvert() ) if( eachThisPin->GetBodyStyle() != eachOtherPin->GetBodyStyle() )
continue; continue;
// Same position? // Same position?
@ -1164,7 +1164,7 @@ bool LIB_SYMBOL::PinsConflictWith( const LIB_SYMBOL& aOtherPart, bool aTestNums,
} }
const BOX2I LIB_SYMBOL::GetUnitBoundingBox( int aUnit, int aConvert, const BOX2I LIB_SYMBOL::GetUnitBoundingBox( int aUnit, int aBodyStyle,
bool aIgnoreHiddenFields ) const bool aIgnoreHiddenFields ) const
{ {
BOX2I bBox; // Start with a fresh BOX2I so the Merge algorithm works BOX2I bBox; // Start with a fresh BOX2I so the Merge algorithm works
@ -1179,7 +1179,7 @@ const BOX2I LIB_SYMBOL::GetUnitBoundingBox( int aUnit, int aConvert,
continue; continue;
} }
if( item.m_convert > 0 && aConvert > 0 && aConvert != item.m_convert ) if( item.m_bodyStyle > 0 && aBodyStyle > 0 && aBodyStyle != item.m_bodyStyle )
continue; continue;
if( aIgnoreHiddenFields && ( item.Type() == LIB_FIELD_T ) if( aIgnoreHiddenFields && ( item.Type() == LIB_FIELD_T )
@ -1207,7 +1207,7 @@ void LIB_SYMBOL::ViewGetLayers( int aLayers[], int& aCount ) const
} }
const BOX2I LIB_SYMBOL::GetBodyBoundingBox( int aUnit, int aConvert, bool aIncludePins, const BOX2I LIB_SYMBOL::GetBodyBoundingBox( int aUnit, int aBodyStyle, bool aIncludePins,
bool aIncludePrivateItems ) const bool aIncludePrivateItems ) const
{ {
BOX2I bbox; BOX2I bbox;
@ -1217,7 +1217,7 @@ const BOX2I LIB_SYMBOL::GetBodyBoundingBox( int aUnit, int aConvert, bool aInclu
if( item.m_unit > 0 && aUnit > 0 && aUnit != item.m_unit ) if( item.m_unit > 0 && aUnit > 0 && aUnit != item.m_unit )
continue; continue;
if( item.m_convert > 0 && aConvert > 0 && aConvert != item.m_convert ) if( item.m_bodyStyle > 0 && aBodyStyle > 0 && aBodyStyle != item.m_bodyStyle )
continue; continue;
if( item.IsPrivate() && !aIncludePrivateItems ) if( item.IsPrivate() && !aIncludePrivateItems )
@ -1495,11 +1495,11 @@ void LIB_SYMBOL::RemoveDuplicateDrawItems()
} }
bool LIB_SYMBOL::HasConversion() const bool LIB_SYMBOL::HasAlternateBodyStyle() const
{ {
for( const LIB_ITEM& item : m_drawings ) for( const LIB_ITEM& item : m_drawings )
{ {
if( item.m_convert > LIB_ITEM::LIB_CONVERT::BASE ) if( item.m_bodyStyle > LIB_ITEM::BODY_STYLE::BASE )
return true; return true;
} }
@ -1507,7 +1507,7 @@ bool LIB_SYMBOL::HasConversion() const
{ {
for( const LIB_ITEM& item : parent->GetDrawItems() ) for( const LIB_ITEM& item : parent->GetDrawItems() )
{ {
if( item.m_convert > LIB_ITEM::LIB_CONVERT::BASE ) if( item.m_bodyStyle > LIB_ITEM::BODY_STYLE::BASE )
return true; return true;
} }
} }
@ -1549,13 +1549,13 @@ void LIB_SYMBOL::ClearEditFlags()
} }
LIB_ITEM* LIB_SYMBOL::LocateDrawItem( int aUnit, int aConvert, KICAD_T aType, LIB_ITEM* LIB_SYMBOL::LocateDrawItem( int aUnit, int aBodyStyle, KICAD_T aType,
const VECTOR2I& aPoint ) const VECTOR2I& aPoint )
{ {
for( LIB_ITEM& item : m_drawings ) for( LIB_ITEM& item : m_drawings )
{ {
if( ( aUnit && item.m_unit && aUnit != item.m_unit ) if( ( aUnit && item.m_unit && aUnit != item.m_unit )
|| ( aConvert && item.m_convert && aConvert != item.m_convert ) || ( aBodyStyle && item.m_bodyStyle && aBodyStyle != item.m_bodyStyle )
|| ( item.Type() != aType && aType != TYPE_NOT_INIT ) ) || ( item.Type() != aType && aType != TYPE_NOT_INIT ) )
{ {
continue; continue;
@ -1569,7 +1569,7 @@ LIB_ITEM* LIB_SYMBOL::LocateDrawItem( int aUnit, int aConvert, KICAD_T aType,
} }
LIB_ITEM* LIB_SYMBOL::LocateDrawItem( int aUnit, int aConvert, KICAD_T aType, LIB_ITEM* LIB_SYMBOL::LocateDrawItem( int aUnit, int aBodyStyle, KICAD_T aType,
const VECTOR2I& aPoint, const TRANSFORM& aTransform ) const VECTOR2I& aPoint, const TRANSFORM& aTransform )
{ {
/* we use LocateDrawItem( int aUnit, int convert, KICAD_T type, const /* we use LocateDrawItem( int aUnit, int convert, KICAD_T type, const
@ -1581,7 +1581,7 @@ LIB_ITEM* LIB_SYMBOL::LocateDrawItem( int aUnit, int aConvert, KICAD_T aType,
TRANSFORM transform = DefaultTransform; TRANSFORM transform = DefaultTransform;
DefaultTransform = aTransform; DefaultTransform = aTransform;
item = LocateDrawItem( aUnit, aConvert, aType, aPoint ); item = LocateDrawItem( aUnit, aBodyStyle, aType, aPoint );
// Restore matrix // Restore matrix
DefaultTransform = transform; DefaultTransform = transform;
@ -1664,13 +1664,13 @@ int LIB_SYMBOL::GetUnitCount() const
} }
void LIB_SYMBOL::SetConversion( bool aSetConvert, bool aDuplicatePins ) void LIB_SYMBOL::SetHasAlternateBodyStyle( bool aHasAlternate, bool aDuplicatePins )
{ {
if( aSetConvert == HasConversion() ) if( aHasAlternate == HasAlternateBodyStyle() )
return; return;
// Duplicate items to create the converted shape // Duplicate items to create the converted shape
if( aSetConvert ) if( aHasAlternate )
{ {
if( aDuplicatePins ) if( aDuplicatePins )
{ {
@ -1682,10 +1682,10 @@ void LIB_SYMBOL::SetConversion( bool aSetConvert, bool aDuplicatePins )
if( item.Type() != LIB_PIN_T ) if( item.Type() != LIB_PIN_T )
continue; continue;
if( item.m_convert == 1 ) if( item.m_bodyStyle == 1 )
{ {
LIB_ITEM* newItem = (LIB_ITEM*) item.Duplicate(); LIB_ITEM* newItem = (LIB_ITEM*) item.Duplicate();
newItem->m_convert = 2; newItem->m_bodyStyle = 2;
tmp.push_back( newItem ); tmp.push_back( newItem );
} }
} }
@ -1703,7 +1703,7 @@ void LIB_SYMBOL::SetConversion( bool aSetConvert, bool aDuplicatePins )
while( i != m_drawings.end() ) while( i != m_drawings.end() )
{ {
if( i->m_convert > 1 ) if( i->m_bodyStyle > 1 )
i = m_drawings.erase( i ); i = m_drawings.erase( i );
else else
++i; ++i;
@ -1714,7 +1714,7 @@ void LIB_SYMBOL::SetConversion( bool aSetConvert, bool aDuplicatePins )
} }
std::vector<LIB_ITEM*> LIB_SYMBOL::GetUnitDrawItems( int aUnit, int aConvert ) std::vector<LIB_ITEM*> LIB_SYMBOL::GetUnitDrawItems( int aUnit, int aBodyStyle )
{ {
std::vector<LIB_ITEM*> unitItems; std::vector<LIB_ITEM*> unitItems;
@ -1723,9 +1723,9 @@ std::vector<LIB_ITEM*> LIB_SYMBOL::GetUnitDrawItems( int aUnit, int aConvert )
if( item.Type() == LIB_FIELD_T ) if( item.Type() == LIB_FIELD_T )
continue; continue;
if( ( aConvert == -1 && item.GetUnit() == aUnit ) if( ( aBodyStyle == -1 && item.GetUnit() == aUnit )
|| ( aUnit == -1 && item.GetConvert() == aConvert ) || ( aUnit == -1 && item.GetBodyStyle() == aBodyStyle )
|| ( aUnit == item.GetUnit() && aConvert == item.GetConvert() ) ) || ( aUnit == item.GetUnit() && aBodyStyle == item.GetBodyStyle() ) )
{ {
unitItems.push_back( &item ); unitItems.push_back( &item );
} }
@ -1745,19 +1745,19 @@ std::vector<struct LIB_SYMBOL_UNIT> LIB_SYMBOL::GetUnitDrawItems()
continue; continue;
int unit = item.GetUnit(); int unit = item.GetUnit();
int convert = item.GetConvert(); int bodyStyle = item.GetBodyStyle();
auto it = std::find_if( units.begin(), units.end(), auto it = std::find_if( units.begin(), units.end(),
[unit, convert]( const LIB_SYMBOL_UNIT& a ) [unit, bodyStyle]( const LIB_SYMBOL_UNIT& a )
{ {
return a.m_unit == unit && a.m_convert == convert; return a.m_unit == unit && a.m_bodyStyle == bodyStyle;
} ); } );
if( it == units.end() ) if( it == units.end() )
{ {
struct LIB_SYMBOL_UNIT newUnit; struct LIB_SYMBOL_UNIT newUnit;
newUnit.m_unit = item.GetUnit(); newUnit.m_unit = item.GetUnit();
newUnit.m_convert = item.GetConvert(); newUnit.m_bodyStyle = item.GetBodyStyle();
newUnit.m_items.push_back( &item ); newUnit.m_items.push_back( &item );
units.emplace_back( newUnit ); units.emplace_back( newUnit );
} }
@ -1782,7 +1782,7 @@ std::vector<struct LIB_SYMBOL_UNIT> LIB_SYMBOL::GetUniqueUnits()
// The first unit is guaranteed to be unique so always include it. // The first unit is guaranteed to be unique so always include it.
unit.m_unit = 1; unit.m_unit = 1;
unit.m_convert = 1; unit.m_bodyStyle = 1;
unit.m_items = GetUnitDrawItems( 1, 1 ); unit.m_items = GetUnitDrawItems( 1, 1 );
// There are no unique units if there are no draw items other than fields. // There are no unique units if there are no draw items other than fields.
@ -1791,7 +1791,7 @@ std::vector<struct LIB_SYMBOL_UNIT> LIB_SYMBOL::GetUniqueUnits()
uniqueUnits.emplace_back( unit ); uniqueUnits.emplace_back( unit );
if( ( GetUnitCount() == 1 || UnitsLocked() ) && !HasConversion() ) if( ( GetUnitCount() == 1 || UnitsLocked() ) && !HasAlternateBodyStyle() )
return uniqueUnits; return uniqueUnits;
currentDrawItems = unit.m_items; currentDrawItems = unit.m_items;
@ -1806,7 +1806,7 @@ std::vector<struct LIB_SYMBOL_UNIT> LIB_SYMBOL::GetUniqueUnits()
if( currentDrawItems.size() != compareDrawItems.size() ) if( currentDrawItems.size() != compareDrawItems.size() )
{ {
unit.m_unit = unitNum; unit.m_unit = unitNum;
unit.m_convert = 1; unit.m_bodyStyle = 1;
unit.m_items = compareDrawItems; unit.m_items = compareDrawItems;
uniqueUnits.emplace_back( unit ); uniqueUnits.emplace_back( unit );
} }
@ -1818,7 +1818,7 @@ std::vector<struct LIB_SYMBOL_UNIT> LIB_SYMBOL::GetUniqueUnits()
LIB_ITEM::COMPARE_FLAGS::UNIT ) != 0 ) LIB_ITEM::COMPARE_FLAGS::UNIT ) != 0 )
{ {
unit.m_unit = unitNum; unit.m_unit = unitNum;
unit.m_convert = 1; unit.m_bodyStyle = 1;
unit.m_items = compareDrawItems; unit.m_items = compareDrawItems;
uniqueUnits.emplace_back( unit ); uniqueUnits.emplace_back( unit );
} }
@ -1826,14 +1826,14 @@ std::vector<struct LIB_SYMBOL_UNIT> LIB_SYMBOL::GetUniqueUnits()
} }
} }
if( HasConversion() ) if( HasAlternateBodyStyle() )
{ {
currentDrawItems = GetUnitDrawItems( 1, 2 ); currentDrawItems = GetUnitDrawItems( 1, 2 );
if( ( GetUnitCount() == 1 || UnitsLocked() ) ) if( ( GetUnitCount() == 1 || UnitsLocked() ) )
{ {
unit.m_unit = 1; unit.m_unit = 1;
unit.m_convert = 2; unit.m_bodyStyle = 2;
unit.m_items = currentDrawItems; unit.m_items = currentDrawItems;
uniqueUnits.emplace_back( unit ); uniqueUnits.emplace_back( unit );
@ -1850,7 +1850,7 @@ std::vector<struct LIB_SYMBOL_UNIT> LIB_SYMBOL::GetUniqueUnits()
if( currentDrawItems.size() != compareDrawItems.size() ) if( currentDrawItems.size() != compareDrawItems.size() )
{ {
unit.m_unit = unitNum; unit.m_unit = unitNum;
unit.m_convert = 2; unit.m_bodyStyle = 2;
unit.m_items = compareDrawItems; unit.m_items = compareDrawItems;
uniqueUnits.emplace_back( unit ); uniqueUnits.emplace_back( unit );
} }
@ -1862,7 +1862,7 @@ std::vector<struct LIB_SYMBOL_UNIT> LIB_SYMBOL::GetUniqueUnits()
LIB_ITEM::COMPARE_FLAGS::UNIT ) != 0 ) LIB_ITEM::COMPARE_FLAGS::UNIT ) != 0 )
{ {
unit.m_unit = unitNum; unit.m_unit = unitNum;
unit.m_convert = 2; unit.m_bodyStyle = 2;
unit.m_items = compareDrawItems; unit.m_items = compareDrawItems;
uniqueUnits.emplace_back( unit ); uniqueUnits.emplace_back( unit );
} }

View File

@ -84,7 +84,7 @@ struct LIB_SYMBOL_OPTIONS
struct LIB_SYMBOL_UNIT struct LIB_SYMBOL_UNIT
{ {
int m_unit; ///< The unit number. int m_unit; ///< The unit number.
int m_convert; ///< The alternate body style of the unit. int m_bodyStyle; ///< The alternate body style of the unit.
std::vector<LIB_ITEM*> m_items; ///< The items unique to this unit and alternate body style. std::vector<LIB_ITEM*> m_items; ///< The items unique to this unit and alternate body style.
}; };
@ -241,24 +241,25 @@ public:
* *
* @return the symbol bounding box ( in user coordinates ) * @return the symbol bounding box ( in user coordinates )
* @param aUnit = unit selection = 0, or 1..n * @param aUnit = unit selection = 0, or 1..n
* @param aConvert = 0, 1 or 2 * @param aBodyStyle = 0, 1 or 2
* If aUnit == 0, unit is not used * If aUnit == 0, unit is not used
* if aConvert == 0 Convert is non used * if aBodyStyle == 0 Convert is non used
* @param aIgnoreHiddenFields default true, ignores any hidden fields * @param aIgnoreHiddenFields default true, ignores any hidden fields
**/ **/
const BOX2I GetUnitBoundingBox( int aUnit, int aConvert, bool aIgnoreHiddenFields = true ) const; const BOX2I GetUnitBoundingBox( int aUnit, int aBodyStyle,
bool aIgnoreHiddenFields = true ) const;
/** /**
* Get the symbol bounding box excluding fields. * Get the symbol bounding box excluding fields.
* *
* @return the symbol bounding box ( in user coordinates ) without fields * @return the symbol bounding box ( in user coordinates ) without fields
* @param aUnit = unit selection = 0, or 1..n * @param aUnit = unit selection = 0, or 1..n
* @param aConvert = 0, 1 or 2 * @param aBodyStyle = 0, 1 or 2
* If aUnit == 0, unit is not used * If aUnit == 0, unit is not used
* if aConvert == 0 Convert is non used * if aBodyStyle == 0 Convert is non used
* Fields are not taken in account * Fields are not taken in account
**/ **/
const BOX2I GetBodyBoundingBox( int aUnit, int aConvert, bool aIncludePins, const BOX2I GetBodyBoundingBox( int aUnit, int aBodyStyle, bool aIncludePins,
bool aIncludePrivateItems ) const; bool aIncludePrivateItems ) const;
const BOX2I GetBoundingBox() const override const BOX2I GetBoundingBox() const override
@ -362,24 +363,24 @@ public:
* *
* @param aOffset - Position of symbol. * @param aOffset - Position of symbol.
* @param aMulti - unit if multiple units per symbol. * @param aMulti - unit if multiple units per symbol.
* @param aConvert - Symbol conversion (DeMorgan) if available. * @param aBodyStyle - Symbol alternate body style (DeMorgan) if available.
* @param aOpts - Drawing options * @param aOpts - Drawing options
* @param aDimmed - Reduce brightness of symbol * @param aDimmed - Reduce brightness of symbol
*/ */
void Print( const RENDER_SETTINGS* aSettings, const VECTOR2I& aOffset, int aMulti, int aConvert, void Print( const RENDER_SETTINGS* aSettings, const VECTOR2I& aOffset, int aMulti,
const LIB_SYMBOL_OPTIONS& aOpts, bool aDimmed ); int aBodyStyle, const LIB_SYMBOL_OPTIONS& aOpts, bool aDimmed );
/** /**
* Print just the background fills of a symbol * Print just the background fills of a symbol
* *
* @param aOffset - Position of symbol. * @param aOffset - Position of symbol.
* @param aMulti - unit if multiple units per symbol. * @param aMulti - unit if multiple units per symbol.
* @param aConvert - Symbol conversion (DeMorgan) if available. * @param aBodyStyle - Symbol alternate body style (DeMorgan) if available.
* @param aOpts - Drawing options * @param aOpts - Drawing options
* @param aDimmed - Reduce brightness of symbol * @param aDimmed - Reduce brightness of symbol
*/ */
void PrintBackground( const RENDER_SETTINGS *aSettings, const VECTOR2I &aOffset, int aMulti, void PrintBackground( const RENDER_SETTINGS *aSettings, const VECTOR2I &aOffset, int aMulti,
int aConvert, const LIB_SYMBOL_OPTIONS &aOpts, bool aDimmed ); int aBodyStyle, const LIB_SYMBOL_OPTIONS &aOpts, bool aDimmed );
/** /**
* Plot lib symbol to plotter. * Plot lib symbol to plotter.
@ -388,13 +389,13 @@ public:
* *
* @param aPlotter - Plotter object to plot to. * @param aPlotter - Plotter object to plot to.
* @param aUnit - Symbol symbol to plot. * @param aUnit - Symbol symbol to plot.
* @param aConvert - Symbol alternate body style to plot. * @param aBodyStyle - Symbol alternate body style to plot.
* @param aBackground - A poor-man's Z-order. * @param aBackground - A poor-man's Z-order.
* @param aOffset - Distance to shift the plot coordinates. * @param aOffset - Distance to shift the plot coordinates.
* @param aTransform - Symbol plot transform matrix. * @param aTransform - Symbol plot transform matrix.
* @param aDimmed - Reduce brightness of symbol * @param aDimmed - Reduce brightness of symbol
*/ */
void Plot( PLOTTER* aPlotter, int aUnit, int aConvert, bool aBackground, void Plot( PLOTTER* aPlotter, int aUnit, int aBodyStyle, bool aBackground,
const VECTOR2I& aOffset, const TRANSFORM& aTransform, bool aDimmed ) const; const VECTOR2I& aOffset, const TRANSFORM& aTransform, bool aDimmed ) const;
/** /**
@ -403,13 +404,13 @@ public:
* *
* @param aPlotter - Plotter object to plot to. * @param aPlotter - Plotter object to plot to.
* @param aUnit - Symbol to plot. * @param aUnit - Symbol to plot.
* @param aConvert - Symbol alternate body style to plot. * @param aBodyStyle - Symbol alternate body style to plot.
* @param aBackground - A poor-man's Z-order. * @param aBackground - A poor-man's Z-order.
* @param aOffset - Distance to shift the plot coordinates. * @param aOffset - Distance to shift the plot coordinates.
* @param aTransform - Symbol plot transform matrix. * @param aTransform - Symbol plot transform matrix.
* @param aDimmed - reduce brightness of fields * @param aDimmed - reduce brightness of fields
*/ */
void PlotLibFields( PLOTTER* aPlotter, int aUnit, int aConvert, bool aBackground, void PlotLibFields( PLOTTER* aPlotter, int aUnit, int aBodyStyle, bool aBackground,
const VECTOR2I& aOffset, const TRANSFORM& aTransform, bool aDimmed, const VECTOR2I& aOffset, const TRANSFORM& aTransform, bool aDimmed,
bool aPlotHidden = true ); bool aPlotHidden = true );
@ -440,10 +441,10 @@ public:
* *
* @param aList - Pin list to place pin object pointers into. * @param aList - Pin list to place pin object pointers into.
* @param aUnit - Unit number of pins to collect. Set to 0 to get pins from any symbol unit. * @param aUnit - Unit number of pins to collect. Set to 0 to get pins from any symbol unit.
* @param aConvert - Convert number of pins to collect. Set to 0 to get pins from any * @param aBodyStyle - Symbol alternate body style of pins to collect. Set to 0 to get pins
* DeMorgan variant of symbol. * from any DeMorgan variant of symbol.
*/ */
void GetPins( LIB_PINS& aList, int aUnit = 0, int aConvert = 0 ) const; void GetPins( LIB_PINS& aList, int aUnit = 0, int aBodyStyle = 0 ) const;
/** /**
* Return a list of pin pointers for all units / converts. Used primarily for SPICE where * Return a list of pin pointers for all units / converts. Used primarily for SPICE where
@ -461,11 +462,11 @@ public:
* *
* @param aNumber - Number of the pin to find. * @param aNumber - Number of the pin to find.
* @param aUnit - Unit filter. Set to 0 if a specific unit number is not required. * @param aUnit - Unit filter. Set to 0 if a specific unit number is not required.
* @param aConvert - DeMorgan variant filter. Set to 0 if no specific DeMorgan variant is * @param aBodyStyle - DeMorgan variant filter. Set to 0 if no specific DeMorgan variant is
* required. * required.
* @return The pin object if found. Otherwise NULL. * @return The pin object if found. Otherwise NULL.
*/ */
LIB_PIN* GetPin( const wxString& aNumber, int aUnit = 0, int aConvert = 0 ) const; LIB_PIN* GetPin( const wxString& aNumber, int aUnit = 0, int aBodyStyle = 0 ) const;
/** /**
* Return true if this symbol's pins do not match another symbol's pins. This is used to * Return true if this symbol's pins do not match another symbol's pins. This is used to
@ -498,7 +499,7 @@ public:
* *
* @return True if symbol has more than one conversion. * @return True if symbol has more than one conversion.
*/ */
bool HasConversion() const; bool HasAlternateBodyStyle() const;
/** /**
* @return the highest pin number of the symbol's pins. * @return the highest pin number of the symbol's pins.
@ -516,24 +517,24 @@ public:
* Locate a draw object. * Locate a draw object.
* *
* @param aUnit - Unit number of draw item. * @param aUnit - Unit number of draw item.
* @param aConvert - Body style of draw item. * @param aBodyStyle - Body style of draw item.
* @param aType - Draw object type, set to 0 to search for any type. * @param aType - Draw object type, set to 0 to search for any type.
* @param aPoint - Coordinate for hit testing. * @param aPoint - Coordinate for hit testing.
* @return The draw object if found. Otherwise NULL. * @return The draw object if found. Otherwise NULL.
*/ */
LIB_ITEM* LocateDrawItem( int aUnit, int aConvert, KICAD_T aType, const VECTOR2I& aPoint ); LIB_ITEM* LocateDrawItem( int aUnit, int aBodyStyle, KICAD_T aType, const VECTOR2I& aPoint );
/** /**
* Locate a draw object (overlaid) * Locate a draw object (overlaid)
* *
* @param aUnit - Unit number of draw item. * @param aUnit - Unit number of draw item.
* @param aConvert - Body style of draw item. * @param aBodyStyle - Body style of draw item.
* @param aType - Draw object type, set to 0 to search for any type. * @param aType - Draw object type, set to 0 to search for any type.
* @param aPoint - Coordinate for hit testing. * @param aPoint - Coordinate for hit testing.
* @param aTransform = the transform matrix * @param aTransform = the transform matrix
* @return The draw object if found. Otherwise NULL. * @return The draw object if found. Otherwise NULL.
*/ */
LIB_ITEM* LocateDrawItem( int aUnit, int aConvert, KICAD_T aType, const VECTOR2I& aPoint, LIB_ITEM* LocateDrawItem( int aUnit, int aBodyStyle, KICAD_T aType, const VECTOR2I& aPoint,
const TRANSFORM& aTransform ); const TRANSFORM& aTransform );
/** /**
@ -603,16 +604,15 @@ public:
/** /**
* Set or clear the alternate body style (DeMorgan) for the symbol. * Set or clear the alternate body style (DeMorgan) for the symbol.
* *
* If the symbol already has an alternate body style set and a * If the symbol already has an alternate body style set and aHasAlternate is false, all
* asConvert if false, all of the existing draw items for the alternate * of the existing draw items for the alternate body style are remove. If the alternate
* body style are remove. If the alternate body style is not set and * body style is not set and aHasAlternate is true, than the base draw items are duplicated
* asConvert is true, than the base draw items are duplicated and * and added to the symbol.
* added to the symbol.
* *
* @param aSetConvert - Set or clear the symbol alternate body style. * @param aHasAlternate - Set or clear the symbol alternate body style.
* @param aDuplicatePins - Duplicate all pins from original body style if true. * @param aDuplicatePins - Duplicate all pins from original body style if true.
*/ */
void SetConversion( bool aSetConvert, bool aDuplicatePins = true ); void SetHasAlternateBodyStyle( bool aHasAlternate, bool aDuplicatePins = true );
/** /**
* Set the offset in mils of the pin name text from the pin symbol. * Set the offset in mils of the pin name text from the pin symbol.
@ -713,16 +713,16 @@ public:
std::vector<struct LIB_SYMBOL_UNIT> GetUniqueUnits(); std::vector<struct LIB_SYMBOL_UNIT> GetUniqueUnits();
/** /**
* Return a list of item pointers for \a aUnit and \a aConvert for this symbol. * Return a list of item pointers for \a aUnit and \a aBodyStyle for this symbol.
* *
* @note #LIB_FIELD objects are not included. * @note #LIB_FIELD objects are not included.
* *
* @param aUnit is the unit number of the item, -1 includes all units. * @param aUnit is the unit number of the item, -1 includes all units.
* @param aConvert is the alternate body styple of the item, -1 includes all body styles. * @param aBodyStyle is the alternate body styple of the item, -1 includes all body styles.
* *
* @return a list of unit items. * @return a list of unit items.
*/ */
std::vector<LIB_ITEM*> GetUnitDrawItems( int aUnit, int aConvert ); std::vector<LIB_ITEM*> GetUnitDrawItems( int aUnit, int aBodyStyle );
/** /**
* Return a measure of similarity between this symbol and \a aSymbol. * Return a measure of similarity between this symbol and \a aSymbol.

View File

@ -123,7 +123,7 @@ void SCH_EDIT_FRAME::SelectUnit( SCH_SYMBOL* aSymbol, int aUnit )
} }
void SCH_EDIT_FRAME::ConvertPart( SCH_SYMBOL* aSymbol ) void SCH_EDIT_FRAME::FlipBodyStyle( SCH_SYMBOL* aSymbol )
{ {
if( !aSymbol || !aSymbol->GetLibSymbolRef() ) if( !aSymbol || !aSymbol->GetLibSymbolRef() )
return; return;
@ -131,7 +131,7 @@ void SCH_EDIT_FRAME::ConvertPart( SCH_SYMBOL* aSymbol )
SCH_COMMIT commit( m_toolManager ); SCH_COMMIT commit( m_toolManager );
wxString msg; wxString msg;
if( !aSymbol->GetLibSymbolRef()->HasConversion() ) if( !aSymbol->GetLibSymbolRef()->HasAlternateBodyStyle() )
{ {
LIB_ID id = aSymbol->GetLibSymbolRef()->GetLibId(); LIB_ID id = aSymbol->GetLibSymbolRef()->GetLibId();
@ -144,20 +144,21 @@ void SCH_EDIT_FRAME::ConvertPart( SCH_SYMBOL* aSymbol )
commit.Modify( aSymbol, GetScreen() ); commit.Modify( aSymbol, GetScreen() );
aSymbol->SetConvert( aSymbol->GetConvert() + 1 ); aSymbol->SetBodyStyle( aSymbol->GetBodyStyle() + 1 );
// ensure m_convert = 1 or 2 // ensure m_bodyStyle = 1 or 2
// 1 = shape 1 = not converted // 1 = shape 1 = first (base DeMorgan) alternate body style
// 2 = shape 2 = first converted shape // 2 = shape 2 = second (DeMorgan conversion) alternate body style
// > 2 is not currently supported // > 2 is not currently supported
// When m_convert = val max, return to the first shape // When m_bodyStyle = val max, return to the first shape
if( aSymbol->GetConvert() > LIB_ITEM::LIB_CONVERT::DEMORGAN ) if( aSymbol->GetBodyStyle() > LIB_ITEM::BODY_STYLE::DEMORGAN )
aSymbol->SetConvert( LIB_ITEM::LIB_CONVERT::BASE ); aSymbol->SetBodyStyle( LIB_ITEM::BODY_STYLE::BASE );
// If selected make sure all the now-included pins are selected // If selected make sure all the now-included pins are selected
if( aSymbol->IsSelected() ) if( aSymbol->IsSelected() )
m_toolManager->RunAction<EDA_ITEM*>( EE_ACTIONS::addItemToSel, aSymbol ); m_toolManager->RunAction<EDA_ITEM*>( EE_ACTIONS::addItemToSel, aSymbol );
// TODO: 9.0 "Change Body Style"
commit.Push( _( "Convert Symbol" ) ); commit.Push( _( "Convert Symbol" ) );
} }

View File

@ -178,7 +178,7 @@ void RESCUE_CASE_CANDIDATE::FindRescues( RESCUER& aRescuer,
RESCUE_CASE_CANDIDATE candidate( symbol_name, case_insensitive_matches[0]->GetName(), RESCUE_CASE_CANDIDATE candidate( symbol_name, case_insensitive_matches[0]->GetName(),
case_insensitive_matches[0], case_insensitive_matches[0],
eachSymbol->GetUnit(), eachSymbol->GetUnit(),
eachSymbol->GetConvert() ); eachSymbol->GetBodyStyle() );
candidate_map[symbol_name] = candidate; candidate_map[symbol_name] = candidate;
} }
@ -296,8 +296,7 @@ void RESCUE_CACHE_CANDIDATE::FindRescues( RESCUER& aRescuer,
// Check if the symbol has already been rescued. // Check if the symbol has already been rescued.
RESCUE_CACHE_CANDIDATE candidate( symbol_name, symbol_name, cache_match, lib_match, RESCUE_CACHE_CANDIDATE candidate( symbol_name, symbol_name, cache_match, lib_match,
eachSymbol->GetUnit(), eachSymbol->GetUnit(), eachSymbol->GetBodyStyle() );
eachSymbol->GetConvert() );
candidate_map[symbol_name] = candidate; candidate_map[symbol_name] = candidate;
} }
@ -469,7 +468,7 @@ void RESCUE_SYMBOL_LIB_TABLE_CANDIDATE::FindRescues(
RESCUE_SYMBOL_LIB_TABLE_CANDIDATE candidate( symbol_id, new_id, cache_match, lib_match, RESCUE_SYMBOL_LIB_TABLE_CANDIDATE candidate( symbol_id, new_id, cache_match, lib_match,
eachSymbol->GetUnit(), eachSymbol->GetUnit(),
eachSymbol->GetConvert() ); eachSymbol->GetBodyStyle() );
candidate_map[symbol_id] = candidate; candidate_map[symbol_id] = candidate;
} }

View File

@ -634,7 +634,7 @@ public:
*/ */
void DeleteJunction( SCH_COMMIT* aCommit, SCH_ITEM* aItem ); void DeleteJunction( SCH_COMMIT* aCommit, SCH_ITEM* aItem );
void ConvertPart( SCH_SYMBOL* aSymbol ); void FlipBodyStyle( SCH_SYMBOL* aSymbol );
void SelectUnit( SCH_SYMBOL* aSymbol, int aUnit ); void SelectUnit( SCH_SYMBOL* aSymbol, int aUnit );

View File

@ -1190,19 +1190,19 @@ SCH_SYMBOL* SCH_IO_KICAD_LEGACY::loadSymbol( LINE_READER& aReader )
symbol->SetUnit( unit ); symbol->SetUnit( unit );
// Same can also happen with the convert parameter // Same can also happen with the body style ("convert") parameter
int convert = parseInt( aReader, line, &line ); int bodyStyle = parseInt( aReader, line, &line );
if( convert == 0 ) if( bodyStyle == 0 )
{ {
convert = 1; bodyStyle = 1;
// Set the file as modified so the user can be warned. // Set the file as modified so the user can be warned.
if( m_rootSheet->GetScreen() ) if( m_rootSheet->GetScreen() )
m_rootSheet->GetScreen()->SetContentModified(); m_rootSheet->GetScreen()->SetContentModified();
} }
symbol->SetConvert( convert ); symbol->SetBodyStyle( bodyStyle );
wxString text; wxString text;
parseUnquotedString( text, aReader, line, &line ); parseUnquotedString( text, aReader, line, &line );
@ -1691,7 +1691,7 @@ void SCH_IO_KICAD_LEGACY::saveSymbol( SCH_SYMBOL* aSymbol )
// Generate unit number, conversion and timestamp // Generate unit number, conversion and timestamp
m_out->Print( 0, "U %d %d %8.8X\n", m_out->Print( 0, "U %d %d %8.8X\n",
aSymbol->GetUnit(), aSymbol->GetUnit(),
aSymbol->GetConvert(), aSymbol->GetBodyStyle(),
aSymbol->m_Uuid.AsLegacyTimestamp() ); aSymbol->m_Uuid.AsLegacyTimestamp() );
// Save the position // Save the position

View File

@ -843,7 +843,7 @@ LIB_SHAPE* SCH_IO_KICAD_LEGACY_LIB_CACHE::loadArc( std::unique_ptr<LIB_SYMBOL>&
NORMALIZE_ANGLE_POS( angle2 ); NORMALIZE_ANGLE_POS( angle2 );
arc->SetUnit( parseInt( aReader, line, &line ) ); arc->SetUnit( parseInt( aReader, line, &line ) );
arc->SetConvert( parseInt( aReader, line, &line ) ); arc->SetBodyStyle( parseInt( aReader, line, &line ) );
STROKE_PARAMS stroke( schIUScale.MilsToIU( parseInt( aReader, line, &line ) ), STROKE_PARAMS stroke( schIUScale.MilsToIU( parseInt( aReader, line, &line ) ),
LINE_STYLE::SOLID ); LINE_STYLE::SOLID );
@ -920,7 +920,7 @@ LIB_SHAPE* SCH_IO_KICAD_LEGACY_LIB_CACHE::loadCircle( std::unique_ptr<LIB_SYMBOL
circle->SetStart( center ); circle->SetStart( center );
circle->SetEnd( VECTOR2I( center.x + radius, center.y ) ); circle->SetEnd( VECTOR2I( center.x + radius, center.y ) );
circle->SetUnit( parseInt( aReader, line, &line ) ); circle->SetUnit( parseInt( aReader, line, &line ) );
circle->SetConvert( parseInt( aReader, line, &line ) ); circle->SetBodyStyle( parseInt( aReader, line, &line ) );
STROKE_PARAMS stroke( schIUScale.MilsToIU( parseInt( aReader, line, &line ) ), STROKE_PARAMS stroke( schIUScale.MilsToIU( parseInt( aReader, line, &line ) ),
LINE_STYLE::SOLID ); LINE_STYLE::SOLID );
@ -960,7 +960,7 @@ LIB_TEXT* SCH_IO_KICAD_LEGACY_LIB_CACHE::loadText( std::unique_ptr<LIB_SYMBOL>&
text->SetTextSize( size ); text->SetTextSize( size );
text->SetVisible( !parseInt( aReader, line, &line ) ); text->SetVisible( !parseInt( aReader, line, &line ) );
text->SetUnit( parseInt( aReader, line, &line ) ); text->SetUnit( parseInt( aReader, line, &line ) );
text->SetConvert( parseInt( aReader, line, &line ) ); text->SetBodyStyle( parseInt( aReader, line, &line ) );
wxString str; wxString str;
@ -1055,7 +1055,7 @@ LIB_SHAPE* SCH_IO_KICAD_LEGACY_LIB_CACHE::loadRect( std::unique_ptr<LIB_SYMBOL>&
rectangle->SetEnd( end ); rectangle->SetEnd( end );
rectangle->SetUnit( parseInt( aReader, line, &line ) ); rectangle->SetUnit( parseInt( aReader, line, &line ) );
rectangle->SetConvert( parseInt( aReader, line, &line ) ); rectangle->SetBodyStyle( parseInt( aReader, line, &line ) );
STROKE_PARAMS stroke( schIUScale.MilsToIU( parseInt( aReader, line, &line ) ), STROKE_PARAMS stroke( schIUScale.MilsToIU( parseInt( aReader, line, &line ) ),
LINE_STYLE::SOLID ); LINE_STYLE::SOLID );
@ -1303,7 +1303,7 @@ LIB_SHAPE* SCH_IO_KICAD_LEGACY_LIB_CACHE::loadPolyLine( std::unique_ptr<LIB_SYMB
int points = parseInt( aReader, line, &line ); int points = parseInt( aReader, line, &line );
polyLine->SetUnit( parseInt( aReader, line, &line ) ); polyLine->SetUnit( parseInt( aReader, line, &line ) );
polyLine->SetConvert( parseInt( aReader, line, &line ) ); polyLine->SetBodyStyle( parseInt( aReader, line, &line ) );
STROKE_PARAMS stroke( schIUScale.MilsToIU( parseInt( aReader, line, &line ) ), STROKE_PARAMS stroke( schIUScale.MilsToIU( parseInt( aReader, line, &line ) ),
LINE_STYLE::SOLID ); LINE_STYLE::SOLID );
@ -1340,7 +1340,7 @@ LIB_SHAPE* SCH_IO_KICAD_LEGACY_LIB_CACHE::loadBezier( std::unique_ptr<LIB_SYMBOL
LIB_SHAPE* bezier = new LIB_SHAPE( aSymbol.get(), SHAPE_T::BEZIER ); LIB_SHAPE* bezier = new LIB_SHAPE( aSymbol.get(), SHAPE_T::BEZIER );
bezier->SetUnit( parseInt( aReader, line, &line ) ); bezier->SetUnit( parseInt( aReader, line, &line ) );
bezier->SetConvert( parseInt( aReader, line, &line ) ); bezier->SetBodyStyle( parseInt( aReader, line, &line ) );
STROKE_PARAMS stroke ( schIUScale.MilsToIU( parseInt( aReader, line, &line ) ), STROKE_PARAMS stroke ( schIUScale.MilsToIU( parseInt( aReader, line, &line ) ),
LINE_STYLE::SOLID ); LINE_STYLE::SOLID );
@ -1609,7 +1609,7 @@ void SCH_IO_KICAD_LEGACY_LIB_CACHE::saveArc( LIB_SHAPE* aArc, OUTPUTFORMATTER& a
startAngle.AsTenthsOfADegree(), startAngle.AsTenthsOfADegree(),
endAngle.AsTenthsOfADegree(), endAngle.AsTenthsOfADegree(),
aArc->GetUnit(), aArc->GetUnit(),
aArc->GetConvert(), aArc->GetBodyStyle(),
schIUScale.IUToMils( aArc->GetWidth() ), schIUScale.IUToMils( aArc->GetWidth() ),
fill_tab[ static_cast<int>( aArc->GetFillMode() ) - 1 ], fill_tab[ static_cast<int>( aArc->GetFillMode() ) - 1 ],
schIUScale.IUToMils( aArc->GetStart().x ), schIUScale.IUToMils( aArc->GetStart().x ),
@ -1625,7 +1625,7 @@ void SCH_IO_KICAD_LEGACY_LIB_CACHE::saveBezier( LIB_SHAPE* aBezier, OUTPUTFORMAT
aFormatter.Print( 0, "B 4 %d %d %d", aFormatter.Print( 0, "B 4 %d %d %d",
aBezier->GetUnit(), aBezier->GetUnit(),
aBezier->GetConvert(), aBezier->GetBodyStyle(),
schIUScale.IUToMils( aBezier->GetWidth() ) ); schIUScale.IUToMils( aBezier->GetWidth() ) );
aFormatter.Print( 0, " %d %d %d %d %d %d %d %d", aFormatter.Print( 0, " %d %d %d %d %d %d %d %d",
@ -1651,7 +1651,7 @@ void SCH_IO_KICAD_LEGACY_LIB_CACHE::saveCircle( LIB_SHAPE* aCircle, OUTPUTFORMAT
schIUScale.IUToMils( aCircle->GetPosition().y ), schIUScale.IUToMils( aCircle->GetPosition().y ),
schIUScale.IUToMils( aCircle->GetRadius() ), schIUScale.IUToMils( aCircle->GetRadius() ),
aCircle->GetUnit(), aCircle->GetUnit(),
aCircle->GetConvert(), aCircle->GetBodyStyle(),
schIUScale.IUToMils( aCircle->GetWidth() ), schIUScale.IUToMils( aCircle->GetWidth() ),
fill_tab[ static_cast<int>( aCircle->GetFillMode() ) - 1 ] ); fill_tab[ static_cast<int>( aCircle->GetFillMode() ) - 1 ] );
} }
@ -1742,7 +1742,7 @@ void SCH_IO_KICAD_LEGACY_LIB_CACHE::savePin( const LIB_PIN* aPin, OUTPUTFORMATTE
schIUScale.IUToMils( aPin->GetNumberTextSize() ), schIUScale.IUToMils( aPin->GetNumberTextSize() ),
schIUScale.IUToMils( aPin->GetNameTextSize() ), schIUScale.IUToMils( aPin->GetNameTextSize() ),
aPin->GetUnit(), aPin->GetUnit(),
aPin->GetConvert(), aPin->GetBodyStyle(),
Etype ); Etype );
if( aPin->GetShape() != GRAPHIC_PINSHAPE::LINE || !aPin->IsVisible() ) if( aPin->GetShape() != GRAPHIC_PINSHAPE::LINE || !aPin->IsVisible() )
@ -1779,7 +1779,7 @@ void SCH_IO_KICAD_LEGACY_LIB_CACHE::savePolyLine( LIB_SHAPE* aPolyLine,
aFormatter.Print( 0, "P %d %d %d %d", aFormatter.Print( 0, "P %d %d %d %d",
(int) aPolyLine->GetPolyShape().Outline( 0 ).GetPointCount(), (int) aPolyLine->GetPolyShape().Outline( 0 ).GetPointCount(),
aPolyLine->GetUnit(), aPolyLine->GetUnit(),
aPolyLine->GetConvert(), aPolyLine->GetBodyStyle(),
schIUScale.IUToMils( aPolyLine->GetWidth() ) ); schIUScale.IUToMils( aPolyLine->GetWidth() ) );
for( const VECTOR2I& pt : aPolyLine->GetPolyShape().Outline( 0 ).CPoints() ) for( const VECTOR2I& pt : aPolyLine->GetPolyShape().Outline( 0 ).CPoints() )
@ -1801,7 +1801,7 @@ void SCH_IO_KICAD_LEGACY_LIB_CACHE::saveRectangle( LIB_SHAPE* aRectangle,
schIUScale.IUToMils( aRectangle->GetEnd().x ), schIUScale.IUToMils( aRectangle->GetEnd().x ),
schIUScale.IUToMils( aRectangle->GetEnd().y ), schIUScale.IUToMils( aRectangle->GetEnd().y ),
aRectangle->GetUnit(), aRectangle->GetUnit(),
aRectangle->GetConvert(), aRectangle->GetBodyStyle(),
schIUScale.IUToMils( aRectangle->GetWidth() ), schIUScale.IUToMils( aRectangle->GetWidth() ),
fill_tab[ static_cast<int>( aRectangle->GetFillMode() ) - 1 ] ); fill_tab[ static_cast<int>( aRectangle->GetFillMode() ) - 1 ] );
} }
@ -1827,7 +1827,7 @@ void SCH_IO_KICAD_LEGACY_LIB_CACHE::saveText( const LIB_TEXT* aText, OUTPUTFORMA
schIUScale.IUToMils( aText->GetTextWidth() ), schIUScale.IUToMils( aText->GetTextWidth() ),
!aText->IsVisible(), !aText->IsVisible(),
aText->GetUnit(), aText->GetUnit(),
aText->GetConvert(), aText->GetBodyStyle(),
TO_UTF8( text ) ); TO_UTF8( text ) );
aFormatter.Print( 0, " %s %d", aText->IsItalic() ? "Italic" : "Normal", aText->IsBold() ); aFormatter.Print( 0, " %s %d", aText->IsItalic() ? "Italic" : "Normal", aText->IsBold() );

View File

@ -696,8 +696,8 @@ void SCH_IO_KICAD_SEXPR::saveSymbol( SCH_SYMBOL* aSymbol, const SCHEMATIC& aSche
m_out->Print( 0, " (unit %d)", unit ); m_out->Print( 0, " (unit %d)", unit );
if( aSymbol->GetConvert() == LIB_ITEM::LIB_CONVERT::DEMORGAN ) if( aSymbol->GetBodyStyle() == LIB_ITEM::BODY_STYLE::DEMORGAN )
m_out->Print( 0, " (convert %d)", aSymbol->GetConvert() ); m_out->Print( 0, " (convert %d)", aSymbol->GetBodyStyle() );
m_out->Print( 0, "\n" ); m_out->Print( 0, "\n" );

View File

@ -221,7 +221,7 @@ void SCH_IO_KICAD_SEXPR_LIB_CACHE::SaveSymbol( LIB_SYMBOL* aSymbol, OUTPUTFORMAT
[]( const LIB_SYMBOL_UNIT& a, const LIB_SYMBOL_UNIT& b ) []( const LIB_SYMBOL_UNIT& a, const LIB_SYMBOL_UNIT& b )
{ {
if( a.m_unit == b.m_unit ) if( a.m_unit == b.m_unit )
return a.m_convert < b.m_convert; return a.m_bodyStyle < b.m_bodyStyle;
return a.m_unit < b.m_unit; return a.m_unit < b.m_unit;
} ); } );
@ -233,7 +233,9 @@ void SCH_IO_KICAD_SEXPR_LIB_CACHE::SaveSymbol( LIB_SYMBOL* aSymbol, OUTPUTFORMAT
name.pop_back(); // Remove last char: the quote ending the string. name.pop_back(); // Remove last char: the quote ending the string.
aFormatter.Print( aNestLevel + 1, "(symbol %s_%d_%d\"\n", aFormatter.Print( aNestLevel + 1, "(symbol %s_%d_%d\"\n",
name.c_str(), unit.m_unit, unit.m_convert ); name.c_str(),
unit.m_unit,
unit.m_bodyStyle );
// if the unit has a display name, write that // if the unit has a display name, write that
if( aSymbol->HasUnitDisplayName( unit.m_unit ) ) if( aSymbol->HasUnitDisplayName( unit.m_unit ) )

View File

@ -70,16 +70,16 @@ SCH_IO_KICAD_SEXPR_PARSER::SCH_IO_KICAD_SEXPR_PARSER( LINE_READER* aLineReader,
PROGRESS_REPORTER* aProgressReporter, PROGRESS_REPORTER* aProgressReporter,
unsigned aLineCount, SCH_SHEET* aRootSheet, unsigned aLineCount, SCH_SHEET* aRootSheet,
bool aIsAppending ) : bool aIsAppending ) :
SCHEMATIC_LEXER( aLineReader ), SCHEMATIC_LEXER( aLineReader ),
m_requiredVersion( 0 ), m_requiredVersion( 0 ),
m_unit( 1 ), m_unit( 1 ),
m_convert( 1 ), m_bodyStyle( 1 ),
m_appending( aIsAppending ), m_appending( aIsAppending ),
m_progressReporter( aProgressReporter ), m_progressReporter( aProgressReporter ),
m_lineReader( aLineReader ), m_lineReader( aLineReader ),
m_lastProgressLine( 0 ), m_lastProgressLine( 0 ),
m_lineCount( aLineCount ), m_lineCount( aLineCount ),
m_rootSheet( aRootSheet ) m_rootSheet( aRootSheet )
{ {
} }
@ -236,7 +236,7 @@ void SCH_IO_KICAD_SEXPR_PARSER::ParseLib( LIB_SYMBOL_MAP& aSymbolLibMap )
checkVersion(); checkVersion();
m_unit = 1; m_unit = 1;
m_convert = 1; m_bodyStyle = 1;
LIB_SYMBOL* symbol = parseLibSymbol( aSymbolLibMap ); LIB_SYMBOL* symbol = parseLibSymbol( aSymbolLibMap );
aSymbolLibMap[symbol->GetName()] = symbol; aSymbolLibMap[symbol->GetName()] = symbol;
break; break;
@ -463,10 +463,10 @@ LIB_SYMBOL* SCH_IO_KICAD_SEXPR_PARSER::parseLibSymbol( LIB_SYMBOL_MAP& aSymbolLi
THROW_PARSE_ERROR( error, CurSource(), CurLine(), CurLineNumber(), CurOffset() ); THROW_PARSE_ERROR( error, CurSource(), CurLine(), CurLineNumber(), CurOffset() );
} }
m_convert = static_cast<int>( tmp ); m_bodyStyle = static_cast<int>( tmp );
if( m_convert > 1 ) if( m_bodyStyle > 1 )
symbol->SetConversion( true, false ); symbol->SetHasAlternateBodyStyle( true, false );
if( m_unit > symbol->GetUnitCount() ) if( m_unit > symbol->GetUnitCount() )
symbol->SetUnitCount( m_unit, false ); symbol->SetUnitCount( m_unit, false );
@ -513,7 +513,7 @@ LIB_SYMBOL* SCH_IO_KICAD_SEXPR_PARSER::parseLibSymbol( LIB_SYMBOL_MAP& aSymbolLi
} }
m_unit = 1; m_unit = 1;
m_convert = 1; m_bodyStyle = 1;
break; break;
} }
@ -1099,7 +1099,7 @@ LIB_SHAPE* SCH_IO_KICAD_SEXPR_PARSER::parseArc()
std::unique_ptr<LIB_SHAPE> arc = std::make_unique<LIB_SHAPE>( nullptr, SHAPE_T::ARC ); std::unique_ptr<LIB_SHAPE> arc = std::make_unique<LIB_SHAPE>( nullptr, SHAPE_T::ARC );
arc->SetUnit( m_unit ); arc->SetUnit( m_unit );
arc->SetConvert( m_convert ); arc->SetBodyStyle( m_bodyStyle );
token = NextTok(); token = NextTok();
@ -1276,7 +1276,7 @@ LIB_SHAPE* SCH_IO_KICAD_SEXPR_PARSER::parseBezier()
std::unique_ptr<LIB_SHAPE> bezier = std::make_unique<LIB_SHAPE>( nullptr, SHAPE_T::BEZIER ); std::unique_ptr<LIB_SHAPE> bezier = std::make_unique<LIB_SHAPE>( nullptr, SHAPE_T::BEZIER );
bezier->SetUnit( m_unit ); bezier->SetUnit( m_unit );
bezier->SetConvert( m_convert ); bezier->SetBodyStyle( m_bodyStyle );
token = NextTok(); token = NextTok();
@ -1359,7 +1359,7 @@ LIB_SHAPE* SCH_IO_KICAD_SEXPR_PARSER::parseCircle()
std::unique_ptr<LIB_SHAPE> circle = std::make_unique<LIB_SHAPE>( nullptr, SHAPE_T::CIRCLE ); std::unique_ptr<LIB_SHAPE> circle = std::make_unique<LIB_SHAPE>( nullptr, SHAPE_T::CIRCLE );
circle->SetUnit( m_unit ); circle->SetUnit( m_unit );
circle->SetConvert( m_convert ); circle->SetBodyStyle( m_bodyStyle );
token = NextTok(); token = NextTok();
@ -1469,7 +1469,7 @@ LIB_PIN* SCH_IO_KICAD_SEXPR_PARSER::parsePin()
std::unique_ptr<LIB_PIN> pin = std::make_unique<LIB_PIN>( nullptr ); std::unique_ptr<LIB_PIN> pin = std::make_unique<LIB_PIN>( nullptr );
pin->SetUnit( m_unit ); pin->SetUnit( m_unit );
pin->SetConvert( m_convert ); pin->SetBodyStyle( m_bodyStyle );
// Pin electrical type. // Pin electrical type.
token = NextTok(); token = NextTok();
@ -1632,7 +1632,7 @@ LIB_SHAPE* SCH_IO_KICAD_SEXPR_PARSER::parsePolyLine()
std::unique_ptr<LIB_SHAPE> poly = std::make_unique<LIB_SHAPE>( nullptr, SHAPE_T::POLY ); std::unique_ptr<LIB_SHAPE> poly = std::make_unique<LIB_SHAPE>( nullptr, SHAPE_T::POLY );
poly->SetUnit( m_unit ); poly->SetUnit( m_unit );
poly->SetConvert( m_convert ); poly->SetBodyStyle( m_bodyStyle );
token = NextTok(); token = NextTok();
@ -1700,7 +1700,7 @@ LIB_SHAPE* SCH_IO_KICAD_SEXPR_PARSER::parseRectangle()
std::unique_ptr<LIB_SHAPE> rectangle = std::make_unique<LIB_SHAPE>( nullptr, SHAPE_T::RECTANGLE ); std::unique_ptr<LIB_SHAPE> rectangle = std::make_unique<LIB_SHAPE>( nullptr, SHAPE_T::RECTANGLE );
rectangle->SetUnit( m_unit ); rectangle->SetUnit( m_unit );
rectangle->SetConvert( m_convert ); rectangle->SetBodyStyle( m_bodyStyle );
token = NextTok(); token = NextTok();
@ -1758,7 +1758,7 @@ LIB_TEXT* SCH_IO_KICAD_SEXPR_PARSER::parseText()
std::unique_ptr<LIB_TEXT> text = std::make_unique<LIB_TEXT>( nullptr ); std::unique_ptr<LIB_TEXT> text = std::make_unique<LIB_TEXT>( nullptr );
text->SetUnit( m_unit ); text->SetUnit( m_unit );
text->SetConvert( m_convert ); text->SetBodyStyle( m_bodyStyle );
token = NextTok(); token = NextTok();
if( token == T_private ) if( token == T_private )
@ -1820,7 +1820,7 @@ LIB_TEXTBOX* SCH_IO_KICAD_SEXPR_PARSER::parseTextBox()
std::unique_ptr<LIB_TEXTBOX> textBox = std::make_unique<LIB_TEXTBOX>( nullptr ); std::unique_ptr<LIB_TEXTBOX> textBox = std::make_unique<LIB_TEXTBOX>( nullptr );
textBox->SetUnit( m_unit ); textBox->SetUnit( m_unit );
textBox->SetConvert( m_convert ); textBox->SetBodyStyle( m_bodyStyle );
token = NextTok(); token = NextTok();
if( token == T_private ) if( token == T_private )
@ -2890,7 +2890,7 @@ SCH_SYMBOL* SCH_IO_KICAD_SEXPR_PARSER::parseSchematicSymbol()
break; break;
case T_convert: case T_convert:
symbol->SetConvert( parseInt( "symbol convert" ) ); symbol->SetBodyStyle( parseInt( "symbol body style" ) );
NeedRIGHT(); NeedRIGHT();
break; break;

View File

@ -217,12 +217,13 @@ private:
SCH_TEXTBOX* parseSchTextBox(); SCH_TEXTBOX* parseSchTextBox();
void parseBusAlias( SCH_SCREEN* aScreen ); void parseBusAlias( SCH_SCREEN* aScreen );
int m_requiredVersion; ///< Set to the symbol library file version required. private:
int m_requiredVersion; ///< Set to the symbol library file version required.
wxString m_generatorVersion; wxString m_generatorVersion;
int m_unit; ///< The current unit being parsed. int m_unit; ///< The current unit being parsed.
int m_convert; ///< The current body style being parsed. int m_bodyStyle; ///< The current body style being parsed.
wxString m_symbolName; ///< The current symbol name. wxString m_symbolName; ///< The current symbol name.
bool m_appending; ///< Appending load status. bool m_appending; ///< Appending load status.
/// Field IDs that have been read so far for the current symbol. /// Field IDs that have been read so far for the current symbol.
std::set<int> m_fieldIDsRead; std::set<int> m_fieldIDsRead;

View File

@ -102,7 +102,7 @@ std::vector<KICAD_T> SCH_PAINTER::g_ScaledSelectionTypes = {
SCH_RENDER_SETTINGS::SCH_RENDER_SETTINGS() : SCH_RENDER_SETTINGS::SCH_RENDER_SETTINGS() :
m_IsSymbolEditor( false ), m_IsSymbolEditor( false ),
m_ShowUnit( 0 ), m_ShowUnit( 0 ),
m_ShowConvert( 0 ), m_ShowBodyStyle( 0 ),
m_ShowPinsElectricalType( true ), m_ShowPinsElectricalType( true ),
m_ShowPinNumbers( false ), m_ShowPinNumbers( false ),
m_ShowDisabled( false ), m_ShowDisabled( false ),
@ -339,9 +339,9 @@ bool SCH_PAINTER::isUnitAndConversionShown( const LIB_ITEM* aItem ) const
return false; return false;
} }
if( m_schSettings.m_ShowConvert // showing a specific conversion if( m_schSettings.m_ShowBodyStyle // showing a specific body style
&& aItem->GetConvert() // item is conversion-specific && aItem->GetBodyStyle() // item is body-style-specific
&& aItem->GetConvert() != m_schSettings.m_ShowConvert ) && aItem->GetBodyStyle() != m_schSettings.m_ShowBodyStyle )
{ {
return false; return false;
} }
@ -737,13 +737,13 @@ void SCH_PAINTER::triLine( const VECTOR2D &a, const VECTOR2D &b, const VECTOR2D
void SCH_PAINTER::draw( const LIB_SYMBOL* aSymbol, int aLayer, bool aDrawFields, int aUnit, void SCH_PAINTER::draw( const LIB_SYMBOL* aSymbol, int aLayer, bool aDrawFields, int aUnit,
int aConvert, bool aDimmed ) int aBodyStyle, bool aDimmed )
{ {
if( !aUnit ) if( !aUnit )
aUnit = m_schSettings.m_ShowUnit; aUnit = m_schSettings.m_ShowUnit;
if( !aConvert ) if( !aBodyStyle )
aConvert = m_schSettings.m_ShowConvert; aBodyStyle = m_schSettings.m_ShowBodyStyle;
std::unique_ptr< LIB_SYMBOL > tmpSymbol; std::unique_ptr< LIB_SYMBOL > tmpSymbol;
const LIB_SYMBOL* drawnSymbol = aSymbol; const LIB_SYMBOL* drawnSymbol = aSymbol;
@ -782,7 +782,7 @@ void SCH_PAINTER::draw( const LIB_SYMBOL* aSymbol, int aLayer, bool aDrawFields,
if( aUnit && item.GetUnit() && aUnit != item.GetUnit() ) if( aUnit && item.GetUnit() && aUnit != item.GetUnit() )
continue; continue;
if( aConvert && item.GetConvert() && aConvert != item.GetConvert() ) if( aBodyStyle && item.GetBodyStyle() && aBodyStyle != item.GetBodyStyle() )
continue; continue;
draw( &item, aLayer, aDimmed ); draw( &item, aLayer, aDimmed );
@ -2489,18 +2489,18 @@ void SCH_PAINTER::draw( const SCH_SYMBOL* aSymbol, int aLayer )
} }
int unit = aSymbol->GetUnitSelection( &m_schematic->CurrentSheet() ); int unit = aSymbol->GetUnitSelection( &m_schematic->CurrentSheet() );
int convert = aSymbol->GetConvert(); int bodyStyle = aSymbol->GetBodyStyle();
// Use dummy symbol if the actual couldn't be found (or couldn't be locked). // Use dummy symbol if the actual couldn't be found (or couldn't be locked).
LIB_SYMBOL* originalSymbol = aSymbol->GetLibSymbolRef() ? LIB_SYMBOL* originalSymbol = aSymbol->GetLibSymbolRef() ?
aSymbol->GetLibSymbolRef().get() : dummy(); aSymbol->GetLibSymbolRef().get() : dummy();
LIB_PINS originalPins; LIB_PINS originalPins;
originalSymbol->GetPins( originalPins, unit, convert ); originalSymbol->GetPins( originalPins, unit, bodyStyle );
// Copy the source so we can re-orient and translate it. // Copy the source so we can re-orient and translate it.
LIB_SYMBOL tempSymbol( *originalSymbol ); LIB_SYMBOL tempSymbol( *originalSymbol );
LIB_PINS tempPins; LIB_PINS tempPins;
tempSymbol.GetPins( tempPins, unit, convert ); tempSymbol.GetPins( tempPins, unit, bodyStyle );
tempSymbol.SetFlags( aSymbol->GetFlags() ); tempSymbol.SetFlags( aSymbol->GetFlags() );
@ -2549,7 +2549,7 @@ void SCH_PAINTER::draw( const SCH_SYMBOL* aSymbol, int aLayer )
tempPin->SetOperatingPoint( symbolPin->GetOperatingPoint() ); tempPin->SetOperatingPoint( symbolPin->GetOperatingPoint() );
} }
draw( &tempSymbol, aLayer, false, aSymbol->GetUnit(), aSymbol->GetConvert(), aSymbol->GetDNP() ); draw( &tempSymbol, aLayer, false, aSymbol->GetUnit(), aSymbol->GetBodyStyle(), aSymbol->GetDNP() );
for( unsigned i = 0; i < tempPins.size(); ++i ) for( unsigned i = 0; i < tempPins.size(); ++i )
{ {

View File

@ -111,7 +111,7 @@ public:
bool m_IsSymbolEditor; bool m_IsSymbolEditor;
int m_ShowUnit; // Show all units if 0 int m_ShowUnit; // Show all units if 0
int m_ShowConvert; // Show all conversions if 0 int m_ShowBodyStyle; // Show all body styles if 0
bool m_ShowPinsElectricalType; bool m_ShowPinsElectricalType;
bool m_ShowPinNumbers; // Force showing of pin numbers (normally symbol-specific) bool m_ShowPinNumbers; // Force showing of pin numbers (normally symbol-specific)
@ -148,7 +148,7 @@ private:
void draw( const LIB_PIN* aPin, int aLayer, bool aDimmed ); void draw( const LIB_PIN* aPin, int aLayer, bool aDimmed );
void draw( const LIB_SHAPE* aCircle, int aLayer, bool aDimmed ); void draw( const LIB_SHAPE* aCircle, int aLayer, bool aDimmed );
void draw( const LIB_SYMBOL* aSymbol, int, bool aDrawFields = true, int aUnit = 0, void draw( const LIB_SYMBOL* aSymbol, int, bool aDrawFields = true, int aUnit = 0,
int aConvert = 0, bool aDimmed = false ); int aBodyStyle = 0, bool aDimmed = false );
void draw( const LIB_FIELD* aField, int aLayer, bool aDimmed ); void draw( const LIB_FIELD* aField, int aLayer, bool aDimmed );
void draw( const LIB_TEXT* aText, int aLayer, bool aDimmed ); void draw( const LIB_TEXT* aText, int aLayer, bool aDimmed );
void draw( const LIB_TEXTBOX* aTextBox, int aLayer, bool aDimmed ); void draw( const LIB_TEXTBOX* aTextBox, int aLayer, bool aDimmed );

View File

@ -215,9 +215,9 @@ void SCH_PIN::GetMsgPanelInfo( EDA_DRAW_FRAME* aFrame, std::vector<MSG_PANEL_ITE
aList.emplace_back( _( "Type" ), _( "Pin" ) ); aList.emplace_back( _( "Type" ), _( "Pin" ) );
if( m_libPin->GetConvert() == LIB_ITEM::LIB_CONVERT::BASE ) if( m_libPin->GetBodyStyle() == LIB_ITEM::BODY_STYLE::BASE )
msg = _( "no" ); msg = _( "no" );
else if( m_libPin->GetConvert() == LIB_ITEM::LIB_CONVERT::DEMORGAN ) else if( m_libPin->GetBodyStyle() == LIB_ITEM::BODY_STYLE::DEMORGAN )
msg = _( "yes" ); msg = _( "yes" );
else else
msg = wxT( "?" ); msg = wxT( "?" );

View File

@ -105,14 +105,14 @@ SCH_SYMBOL::SCH_SYMBOL() :
SCH_SYMBOL::SCH_SYMBOL( const LIB_SYMBOL& aSymbol, const LIB_ID& aLibId, SCH_SYMBOL::SCH_SYMBOL( const LIB_SYMBOL& aSymbol, const LIB_ID& aLibId,
const SCH_SHEET_PATH* aSheet, int aUnit, int aConvert, const SCH_SHEET_PATH* aSheet, int aUnit, int aBodyStyle,
const VECTOR2I& aPosition, EDA_ITEM* aParent ) : const VECTOR2I& aPosition, EDA_ITEM* aParent ) :
SCH_ITEM( aParent, SCH_SYMBOL_T ) SCH_ITEM( aParent, SCH_SYMBOL_T )
{ {
Init( aPosition ); Init( aPosition );
m_unit = aUnit; m_unit = aUnit;
m_convert = aConvert; m_bodyStyle = aBodyStyle;
m_lib_id = aLibId; m_lib_id = aLibId;
std::unique_ptr< LIB_SYMBOL > part; std::unique_ptr< LIB_SYMBOL > part;
@ -166,7 +166,7 @@ SCH_SYMBOL::SCH_SYMBOL( const SCH_SYMBOL& aSymbol ) :
m_parent = aSymbol.m_parent; m_parent = aSymbol.m_parent;
m_pos = aSymbol.m_pos; m_pos = aSymbol.m_pos;
m_unit = aSymbol.m_unit; m_unit = aSymbol.m_unit;
m_convert = aSymbol.m_convert; m_bodyStyle = aSymbol.m_bodyStyle;
m_lib_id = aSymbol.m_lib_id; m_lib_id = aSymbol.m_lib_id;
m_isInNetlist = aSymbol.m_isInNetlist; m_isInNetlist = aSymbol.m_isInNetlist;
m_excludedFromSim = aSymbol.m_excludedFromSim; m_excludedFromSim = aSymbol.m_excludedFromSim;
@ -204,10 +204,10 @@ SCH_SYMBOL::SCH_SYMBOL( const SCH_SYMBOL& aSymbol ) :
void SCH_SYMBOL::Init( const VECTOR2I& pos ) void SCH_SYMBOL::Init( const VECTOR2I& pos )
{ {
m_layer = LAYER_DEVICE; m_layer = LAYER_DEVICE;
m_pos = pos; m_pos = pos;
m_unit = 1; // In multi unit chip - which unit to draw. m_unit = 1; // In multi unit chip - which unit to draw.
m_convert = LIB_ITEM::LIB_CONVERT::BASE; // De Morgan Handling m_bodyStyle = LIB_ITEM::BODY_STYLE::BASE; // De Morgan Handling
// The rotation/mirror transformation matrix. pos normal // The rotation/mirror transformation matrix. pos normal
m_transform = TRANSFORM(); m_transform = TRANSFORM();
@ -363,7 +363,7 @@ void SCH_SYMBOL::UpdatePins()
{ {
// NW: Don't filter by unit: this data-structure is used for all instances, // NW: Don't filter by unit: this data-structure is used for all instances,
// some of which might have different units. // some of which might have different units.
if( libPin->GetConvert() && m_convert && m_convert != libPin->GetConvert() ) if( libPin->GetBodyStyle() && m_bodyStyle && m_bodyStyle != libPin->GetBodyStyle() )
continue; continue;
SCH_PIN* pin = nullptr; SCH_PIN* pin = nullptr;
@ -459,11 +459,11 @@ void SCH_SYMBOL::UpdateUnit( int aUnit )
} }
void SCH_SYMBOL::SetConvert( int aConvert ) void SCH_SYMBOL::SetBodyStyle( int aBodyStyle )
{ {
if( m_convert != aConvert ) if( m_bodyStyle != aBodyStyle )
{ {
m_convert = aConvert; m_bodyStyle = aBodyStyle;
// The convert may have a different pin layout so the update the pin map. // The convert may have a different pin layout so the update the pin map.
UpdatePins(); UpdatePins();
@ -511,7 +511,7 @@ void SCH_SYMBOL::PrintBackground( const RENDER_SETTINGS* aSettings, const VECTOR
opts.draw_hidden_fields = false; opts.draw_hidden_fields = false;
if( m_part ) if( m_part )
m_part->PrintBackground( aSettings, m_pos + aOffset, m_unit, m_convert, opts, GetDNP() ); m_part->PrintBackground( aSettings, m_pos + aOffset, m_unit, m_bodyStyle, opts, GetDNP() );
} }
@ -525,11 +525,11 @@ void SCH_SYMBOL::Print( const RENDER_SETTINGS* aSettings, const VECTOR2I& aOffse
if( m_part ) if( m_part )
{ {
LIB_PINS libPins; LIB_PINS libPins;
m_part->GetPins( libPins, m_unit, m_convert ); m_part->GetPins( libPins, m_unit, m_bodyStyle );
LIB_SYMBOL tempSymbol( *m_part ); LIB_SYMBOL tempSymbol( *m_part );
LIB_PINS tempPins; LIB_PINS tempPins;
tempSymbol.GetPins( tempPins, m_unit, m_convert ); tempSymbol.GetPins( tempPins, m_unit, m_bodyStyle );
// Copy the pin info from the symbol to the temp pins // Copy the pin info from the symbol to the temp pins
for( unsigned i = 0; i < tempPins.size(); ++ i ) for( unsigned i = 0; i < tempPins.size(); ++ i )
@ -553,7 +553,7 @@ void SCH_SYMBOL::Print( const RENDER_SETTINGS* aSettings, const VECTOR2I& aOffse
} }
} }
tempSymbol.Print( aSettings, m_pos + aOffset, m_unit, m_convert, opts, GetDNP() ); tempSymbol.Print( aSettings, m_pos + aOffset, m_unit, m_bodyStyle, opts, GetDNP() );
} }
else // Use dummy() part if the actual cannot be found. else // Use dummy() part if the actual cannot be found.
{ {
@ -1145,7 +1145,7 @@ SCH_PIN* SCH_SYMBOL::GetPin( const wxString& aNumber ) const
void SCH_SYMBOL::GetLibPins( std::vector<LIB_PIN*>& aPinsList ) const void SCH_SYMBOL::GetLibPins( std::vector<LIB_PIN*>& aPinsList ) const
{ {
if( m_part ) if( m_part )
m_part->GetPins( aPinsList, m_unit, m_convert ); m_part->GetPins( aPinsList, m_unit, m_bodyStyle );
} }
@ -1227,7 +1227,7 @@ void SCH_SYMBOL::SwapData( SCH_ITEM* aItem )
std::swap( m_pos, symbol->m_pos ); std::swap( m_pos, symbol->m_pos );
std::swap( m_unit, symbol->m_unit ); std::swap( m_unit, symbol->m_unit );
std::swap( m_convert, symbol->m_convert ); std::swap( m_bodyStyle, symbol->m_bodyStyle );
m_fields.swap( symbol->m_fields ); // std::vector's swap() m_fields.swap( symbol->m_fields ); // std::vector's swap()
@ -1786,9 +1786,9 @@ BOX2I SCH_SYMBOL::doGetBoundingBox( bool aIncludePins, bool aIncludeFields ) con
BOX2I bBox; BOX2I bBox;
if( m_part ) if( m_part )
bBox = m_part->GetBodyBoundingBox( m_unit, m_convert, aIncludePins, false ); bBox = m_part->GetBodyBoundingBox( m_unit, m_bodyStyle, aIncludePins, false );
else else
bBox = dummy()->GetBodyBoundingBox( m_unit, m_convert, aIncludePins, false ); bBox = dummy()->GetBodyBoundingBox( m_unit, m_bodyStyle, aIncludePins, false );
int x0 = bBox.GetX(); int x0 = bBox.GetX();
int xm = bBox.GetRight(); int xm = bBox.GetRight();
@ -2120,13 +2120,15 @@ std::vector<VECTOR2I> SCH_SYMBOL::GetConnectionPoints() const
{ {
// Collect only pins attached to the current unit and convert. // Collect only pins attached to the current unit and convert.
// others are not associated to this symbol instance // others are not associated to this symbol instance
int pin_unit = pin->GetLibPin() ? pin->GetLibPin()->GetUnit() : GetUnit(); int pin_unit = pin->GetLibPin() ? pin->GetLibPin()->GetUnit()
int pin_convert = pin->GetLibPin() ? pin->GetLibPin()->GetConvert() : GetConvert(); : GetUnit();
int pin_bodyStyle = pin->GetLibPin() ? pin->GetLibPin()->GetBodyStyle()
: GetBodyStyle();
if( pin_unit > 0 && pin_unit != GetUnit() ) if( pin_unit > 0 && pin_unit != GetUnit() )
continue; continue;
if( pin_convert > 0 && pin_convert != GetConvert() ) if( pin_bodyStyle > 0 && pin_bodyStyle != GetBodyStyle() )
continue; continue;
retval.push_back( m_transform.TransformCoordinate( pin->GetLocalPosition() ) + m_pos ); retval.push_back( m_transform.TransformCoordinate( pin->GetLocalPosition() ) + m_pos );
@ -2143,7 +2145,7 @@ LIB_ITEM* SCH_SYMBOL::GetDrawItem( const VECTOR2I& aPosition, KICAD_T aType )
// Calculate the position relative to the symbol. // Calculate the position relative to the symbol.
VECTOR2I libPosition = aPosition - m_pos; VECTOR2I libPosition = aPosition - m_pos;
return m_part->LocateDrawItem( m_unit, m_convert, aType, libPosition, m_transform ); return m_part->LocateDrawItem( m_unit, m_bodyStyle, aType, libPosition, m_transform );
} }
return nullptr; return nullptr;
@ -2211,13 +2213,15 @@ INSPECT_RESULT SCH_SYMBOL::Visit( INSPECTOR aInspector, void* aTestData,
{ {
// Collect only pins attached to the current unit and convert. // Collect only pins attached to the current unit and convert.
// others are not associated to this symbol instance // others are not associated to this symbol instance
int pin_unit = pin->GetLibPin() ? pin->GetLibPin()->GetUnit() : GetUnit(); int pin_unit = pin->GetLibPin() ? pin->GetLibPin()->GetUnit()
int pin_convert = pin->GetLibPin() ? pin->GetLibPin()->GetConvert() : GetConvert(); : GetUnit();
int pin_bodyStyle = pin->GetLibPin() ? pin->GetLibPin()->GetBodyStyle()
: GetBodyStyle();
if( pin_unit > 0 && pin_unit != GetUnit() ) if( pin_unit > 0 && pin_unit != GetUnit() )
continue; continue;
if( pin_convert > 0 && pin_convert != GetConvert() ) if( pin_bodyStyle > 0 && pin_bodyStyle != GetBodyStyle() )
continue; continue;
if( INSPECT_RESULT::QUIT == aInspector( pin.get(), (void*) this ) ) if( INSPECT_RESULT::QUIT == aInspector( pin.get(), (void*) this ) )
@ -2292,7 +2296,7 @@ SCH_SYMBOL& SCH_SYMBOL::operator=( const SCH_ITEM& aItem )
m_part.reset( libSymbol ); m_part.reset( libSymbol );
m_pos = c->m_pos; m_pos = c->m_pos;
m_unit = c->m_unit; m_unit = c->m_unit;
m_convert = c->m_convert; m_bodyStyle = c->m_bodyStyle;
m_transform = c->m_transform; m_transform = c->m_transform;
m_instanceReferences = c->m_instanceReferences; m_instanceReferences = c->m_instanceReferences;
@ -2349,13 +2353,15 @@ bool SCH_SYMBOL::doIsConnected( const VECTOR2I& aPosition ) const
// Collect only pins attached to the current unit and convert. // Collect only pins attached to the current unit and convert.
// others are not associated to this symbol instance // others are not associated to this symbol instance
int pin_unit = pin->GetLibPin() ? pin->GetLibPin()->GetUnit() : GetUnit(); int pin_unit = pin->GetLibPin() ? pin->GetLibPin()->GetUnit()
int pin_convert = pin->GetLibPin() ? pin->GetLibPin()->GetConvert() : GetConvert(); : GetUnit();
int pin_bodyStyle = pin->GetLibPin() ? pin->GetLibPin()->GetBodyStyle()
: GetBodyStyle();
if( pin_unit > 0 && pin_unit != GetUnit() ) if( pin_unit > 0 && pin_unit != GetUnit() )
continue; continue;
if( pin_convert > 0 && pin_convert != GetConvert() ) if( pin_bodyStyle > 0 && pin_bodyStyle != GetBodyStyle() )
continue; continue;
if( pin->GetLocalPosition() == new_pos ) if( pin->GetLocalPosition() == new_pos )
@ -2381,12 +2387,12 @@ void SCH_SYMBOL::Plot( PLOTTER* aPlotter, bool aBackground,
if( m_part ) if( m_part )
{ {
LIB_PINS libPins; LIB_PINS libPins;
m_part->GetPins( libPins, GetUnit(), GetConvert() ); m_part->GetPins( libPins, GetUnit(), GetBodyStyle() );
// Copy the source so we can re-orient and translate it. // Copy the source so we can re-orient and translate it.
LIB_SYMBOL tempSymbol( *m_part ); LIB_SYMBOL tempSymbol( *m_part );
LIB_PINS tempPins; LIB_PINS tempPins;
tempSymbol.GetPins( tempPins, GetUnit(), GetConvert() ); tempSymbol.GetPins( tempPins, GetUnit(), GetBodyStyle() );
// Copy the pin info from the symbol to the temp pins // Copy the pin info from the symbol to the temp pins
for( unsigned i = 0; i < tempPins.size(); ++ i ) for( unsigned i = 0; i < tempPins.size(); ++ i )
@ -2418,7 +2424,7 @@ void SCH_SYMBOL::Plot( PLOTTER* aPlotter, bool aBackground,
for( bool local_background : { true, false } ) for( bool local_background : { true, false } )
{ {
tempSymbol.Plot( aPlotter, GetUnit(), GetConvert(), local_background, m_pos, temp, tempSymbol.Plot( aPlotter, GetUnit(), GetBodyStyle(), local_background, m_pos, temp,
GetDNP() ); GetDNP() );
for( SCH_FIELD field : m_fields ) for( SCH_FIELD field : m_fields )
@ -2491,12 +2497,12 @@ void SCH_SYMBOL::PlotPins( PLOTTER* aPlotter ) const
if( m_part ) if( m_part )
{ {
LIB_PINS libPins; LIB_PINS libPins;
m_part->GetPins( libPins, GetUnit(), GetConvert() ); m_part->GetPins( libPins, GetUnit(), GetBodyStyle() );
// Copy the source to stay const // Copy the source to stay const
LIB_SYMBOL tempSymbol( *m_part ); LIB_SYMBOL tempSymbol( *m_part );
LIB_PINS tempPins; LIB_PINS tempPins;
tempSymbol.GetPins( tempPins, GetUnit(), GetConvert() ); tempSymbol.GetPins( tempPins, GetUnit(), GetBodyStyle() );
TRANSFORM transform = GetTransform(); TRANSFORM transform = GetTransform();
@ -2538,13 +2544,15 @@ bool SCH_SYMBOL::IsPointClickableAnchor( const VECTOR2I& aPos ) const
{ {
for( const std::unique_ptr<SCH_PIN>& pin : m_pins ) for( const std::unique_ptr<SCH_PIN>& pin : m_pins )
{ {
int pin_unit = pin->GetLibPin() ? pin->GetLibPin()->GetUnit() : GetUnit(); int pin_unit = pin->GetLibPin() ? pin->GetLibPin()->GetUnit()
int pin_convert = pin->GetLibPin() ? pin->GetLibPin()->GetConvert() : GetConvert(); : GetUnit();
int pin_bodyStyle = pin->GetLibPin() ? pin->GetLibPin()->GetBodyStyle()
: GetBodyStyle();
if( pin_unit > 0 && pin_unit != GetUnit() ) if( pin_unit > 0 && pin_unit != GetUnit() )
continue; continue;
if( pin_convert > 0 && pin_convert != GetConvert() ) if( pin_bodyStyle > 0 && pin_bodyStyle != GetBodyStyle() )
continue; continue;
if( pin->IsPointClickableAnchor( aPos ) ) if( pin->IsPointClickableAnchor( aPos ) )
@ -2597,7 +2605,7 @@ bool SCH_SYMBOL::operator==( const SCH_ITEM& aOther ) const
if( GetUnit() != symbol.GetUnit() ) if( GetUnit() != symbol.GetUnit() )
return false; return false;
if( GetConvert() != symbol.GetConvert() ) if( GetBodyStyle() != symbol.GetBodyStyle() )
return false; return false;
if( GetTransform() != symbol.GetTransform() ) if( GetTransform() != symbol.GetTransform() )

View File

@ -117,11 +117,11 @@ public:
* @param aLibId is the #LIB_ID of alias to create. * @param aLibId is the #LIB_ID of alias to create.
* @param aSheet is the schematic sheet the symbol is place into. * @param aSheet is the schematic sheet the symbol is place into.
* @param aUnit is unit for symbols that have multiple parts per package. * @param aUnit is unit for symbols that have multiple parts per package.
* @param aConvert is the alternate body style for the schematic symbols. * @param aBodyStyle is the alternate body style for the schematic symbols.
* @param aPosition is the position of the symbol. * @param aPosition is the position of the symbol.
*/ */
SCH_SYMBOL( const LIB_SYMBOL& aSymbol, const LIB_ID& aLibId, const SCH_SHEET_PATH* aSheet, SCH_SYMBOL( const LIB_SYMBOL& aSymbol, const LIB_ID& aLibId, const SCH_SHEET_PATH* aSheet,
int aUnit, int aConvert = 0, const VECTOR2I& aPosition = VECTOR2I( 0, 0 ), int aUnit, int aBodyStyle = 0, const VECTOR2I& aPosition = VECTOR2I( 0, 0 ),
EDA_ITEM* aParent = nullptr ); EDA_ITEM* aParent = nullptr );
SCH_SYMBOL( const LIB_SYMBOL& aSymbol, const SCH_SHEET_PATH* aSheet, const PICKED_SYMBOL& aSel, SCH_SYMBOL( const LIB_SYMBOL& aSymbol, const SCH_SHEET_PATH* aSheet, const PICKED_SYMBOL& aSel,
@ -297,9 +297,8 @@ public:
*/ */
void UpdateUnit( int aUnit ); void UpdateUnit( int aUnit );
int GetConvert() const { return m_convert; } int GetBodyStyle() const { return m_bodyStyle; }
void SetBodyStyle( int aBodyStyle );
void SetConvert( int aConvert );
wxString GetPrefix() const { return m_prefix; } wxString GetPrefix() const { return m_prefix; }
@ -889,9 +888,9 @@ private:
VECTOR2I m_pos; VECTOR2I m_pos;
LIB_ID m_lib_id; ///< Name and library the symbol was loaded from, i.e. 74xx:74LS00. LIB_ID m_lib_id; ///< Name and library the symbol was loaded from, i.e. 74xx:74LS00.
int m_unit; ///< The unit for multiple part per package symbols. int m_unit; ///< The unit for multiple part per package symbols.
int m_convert; ///< The alternate body style for symbols that have more than int m_bodyStyle; ///< The alternate body style for symbols that have more than
///< one body style defined. Primarily used for symbols that ///< one body style defined. Currently only used for symbols
///< have a De Morgan conversion. ///< that have a DeMorgan conversion.
wxString m_prefix; ///< C, R, U, Q etc - the first character(s) which typically wxString m_prefix; ///< C, R, U, Q etc - the first character(s) which typically
///< indicate what the symbol is. Determined, upon placement, ///< indicate what the symbol is. Determined, upon placement,
///< from the library symbol. Created upon file load, by the ///< from the library symbol. Created upon file load, by the

View File

@ -94,11 +94,11 @@ void CheckLibSymbol( LIB_SYMBOL* aSymbol, std::vector<wxString>& aMessages,
if( pin->GetNumber() != next->GetNumber() ) if( pin->GetNumber() != next->GetNumber() )
continue; continue;
// Pins are not duplicated only if they are in different convert bodies // Pins are not duplicated only if they are in different body styles
// (but GetConvert() == 0 means commun to all convert bodies) // (but GetBodyStyle() == 0 means commun to all body styles)
if( pin->GetConvert() != 0 && next->GetConvert() != 0 ) if( pin->GetBodyStyle() != 0 && next->GetBodyStyle() != 0 )
{ {
if( pin->GetConvert() != next->GetConvert() ) if( pin->GetBodyStyle() != next->GetBodyStyle() )
continue; continue;
} }
@ -111,10 +111,11 @@ void CheckLibSymbol( LIB_SYMBOL* aSymbol, std::vector<wxString>& aMessages,
if( next->GetName() != "~" && !next->GetName().IsEmpty() ) if( next->GetName() != "~" && !next->GetName().IsEmpty() )
nextName = " '" + next->GetName() + "'"; nextName = " '" + next->GetName() + "'";
if( aSymbol->HasConversion() && next->GetConvert() ) if( aSymbol->HasAlternateBodyStyle() && next->GetBodyStyle() )
{ {
if( pin->GetUnit() == 0 || next->GetUnit() == 0 ) if( pin->GetUnit() == 0 || next->GetUnit() == 0 )
{ {
// TODO: 9.0: change "of converted" to "of alternate body style"
msg.Printf( _( "<b>Duplicate pin %s</b> %s at location <b>(%s, %s)</b>" msg.Printf( _( "<b>Duplicate pin %s</b> %s at location <b>(%s, %s)</b>"
" conflicts with pin %s%s at location <b>(%s, %s)</b>" " conflicts with pin %s%s at location <b>(%s, %s)</b>"
" of converted." ), " of converted." ),
@ -129,6 +130,7 @@ void CheckLibSymbol( LIB_SYMBOL* aSymbol, std::vector<wxString>& aMessages,
} }
else else
{ {
// TODO: 9.0: change "of converted" to "of alternate body style"
msg.Printf( _( "<b>Duplicate pin %s</b> %s at location <b>(%s, %s)</b>" msg.Printf( _( "<b>Duplicate pin %s</b> %s at location <b>(%s, %s)</b>"
" conflicts with pin %s%s at location <b>(%s, %s)</b>" " conflicts with pin %s%s at location <b>(%s, %s)</b>"
" in units %s and %s of converted." ), " in units %s and %s of converted." ),
@ -182,7 +184,7 @@ void CheckLibSymbol( LIB_SYMBOL* aSymbol, std::vector<wxString>& aMessages,
} }
// Test for a valid power aSymbol. // Test for a valid power aSymbol.
// A valid power aSymbol has only one unit, no convert and one pin. // A valid power aSymbol has only one unit, no alternate body styles and one pin.
// And this pin should be PT_POWER_IN (invisible to be automatically connected) // And this pin should be PT_POWER_IN (invisible to be automatically connected)
// or PT_POWER_OUT for a power flag // or PT_POWER_OUT for a power flag
if( aSymbol->IsPower() ) if( aSymbol->IsPower() )
@ -193,8 +195,9 @@ void CheckLibSymbol( LIB_SYMBOL* aSymbol, std::vector<wxString>& aMessages,
aMessages.push_back( msg ); aMessages.push_back( msg );
} }
if( aSymbol->HasConversion() ) if( aSymbol->HasAlternateBodyStyle() )
{ {
// TODO: 9.0: change to "A Power Symbol should not have DeMorgan variants"
msg.Printf( _( "<b>A Power Symbol should have no convert option</b><br><br>" ) ); msg.Printf( _( "<b>A Power Symbol should have no convert option</b><br><br>" ) );
aMessages.push_back( msg ); aMessages.push_back( msg );
} }
@ -238,10 +241,11 @@ void CheckLibSymbol( LIB_SYMBOL* aSymbol, std::vector<wxString>& aMessages,
&& !pin->IsVisible() ) && !pin->IsVisible() )
{ {
// hidden power pin // hidden power pin
if( aSymbol->HasConversion() && pin->GetConvert() ) if( aSymbol->HasAlternateBodyStyle() && pin->GetBodyStyle() )
{ {
if( aSymbol->GetUnitCount() <= 1 ) if( aSymbol->GetUnitCount() <= 1 )
{ {
// TODO: 9.0: change "of converted" to "of alternate body style"
msg.Printf( _( "Info: <b>Hidden power pin %s</b> %s at location <b>(%s, %s)</b>" msg.Printf( _( "Info: <b>Hidden power pin %s</b> %s at location <b>(%s, %s)</b>"
" of converted." ), " of converted." ),
pin->GetNumber(), pin->GetNumber(),
@ -251,6 +255,7 @@ void CheckLibSymbol( LIB_SYMBOL* aSymbol, std::vector<wxString>& aMessages,
} }
else else
{ {
// TODO: 9.0: change "of converted" to "of alternate body style"
msg.Printf( _( "Info: <b>Hidden power pin %s</b> %s at location <b>(%s, %s)</b>" msg.Printf( _( "Info: <b>Hidden power pin %s</b> %s at location <b>(%s, %s)</b>"
" in unit %c of converted." ), " in unit %c of converted." ),
pin->GetNumber(), pin->GetNumber(),
@ -294,10 +299,11 @@ void CheckLibSymbol( LIB_SYMBOL* aSymbol, std::vector<wxString>& aMessages,
// pin is off grid // pin is off grid
msg.Empty(); msg.Empty();
if( aSymbol->HasConversion() && pin->GetConvert() ) if( aSymbol->HasAlternateBodyStyle() && pin->GetBodyStyle() )
{ {
if( aSymbol->GetUnitCount() <= 1 ) if( aSymbol->GetUnitCount() <= 1 )
{ {
// TODO: 9.0: change "of converted" to "of alternate body style"
msg.Printf( _( "<b>Off grid pin %s</b> %s at location <b>(%s, %s)</b>" msg.Printf( _( "<b>Off grid pin %s</b> %s at location <b>(%s, %s)</b>"
" of converted." ), " of converted." ),
pin->GetNumber(), pin->GetNumber(),
@ -307,6 +313,7 @@ void CheckLibSymbol( LIB_SYMBOL* aSymbol, std::vector<wxString>& aMessages,
} }
else else
{ {
// TODO: 9.0: change "of converted" to "of alternate body style"
msg.Printf( _( "<b>Off grid pin %s</b> %s at location <b>(%.3s, %.3s)</b>" msg.Printf( _( "<b>Off grid pin %s</b> %s at location <b>(%.3s, %.3s)</b>"
" in unit %c of converted." ), " in unit %c of converted." ),
pin->GetNumber(), pin->GetNumber(),
@ -409,7 +416,7 @@ bool sort_by_pin_number( const LIB_PIN* ref, const LIB_PIN* tst )
// Use DeMorgan variant as secondary key // Use DeMorgan variant as secondary key
if( test == 0 ) if( test == 0 )
test = ref->GetConvert() - tst->GetConvert(); test = ref->GetBodyStyle() - tst->GetBodyStyle();
// Use unit as tertiary key // Use unit as tertiary key
if( test == 0 ) if( test == 0 )

View File

@ -112,7 +112,7 @@ SYMBOL_EDIT_FRAME::SYMBOL_EDIT_FRAME( KIWAY* aKiway, wxWindow* aParent ) :
m_treePane = nullptr; m_treePane = nullptr;
m_libMgr = nullptr; m_libMgr = nullptr;
m_unit = 1; m_unit = 1;
m_convert = 1; m_bodyStyle = 1;
m_aboutTitle = _HKI( "KiCad Symbol Editor" ); m_aboutTitle = _HKI( "KiCad Symbol Editor" );
wxIcon icon; wxIcon icon;
@ -497,13 +497,13 @@ void SYMBOL_EDIT_FRAME::setupUIConditions()
auto demorganStandardCond = auto demorganStandardCond =
[this]( const SELECTION& ) [this]( const SELECTION& )
{ {
return m_convert == LIB_ITEM::LIB_CONVERT::BASE; return m_bodyStyle == LIB_ITEM::BODY_STYLE::BASE;
}; };
auto demorganAlternateCond = auto demorganAlternateCond =
[this]( const SELECTION& ) [this]( const SELECTION& )
{ {
return m_convert == LIB_ITEM::LIB_CONVERT::DEMORGAN; return m_bodyStyle == LIB_ITEM::BODY_STYLE::DEMORGAN;
}; };
auto multiUnitModeCond = auto multiUnitModeCond =
@ -787,7 +787,7 @@ void SYMBOL_EDIT_FRAME::SetCurSymbol( LIB_SYMBOL* aSymbol, bool aUpdateZoom )
m_toolManager->ResetTools( TOOL_BASE::MODEL_RELOAD ); m_toolManager->ResetTools( TOOL_BASE::MODEL_RELOAD );
GetRenderSettings()->m_ShowUnit = m_unit; GetRenderSettings()->m_ShowUnit = m_unit;
GetRenderSettings()->m_ShowConvert = m_convert; GetRenderSettings()->m_ShowBodyStyle = m_bodyStyle;
GetRenderSettings()->m_ShowDisabled = IsSymbolFromLegacyLibrary() && !IsSymbolFromSchematic(); GetRenderSettings()->m_ShowDisabled = IsSymbolFromLegacyLibrary() && !IsSymbolFromSchematic();
GetRenderSettings()->m_ShowGraphicsDisabled = IsSymbolAlias() && !IsSymbolFromSchematic(); GetRenderSettings()->m_ShowGraphicsDisabled = IsSymbolAlias() && !IsSymbolFromSchematic();
GetCanvas()->DisplaySymbol( m_symbol ); GetCanvas()->DisplaySymbol( m_symbol );
@ -841,7 +841,7 @@ void SYMBOL_EDIT_FRAME::SetCurSymbol( LIB_SYMBOL* aSymbol, bool aUpdateZoom )
} }
int unit = GetUnit(); int unit = GetUnit();
int convert = GetConvert(); int bodyStyle = GetBodyStyle();
wxString msg; wxString msg;
wxString link; wxString link;
@ -854,7 +854,7 @@ void SYMBOL_EDIT_FRAME::SetCurSymbol( LIB_SYMBOL* aSymbol, bool aUpdateZoom )
button->Bind( wxEVT_COMMAND_HYPERLINK, std::function<void( wxHyperlinkEvent& aEvent )>( button->Bind( wxEVT_COMMAND_HYPERLINK, std::function<void( wxHyperlinkEvent& aEvent )>(
[=]( wxHyperlinkEvent& aEvent ) [=]( wxHyperlinkEvent& aEvent )
{ {
LoadSymbolFromCurrentLib( rootSymbolName, unit, convert ); LoadSymbolFromCurrentLib( rootSymbolName, unit, bodyStyle );
} ) ); } ) );
infobar->RemoveAllButtons(); infobar->RemoveAllButtons();
@ -1282,7 +1282,7 @@ void SYMBOL_EDIT_FRAME::SetScreen( BASE_SCREEN* aScreen )
void SYMBOL_EDIT_FRAME::RebuildView() void SYMBOL_EDIT_FRAME::RebuildView()
{ {
GetRenderSettings()->m_ShowUnit = m_unit; GetRenderSettings()->m_ShowUnit = m_unit;
GetRenderSettings()->m_ShowConvert = m_convert; GetRenderSettings()->m_ShowBodyStyle = m_bodyStyle;
GetRenderSettings()->m_ShowDisabled = IsSymbolFromLegacyLibrary() && !IsSymbolFromSchematic(); GetRenderSettings()->m_ShowDisabled = IsSymbolFromLegacyLibrary() && !IsSymbolFromSchematic();
GetRenderSettings()->m_ShowGraphicsDisabled = IsSymbolAlias() && !IsSymbolFromSchematic(); GetRenderSettings()->m_ShowGraphicsDisabled = IsSymbolAlias() && !IsSymbolFromSchematic();
GetCanvas()->DisplaySymbol( m_symbol ); GetCanvas()->DisplaySymbol( m_symbol );
@ -1335,7 +1335,7 @@ const BOX2I SYMBOL_EDIT_FRAME::GetDocumentExtents( bool aIncludeAllVisible ) con
} }
else else
{ {
return m_symbol->Flatten()->GetUnitBoundingBox( m_unit, m_convert ); return m_symbol->Flatten()->GetUnitBoundingBox( m_unit, m_bodyStyle );
} }
} }
@ -1498,7 +1498,7 @@ void SYMBOL_EDIT_FRAME::KiwayMailIn( KIWAY_EXPRESS& mail )
SetScreen( symbol_screen ); SetScreen( symbol_screen );
SetCurSymbol( new LIB_SYMBOL( *lib_symbol ), false ); SetCurSymbol( new LIB_SYMBOL( *lib_symbol ), false );
RebuildSymbolUnitsList(); RebuildSymbolUnitsList();
SetShowDeMorgan( GetCurSymbol()->HasConversion() ); SetShowDeMorgan( GetCurSymbol()->HasAlternateBodyStyle() );
if( m_toolManager ) if( m_toolManager )
m_toolManager->ResetTools( TOOL_BASE::MODEL_RELOAD ); m_toolManager->ResetTools( TOOL_BASE::MODEL_RELOAD );
@ -1641,7 +1641,7 @@ void SYMBOL_EDIT_FRAME::LoadSymbolFromSchematic( SCH_SYMBOL* aSymbol )
m_schematicSymbolUUID = aSymbol->m_Uuid; m_schematicSymbolUUID = aSymbol->m_Uuid;
m_reference = symbol->GetFieldById( REFERENCE_FIELD )->GetText(); m_reference = symbol->GetFieldById( REFERENCE_FIELD )->GetText();
m_unit = std::max( 1, aSymbol->GetUnit() ); m_unit = std::max( 1, aSymbol->GetUnit() );
m_convert = std::max( 1, aSymbol->GetConvert() ); m_bodyStyle = std::max( 1, aSymbol->GetBodyStyle() );
// Optimize default edit options for this symbol // Optimize default edit options for this symbol
// Usually if units are locked, graphic items are specific to each unit // Usually if units are locked, graphic items are specific to each unit
@ -1667,7 +1667,7 @@ void SYMBOL_EDIT_FRAME::LoadSymbolFromSchematic( SCH_SYMBOL* aSymbol )
UpdateTitle(); UpdateTitle();
RebuildSymbolUnitsList(); RebuildSymbolUnitsList();
SetShowDeMorgan( GetCurSymbol()->HasConversion() ); SetShowDeMorgan( GetCurSymbol()->HasAlternateBodyStyle() );
UpdateSymbolMsgPanelInfo(); UpdateSymbolMsgPanelInfo();
// Let tools add things to the view if necessary // Let tools add things to the view if necessary

View File

@ -236,8 +236,8 @@ public:
int GetUnit() const { return m_unit; } int GetUnit() const { return m_unit; }
void SetUnit( int aUnit ) { m_unit = aUnit; } void SetUnit( int aUnit ) { m_unit = aUnit; }
int GetConvert() const { return m_convert; } int GetBodyStyle() const { return m_bodyStyle; }
void SetConvert( int aConvert ) { m_convert = aConvert; } void SetBodyStyle( int aBodyStyle ) { m_bodyStyle = aBodyStyle; }
bool GetShowDeMorgan() const { return m_showDeMorgan; } bool GetShowDeMorgan() const { return m_showDeMorgan; }
void SetShowDeMorgan( bool show ) { m_showDeMorgan = show; } void SetShowDeMorgan( bool show ) { m_showDeMorgan = show; }
@ -309,10 +309,10 @@ public:
* *
* @param aLibId is the #LIB_ID of the symbol to select. * @param aLibId is the #LIB_ID of the symbol to select.
* @param aUnit the unit to show * @param aUnit the unit to show
* @param aConvert the DeMorgan variant to show * @param aBodyStyle the DeMorgan variant to show
* @return true if the symbol defined by \a aLibId was loaded. * @return true if the symbol defined by \a aLibId was loaded.
*/ */
bool LoadSymbol( const LIB_ID& aLibId, int aUnit, int aConvert ); bool LoadSymbol( const LIB_ID& aLibId, int aUnit, int aBodyStyle );
/** /**
* Print a page. * Print a page.
@ -452,10 +452,10 @@ private:
* *
* @param aAliasName The symbol alias name to load from the current library. * @param aAliasName The symbol alias name to load from the current library.
* @param aUnit Unit to be selected * @param aUnit Unit to be selected
* @param aConvert Convert to be selected * @param aBodyStyle Convert to be selected
* @return true if the symbol loaded correctly. * @return true if the symbol loaded correctly.
*/ */
bool LoadSymbolFromCurrentLib( const wxString& aAliasName, int aUnit = 0, int aConvert = 0 ); bool LoadSymbolFromCurrentLib( const wxString& aAliasName, int aUnit = 0, int aBodyStyle = 0 );
/** /**
* Create a copy of \a aLibEntry into memory. * Create a copy of \a aLibEntry into memory.
@ -464,11 +464,11 @@ private:
* @param aLibrary the path to the library file that \a aLibEntry was loaded from. This is * @param aLibrary the path to the library file that \a aLibEntry was loaded from. This is
* for error messaging purposes only. * for error messaging purposes only.
* @param aUnit the initial unit to show. * @param aUnit the initial unit to show.
* @param aConvert the initial DeMorgan variant to show. * @param aBodyStyle the initial DeMorgan variant to show.
* @return True if a copy of \a aLibEntry was successfully copied. * @return True if a copy of \a aLibEntry was successfully copied.
*/ */
bool LoadOneLibrarySymbolAux( LIB_SYMBOL* aLibEntry, const wxString& aLibrary, int aUnit, bool LoadOneLibrarySymbolAux( LIB_SYMBOL* aLibEntry, const wxString& aLibrary, int aUnit,
int aConvert ); int aBodyStyle );
///< Create a backup copy of a file with requested extension. ///< Create a backup copy of a file with requested extension.
bool backupFile( const wxFileName& aOriginalFile, const wxString& aBackupExt ); bool backupFile( const wxFileName& aOriginalFile, const wxString& aBackupExt );
@ -571,8 +571,8 @@ private:
// The unit number to edit and show // The unit number to edit and show
int m_unit; int m_unit;
// Show the normal shape ( m_convert <= 1 ) or the converted shape ( m_convert > 1 ) // Show the normal shape (m_bodyStyle <= 1) or the DeMorgan converted shape (m_bodyStyle > 1)
int m_convert; int m_bodyStyle;
///< Flag if the symbol being edited was loaded directly from a schematic. ///< Flag if the symbol being edited was loaded directly from a schematic.
bool m_isSymbolFromSchematic; bool m_isSymbolFromSchematic;

View File

@ -142,7 +142,7 @@ bool SYMBOL_EDIT_FRAME::saveCurrentSymbol()
} }
bool SYMBOL_EDIT_FRAME::LoadSymbol( const LIB_ID& aLibId, int aUnit, int aConvert ) bool SYMBOL_EDIT_FRAME::LoadSymbol( const LIB_ID& aLibId, int aUnit, int aBodyStyle )
{ {
LIB_ID libId = aLibId; LIB_ID libId = aLibId;
@ -176,7 +176,7 @@ bool SYMBOL_EDIT_FRAME::LoadSymbol( const LIB_ID& aLibId, int aUnit, int aConver
if( GetCurSymbol() && !IsSymbolFromSchematic() if( GetCurSymbol() && !IsSymbolFromSchematic()
&& GetCurSymbol()->GetLibId() == libId && GetCurSymbol()->GetLibId() == libId
&& GetUnit() == aUnit && GetUnit() == aUnit
&& GetConvert() == aConvert ) && GetBodyStyle() == aBodyStyle )
{ {
return true; return true;
} }
@ -195,7 +195,7 @@ bool SYMBOL_EDIT_FRAME::LoadSymbol( const LIB_ID& aLibId, int aUnit, int aConver
SelectActiveLibrary( libId.GetLibNickname() ); SelectActiveLibrary( libId.GetLibNickname() );
if( LoadSymbolFromCurrentLib( libId.GetLibItemName(), aUnit, aConvert ) ) if( LoadSymbolFromCurrentLib( libId.GetLibItemName(), aUnit, aBodyStyle ) )
{ {
m_treePane->GetLibTree()->SelectLibId( libId ); m_treePane->GetLibTree()->SelectLibId( libId );
m_treePane->GetLibTree()->ExpandLibId( libId ); m_treePane->GetLibTree()->ExpandLibId( libId );
@ -219,7 +219,7 @@ void SYMBOL_EDIT_FRAME::centerItemIdleHandler( wxIdleEvent& aEvent )
bool SYMBOL_EDIT_FRAME::LoadSymbolFromCurrentLib( const wxString& aAliasName, int aUnit, bool SYMBOL_EDIT_FRAME::LoadSymbolFromCurrentLib( const wxString& aAliasName, int aUnit,
int aConvert ) int aBodyStyle )
{ {
LIB_SYMBOL* alias = nullptr; LIB_SYMBOL* alias = nullptr;
@ -238,7 +238,7 @@ bool SYMBOL_EDIT_FRAME::LoadSymbolFromCurrentLib( const wxString& aAliasName, in
return false; return false;
} }
if( !alias || !LoadOneLibrarySymbolAux( alias, GetCurLib(), aUnit, aConvert ) ) if( !alias || !LoadOneLibrarySymbolAux( alias, GetCurLib(), aUnit, aBodyStyle ) )
return false; return false;
// Enable synchronized pin edit mode for symbols with interchangeable units // Enable synchronized pin edit mode for symbols with interchangeable units
@ -246,7 +246,7 @@ bool SYMBOL_EDIT_FRAME::LoadSymbolFromCurrentLib( const wxString& aAliasName, in
ClearUndoRedoList(); ClearUndoRedoList();
m_toolManager->RunAction( ACTIONS::zoomFitScreen ); m_toolManager->RunAction( ACTIONS::zoomFitScreen );
SetShowDeMorgan( GetCurSymbol()->Flatten()->HasConversion() ); SetShowDeMorgan( GetCurSymbol()->Flatten()->HasAlternateBodyStyle() );
if( aUnit > 0 ) if( aUnit > 0 )
RebuildSymbolUnitsList(); RebuildSymbolUnitsList();
@ -256,7 +256,7 @@ bool SYMBOL_EDIT_FRAME::LoadSymbolFromCurrentLib( const wxString& aAliasName, in
bool SYMBOL_EDIT_FRAME::LoadOneLibrarySymbolAux( LIB_SYMBOL* aEntry, const wxString& aLibrary, bool SYMBOL_EDIT_FRAME::LoadOneLibrarySymbolAux( LIB_SYMBOL* aEntry, const wxString& aLibrary,
int aUnit, int aConvert ) int aUnit, int aBodyStyle )
{ {
bool rebuildMenuAndToolbar = false; bool rebuildMenuAndToolbar = false;
@ -288,7 +288,7 @@ bool SYMBOL_EDIT_FRAME::LoadOneLibrarySymbolAux( LIB_SYMBOL* aEntry, const wxStr
wxCHECK( lib_symbol, false ); wxCHECK( lib_symbol, false );
m_unit = aUnit > 0 ? aUnit : 1; m_unit = aUnit > 0 ? aUnit : 1;
m_convert = aConvert > 0 ? aConvert : 1; m_bodyStyle = aBodyStyle > 0 ? aBodyStyle : 1;
// The buffered screen for the symbol // The buffered screen for the symbol
SCH_SCREEN* symbol_screen = m_libMgr->GetScreen( lib_symbol->GetName(), aLibrary ); SCH_SCREEN* symbol_screen = m_libMgr->GetScreen( lib_symbol->GetName(), aLibrary );
@ -306,7 +306,7 @@ bool SYMBOL_EDIT_FRAME::LoadOneLibrarySymbolAux( LIB_SYMBOL* aEntry, const wxStr
UpdateTitle(); UpdateTitle();
RebuildSymbolUnitsList(); RebuildSymbolUnitsList();
SetShowDeMorgan( GetCurSymbol()->HasConversion() ); SetShowDeMorgan( GetCurSymbol()->HasAlternateBodyStyle() );
ClearUndoRedoList(); ClearUndoRedoList();
@ -445,7 +445,7 @@ void SYMBOL_EDIT_FRAME::CreateNewSymbol( const wxString& aInheritFrom )
if( dlg.GetUnitCount() < 2 ) if( dlg.GetUnitCount() < 2 )
new_symbol.LockUnits( false ); new_symbol.LockUnits( false );
new_symbol.SetConversion( dlg.GetAlternateBodyStyle() ); new_symbol.SetHasAlternateBodyStyle( dlg.GetAlternateBodyStyle() );
} }
else else
{ {
@ -501,7 +501,7 @@ void SYMBOL_EDIT_FRAME::CreateNewSymbol( const wxString& aInheritFrom )
if( !new_symbol.GetParent().lock() ) if( !new_symbol.GetParent().lock() )
SetShowDeMorgan( dlg.GetAlternateBodyStyle() ); SetShowDeMorgan( dlg.GetAlternateBodyStyle() );
else else
SetShowDeMorgan( new_symbol.HasConversion() ); SetShowDeMorgan( new_symbol.HasAlternateBodyStyle() );
} }
@ -775,7 +775,7 @@ void SYMBOL_EDIT_FRAME::UpdateAfterSymbolProperties( wxString* aOldName )
} }
RebuildSymbolUnitsList(); RebuildSymbolUnitsList();
SetShowDeMorgan( GetCurSymbol()->Flatten()->HasConversion() ); SetShowDeMorgan( GetCurSymbol()->Flatten()->HasAlternateBodyStyle() );
UpdateTitle(); UpdateTitle();
// N.B. The view needs to be rebuilt first as the Symbol Properties change may invalidate // N.B. The view needs to be rebuilt first as the Symbol Properties change may invalidate
@ -921,7 +921,7 @@ void SYMBOL_EDIT_FRAME::DuplicateSymbol( bool aFromClipboard )
ensureUniqueName( symbol, lib ); ensureUniqueName( symbol, lib );
m_libMgr->UpdateSymbol( symbol, lib ); m_libMgr->UpdateSymbol( symbol, lib );
LoadOneLibrarySymbolAux( symbol, lib, GetUnit(), GetConvert() ); LoadOneLibrarySymbolAux( symbol, lib, GetUnit(), GetBodyStyle() );
} }
SyncLibraries( false ); SyncLibraries( false );
@ -1277,10 +1277,10 @@ void SYMBOL_EDIT_FRAME::UpdateSymbolMsgPanelInfo()
AppendMsgPanel( _( "Unit" ), msg, 8 ); AppendMsgPanel( _( "Unit" ), msg, 8 );
if( m_convert > 1 ) if( m_bodyStyle > 1 )
msg = _( "Convert" ); msg = _( "Alternate" );
else else
msg = _( "Normal" ); msg = _( "Standard" );
AppendMsgPanel( _( "Body" ), msg, 8 ); AppendMsgPanel( _( "Body" ), msg, 8 );

View File

@ -68,15 +68,17 @@ void SYMBOL_EDIT_FRAME::SVGPlotSymbol( const wxString& aFullFileName, VECTOR2I a
plotPos.x = aOffset.x; plotPos.x = aOffset.x;
plotPos.y = aOffset.y; plotPos.y = aOffset.y;
m_symbol->Plot( plotter, GetUnit(), GetConvert(), background, plotPos, temp, false ); m_symbol->Plot( plotter, GetUnit(), GetBodyStyle(), background, plotPos, temp, false );
// Plot lib fields, not plotted by m_symbol->Plot(): // Plot lib fields, not plotted by m_symbol->Plot():
m_symbol->PlotLibFields( plotter, GetUnit(), GetConvert(), background, plotPos, temp, false ); m_symbol->PlotLibFields( plotter, GetUnit(), GetBodyStyle(), background, plotPos, temp,
false );
m_symbol->Plot( plotter, GetUnit(), GetConvert(), !background, plotPos, temp, false ); m_symbol->Plot( plotter, GetUnit(), GetBodyStyle(), !background, plotPos, temp, false );
// Plot lib fields, not plotted by m_symbol->Plot(): // Plot lib fields, not plotted by m_symbol->Plot():
m_symbol->PlotLibFields( plotter, GetUnit(), GetConvert(), !background, plotPos, temp, false ); m_symbol->PlotLibFields( plotter, GetUnit(), GetBodyStyle(), !background, plotPos, temp,
false );
} }
plotter->EndPlot(); plotter->EndPlot();
@ -99,7 +101,8 @@ void SYMBOL_EDIT_FRAME::PrintPage( const RENDER_SETTINGS* aSettings )
plot_offset.x = pagesize.x / 2; plot_offset.x = pagesize.x / 2;
plot_offset.y = pagesize.y / 2; plot_offset.y = pagesize.y / 2;
m_symbol->PrintBackground( aSettings, plot_offset, m_unit, m_convert, LIB_SYMBOL_OPTIONS(), false ); m_symbol->PrintBackground( aSettings, plot_offset, m_unit, m_bodyStyle, LIB_SYMBOL_OPTIONS(),
false );
m_symbol->Print( aSettings, plot_offset, m_unit, m_convert, LIB_SYMBOL_OPTIONS(), false ); m_symbol->Print( aSettings, plot_offset, m_unit, m_bodyStyle, LIB_SYMBOL_OPTIONS(), false );
} }

View File

@ -105,7 +105,7 @@ void SYMBOL_EDIT_FRAME::GetSymbolFromRedoList()
} }
RebuildSymbolUnitsList(); RebuildSymbolUnitsList();
SetShowDeMorgan( symbol->HasConversion() ); SetShowDeMorgan( symbol->HasAlternateBodyStyle() );
UpdateTitle(); UpdateTitle();
RebuildView(); RebuildView();
@ -156,7 +156,7 @@ void SYMBOL_EDIT_FRAME::GetSymbolFromUndoList()
} }
RebuildSymbolUnitsList(); RebuildSymbolUnitsList();
SetShowDeMorgan( symbol->HasConversion() ); SetShowDeMorgan( symbol->HasAlternateBodyStyle() );
UpdateTitle(); UpdateTitle();
RebuildView(); RebuildView();

View File

@ -70,7 +70,7 @@
LIB_ID SYMBOL_VIEWER_FRAME::m_currentSymbol; LIB_ID SYMBOL_VIEWER_FRAME::m_currentSymbol;
int SYMBOL_VIEWER_FRAME::m_unit = 1; int SYMBOL_VIEWER_FRAME::m_unit = 1;
int SYMBOL_VIEWER_FRAME::m_convert = 1; int SYMBOL_VIEWER_FRAME::m_bodyStyle = 1;
bool SYMBOL_VIEWER_FRAME::m_show_progress = true; bool SYMBOL_VIEWER_FRAME::m_show_progress = true;
@ -371,19 +371,19 @@ void SYMBOL_VIEWER_FRAME::setupUIConditions()
[this]( const SELECTION& ) [this]( const SELECTION& )
{ {
LIB_SYMBOL* symbol = GetSelectedSymbol(); LIB_SYMBOL* symbol = GetSelectedSymbol();
return symbol && symbol->HasConversion(); return symbol && symbol->HasAlternateBodyStyle();
}; };
auto demorganStandardCond = auto demorganStandardCond =
[]( const SELECTION& ) []( const SELECTION& )
{ {
return m_convert == LIB_ITEM::LIB_CONVERT::BASE; return m_bodyStyle == LIB_ITEM::BODY_STYLE::BASE;
}; };
auto demorganAlternateCond = auto demorganAlternateCond =
[]( const SELECTION& ) []( const SELECTION& )
{ {
return m_convert == LIB_ITEM::LIB_CONVERT::DEMORGAN; return m_bodyStyle == LIB_ITEM::BODY_STYLE::DEMORGAN;
}; };
auto haveDatasheetCond = auto haveDatasheetCond =
@ -407,10 +407,10 @@ void SYMBOL_VIEWER_FRAME::setupUIConditions()
} }
void SYMBOL_VIEWER_FRAME::SetUnitAndConvert( int aUnit, int aConvert ) void SYMBOL_VIEWER_FRAME::SetUnitAndBodyStyle( int aUnit, int aBodyStyle )
{ {
m_unit = aUnit > 0 ? aUnit : 1; m_unit = aUnit > 0 ? aUnit : 1;
m_convert = aConvert > 0 ? aConvert : LIB_ITEM::LIB_CONVERT::BASE; m_bodyStyle = aBodyStyle > 0 ? aBodyStyle : LIB_ITEM::BODY_STYLE::BASE;
m_selection_changed = false; m_selection_changed = false;
updatePreviewSymbol(); updatePreviewSymbol();
@ -444,7 +444,7 @@ void SYMBOL_VIEWER_FRAME::updatePreviewSymbol()
if( symbol ) if( symbol )
{ {
GetRenderSettings()->m_ShowUnit = m_unit; GetRenderSettings()->m_ShowUnit = m_unit;
GetRenderSettings()->m_ShowConvert = m_convert; GetRenderSettings()->m_ShowBodyStyle = m_bodyStyle;
m_previewItem = symbol->Flatten(); m_previewItem = symbol->Flatten();
view->Add( m_previewItem.get() ); view->Add( m_previewItem.get() );
@ -640,7 +640,7 @@ bool SYMBOL_VIEWER_FRAME::ReCreateLibList()
? m_libList->GetBaseString( 0 ) : wxString( wxT( "" ) ) ); ? m_libList->GetBaseString( 0 ) : wxString( wxT( "" ) ) );
m_currentSymbol.SetLibItemName( wxEmptyString ); m_currentSymbol.SetLibItemName( wxEmptyString );
m_unit = 1; m_unit = 1;
m_convert = LIB_ITEM::LIB_CONVERT::BASE; m_bodyStyle = LIB_ITEM::BODY_STYLE::BASE;
} }
bool cmp_changed = ReCreateSymbolList(); bool cmp_changed = ReCreateSymbolList();
@ -715,7 +715,7 @@ bool SYMBOL_VIEWER_FRAME::ReCreateSymbolList()
if( m_symbolList->IsEmpty() ) if( m_symbolList->IsEmpty() )
{ {
SetSelectedSymbol( wxEmptyString ); SetSelectedSymbol( wxEmptyString );
m_convert = LIB_ITEM::LIB_CONVERT::BASE; m_bodyStyle = LIB_ITEM::BODY_STYLE::BASE;
m_unit = 1; m_unit = 1;
return true; return true;
} }
@ -727,7 +727,7 @@ bool SYMBOL_VIEWER_FRAME::ReCreateSymbolList()
{ {
// Select the first library entry when the previous entry name does not exist in // Select the first library entry when the previous entry name does not exist in
// the current library. // the current library.
m_convert = LIB_ITEM::LIB_CONVERT::BASE; m_bodyStyle = LIB_ITEM::BODY_STYLE::BASE;
m_unit = 1; m_unit = 1;
index = -1; index = -1;
changed = true; changed = true;
@ -827,7 +827,7 @@ void SYMBOL_VIEWER_FRAME::SetSelectedSymbol( const wxString& aSymbolName )
if( m_selection_changed ) if( m_selection_changed )
{ {
m_unit = 1; m_unit = 1;
m_convert = LIB_ITEM::LIB_CONVERT::BASE; m_bodyStyle = LIB_ITEM::BODY_STYLE::BASE;
m_selection_changed = false; m_selection_changed = false;
} }
@ -953,7 +953,7 @@ const BOX2I SYMBOL_VIEWER_FRAME::GetDocumentExtents( bool aIncludeAllVisible ) c
wxCHECK( tmp, BOX2I( VECTOR2I( -200, -200 ), VECTOR2I( 400, 400 ) ) ); wxCHECK( tmp, BOX2I( VECTOR2I( -200, -200 ), VECTOR2I( 400, 400 ) ) );
return tmp->GetUnitBoundingBox( m_unit, m_convert ); return tmp->GetUnitBoundingBox( m_unit, m_bodyStyle );
} }
} }

View File

@ -105,11 +105,11 @@ public:
* Set unit and convert, and set flag preventing them from automatically resetting to 1. * Set unit and convert, and set flag preventing them from automatically resetting to 1.
* *
* @param aUnit is the unit, if invalid will be set to 1. * @param aUnit is the unit, if invalid will be set to 1.
* @param aConvert is the alternate body style, if invalid will be set to 1. * @param aBodyStyle is the alternate body style, if invalid will be set to 1.
*/ */
void SetUnitAndConvert( int aUnit, int aConvert ); void SetUnitAndBodyStyle( int aUnit, int aBodyStyle );
int GetUnit() const { return m_unit; } int GetUnit() const { return m_unit; }
int GetConvert() const { return m_convert; } int GetBodyStyle() const { return m_bodyStyle; }
LIB_SYMBOL* GetSelectedSymbol() const; LIB_SYMBOL* GetSelectedSymbol() const;
@ -168,7 +168,7 @@ private:
static LIB_ID m_currentSymbol; static LIB_ID m_currentSymbol;
static int m_unit; static int m_unit;
static int m_convert; static int m_bodyStyle;
static bool m_show_progress; static bool m_show_progress;
/** /**

View File

@ -345,7 +345,7 @@ int EE_INSPECTION_TOOL::DiffSymbol( const TOOL_EVENT& aEvent )
SYMBOL_DIFF_WIDGET* diff = constructDiffPanel( panel ); SYMBOL_DIFF_WIDGET* diff = constructDiffPanel( panel );
diff->DisplayDiff( flattenedSchSymbol.release(), flattenedLibSymbol.release(), diff->DisplayDiff( flattenedSchSymbol.release(), flattenedLibSymbol.release(),
symbol->GetUnit(), symbol->GetConvert() ); symbol->GetUnit(), symbol->GetBodyStyle() );
} }
} }

View File

@ -92,7 +92,7 @@ SELECTION_CONDITION EE_CONDITIONS::SingleDeMorganSymbol = []( const SELECTION& a
SCH_SYMBOL* symbol = dynamic_cast<SCH_SYMBOL*>( aSel.Front() ); SCH_SYMBOL* symbol = dynamic_cast<SCH_SYMBOL*>( aSel.Front() );
if( symbol ) if( symbol )
return symbol->GetLibSymbolRef() && symbol->GetLibSymbolRef()->HasConversion(); return symbol->GetLibSymbolRef() && symbol->GetLibSymbolRef()->HasAlternateBodyStyle();
} }
return false; return false;
@ -158,7 +158,7 @@ EE_SELECTION_TOOL::EE_SELECTION_TOOL() :
m_isSymbolEditor( false ), m_isSymbolEditor( false ),
m_isSymbolViewer( false ), m_isSymbolViewer( false ),
m_unit( 0 ), m_unit( 0 ),
m_convert( 0 ) m_bodyStyle( 0 )
{ {
m_selection.Clear(); m_selection.Clear();
} }
@ -201,7 +201,7 @@ bool EE_SELECTION_TOOL::Init()
{ {
m_isSymbolEditor = true; m_isSymbolEditor = true;
m_unit = symbolEditorFrame->GetUnit(); m_unit = symbolEditorFrame->GetUnit();
m_convert = symbolEditorFrame->GetConvert(); m_bodyStyle = symbolEditorFrame->GetBodyStyle();
} }
else else
{ {
@ -343,7 +343,7 @@ void EE_SELECTION_TOOL::Reset( RESET_REASON aReason )
{ {
m_isSymbolEditor = true; m_isSymbolEditor = true;
m_unit = symbolEditFrame->GetUnit(); m_unit = symbolEditFrame->GetUnit();
m_convert = symbolEditFrame->GetConvert(); m_bodyStyle = symbolEditFrame->GetBodyStyle();
} }
else else
{ {
@ -1025,11 +1025,11 @@ bool EE_SELECTION_TOOL::CollectHits( EE_COLLECTOR& aCollector, const VECTOR2I& a
if( !symbol ) if( !symbol )
return false; return false;
aCollector.Collect( symbol->GetDrawItems(), aScanTypes, aWhere, m_unit, m_convert ); aCollector.Collect( symbol->GetDrawItems(), aScanTypes, aWhere, m_unit, m_bodyStyle );
} }
else else
{ {
aCollector.Collect( m_frame->GetScreen(), aScanTypes, aWhere, m_unit, m_convert ); aCollector.Collect( m_frame->GetScreen(), aScanTypes, aWhere, m_unit, m_bodyStyle );
if( m_frame->eeconfig()->m_Selection.select_pin_selects_symbol ) if( m_frame->eeconfig()->m_Selection.select_pin_selects_symbol )
{ {
@ -2099,7 +2099,7 @@ bool EE_SELECTION_TOOL::Selectable( const EDA_ITEM* aItem, const VECTOR2I* aPos,
if( lib_item->GetUnit() && lib_item->GetUnit() != symEditFrame->GetUnit() ) if( lib_item->GetUnit() && lib_item->GetUnit() != symEditFrame->GetUnit() )
return false; return false;
if( lib_item->GetConvert() && lib_item->GetConvert() != symEditFrame->GetConvert() ) if( lib_item->GetBodyStyle() && lib_item->GetBodyStyle() != symEditFrame->GetBodyStyle() )
return false; return false;
} }

View File

@ -288,7 +288,7 @@ private:
bool m_isSymbolEditor; // True when the symbol editor is the parent frame bool m_isSymbolEditor; // True when the symbol editor is the parent frame
bool m_isSymbolViewer; // True when the symbol browser is the parent frame bool m_isSymbolViewer; // True when the symbol browser is the parent frame
int m_unit; // Fixed unit filter (for symbol editor) int m_unit; // Fixed unit filter (for symbol editor)
int m_convert; // Fixed DeMorgan filter (for symbol editor) int m_bodyStyle; // Fixed DeMorgan filter (for symbol editor)
}; };
#endif //KICAD_SCH_SELECTION_TOOL_H #endif //KICAD_SCH_SELECTION_TOOL_H

View File

@ -1675,7 +1675,7 @@ int SCH_EDIT_TOOL::ChangeSymbols( const TOOL_EVENT& aEvent )
} }
int SCH_EDIT_TOOL::ConvertDeMorgan( const TOOL_EVENT& aEvent ) int SCH_EDIT_TOOL::ChangeBodyStyle( const TOOL_EVENT& aEvent )
{ {
EE_SELECTION& selection = m_selectionTool->RequestSelection( { SCH_SYMBOL_T } ); EE_SELECTION& selection = m_selectionTool->RequestSelection( { SCH_SYMBOL_T } );
@ -1685,13 +1685,13 @@ int SCH_EDIT_TOOL::ConvertDeMorgan( const TOOL_EVENT& aEvent )
SCH_SYMBOL* symbol = (SCH_SYMBOL*) selection.Front(); SCH_SYMBOL* symbol = (SCH_SYMBOL*) selection.Front();
if( aEvent.IsAction( &EE_ACTIONS::showDeMorganStandard ) if( aEvent.IsAction( &EE_ACTIONS::showDeMorganStandard )
&& symbol->GetConvert() == LIB_ITEM::LIB_CONVERT::BASE ) && symbol->GetBodyStyle() == LIB_ITEM::BODY_STYLE::BASE )
{ {
return 0; return 0;
} }
if( aEvent.IsAction( &EE_ACTIONS::showDeMorganAlternate ) if( aEvent.IsAction( &EE_ACTIONS::showDeMorganAlternate )
&& symbol->GetConvert() != LIB_ITEM::LIB_CONVERT::DEMORGAN ) && symbol->GetBodyStyle() != LIB_ITEM::BODY_STYLE::DEMORGAN )
{ {
return 0; return 0;
} }
@ -1699,7 +1699,7 @@ int SCH_EDIT_TOOL::ConvertDeMorgan( const TOOL_EVENT& aEvent )
if( !symbol->IsNew() ) if( !symbol->IsNew() )
saveCopyInUndoList( symbol, UNDO_REDO::CHANGED ); saveCopyInUndoList( symbol, UNDO_REDO::CHANGED );
m_frame->ConvertPart( symbol ); m_frame->FlipBodyStyle( symbol );
if( symbol->IsNew() ) if( symbol->IsNew() )
m_toolMgr->PostAction( ACTIONS::refreshPreview ); m_toolMgr->PostAction( ACTIONS::refreshPreview );
@ -1801,7 +1801,7 @@ int SCH_EDIT_TOOL::Properties( const TOOL_EVENT& aEvent )
if( wxWindow* blocking_win = editor->Kiway().GetBlockingDialog() ) if( wxWindow* blocking_win = editor->Kiway().GetBlockingDialog() )
blocking_win->Close( true ); blocking_win->Close( true );
editor->LoadSymbol( symbol->GetLibId(), symbol->GetUnit(), symbol->GetConvert() ); editor->LoadSymbol( symbol->GetLibId(), symbol->GetUnit(), symbol->GetBodyStyle() );
editor->Show( true ); editor->Show( true );
editor->Raise(); editor->Raise();
@ -2643,9 +2643,9 @@ void SCH_EDIT_TOOL::setTransitions()
Go( &SCH_EDIT_TOOL::ChangeSymbols, EE_ACTIONS::updateSymbols.MakeEvent() ); Go( &SCH_EDIT_TOOL::ChangeSymbols, EE_ACTIONS::updateSymbols.MakeEvent() );
Go( &SCH_EDIT_TOOL::ChangeSymbols, EE_ACTIONS::changeSymbol.MakeEvent() ); Go( &SCH_EDIT_TOOL::ChangeSymbols, EE_ACTIONS::changeSymbol.MakeEvent() );
Go( &SCH_EDIT_TOOL::ChangeSymbols, EE_ACTIONS::updateSymbol.MakeEvent() ); Go( &SCH_EDIT_TOOL::ChangeSymbols, EE_ACTIONS::updateSymbol.MakeEvent() );
Go( &SCH_EDIT_TOOL::ConvertDeMorgan, EE_ACTIONS::toggleDeMorgan.MakeEvent() ); Go( &SCH_EDIT_TOOL::ChangeBodyStyle, EE_ACTIONS::toggleDeMorgan.MakeEvent() );
Go( &SCH_EDIT_TOOL::ConvertDeMorgan, EE_ACTIONS::showDeMorganStandard.MakeEvent() ); Go( &SCH_EDIT_TOOL::ChangeBodyStyle, EE_ACTIONS::showDeMorganStandard.MakeEvent() );
Go( &SCH_EDIT_TOOL::ConvertDeMorgan, EE_ACTIONS::showDeMorganAlternate.MakeEvent() ); Go( &SCH_EDIT_TOOL::ChangeBodyStyle, EE_ACTIONS::showDeMorganAlternate.MakeEvent() );
Go( &SCH_EDIT_TOOL::ChangeTextType, EE_ACTIONS::toLabel.MakeEvent() ); Go( &SCH_EDIT_TOOL::ChangeTextType, EE_ACTIONS::toLabel.MakeEvent() );
Go( &SCH_EDIT_TOOL::ChangeTextType, EE_ACTIONS::toHLabel.MakeEvent() ); Go( &SCH_EDIT_TOOL::ChangeTextType, EE_ACTIONS::toHLabel.MakeEvent() );
Go( &SCH_EDIT_TOOL::ChangeTextType, EE_ACTIONS::toGLabel.MakeEvent() ); Go( &SCH_EDIT_TOOL::ChangeTextType, EE_ACTIONS::toGLabel.MakeEvent() );

View File

@ -54,7 +54,7 @@ public:
int EditField( const TOOL_EVENT& aEvent ); int EditField( const TOOL_EVENT& aEvent );
int AutoplaceFields( const TOOL_EVENT& aEvent ); int AutoplaceFields( const TOOL_EVENT& aEvent );
int ChangeSymbols( const TOOL_EVENT& aEvent ); int ChangeSymbols( const TOOL_EVENT& aEvent );
int ConvertDeMorgan( const TOOL_EVENT& aEvent ); int ChangeBodyStyle( const TOOL_EVENT& aEvent );
int EditPageNumber( const TOOL_EVENT& aEvent ); int EditPageNumber( const TOOL_EVENT& aEvent );
/** /**

View File

@ -2235,7 +2235,8 @@ int SCH_EDITOR_CONTROL::EditWithSymbolEditor( const TOOL_EVENT& aEvent )
} }
else if( aEvent.IsAction( &EE_ACTIONS::editLibSymbolWithLibEdit ) ) else if( aEvent.IsAction( &EE_ACTIONS::editLibSymbolWithLibEdit ) )
{ {
symbolEditor->LoadSymbol( symbol->GetLibId(), symbol->GetUnit(), symbol->GetConvert() ); symbolEditor->LoadSymbol( symbol->GetLibId(), symbol->GetUnit(),
symbol->GetBodyStyle() );
if( !symbolEditor->IsSymbolTreeShown() ) if( !symbolEditor->IsSymbolTreeShown() )
{ {

View File

@ -434,7 +434,7 @@ int SYMBOL_EDITOR_CONTROL::RenameSymbol( const TOOL_EVENT& aEvent )
int SYMBOL_EDITOR_CONTROL::OnDeMorgan( const TOOL_EVENT& aEvent ) int SYMBOL_EDITOR_CONTROL::OnDeMorgan( const TOOL_EVENT& aEvent )
{ {
int convert = aEvent.IsAction( &EE_ACTIONS::showDeMorganStandard ) ? int convert = aEvent.IsAction( &EE_ACTIONS::showDeMorganStandard ) ?
LIB_ITEM::LIB_CONVERT::BASE : LIB_ITEM::LIB_CONVERT::DEMORGAN; LIB_ITEM::BODY_STYLE::BASE : LIB_ITEM::BODY_STYLE::DEMORGAN;
if( m_frame->IsType( FRAME_SCH_SYMBOL_EDITOR ) ) if( m_frame->IsType( FRAME_SCH_SYMBOL_EDITOR ) )
{ {
@ -442,7 +442,7 @@ int SYMBOL_EDITOR_CONTROL::OnDeMorgan( const TOOL_EVENT& aEvent )
m_toolMgr->RunAction( EE_ACTIONS::clearSelection ); m_toolMgr->RunAction( EE_ACTIONS::clearSelection );
SYMBOL_EDIT_FRAME* symbolEditor = static_cast<SYMBOL_EDIT_FRAME*>( m_frame ); SYMBOL_EDIT_FRAME* symbolEditor = static_cast<SYMBOL_EDIT_FRAME*>( m_frame );
symbolEditor->SetConvert( convert ); symbolEditor->SetBodyStyle( convert );
m_toolMgr->ResetTools( TOOL_BASE::MODEL_RELOAD ); m_toolMgr->ResetTools( TOOL_BASE::MODEL_RELOAD );
symbolEditor->RebuildView(); symbolEditor->RebuildView();
@ -450,7 +450,7 @@ int SYMBOL_EDITOR_CONTROL::OnDeMorgan( const TOOL_EVENT& aEvent )
else if( m_frame->IsType( FRAME_SCH_VIEWER ) ) else if( m_frame->IsType( FRAME_SCH_VIEWER ) )
{ {
SYMBOL_VIEWER_FRAME* symbolViewer = static_cast<SYMBOL_VIEWER_FRAME*>( m_frame ); SYMBOL_VIEWER_FRAME* symbolViewer = static_cast<SYMBOL_VIEWER_FRAME*>( m_frame );
symbolViewer->SetUnitAndConvert( symbolViewer->GetUnit(), convert ); symbolViewer->SetUnitAndBodyStyle( symbolViewer->GetUnit(), convert );
} }
return 0; return 0;
@ -624,7 +624,7 @@ int SYMBOL_EDITOR_CONTROL::ExportSymbolAsSVG( const TOOL_EVENT& aEvent )
PAGE_INFO pageTemp = pageSave; PAGE_INFO pageTemp = pageSave;
BOX2I symbolBBox = symbol->GetUnitBoundingBox( editFrame->GetUnit(), BOX2I symbolBBox = symbol->GetUnitBoundingBox( editFrame->GetUnit(),
editFrame->GetConvert(), false ); editFrame->GetBodyStyle(), false );
// Add a small margin (10% of size)to the plot bounding box // Add a small margin (10% of size)to the plot bounding box
symbolBBox.Inflate( symbolBBox.GetSize().x * 0.1, symbolBBox.GetSize().y * 0.1 ); symbolBBox.Inflate( symbolBBox.GetSize().x * 0.1, symbolBBox.GetSize().y * 0.1 );
@ -648,15 +648,15 @@ int SYMBOL_EDITOR_CONTROL::AddSymbolToSchematic( const TOOL_EVENT& aEvent )
{ {
LIB_SYMBOL* libSymbol = nullptr; LIB_SYMBOL* libSymbol = nullptr;
LIB_ID libId; LIB_ID libId;
int unit, convert; int unit, bodyStyle;
if( m_isSymbolEditor ) if( m_isSymbolEditor )
{ {
SYMBOL_EDIT_FRAME* editFrame = getEditFrame<SYMBOL_EDIT_FRAME>(); SYMBOL_EDIT_FRAME* editFrame = getEditFrame<SYMBOL_EDIT_FRAME>();
libSymbol = editFrame->GetCurSymbol(); libSymbol = editFrame->GetCurSymbol();
unit = editFrame->GetUnit(); unit = editFrame->GetUnit();
convert = editFrame->GetConvert(); bodyStyle = editFrame->GetBodyStyle();
if( libSymbol ) if( libSymbol )
libId = libSymbol->GetLibId(); libId = libSymbol->GetLibId();
@ -667,7 +667,7 @@ int SYMBOL_EDITOR_CONTROL::AddSymbolToSchematic( const TOOL_EVENT& aEvent )
libSymbol = viewerFrame->GetSelectedSymbol(); libSymbol = viewerFrame->GetSelectedSymbol();
unit = viewerFrame->GetUnit(); unit = viewerFrame->GetUnit();
convert = viewerFrame->GetConvert(); bodyStyle = viewerFrame->GetBodyStyle();
if( libSymbol ) if( libSymbol )
libId = libSymbol->GetLibId(); libId = libSymbol->GetLibId();
@ -695,7 +695,7 @@ int SYMBOL_EDITOR_CONTROL::AddSymbolToSchematic( const TOOL_EVENT& aEvent )
wxCHECK( libSymbol->GetLibId().IsValid(), 0 ); wxCHECK( libSymbol->GetLibId().IsValid(), 0 );
SCH_SYMBOL* symbol = new SCH_SYMBOL( *libSymbol, libId, &schframe->GetCurrentSheet(), SCH_SYMBOL* symbol = new SCH_SYMBOL( *libSymbol, libId, &schframe->GetCurrentSheet(),
unit, convert ); unit, bodyStyle );
symbol->SetParent( schframe->GetScreen() ); symbol->SetParent( schframe->GetScreen() );

View File

@ -55,7 +55,7 @@ SYMBOL_EDITOR_DRAWING_TOOLS::SYMBOL_EDITOR_DRAWING_TOOLS() :
m_lastFillStyle( FILL_T::NO_FILL ), m_lastFillStyle( FILL_T::NO_FILL ),
m_lastFillColor( COLOR4D::UNSPECIFIED ), m_lastFillColor( COLOR4D::UNSPECIFIED ),
m_lastStroke( 0, LINE_STYLE::DEFAULT, COLOR4D::UNSPECIFIED ), m_lastStroke( 0, LINE_STYLE::DEFAULT, COLOR4D::UNSPECIFIED ),
m_drawSpecificConvert( true ), m_drawSpecificBodyStyle( true ),
m_drawSpecificUnit( false ), m_drawSpecificUnit( false ),
m_inDrawShape( false ), m_inDrawShape( false ),
m_inTwoClickPlace( false ) m_inTwoClickPlace( false )
@ -224,8 +224,8 @@ int SYMBOL_EDITOR_DRAWING_TOOLS::TwoClickPlace( const TOOL_EVENT& aEvent )
if( m_drawSpecificUnit ) if( m_drawSpecificUnit )
text->SetUnit( m_frame->GetUnit() ); text->SetUnit( m_frame->GetUnit() );
if( m_drawSpecificConvert ) if( m_drawSpecificBodyStyle )
text->SetConvert( m_frame->GetConvert() ); text->SetBodyStyle( m_frame->GetBodyStyle() );
text->SetPosition( VECTOR2I( cursorPos.x, -cursorPos.y ) ); text->SetPosition( VECTOR2I( cursorPos.x, -cursorPos.y ) );
text->SetTextSize( VECTOR2I( schIUScale.MilsToIU( settings->m_Defaults.text_size ), text->SetTextSize( VECTOR2I( schIUScale.MilsToIU( settings->m_Defaults.text_size ),
@ -488,8 +488,8 @@ int SYMBOL_EDITOR_DRAWING_TOOLS::doDrawShape( const TOOL_EVENT& aEvent, std::opt
if( m_drawSpecificUnit ) if( m_drawSpecificUnit )
item->SetUnit( m_frame->GetUnit() ); item->SetUnit( m_frame->GetUnit() );
if( m_drawSpecificConvert ) if( m_drawSpecificBodyStyle )
item->SetConvert( m_frame->GetConvert() ); item->SetBodyStyle( m_frame->GetBodyStyle() );
m_selectionTool->AddItemToSel( item ); m_selectionTool->AddItemToSel( item );
} }

View File

@ -59,8 +59,8 @@ public:
void SetLastTextAngle( const EDA_ANGLE& aAngle ) { m_lastTextAngle = aAngle; } void SetLastTextAngle( const EDA_ANGLE& aAngle ) { m_lastTextAngle = aAngle; }
EDA_ANGLE GetLastTextAngle() const { return m_lastTextAngle; } EDA_ANGLE GetLastTextAngle() const { return m_lastTextAngle; }
void SetDrawSpecificConvert( bool aSpecific ) { m_drawSpecificConvert = aSpecific; } void SetDrawSpecificBodyStyle( bool aSpecific ) { m_drawSpecificBodyStyle = aSpecific; }
bool GetDrawSpecificConvert() const { return m_drawSpecificConvert; } bool GetDrawSpecificBodyStyle() const { return m_drawSpecificBodyStyle; }
void SetDrawSpecificUnit( bool aSpecific ) { m_drawSpecificUnit = aSpecific; } void SetDrawSpecificUnit( bool aSpecific ) { m_drawSpecificUnit = aSpecific; }
bool GetDrawSpecificUnit() const { return m_drawSpecificUnit; } bool GetDrawSpecificUnit() const { return m_drawSpecificUnit; }
@ -78,7 +78,7 @@ private:
FILL_T m_lastFillStyle; FILL_T m_lastFillStyle;
COLOR4D m_lastFillColor; COLOR4D m_lastFillColor;
STROKE_PARAMS m_lastStroke; STROKE_PARAMS m_lastStroke;
bool m_drawSpecificConvert; bool m_drawSpecificBodyStyle;
bool m_drawSpecificUnit; bool m_drawSpecificUnit;
///< Re-entrancy guards ///< Re-entrancy guards

View File

@ -318,7 +318,7 @@ int SYMBOL_EDITOR_EDIT_TOOL::DoDelete( const TOOL_EVENT& aEvent )
got_unit[curr_pin->GetUnit()] = true; got_unit[curr_pin->GetUnit()] = true;
int curr_convert = curr_pin->GetConvert(); int curr_bodyStyle = curr_pin->GetBodyStyle();
ELECTRICAL_PINTYPE etype = curr_pin->GetType(); ELECTRICAL_PINTYPE etype = curr_pin->GetType();
wxString name = curr_pin->GetName(); wxString name = curr_pin->GetName();
std::vector<LIB_PIN*> pins = symbol->GetAllLibPins(); std::vector<LIB_PIN*> pins = symbol->GetAllLibPins();
@ -331,7 +331,7 @@ int SYMBOL_EDITOR_EDIT_TOOL::DoDelete( const TOOL_EVENT& aEvent )
if( pin->GetPosition() != pos ) if( pin->GetPosition() != pos )
continue; continue;
if( pin->GetConvert() != curr_convert ) if( pin->GetBodyStyle() != curr_bodyStyle )
continue; continue;
if( pin->GetType() != etype ) if( pin->GetType() != etype )
@ -504,7 +504,7 @@ void SYMBOL_EDITOR_EDIT_TOOL::editShapeProperties( LIB_SHAPE* aShape )
m_frame->OnModify(); m_frame->OnModify();
SYMBOL_EDITOR_DRAWING_TOOLS* drawingTools = m_toolMgr->GetTool<SYMBOL_EDITOR_DRAWING_TOOLS>(); SYMBOL_EDITOR_DRAWING_TOOLS* drawingTools = m_toolMgr->GetTool<SYMBOL_EDITOR_DRAWING_TOOLS>();
drawingTools->SetDrawSpecificConvert( !dlg.GetApplyToAllConversions() ); drawingTools->SetDrawSpecificBodyStyle( !dlg.GetApplyToAllConversions() );
drawingTools->SetDrawSpecificUnit( !dlg.GetApplyToAllUnits() ); drawingTools->SetDrawSpecificUnit( !dlg.GetApplyToAllUnits() );
std::vector<MSG_PANEL_ITEM> items; std::vector<MSG_PANEL_ITEM> items;
@ -843,7 +843,7 @@ int SYMBOL_EDITOR_EDIT_TOOL::Paste( const TOOL_EVENT& aEvent )
newItem->SetFlags( IS_NEW | IS_PASTED | SELECTED ); newItem->SetFlags( IS_NEW | IS_PASTED | SELECTED );
newItem->SetUnit( newItem->GetUnit() ? m_frame->GetUnit() : 0 ); newItem->SetUnit( newItem->GetUnit() ? m_frame->GetUnit() : 0 );
newItem->SetConvert( newItem->GetConvert() ? m_frame->GetConvert() : 0 ); newItem->SetBodyStyle( newItem->GetBodyStyle() ? m_frame->GetBodyStyle() : 0 );
symbol->AddDrawItem( newItem ); symbol->AddDrawItem( newItem );
getView()->Add( newItem ); getView()->Add( newItem );

View File

@ -200,7 +200,7 @@ bool SYMBOL_EDITOR_MOVE_TOOL::doMoveSelection( const TOOL_EVENT& aEvent, SCH_COM
if( !got_unit[pin->GetUnit()] if( !got_unit[pin->GetUnit()]
&& pin->GetPosition() == cur_pin->GetPosition() && pin->GetPosition() == cur_pin->GetPosition()
&& pin->GetOrientation() == cur_pin->GetOrientation() && pin->GetOrientation() == cur_pin->GetOrientation()
&& pin->GetConvert() == cur_pin->GetConvert() && pin->GetBodyStyle() == cur_pin->GetBodyStyle()
&& pin->GetType() == cur_pin->GetType() && pin->GetType() == cur_pin->GetType()
&& pin->GetName() == cur_pin->GetName() ) && pin->GetName() == cur_pin->GetName() )
{ {

View File

@ -35,17 +35,17 @@
#include "symbol_editor_pin_tool.h" #include "symbol_editor_pin_tool.h"
static ELECTRICAL_PINTYPE g_LastPinType = ELECTRICAL_PINTYPE::PT_INPUT; static ELECTRICAL_PINTYPE g_LastPinType = ELECTRICAL_PINTYPE::PT_INPUT;
static PIN_ORIENTATION g_LastPinOrient = PIN_ORIENTATION::PIN_RIGHT; static PIN_ORIENTATION g_LastPinOrient = PIN_ORIENTATION::PIN_RIGHT;
static GRAPHIC_PINSHAPE g_LastPinShape = GRAPHIC_PINSHAPE::LINE; static GRAPHIC_PINSHAPE g_LastPinShape = GRAPHIC_PINSHAPE::LINE;
static bool g_LastPinCommonConvert = false; static bool g_LastPinCommonBodyStyle = false;
static bool g_LastPinCommonUnit = false; static bool g_LastPinCommonUnit = false;
static bool g_LastPinVisible = true; static bool g_LastPinVisible = true;
// The -1 is a non-valid value to trigger delayed initialization // The -1 is a non-valid value to trigger delayed initialization
static int g_LastPinLength = -1; static int g_LastPinLength = -1;
static int g_LastPinNameSize = -1; static int g_LastPinNameSize = -1;
static int g_LastPinNumSize = -1; static int g_LastPinNumSize = -1;
static int GetLastPinLength() static int GetLastPinLength()
{ {
@ -157,12 +157,12 @@ bool SYMBOL_EDITOR_PIN_TOOL::EditPinProperties( LIB_PIN* aPin )
&& other->IsVisible() == original_pin.IsVisible() && other->IsVisible() == original_pin.IsVisible()
&& other->GetName() == original_pin.GetName() ) && other->GetName() == original_pin.GetName() )
{ {
if( aPin->GetConvert() == 0 ) if( aPin->GetBodyStyle() == 0 )
{ {
if( !aPin->GetUnit() || other->GetUnit() == aPin->GetUnit() ) if( !aPin->GetUnit() || other->GetUnit() == aPin->GetUnit() )
aPin->GetParent()->RemoveDrawItem( other ); aPin->GetParent()->RemoveDrawItem( other );
} }
else if( other->GetConvert() == aPin->GetConvert() ) else if( other->GetBodyStyle() == aPin->GetBodyStyle() )
{ {
other->SetPosition( aPin->GetPosition() ); other->SetPosition( aPin->GetPosition() );
other->ChangeLength( aPin->GetLength() ); other->ChangeLength( aPin->GetLength() );
@ -171,7 +171,7 @@ bool SYMBOL_EDITOR_PIN_TOOL::EditPinProperties( LIB_PIN* aPin )
if( aPin->GetUnit() == 0 ) if( aPin->GetUnit() == 0 )
{ {
if( !aPin->GetConvert() || other->GetConvert() == aPin->GetConvert() ) if( !aPin->GetBodyStyle() || other->GetBodyStyle() == aPin->GetBodyStyle() )
aPin->GetParent()->RemoveDrawItem( other ); aPin->GetParent()->RemoveDrawItem( other );
} }
@ -200,7 +200,7 @@ bool SYMBOL_EDITOR_PIN_TOOL::EditPinProperties( LIB_PIN* aPin )
g_LastPinLength = aPin->GetLength(); g_LastPinLength = aPin->GetLength();
g_LastPinShape = aPin->GetShape(); g_LastPinShape = aPin->GetShape();
g_LastPinType = aPin->GetType(); g_LastPinType = aPin->GetType();
g_LastPinCommonConvert = aPin->GetConvert() == 0; g_LastPinCommonBodyStyle = aPin->GetBodyStyle() == 0;
g_LastPinCommonUnit = aPin->GetUnit() == 0; g_LastPinCommonUnit = aPin->GetUnit() == 0;
g_LastPinVisible = aPin->IsVisible(); g_LastPinVisible = aPin->IsVisible();
@ -221,7 +221,7 @@ bool SYMBOL_EDITOR_PIN_TOOL::PlacePin( LIB_PIN* aPin )
continue; continue;
// test for same body style // test for same body style
if( test->GetConvert() && test->GetConvert() != aPin->GetConvert() ) if( test->GetBodyStyle() && test->GetBodyStyle() != aPin->GetBodyStyle() )
continue; continue;
if( ask_for_pin && m_frame->SynchronizePins() ) if( ask_for_pin && m_frame->SynchronizePins() )
@ -302,7 +302,7 @@ LIB_PIN* SYMBOL_EDITOR_PIN_TOOL::CreatePin( const VECTOR2I& aPosition, LIB_SYMBO
pin->SetShape( g_LastPinShape ); pin->SetShape( g_LastPinShape );
pin->SetNameTextSize( GetLastPinNameSize() ); pin->SetNameTextSize( GetLastPinNameSize() );
pin->SetNumberTextSize( GetLastPinNumSize() ); pin->SetNumberTextSize( GetLastPinNumSize() );
pin->SetConvert( g_LastPinCommonConvert ? 0 : m_frame->GetConvert() ); pin->SetBodyStyle( g_LastPinCommonBodyStyle ? 0 : m_frame->GetBodyStyle() );
pin->SetUnit( g_LastPinCommonUnit ? 0 : m_frame->GetUnit() ); pin->SetUnit( g_LastPinCommonUnit ? 0 : m_frame->GetUnit() );
pin->SetVisible( g_LastPinVisible ); pin->SetVisible( g_LastPinVisible );
@ -386,7 +386,7 @@ int SYMBOL_EDITOR_PIN_TOOL::PushPinProperties( const TOOL_EVENT& aEvent )
if( aEvent.IsAction( &EE_ACTIONS::pushPinLength ) ) if( aEvent.IsAction( &EE_ACTIONS::pushPinLength ) )
{ {
if( !pin->GetConvert() || pin->GetConvert() == m_frame->GetConvert() ) if( !pin->GetBodyStyle() || pin->GetBodyStyle() == m_frame->GetBodyStyle() )
pin->ChangeLength( sourcePin->GetLength() ); pin->ChangeLength( sourcePin->GetLength() );
} }
else if( aEvent.IsAction( &EE_ACTIONS::pushPinNameSize ) ) else if( aEvent.IsAction( &EE_ACTIONS::pushPinNameSize ) )

View File

@ -609,7 +609,7 @@ void PANEL_SYMBOL_CHOOSER::populateFootprintSelector( LIB_ID const& aLibId )
wxString fp_name = fp_field ? fp_field->GetFullText() : wxString( "" ); wxString fp_name = fp_field ? fp_field->GetFullText() : wxString( "" );
// All units, but only a single De Morgan variant. // All units, but only a single De Morgan variant.
if( symbol->HasConversion() ) if( symbol->HasAlternateBodyStyle() )
symbol->GetPins( temp_pins, 0, 1 ); symbol->GetPins( temp_pins, 0, 1 );
else else
symbol->GetPins( temp_pins ); symbol->GetPins( temp_pins );

View File

@ -92,13 +92,13 @@ void SYMBOL_DIFF_WIDGET::DisplayDiff( LIB_SYMBOL* aSchSymbol, LIB_SYMBOL* aLibSy
static_cast<KIGFX::SCH_RENDER_SETTINGS*>( view->GetPainter()->GetSettings() ); static_cast<KIGFX::SCH_RENDER_SETTINGS*>( view->GetPainter()->GetSettings() );
settings->m_ShowUnit = ( m_previewItem->IsMulti() && !aUnit ) ? 1 : aUnit; settings->m_ShowUnit = ( m_previewItem->IsMulti() && !aUnit ) ? 1 : aUnit;
settings->m_ShowConvert = ( m_previewItem->HasConversion() && !aConvert ) ? 1 : aConvert; settings->m_ShowBodyStyle = ( m_previewItem->HasAlternateBodyStyle() && !aConvert ) ? 1 : aConvert;
view->Add( m_previewItem ); view->Add( m_previewItem );
// Get the symbol size, in internal units // Get the symbol size, in internal units
m_itemBBox = m_previewItem->GetUnitBoundingBox( settings->m_ShowUnit, m_itemBBox = m_previewItem->GetUnitBoundingBox( settings->m_ShowUnit,
settings->m_ShowConvert ); settings->m_ShowBodyStyle );
// Calculate the draw scale to fit the drawing area // Calculate the draw scale to fit the drawing area
fitOnDrawArea(); fitOnDrawArea();

View File

@ -183,7 +183,7 @@ void SYMBOL_PREVIEW_WIDGET::fitOnDrawArea()
} }
void SYMBOL_PREVIEW_WIDGET::DisplaySymbol( const LIB_ID& aSymbolID, int aUnit, int aConvert ) void SYMBOL_PREVIEW_WIDGET::DisplaySymbol( const LIB_ID& aSymbolID, int aUnit, int aBodyStyle )
{ {
KIGFX::VIEW* view = m_preview->GetView(); KIGFX::VIEW* view = m_preview->GetView();
auto settings = static_cast<KIGFX::SCH_RENDER_SETTINGS*>( view->GetPainter()->GetSettings() ); auto settings = static_cast<KIGFX::SCH_RENDER_SETTINGS*>( view->GetPainter()->GetSettings() );
@ -233,14 +233,14 @@ void SYMBOL_PREVIEW_WIDGET::DisplaySymbol( const LIB_ID& aSymbolID, int aUnit, i
settings->m_ShowUnit = ( m_previewItem->IsMulti() && aUnit == 0 ) ? 1 : aUnit; settings->m_ShowUnit = ( m_previewItem->IsMulti() && aUnit == 0 ) ? 1 : aUnit;
// For symbols having a De Morgan body style, use the first style // For symbols having a De Morgan body style, use the first style
settings->m_ShowConvert = settings->m_ShowBodyStyle =
( m_previewItem->HasConversion() && aConvert == 0 ) ? 1 : aConvert; ( m_previewItem->HasAlternateBodyStyle() && aBodyStyle == 0 ) ? 1 : aBodyStyle;
view->Add( m_previewItem ); view->Add( m_previewItem );
// Get the symbol size, in internal units // Get the symbol size, in internal units
m_itemBBox = m_previewItem->GetUnitBoundingBox( settings->m_ShowUnit, m_itemBBox = m_previewItem->GetUnitBoundingBox( settings->m_ShowUnit,
settings->m_ShowConvert ); settings->m_ShowBodyStyle );
if( !m_preview->IsShownOnScreen() ) if( !m_preview->IsShownOnScreen() )
{ {
@ -260,7 +260,7 @@ void SYMBOL_PREVIEW_WIDGET::DisplaySymbol( const LIB_ID& aSymbolID, int aUnit, i
} }
void SYMBOL_PREVIEW_WIDGET::DisplayPart( LIB_SYMBOL* aSymbol, int aUnit, int aConvert ) void SYMBOL_PREVIEW_WIDGET::DisplayPart( LIB_SYMBOL* aSymbol, int aUnit, int aBodyStyle )
{ {
KIGFX::VIEW* view = m_preview->GetView(); KIGFX::VIEW* view = m_preview->GetView();
@ -283,13 +283,13 @@ void SYMBOL_PREVIEW_WIDGET::DisplayPart( LIB_SYMBOL* aSymbol, int aUnit, int aCo
// draw all of them.) // draw all of them.)
settings->m_ShowUnit = ( m_previewItem->IsMulti() && aUnit == 0 ) ? 1 : aUnit; settings->m_ShowUnit = ( m_previewItem->IsMulti() && aUnit == 0 ) ? 1 : aUnit;
settings->m_ShowConvert = settings->m_ShowBodyStyle =
( m_previewItem->HasConversion() && aConvert == 0 ) ? 1 : aConvert; ( m_previewItem->HasAlternateBodyStyle() && aBodyStyle == 0 ) ? 1 : aBodyStyle;
view->Add( m_previewItem ); view->Add( m_previewItem );
// Get the symbol size, in internal units // Get the symbol size, in internal units
m_itemBBox = aSymbol->GetUnitBoundingBox( settings->m_ShowUnit, settings->m_ShowConvert ); m_itemBBox = aSymbol->GetUnitBoundingBox( settings->m_ShowUnit, settings->m_ShowBodyStyle );
// Calculate the draw scale to fit the drawing area // Calculate the draw scale to fit the drawing area
fitOnDrawArea(); fitOnDrawArea();

View File

@ -56,9 +56,9 @@ public:
/** /**
* Set the currently displayed symbol. * Set the currently displayed symbol.
*/ */
void DisplaySymbol( const LIB_ID& aSymbolID, int aUnit, int aConvert = 0 ); void DisplaySymbol( const LIB_ID& aSymbolID, int aUnit, int aBodyStyle = 0 );
void DisplayPart( LIB_SYMBOL* aSymbol, int aUnit, int aConvert = 0 ); void DisplayPart( LIB_SYMBOL* aSymbol, int aUnit, int aBodyStyle = 0 );
protected: protected:
void onSize( wxSizeEvent& aEvent ); void onSize( wxSizeEvent& aEvent );

View File

@ -74,7 +74,7 @@ BOOST_AUTO_TEST_CASE( DefaultProperties )
BOOST_CHECK_EQUAL( m_part_no_data.IsMulti(), false ); BOOST_CHECK_EQUAL( m_part_no_data.IsMulti(), false );
// no conversion // no conversion
BOOST_CHECK_EQUAL( m_part_no_data.HasConversion(), false ); BOOST_CHECK_EQUAL( m_part_no_data.HasAlternateBodyStyle(), false );
} }
@ -538,7 +538,7 @@ BOOST_AUTO_TEST_CASE( GetUnitItems )
BOOST_CHECK( m_part_no_data.GetUnitDrawItems( 1, 0 ).size() == 1 ); BOOST_CHECK( m_part_no_data.GetUnitDrawItems( 1, 0 ).size() == 1 );
// A single unique unit with 1 pin in unit 1 and body style 1. // A single unique unit with 1 pin in unit 1 and body style 1.
pin1->SetConvert( 1 ); pin1->SetBodyStyle( 1 );
BOOST_CHECK( m_part_no_data.GetUnitDrawItems( 1, 1 ).size() == 1 ); BOOST_CHECK( m_part_no_data.GetUnitDrawItems( 1, 1 ).size() == 1 );
// Two unique units with pin 1 assigned to unit 1 and body style 1 and pin 2 assigned to // Two unique units with pin 1 assigned to unit 1 and body style 1 and pin 2 assigned to
@ -546,13 +546,13 @@ BOOST_AUTO_TEST_CASE( GetUnitItems )
LIB_PIN* pin2 = new LIB_PIN( &m_part_no_data ); LIB_PIN* pin2 = new LIB_PIN( &m_part_no_data );
m_part_no_data.SetUnitCount( 2 ); m_part_no_data.SetUnitCount( 2 );
pin2->SetUnit( 2 ); pin2->SetUnit( 2 );
pin2->SetConvert( 2 ); pin2->SetBodyStyle( 2 );
pin2->SetNumber( "4" ); pin2->SetNumber( "4" );
m_part_no_data.AddDrawItem( pin2 ); m_part_no_data.AddDrawItem( pin2 );
BOOST_CHECK( m_part_no_data.GetUnitDrawItems( 2, 2 ).size() == 1 ); BOOST_CHECK( m_part_no_data.GetUnitDrawItems( 2, 2 ).size() == 1 );
// Make pin 1 body style common to all units. // Make pin 1 body style common to all units.
pin1->SetConvert( 0 ); pin1->SetBodyStyle( 0 );
BOOST_CHECK( m_part_no_data.GetUnitDrawItems( 1, 1 ).size() == 0 ); BOOST_CHECK( m_part_no_data.GetUnitDrawItems( 1, 1 ).size() == 0 );
BOOST_CHECK( m_part_no_data.GetUnitDrawItems( 2, 1 ).size() == 1 ); BOOST_CHECK( m_part_no_data.GetUnitDrawItems( 2, 1 ).size() == 1 );
@ -577,7 +577,7 @@ BOOST_AUTO_TEST_CASE( GetUnitDrawItems )
std::vector<struct LIB_SYMBOL_UNIT> units = m_part_no_data.GetUnitDrawItems(); std::vector<struct LIB_SYMBOL_UNIT> units = m_part_no_data.GetUnitDrawItems();
BOOST_CHECK( units.size() == 1 ); BOOST_CHECK( units.size() == 1 );
BOOST_CHECK( units[0].m_unit == 0 ); BOOST_CHECK( units[0].m_unit == 0 );
BOOST_CHECK( units[0].m_convert == 0 ); BOOST_CHECK( units[0].m_bodyStyle == 0 );
BOOST_CHECK( units[0].m_items[0] == pin1 ); BOOST_CHECK( units[0].m_items[0] == pin1 );
} }