Aliases should inherit their descs, keywords, and fp filters.
Assuming they're not set locally, of course. Also updates to new class structure order. Fixes https://gitlab.com/kicad/code/kicad/issues/6051
This commit is contained in:
parent
3b35bfc0a5
commit
797a588015
|
@ -88,7 +88,7 @@ LIB_PART::LIB_PART( const wxString& aName, LIB_PART* aParent, PART_LIB* aLibrary
|
||||||
m_includeInBom( true ),
|
m_includeInBom( true ),
|
||||||
m_includeOnBoard( true )
|
m_includeOnBoard( true )
|
||||||
{
|
{
|
||||||
m_dateLastEdition = 0;
|
m_lastModDate = 0;
|
||||||
m_unitCount = 1;
|
m_unitCount = 1;
|
||||||
m_pinNameOffset = Mils2iu( DEFAULT_PIN_NAME_OFFSET );
|
m_pinNameOffset = Mils2iu( DEFAULT_PIN_NAME_OFFSET );
|
||||||
m_options = ENTRY_NORMAL;
|
m_options = ENTRY_NORMAL;
|
||||||
|
@ -121,7 +121,7 @@ LIB_PART::LIB_PART( const LIB_PART& aPart, PART_LIB* aLibrary ) :
|
||||||
|
|
||||||
m_library = aLibrary;
|
m_library = aLibrary;
|
||||||
m_name = aPart.m_name;
|
m_name = aPart.m_name;
|
||||||
m_footprintFilters = wxArrayString( aPart.m_footprintFilters );
|
m_fpFilters = wxArrayString( aPart.m_fpFilters );
|
||||||
m_unitCount = aPart.m_unitCount;
|
m_unitCount = aPart.m_unitCount;
|
||||||
m_unitsLocked = aPart.m_unitsLocked;
|
m_unitsLocked = aPart.m_unitsLocked;
|
||||||
m_pinNameOffset = aPart.m_pinNameOffset;
|
m_pinNameOffset = aPart.m_pinNameOffset;
|
||||||
|
@ -129,7 +129,7 @@ LIB_PART::LIB_PART( const LIB_PART& aPart, PART_LIB* aLibrary ) :
|
||||||
m_includeInBom = aPart.m_includeInBom;
|
m_includeInBom = aPart.m_includeInBom;
|
||||||
m_includeOnBoard = aPart.m_includeOnBoard;
|
m_includeOnBoard = aPart.m_includeOnBoard;
|
||||||
m_showPinNames = aPart.m_showPinNames;
|
m_showPinNames = aPart.m_showPinNames;
|
||||||
m_dateLastEdition = aPart.m_dateLastEdition;
|
m_lastModDate = aPart.m_lastModDate;
|
||||||
m_options = aPart.m_options;
|
m_options = aPart.m_options;
|
||||||
m_libId = aPart.m_libId;
|
m_libId = aPart.m_libId;
|
||||||
m_description = aPart.m_description;
|
m_description = aPart.m_description;
|
||||||
|
@ -176,7 +176,7 @@ const LIB_PART& LIB_PART::operator=( const LIB_PART& aPart )
|
||||||
|
|
||||||
m_library = aPart.m_library;
|
m_library = aPart.m_library;
|
||||||
m_name = aPart.m_name;
|
m_name = aPart.m_name;
|
||||||
m_footprintFilters = wxArrayString( aPart.m_footprintFilters );
|
m_fpFilters = wxArrayString( aPart.m_fpFilters );
|
||||||
m_unitCount = aPart.m_unitCount;
|
m_unitCount = aPart.m_unitCount;
|
||||||
m_unitsLocked = aPart.m_unitsLocked;
|
m_unitsLocked = aPart.m_unitsLocked;
|
||||||
m_pinNameOffset = aPart.m_pinNameOffset;
|
m_pinNameOffset = aPart.m_pinNameOffset;
|
||||||
|
@ -184,7 +184,7 @@ const LIB_PART& LIB_PART::operator=( const LIB_PART& aPart )
|
||||||
m_showPinNames = aPart.m_showPinNames;
|
m_showPinNames = aPart.m_showPinNames;
|
||||||
m_includeInBom = aPart.m_includeInBom;
|
m_includeInBom = aPart.m_includeInBom;
|
||||||
m_includeOnBoard = aPart.m_includeOnBoard;
|
m_includeOnBoard = aPart.m_includeOnBoard;
|
||||||
m_dateLastEdition = aPart.m_dateLastEdition;
|
m_lastModDate = aPart.m_lastModDate;
|
||||||
m_options = aPart.m_options;
|
m_options = aPart.m_options;
|
||||||
m_libId = aPart.m_libId;
|
m_libId = aPart.m_libId;
|
||||||
m_description = aPart.m_description;
|
m_description = aPart.m_description;
|
||||||
|
@ -258,12 +258,12 @@ int LIB_PART::Compare( const LIB_PART& aRhs ) const
|
||||||
++rhsItem;
|
++rhsItem;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( m_footprintFilters.GetCount() != aRhs.m_footprintFilters.GetCount() )
|
if( m_fpFilters.GetCount() != aRhs.m_fpFilters.GetCount() )
|
||||||
return m_footprintFilters.GetCount() - aRhs.m_footprintFilters.GetCount();
|
return m_fpFilters.GetCount() - aRhs.m_fpFilters.GetCount();
|
||||||
|
|
||||||
for( size_t i = 0; i < m_footprintFilters.GetCount(); i++ )
|
for( size_t i = 0; i < m_fpFilters.GetCount(); i++ )
|
||||||
{
|
{
|
||||||
retv = m_footprintFilters[i].Cmp( aRhs.m_footprintFilters[i] );
|
retv = m_fpFilters[i].Cmp( aRhs.m_fpFilters[i] );
|
||||||
|
|
||||||
if( retv )
|
if( retv )
|
||||||
return retv;
|
return retv;
|
||||||
|
@ -382,9 +382,9 @@ std::unique_ptr< LIB_PART > LIB_PART::Flatten() const
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
retv->SetKeyWords( m_keyWords );
|
retv->SetKeyWords( m_keyWords.IsEmpty() ? parent->GetKeyWords() : m_keyWords );
|
||||||
retv->SetDescription( m_description );
|
retv->SetDescription( m_description.IsEmpty() ? parent->GetDescription() : m_description );
|
||||||
retv->SetFootprintFilters( m_footprintFilters );
|
retv->SetFPFilters( m_fpFilters.IsEmpty() ? parent->GetFPFilters() : m_fpFilters );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -23,10 +23,6 @@
|
||||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
|
||||||
* @file class_libentry.h
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef CLASS_LIBENTRY_H
|
#ifndef CLASS_LIBENTRY_H
|
||||||
#define CLASS_LIBENTRY_H
|
#define CLASS_LIBENTRY_H
|
||||||
|
|
||||||
|
@ -96,43 +92,7 @@ struct PART_UNITS
|
||||||
*/
|
*/
|
||||||
class LIB_PART : public EDA_ITEM, public LIB_TREE_ITEM
|
class LIB_PART : public EDA_ITEM, public LIB_TREE_ITEM
|
||||||
{
|
{
|
||||||
///< http://www.boost.org/doc/libs/1_55_0/libs/smart_ptr/sp_techniques.html#weak_without_shared
|
|
||||||
PART_SPTR m_me;
|
|
||||||
PART_REF m_parent; ///< Use for inherited symbols.
|
|
||||||
|
|
||||||
LIB_ID m_libId;
|
|
||||||
|
|
||||||
int m_pinNameOffset; ///< The offset in mils to draw the pin name. Set to 0
|
|
||||||
///< to draw the pin name above the pin.
|
|
||||||
bool m_unitsLocked; ///< True if part has multiple units and changing
|
|
||||||
///< one unit does not automatically change another unit.
|
|
||||||
bool m_showPinNames; ///< Determines if part pin names are visible.
|
|
||||||
bool m_showPinNumbers; ///< Determines if part pin numbers are visible.
|
|
||||||
bool m_includeInBom; ///< Determines if symbol should be included in
|
|
||||||
///< schematic BOM.
|
|
||||||
bool m_includeOnBoard; ///< Determines if symbol should be excluded from
|
|
||||||
///< netlist when updating board.
|
|
||||||
timestamp_t m_dateLastEdition; ///< Date of the last modification.
|
|
||||||
LIBRENTRYOPTIONS m_options; ///< Special part features such as POWER or NORMAL.)
|
|
||||||
int m_unitCount; ///< Number of units (parts) per package.
|
|
||||||
LIB_ITEMS_CONTAINER m_drawings; ///< Drawing items of this part.
|
|
||||||
wxArrayString m_footprintFilters; /**< List of suitable footprint names for the
|
|
||||||
part (wild card names accepted). */
|
|
||||||
PART_LIB* m_library; ///< Library the part belongs to if any.
|
|
||||||
wxString m_name; ///< Symbol name.
|
|
||||||
wxString m_description; ///< documentation for info
|
|
||||||
wxString m_keyWords; ///< keyword list (used for search for parts by keyword)
|
|
||||||
|
|
||||||
static int m_subpartIdSeparator; ///< the separator char between
|
|
||||||
///< the subpart id and the reference like U1A
|
|
||||||
///< ( m_subpartIdSeparator = 0 ) or U1.A or U1-A
|
|
||||||
static int m_subpartFirstId; ///< the ASCII char value to calculate the subpart
|
|
||||||
///< symbol id from the part number: only 'A', 'a'
|
|
||||||
///< or '1' can be used, other values have no sense.
|
|
||||||
void deleteAllFields();
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
LIB_PART( const wxString& aName, LIB_PART* aParent = nullptr, PART_LIB* aLibrary = nullptr );
|
LIB_PART( const wxString& aName, LIB_PART* aParent = nullptr, PART_LIB* aLibrary = nullptr );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -142,6 +102,7 @@ public:
|
||||||
|
|
||||||
virtual ~LIB_PART();
|
virtual ~LIB_PART();
|
||||||
|
|
||||||
|
///< http://www.boost.org/doc/libs/1_55_0/libs/smart_ptr/sp_techniques.html#weak_without_shared
|
||||||
PART_SPTR SharedPtr() { return m_me; }
|
PART_SPTR SharedPtr() { return m_me; }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -159,13 +120,6 @@ public:
|
||||||
return dupe;
|
return dupe;
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
|
||||||
// We create a different set parent function for this class, so we hide
|
|
||||||
// the inherited one.
|
|
||||||
using EDA_ITEM::SetParent;
|
|
||||||
|
|
||||||
public:
|
|
||||||
|
|
||||||
void SetParent( LIB_PART* aParent = nullptr );
|
void SetParent( LIB_PART* aParent = nullptr );
|
||||||
PART_REF& GetParent() { return m_parent; }
|
PART_REF& GetParent() { return m_parent; }
|
||||||
|
|
||||||
|
@ -182,19 +136,31 @@ public:
|
||||||
|
|
||||||
wxString GetLibNickname() const override { return GetLibraryName(); }
|
wxString GetLibNickname() const override { return GetLibraryName(); }
|
||||||
|
|
||||||
void SetDescription( const wxString& aDescription )
|
void SetDescription( const wxString& aDescription ) { m_description = aDescription; }
|
||||||
|
|
||||||
|
wxString GetDescription() override
|
||||||
{
|
{
|
||||||
m_description = aDescription;
|
if( m_description.IsEmpty() && IsAlias() )
|
||||||
|
{
|
||||||
|
if( PART_SPTR parent = m_parent.lock() )
|
||||||
|
return parent->GetDescription();
|
||||||
}
|
}
|
||||||
|
|
||||||
wxString GetDescription() override { return m_description; }
|
return m_description;
|
||||||
|
|
||||||
void SetKeyWords( const wxString& aKeyWords )
|
|
||||||
{
|
|
||||||
m_keyWords = aKeyWords;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
wxString GetKeyWords() const { return m_keyWords; }
|
void SetKeyWords( const wxString& aKeyWords ) { m_keyWords = aKeyWords; }
|
||||||
|
|
||||||
|
wxString GetKeyWords() const
|
||||||
|
{
|
||||||
|
if( m_keyWords.IsEmpty() && IsAlias() )
|
||||||
|
{
|
||||||
|
if( PART_SPTR parent = m_parent.lock() )
|
||||||
|
return parent->GetKeyWords();
|
||||||
|
}
|
||||||
|
|
||||||
|
return m_keyWords;
|
||||||
|
}
|
||||||
|
|
||||||
wxString GetSearchText() override;
|
wxString GetSearchText() override;
|
||||||
|
|
||||||
|
@ -209,12 +175,19 @@ public:
|
||||||
PART_LIB* GetLib() { return m_library; }
|
PART_LIB* GetLib() { return m_library; }
|
||||||
void SetLib( PART_LIB* aLibrary ) { m_library = aLibrary; }
|
void SetLib( PART_LIB* aLibrary ) { m_library = aLibrary; }
|
||||||
|
|
||||||
timestamp_t GetDateLastEdition() const { return m_dateLastEdition; }
|
timestamp_t GetLastModDate() const { return m_lastModDate; }
|
||||||
|
|
||||||
wxArrayString GetFootprints() const { return m_footprintFilters; }
|
void SetFPFilters( const wxArrayString& aFilters ) { m_fpFilters = aFilters; }
|
||||||
void SetFootprintFilters( const wxArrayString& aFootprintFilters )
|
|
||||||
|
wxArrayString GetFPFilters() const
|
||||||
{
|
{
|
||||||
m_footprintFilters = aFootprintFilters;
|
if( m_fpFilters.IsEmpty() && IsAlias() )
|
||||||
|
{
|
||||||
|
if( PART_SPTR parent = m_parent.lock() )
|
||||||
|
return parent->GetFPFilters();
|
||||||
|
}
|
||||||
|
|
||||||
|
return m_fpFilters;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ViewGetLayers( int aLayers[], int& aCount ) const override;
|
void ViewGetLayers( int aLayers[], int& aCount ) const override;
|
||||||
|
@ -391,7 +364,6 @@ public:
|
||||||
return (LIB_PIN*) GetNextDrawItem( (LIB_ITEM*) aItem, LIB_PIN_T );
|
return (LIB_PIN*) GetNextDrawItem( (LIB_ITEM*) aItem, LIB_PIN_T );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return a list of pin object pointers from the draw item list.
|
* Return a list of pin object pointers from the draw item list.
|
||||||
*
|
*
|
||||||
|
@ -458,6 +430,7 @@ public:
|
||||||
*/
|
*/
|
||||||
void ClearTempFlags();
|
void ClearTempFlags();
|
||||||
void ClearEditFlags();
|
void ClearEditFlags();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Locate a draw object.
|
* Locate a draw object.
|
||||||
*
|
*
|
||||||
|
@ -666,6 +639,47 @@ public:
|
||||||
#if defined(DEBUG)
|
#if defined(DEBUG)
|
||||||
void Show( int nestLevel, std::ostream& os ) const override { ShowDummy( os ); }
|
void Show( int nestLevel, std::ostream& os ) const override { ShowDummy( os ); }
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
private:
|
||||||
|
// We create a different set parent function for this class, so we hide the inherited one.
|
||||||
|
using EDA_ITEM::SetParent;
|
||||||
|
|
||||||
|
void deleteAllFields();
|
||||||
|
|
||||||
|
private:
|
||||||
|
PART_SPTR m_me;
|
||||||
|
PART_REF m_parent; ///< Use for inherited symbols.
|
||||||
|
LIB_ID m_libId;
|
||||||
|
timestamp_t m_lastModDate;
|
||||||
|
|
||||||
|
int m_unitCount; ///< Number of units (parts) per package.
|
||||||
|
bool m_unitsLocked; ///< True if part has multiple units and changing one
|
||||||
|
///< unit does not automatically change another unit.
|
||||||
|
|
||||||
|
int m_pinNameOffset; ///< The offset in mils to draw the pin name. Set to
|
||||||
|
///< 0 to draw the pin name above the pin.
|
||||||
|
bool m_showPinNames;
|
||||||
|
bool m_showPinNumbers;
|
||||||
|
|
||||||
|
bool m_includeInBom;
|
||||||
|
bool m_includeOnBoard;
|
||||||
|
LIBRENTRYOPTIONS m_options; ///< Special part features such as POWER or NORMAL.)
|
||||||
|
|
||||||
|
LIB_ITEMS_CONTAINER m_drawings;
|
||||||
|
|
||||||
|
PART_LIB* m_library;
|
||||||
|
wxString m_name;
|
||||||
|
wxString m_description;
|
||||||
|
wxString m_keyWords; ///< Search keywords
|
||||||
|
wxArrayString m_fpFilters; ///< List of suitable footprint names for the
|
||||||
|
///< part (wild card names accepted).
|
||||||
|
|
||||||
|
static int m_subpartIdSeparator; ///< the separator char between
|
||||||
|
///< the subpart id and the reference like U1A
|
||||||
|
///< ( m_subpartIdSeparator = 0 ) or U1.A or U1-A
|
||||||
|
static int m_subpartFirstId; ///< the ASCII char value to calculate the subpart
|
||||||
|
///< symbol id from the part number: only 'A', 'a'
|
||||||
|
///< or '1' can be used, other values have no sense.
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // CLASS_LIBENTRY_H
|
#endif // CLASS_LIBENTRY_H
|
||||||
|
|
|
@ -474,7 +474,7 @@ void DIALOG_CHOOSE_SYMBOL::PopulateFootprintSelector( LIB_ID const& aLibId )
|
||||||
symbol->GetPins( temp_pins );
|
symbol->GetPins( temp_pins );
|
||||||
|
|
||||||
m_fp_sel_ctrl->FilterByPinCount( temp_pins.size() );
|
m_fp_sel_ctrl->FilterByPinCount( temp_pins.size() );
|
||||||
m_fp_sel_ctrl->FilterByFootprintFilters( symbol->GetFootprints(), true );
|
m_fp_sel_ctrl->FilterByFootprintFilters( symbol->GetFPFilters(), true );
|
||||||
m_fp_sel_ctrl->SetDefaultFootprint( fp_name );
|
m_fp_sel_ctrl->SetDefaultFootprint( fp_name );
|
||||||
m_fp_sel_ctrl->UpdateList();
|
m_fp_sel_ctrl->UpdateList();
|
||||||
m_fp_sel_ctrl->Enable();
|
m_fp_sel_ctrl->Enable();
|
||||||
|
|
|
@ -174,7 +174,7 @@ bool DIALOG_LIB_SYMBOL_PROPERTIES::TransferDataToWindow()
|
||||||
m_PinsNameInsideButt->SetValue( m_libEntry->GetPinNameOffset() != 0 );
|
m_PinsNameInsideButt->SetValue( m_libEntry->GetPinNameOffset() != 0 );
|
||||||
m_pinNameOffset.SetValue( m_libEntry->GetPinNameOffset() );
|
m_pinNameOffset.SetValue( m_libEntry->GetPinNameOffset() );
|
||||||
|
|
||||||
wxArrayString tmp = m_libEntry->GetFootprints();
|
wxArrayString tmp = m_libEntry->GetFPFilters();
|
||||||
m_FootprintFilterListBox->Append( tmp );
|
m_FootprintFilterListBox->Append( tmp );
|
||||||
|
|
||||||
// Populate the list of root parts for inherited objects.
|
// Populate the list of root parts for inherited objects.
|
||||||
|
@ -376,7 +376,7 @@ bool DIALOG_LIB_SYMBOL_PROPERTIES::TransferDataFromWindow()
|
||||||
m_libEntry->SetPinNameOffset( 0 ); // pin text outside the body (name is on the pin)
|
m_libEntry->SetPinNameOffset( 0 ); // pin text outside the body (name is on the pin)
|
||||||
}
|
}
|
||||||
|
|
||||||
m_libEntry->SetFootprintFilters( m_FootprintFilterListBox->GetStrings() );
|
m_libEntry->SetFPFilters( m_FootprintFilterListBox->GetStrings());
|
||||||
|
|
||||||
m_Parent->UpdateAfterSymbolProperties( &oldName );
|
m_Parent->UpdateAfterSymbolProperties( &oldName );
|
||||||
|
|
||||||
|
|
|
@ -79,7 +79,7 @@ bool NETLIST_EXPORTER_ORCADPCB2::WriteNetlist( const wxString& aOutFileName,
|
||||||
|
|
||||||
CreatePinList( comp, &sheet );
|
CreatePinList( comp, &sheet );
|
||||||
|
|
||||||
if( comp->GetPartRef() && comp->GetPartRef()->GetFootprints().GetCount() != 0 )
|
if( comp->GetPartRef() && comp->GetPartRef()->GetFPFilters().GetCount() != 0 )
|
||||||
cmpList.push_back( SCH_REFERENCE( comp, comp->GetPartRef().get(), sheet ) );
|
cmpList.push_back( SCH_REFERENCE( comp, comp->GetPartRef().get(), sheet ) );
|
||||||
|
|
||||||
footprint = comp->GetFootprint( &sheet, true );
|
footprint = comp->GetFootprint( &sheet, true );
|
||||||
|
|
|
@ -486,15 +486,13 @@ XNODE* NETLIST_EXPORTER_XML::makeLibParts()
|
||||||
xlibpart->AddChild( node( "docs", lcomp->GetDatasheetField().GetText() ) );
|
xlibpart->AddChild( node( "docs", lcomp->GetDatasheetField().GetText() ) );
|
||||||
|
|
||||||
// Write the footprint list
|
// Write the footprint list
|
||||||
if( lcomp->GetFootprints().GetCount() )
|
if( lcomp->GetFPFilters().GetCount() )
|
||||||
{
|
{
|
||||||
XNODE* xfootprints;
|
XNODE* xfootprints;
|
||||||
xlibpart->AddChild( xfootprints = node( "footprints" ) );
|
xlibpart->AddChild( xfootprints = node( "footprints" ) );
|
||||||
|
|
||||||
for( unsigned i=0; i<lcomp->GetFootprints().GetCount(); ++i )
|
for( unsigned i = 0; i < lcomp->GetFPFilters().GetCount(); ++i )
|
||||||
{
|
xfootprints->AddChild( node( "fp", lcomp->GetFPFilters()[i] ) );
|
||||||
xfootprints->AddChild( node( "fp", lcomp->GetFootprints()[i] ) );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//----- show the fields here ----------------------------------
|
//----- show the fields here ----------------------------------
|
||||||
|
|
|
@ -813,7 +813,7 @@ void SCH_SEXPR_PARSER::parseProperty( std::unique_ptr<LIB_PART>& aSymbol )
|
||||||
while( tokenizer.HasMoreTokens() )
|
while( tokenizer.HasMoreTokens() )
|
||||||
filters.Add( tokenizer.GetNextToken() );
|
filters.Add( tokenizer.GetNextToken() );
|
||||||
|
|
||||||
aSymbol->SetFootprintFilters( filters );
|
aSymbol->SetFPFilters( filters );
|
||||||
}
|
}
|
||||||
else if( name == "ki_locked" )
|
else if( name == "ki_locked" )
|
||||||
{
|
{
|
||||||
|
|
|
@ -1666,7 +1666,7 @@ void SCH_SEXPR_PLUGIN_CACHE::saveDcmInfoAsFields( LIB_PART* aSymbol, OUTPUTFORMA
|
||||||
id += 1;
|
id += 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
wxArrayString fpFilters = aSymbol->GetFootprints();
|
wxArrayString fpFilters = aSymbol->GetFPFilters();
|
||||||
|
|
||||||
if( !fpFilters.IsEmpty() )
|
if( !fpFilters.IsEmpty() )
|
||||||
{
|
{
|
||||||
|
|
|
@ -3704,7 +3704,7 @@ void SCH_LEGACY_PLUGIN_CACHE::loadFootprintFilters( std::unique_ptr<LIB_PART>& a
|
||||||
{
|
{
|
||||||
if( strCompare( "$ENDFPLIST", line, &line ) )
|
if( strCompare( "$ENDFPLIST", line, &line ) )
|
||||||
{
|
{
|
||||||
aPart->SetFootprintFilters( footprintFilters );
|
aPart->SetFPFilters( footprintFilters );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3797,7 +3797,7 @@ void SCH_LEGACY_PLUGIN_CACHE::SaveSymbol( LIB_PART* aSymbol, OUTPUTFORMATTER& aF
|
||||||
aSymbol->GetUnitCount(), aSymbol->UnitsLocked() ? 'L' : 'F',
|
aSymbol->GetUnitCount(), aSymbol->UnitsLocked() ? 'L' : 'F',
|
||||||
aSymbol->IsPower() ? 'P' : 'N' );
|
aSymbol->IsPower() ? 'P' : 'N' );
|
||||||
|
|
||||||
timestamp_t dateModified = aSymbol->GetDateLastEdition();
|
timestamp_t dateModified = aSymbol->GetLastModDate();
|
||||||
|
|
||||||
if( dateModified != 0 )
|
if( dateModified != 0 )
|
||||||
{
|
{
|
||||||
|
@ -3853,7 +3853,7 @@ void SCH_LEGACY_PLUGIN_CACHE::SaveSymbol( LIB_PART* aSymbol, OUTPUTFORMATTER& aF
|
||||||
aFormatter.Print( 0, "\n" );
|
aFormatter.Print( 0, "\n" );
|
||||||
}
|
}
|
||||||
|
|
||||||
wxArrayString footprints = aSymbol->GetFootprints();
|
wxArrayString footprints = aSymbol->GetFPFilters();
|
||||||
|
|
||||||
// Write the footprint filter list
|
// Write the footprint filter list
|
||||||
if( footprints.GetCount() != 0 )
|
if( footprints.GetCount() != 0 )
|
||||||
|
|
|
@ -289,17 +289,17 @@ BOOST_AUTO_TEST_CASE( Compare )
|
||||||
|
|
||||||
// Footprint filter array comparison tests.
|
// Footprint filter array comparison tests.
|
||||||
wxArrayString footPrintFilters;
|
wxArrayString footPrintFilters;
|
||||||
BOOST_CHECK( m_part_no_data.GetFootprints() == footPrintFilters );
|
BOOST_CHECK( m_part_no_data.GetFPFilters() == footPrintFilters );
|
||||||
footPrintFilters.Add( "b" );
|
footPrintFilters.Add( "b" );
|
||||||
testPart.SetFootprintFilters( footPrintFilters );
|
testPart.SetFPFilters( footPrintFilters );
|
||||||
BOOST_CHECK( m_part_no_data.Compare( testPart ) < 0 );
|
BOOST_CHECK( m_part_no_data.Compare( testPart ) < 0 );
|
||||||
m_part_no_data.SetFootprintFilters( footPrintFilters );
|
m_part_no_data.SetFPFilters( footPrintFilters );
|
||||||
footPrintFilters.Clear();
|
footPrintFilters.Clear();
|
||||||
testPart.SetFootprintFilters( footPrintFilters );
|
testPart.SetFPFilters( footPrintFilters );
|
||||||
BOOST_CHECK( m_part_no_data.Compare( testPart ) > 0 );
|
BOOST_CHECK( m_part_no_data.Compare( testPart ) > 0 );
|
||||||
footPrintFilters.Clear();
|
footPrintFilters.Clear();
|
||||||
m_part_no_data.SetFootprintFilters( footPrintFilters );
|
m_part_no_data.SetFPFilters( footPrintFilters );
|
||||||
testPart.SetFootprintFilters( footPrintFilters );
|
testPart.SetFPFilters( footPrintFilters );
|
||||||
|
|
||||||
// Description string tests.
|
// Description string tests.
|
||||||
m_part_no_data.SetDescription( "b" );
|
m_part_no_data.SetDescription( "b" );
|
||||||
|
|
Loading…
Reference in New Issue