diff --git a/eeschema/sch_component.cpp b/eeschema/sch_component.cpp index 005f2768ef..d9eb6978d8 100644 --- a/eeschema/sch_component.cpp +++ b/eeschema/sch_component.cpp @@ -1721,39 +1721,55 @@ void SCH_COMPONENT::GetMsgPanelInfo( MSG_PANEL_ITEMS& aList ) // part and alias can differ if alias is not the root if( PART_SPTR part = m_part.lock() ) { - LIB_ALIAS* alias = part->GetAlias( GetLibId().GetLibItemName() ); + if( part.get() != dummy ) + { + LIB_ALIAS* alias = part->GetAlias( GetLibId().GetLibItemName() ); - if( !alias ) - return; + if( !alias ) + return; - if( m_currentSheetPath ) - aList.push_back( MSG_PANEL_ITEM( _( "Reference" ), - GetRef( m_currentSheetPath ), - DARKCYAN ) ); + if( m_currentSheetPath ) + aList.push_back( MSG_PANEL_ITEM( _( "Reference" ), + GetRef( m_currentSheetPath ), + DARKCYAN ) ); - wxString msg = part->IsPower() ? _( "Power symbol" ) : _( "Value" ); + wxString msg = part->IsPower() ? _( "Power symbol" ) : _( "Value" ); - aList.push_back( MSG_PANEL_ITEM( msg, GetField( VALUE )->GetShownText(), DARKCYAN ) ); + aList.push_back( MSG_PANEL_ITEM( msg, GetField( VALUE )->GetShownText(), DARKCYAN ) ); - // Display component reference in library and library - aList.push_back( MSG_PANEL_ITEM( _( "Component" ), GetLibId().GetLibItemName(), BROWN ) ); + // Display component reference in library and library + aList.push_back( MSG_PANEL_ITEM( _( "Component" ), GetLibId().GetLibItemName(), + BROWN ) ); - if( alias->GetName() != part->GetName() ) - aList.push_back( MSG_PANEL_ITEM( _( "Alias of" ), part->GetName(), BROWN ) ); + if( alias->GetName() != part->GetName() ) + aList.push_back( MSG_PANEL_ITEM( _( "Alias of" ), part->GetName(), BROWN ) ); - aList.push_back( MSG_PANEL_ITEM( _( "Library" ), alias->GetLibraryName(), BROWN ) ); + aList.push_back( MSG_PANEL_ITEM( _( "Library" ), alias->GetLibraryName(), BROWN ) ); - // Display the current associated footprint, if exists. - if( !GetField( FOOTPRINT )->IsVoid() ) - msg = GetField( FOOTPRINT )->GetShownText(); - else - msg = _( "" ); + // Display the current associated footprint, if exists. + if( !GetField( FOOTPRINT )->IsVoid() ) + msg = GetField( FOOTPRINT )->GetShownText(); + else + msg = _( "" ); - aList.push_back( MSG_PANEL_ITEM( _( "Footprint" ), msg, DARKRED ) ); + aList.push_back( MSG_PANEL_ITEM( _( "Footprint" ), msg, DARKRED ) ); - // Display description of the component, and keywords found in lib - aList.push_back( MSG_PANEL_ITEM( _( "Description" ), alias->GetDescription(), DARKCYAN ) ); - aList.push_back( MSG_PANEL_ITEM( _( "Key Words" ), alias->GetKeyWords(), DARKCYAN ) ); + // Display description of the component, and keywords found in lib + aList.push_back( MSG_PANEL_ITEM( _( "Description" ), alias->GetDescription(), + DARKCYAN ) ); + aList.push_back( MSG_PANEL_ITEM( _( "Key Words" ), alias->GetKeyWords(), DARKCYAN ) ); + } + } + else + { + if( m_currentSheetPath ) + aList.push_back( MSG_PANEL_ITEM( _( "Reference" ), GetRef( m_currentSheetPath ), + DARKCYAN ) ); + + aList.push_back( MSG_PANEL_ITEM( _( "Value" ), GetField( VALUE )->GetShownText(), + DARKCYAN ) ); + aList.push_back( MSG_PANEL_ITEM( _( "Component" ), GetLibId().GetLibItemName(), BROWN ) ); + aList.push_back( MSG_PANEL_ITEM( _( "Library" ), _( "Error: symbol not found!!!" ), RED ) ); } }