Symbol Fields Table: Highlight the first unit in multi-unit symbols.

This commit is contained in:
Alex 2022-11-26 17:30:30 +05:00
parent 86d7638f10
commit 754e82535a
1 changed files with 9 additions and 1 deletions

View File

@ -1302,14 +1302,22 @@ void DIALOG_SYMBOL_FIELDS_TABLE::OnTableCellClick( wxGridEvent& event )
m_grid->ClearSelection();
m_grid->SetGridCursor( event.GetRow(), event.GetCol() );
int flag = m_dataModel->GetRowFlags( event.GetRow() );
m_dataModel->ExpandCollapseRow( event.GetRow() );
std::vector<SCH_REFERENCE> refs = m_dataModel->GetRowReferences( event.GetRow() );
// Focus Eeschema view on the symbol selected in the dialog
if( refs.size() == 1 )
// TODO: Highlight or select more than one unit
if( ( flag == GROUP_SINGLETON || flag == CHILD_ITEM ) && refs.size() >= 1 )
{
SCH_EDITOR_CONTROL* editor = m_parent->GetToolManager()->GetTool<SCH_EDITOR_CONTROL>();
std::sort( refs.begin(), refs.end(),
[]( const SCH_REFERENCE& a, const SCH_REFERENCE& b )
{
return a.GetUnit() < b.GetUnit();
} );
// search and highlight the symbol found by its full path.
// It allows select of not yet annotated or duplicaded symbols
wxString symbol_path = refs[0].GetFullPath();