Fix a few more symbol library inheritance bugs.
Replace some C casts with C++ dynamic_cast. Fix iterator bug when deleting inherited symbols from legacy file format symbol library cache. Remove unnecessary const when return wxString object instead of reference.
This commit is contained in:
parent
8e150521a2
commit
9fe2c4b21f
|
@ -112,7 +112,7 @@ LIB_PART::LIB_PART( const wxString& aName, LIB_PART* aParent, PART_LIB* aLibrary
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
LIB_PART::LIB_PART( LIB_PART& aPart, PART_LIB* aLibrary ) :
|
LIB_PART::LIB_PART( const LIB_PART& aPart, PART_LIB* aLibrary ) :
|
||||||
EDA_ITEM( aPart ),
|
EDA_ITEM( aPart ),
|
||||||
m_me( this, null_deleter() )
|
m_me( this, null_deleter() )
|
||||||
{
|
{
|
||||||
|
@ -134,7 +134,7 @@ LIB_PART::LIB_PART( LIB_PART& aPart, PART_LIB* aLibrary ) :
|
||||||
m_keyWords = aPart.m_keyWords;
|
m_keyWords = aPart.m_keyWords;
|
||||||
m_docFileName = aPart.m_docFileName;
|
m_docFileName = aPart.m_docFileName;
|
||||||
|
|
||||||
for( LIB_ITEM& oldItem : aPart.m_drawings )
|
for( const LIB_ITEM& oldItem : aPart.m_drawings )
|
||||||
{
|
{
|
||||||
if( ( oldItem.GetFlags() & ( IS_NEW | STRUCT_DELETED ) ) != 0 )
|
if( ( oldItem.GetFlags() & ( IS_NEW | STRUCT_DELETED ) ) != 0 )
|
||||||
continue;
|
continue;
|
||||||
|
@ -278,7 +278,7 @@ std::unique_ptr< LIB_PART > LIB_PART::Flatten() const
|
||||||
wxString::Format( "Parent of derived symbol '%s' undefined", m_name ) );
|
wxString::Format( "Parent of derived symbol '%s' undefined", m_name ) );
|
||||||
|
|
||||||
// Copy the parent.
|
// Copy the parent.
|
||||||
retv.reset( new LIB_PART( *const_cast< LIB_PART* >( parent.get() ) ) );
|
retv.reset( new LIB_PART( *parent.get() ) );
|
||||||
|
|
||||||
// Now add the inherited part (this) information.
|
// Now add the inherited part (this) information.
|
||||||
retv->SetName( m_name );
|
retv->SetName( m_name );
|
||||||
|
@ -291,7 +291,7 @@ std::unique_ptr< LIB_PART > LIB_PART::Flatten() const
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
retv.reset( new LIB_PART( *const_cast< LIB_PART* >( this ) ) );
|
retv.reset( new LIB_PART( *this ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
return retv;
|
return retv;
|
||||||
|
|
|
@ -129,7 +129,7 @@ public:
|
||||||
/**
|
/**
|
||||||
* Copy constructor.
|
* Copy constructor.
|
||||||
*/
|
*/
|
||||||
LIB_PART( LIB_PART& aPart, PART_LIB* aLibrary = NULL );
|
LIB_PART( const LIB_PART& aPart, PART_LIB* aLibrary = NULL );
|
||||||
|
|
||||||
virtual ~LIB_PART();
|
virtual ~LIB_PART();
|
||||||
|
|
||||||
|
@ -144,7 +144,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void SetName( const wxString& aName );
|
virtual void SetName( const wxString& aName );
|
||||||
const wxString GetName() const override { return m_name; }
|
wxString GetName() const override { return m_name; }
|
||||||
|
|
||||||
LIB_ID GetLibId() const override { return m_libId; }
|
LIB_ID GetLibId() const override { return m_libId; }
|
||||||
void SetLibId( const LIB_ID& aLibId ) { m_libId = aLibId; }
|
void SetLibId( const LIB_ID& aLibId ) { m_libId = aLibId; }
|
||||||
|
@ -156,21 +156,21 @@ public:
|
||||||
m_description = aDescription;
|
m_description = aDescription;
|
||||||
}
|
}
|
||||||
|
|
||||||
const wxString GetDescription() override { return m_description; }
|
wxString GetDescription() override { return m_description; }
|
||||||
|
|
||||||
void SetKeyWords( const wxString& aKeyWords )
|
void SetKeyWords( const wxString& aKeyWords )
|
||||||
{
|
{
|
||||||
m_keyWords = aKeyWords;
|
m_keyWords = aKeyWords;
|
||||||
}
|
}
|
||||||
|
|
||||||
const wxString GetKeyWords() const { return m_keyWords; }
|
wxString GetKeyWords() const { return m_keyWords; }
|
||||||
|
|
||||||
void SetDocFileName( const wxString& aDocFileName )
|
void SetDocFileName( const wxString& aDocFileName )
|
||||||
{
|
{
|
||||||
m_docFileName = aDocFileName;
|
m_docFileName = aDocFileName;
|
||||||
}
|
}
|
||||||
|
|
||||||
const wxString GetDocFileName() const { return m_docFileName; }
|
wxString GetDocFileName() const { return m_docFileName; }
|
||||||
|
|
||||||
wxString GetSearchText() override;
|
wxString GetSearchText() override;
|
||||||
|
|
||||||
|
|
|
@ -4183,12 +4183,12 @@ void SCH_LEGACY_PLUGIN_CACHE::DeleteSymbol( const wxString& aSymbolName )
|
||||||
{
|
{
|
||||||
if( it1->second->IsAlias() && it1->second->GetParent().lock() == rootPart->SharedPtr() )
|
if( it1->second->IsAlias() && it1->second->GetParent().lock() == rootPart->SharedPtr() )
|
||||||
{
|
{
|
||||||
delete it->second;
|
delete it1->second;
|
||||||
it = m_symbols.erase( it );
|
it1 = m_symbols.erase( it1 );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
it++;
|
it1++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -141,7 +141,7 @@ void SCH_VIEW::DisplayComponent( LIB_PART* aPart )
|
||||||
if( item.Type() != LIB_FIELD_T )
|
if( item.Type() != LIB_FIELD_T )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
LIB_FIELD* field = (LIB_FIELD*) &item;
|
LIB_FIELD* field = dynamic_cast< LIB_FIELD* >( &item );
|
||||||
|
|
||||||
if( field->GetId() < MANDATORY_FIELDS )
|
if( field->GetId() < MANDATORY_FIELDS )
|
||||||
Add( &item );
|
Add( &item );
|
||||||
|
@ -162,7 +162,7 @@ void SCH_VIEW::DisplayComponent( LIB_PART* aPart )
|
||||||
// The mandatory fields are already in place so we only add user defined fields.
|
// The mandatory fields are already in place so we only add user defined fields.
|
||||||
if( item.Type() == LIB_FIELD_T )
|
if( item.Type() == LIB_FIELD_T )
|
||||||
{
|
{
|
||||||
LIB_FIELD* field = (LIB_FIELD*) &item;
|
LIB_FIELD* field = dynamic_cast< LIB_FIELD* >( &item );
|
||||||
|
|
||||||
if( field->GetId() < MANDATORY_FIELDS )
|
if( field->GetId() < MANDATORY_FIELDS )
|
||||||
continue;
|
continue;
|
||||||
|
|
|
@ -81,7 +81,7 @@ public:
|
||||||
return m_nickname;
|
return m_nickname;
|
||||||
}
|
}
|
||||||
|
|
||||||
const wxString GetName() const override
|
wxString GetName() const override
|
||||||
{
|
{
|
||||||
return m_fpname;
|
return m_fpname;
|
||||||
}
|
}
|
||||||
|
@ -91,13 +91,13 @@ public:
|
||||||
return LIB_ID( m_nickname, m_fpname );
|
return LIB_ID( m_nickname, m_fpname );
|
||||||
}
|
}
|
||||||
|
|
||||||
const wxString GetDescription() override
|
wxString GetDescription() override
|
||||||
{
|
{
|
||||||
ensure_loaded();
|
ensure_loaded();
|
||||||
return m_doc;
|
return m_doc;
|
||||||
}
|
}
|
||||||
|
|
||||||
const wxString GetKeywords()
|
wxString GetKeywords()
|
||||||
{
|
{
|
||||||
ensure_loaded();
|
ensure_loaded();
|
||||||
return m_keywords;
|
return m_keywords;
|
||||||
|
|
|
@ -41,10 +41,10 @@ class APIEXPORT LIB_TREE_ITEM
|
||||||
public:
|
public:
|
||||||
virtual LIB_ID GetLibId() const = 0;
|
virtual LIB_ID GetLibId() const = 0;
|
||||||
|
|
||||||
virtual const wxString GetName() const = 0;
|
virtual wxString GetName() const = 0;
|
||||||
virtual wxString GetLibNickname() const = 0;
|
virtual wxString GetLibNickname() const = 0;
|
||||||
|
|
||||||
virtual const wxString GetDescription() = 0;
|
virtual wxString GetDescription() = 0;
|
||||||
|
|
||||||
virtual wxString GetSearchText() { return wxEmptyString; }
|
virtual wxString GetSearchText() { return wxEmptyString; }
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue