Assure that NETINFO_ITEMs have a NETCLASS object assigned
Fixes: lp:1705896 * https://bugs.launchpad.net/kicad/+bug/1705896
This commit is contained in:
parent
2206d51b82
commit
75cda5021d
|
@ -86,7 +86,6 @@ NETCLASS::~NETCLASS()
|
||||||
|
|
||||||
NETCLASSES::NETCLASSES()
|
NETCLASSES::NETCLASSES()
|
||||||
{
|
{
|
||||||
m_Default = std::make_shared<NETCLASS>( NETCLASS::Default );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -102,7 +101,7 @@ bool NETCLASSES::Add( NETCLASSPTR aNetClass )
|
||||||
if( name == NETCLASS::Default )
|
if( name == NETCLASS::Default )
|
||||||
{
|
{
|
||||||
// invoke operator=(), which is currently generated by compiler.
|
// invoke operator=(), which is currently generated by compiler.
|
||||||
m_Default = aNetClass;
|
GetDefault() = aNetClass;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -142,7 +141,7 @@ NETCLASSPTR NETCLASSES::Remove( const wxString& aNetName )
|
||||||
NETCLASSPTR NETCLASSES::Find( const wxString& aName ) const
|
NETCLASSPTR NETCLASSES::Find( const wxString& aName ) const
|
||||||
{
|
{
|
||||||
if( aName == NETCLASS::Default )
|
if( aName == NETCLASS::Default )
|
||||||
return m_Default;
|
return GetDefault();
|
||||||
|
|
||||||
NETCLASS_MAP::const_iterator found = m_NetClasses.find( aName );
|
NETCLASS_MAP::const_iterator found = m_NetClasses.find( aName );
|
||||||
|
|
||||||
|
|
|
@ -235,9 +235,6 @@ private:
|
||||||
/// all the NETCLASSes except the default one.
|
/// all the NETCLASSes except the default one.
|
||||||
NETCLASS_MAP m_NetClasses;
|
NETCLASS_MAP m_NetClasses;
|
||||||
|
|
||||||
/// the default NETCLASS.
|
|
||||||
NETCLASSPTR m_Default;
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
NETCLASSES();
|
NETCLASSES();
|
||||||
~NETCLASSES();
|
~NETCLASSES();
|
||||||
|
@ -272,9 +269,10 @@ public:
|
||||||
* Function GetDefault
|
* Function GetDefault
|
||||||
* @return the default net class.
|
* @return the default net class.
|
||||||
*/
|
*/
|
||||||
NETCLASSPTR GetDefault() const
|
NETCLASSPTR& GetDefault() const
|
||||||
{
|
{
|
||||||
return m_Default;
|
static NETCLASSPTR defNetClass = std::make_shared<NETCLASS>( NETCLASS::Default );
|
||||||
|
return defNetClass;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -78,9 +78,6 @@ private:
|
||||||
|
|
||||||
wxString m_ShortNetname; ///< short net name, like vout from /mysheet/mysubsheet/vout
|
wxString m_ShortNetname; ///< short net name, like vout from /mysheet/mysubsheet/vout
|
||||||
|
|
||||||
wxString m_NetClassName; // Net Class name. if void this is equivalent
|
|
||||||
// to "default" (the first
|
|
||||||
// item of the net classes list
|
|
||||||
NETCLASSPTR m_NetClass;
|
NETCLASSPTR m_NetClass;
|
||||||
|
|
||||||
BOARD* m_parent; ///< The parent board the net belongs to.
|
BOARD* m_parent; ///< The parent board the net belongs to.
|
||||||
|
@ -120,15 +117,7 @@ public:
|
||||||
* Function SetClass
|
* Function SetClass
|
||||||
* sets \a aNetclass into this NET
|
* sets \a aNetclass into this NET
|
||||||
*/
|
*/
|
||||||
void SetClass( NETCLASSPTR aNetClass )
|
void SetClass( NETCLASSPTR aNetClass );
|
||||||
{
|
|
||||||
m_NetClass = aNetClass;
|
|
||||||
|
|
||||||
if( aNetClass )
|
|
||||||
m_NetClassName = aNetClass->GetName();
|
|
||||||
else
|
|
||||||
m_NetClassName = NETCLASS::Default;
|
|
||||||
}
|
|
||||||
|
|
||||||
NETCLASSPTR GetNetClass()
|
NETCLASSPTR GetNetClass()
|
||||||
{
|
{
|
||||||
|
@ -139,9 +128,9 @@ public:
|
||||||
* Function GetClassName
|
* Function GetClassName
|
||||||
* returns the class name
|
* returns the class name
|
||||||
*/
|
*/
|
||||||
const wxString& GetClassName() const
|
wxString GetClassName() const
|
||||||
{
|
{
|
||||||
return m_NetClassName;
|
return m_NetClass ? m_NetClass->GetName() : NETCLASS::Default;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 1
|
#if 1
|
||||||
|
|
|
@ -53,8 +53,12 @@ NETINFO_ITEM::NETINFO_ITEM( BOARD* aParent, const wxString& aNetName, int aNetCo
|
||||||
BOARD_ITEM( aParent, PCB_NETINFO_T ),
|
BOARD_ITEM( aParent, PCB_NETINFO_T ),
|
||||||
m_NetCode( aNetCode ), m_Netname( aNetName ), m_ShortNetname( m_Netname.AfterLast( '/' ) )
|
m_NetCode( aNetCode ), m_Netname( aNetName ), m_ShortNetname( m_Netname.AfterLast( '/' ) )
|
||||||
{
|
{
|
||||||
m_parent = aParent;
|
m_parent = aParent;
|
||||||
m_NetClassName = NETCLASS::Default;
|
|
||||||
|
if( aParent )
|
||||||
|
m_NetClass = aParent->GetDesignSettings().m_NetClasses.GetDefault();
|
||||||
|
else
|
||||||
|
m_NetClass = std::make_shared<NETCLASS>( "<invalid>" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -75,6 +79,13 @@ void NETINFO_ITEM::Draw( EDA_DRAW_PANEL* panel,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void NETINFO_ITEM::SetClass( NETCLASSPTR aNetClass )
|
||||||
|
{
|
||||||
|
wxCHECK( m_parent, /* void */ );
|
||||||
|
m_NetClass = aNetClass ? aNetClass : m_parent->GetDesignSettings().m_NetClasses.GetDefault();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void NETINFO_ITEM::GetMsgPanelInfo( std::vector< MSG_PANEL_ITEM >& aList )
|
void NETINFO_ITEM::GetMsgPanelInfo( std::vector< MSG_PANEL_ITEM >& aList )
|
||||||
{
|
{
|
||||||
wxString txt;
|
wxString txt;
|
||||||
|
|
Loading…
Reference in New Issue