diff --git a/eeschema/net_navigator.cpp b/eeschema/net_navigator.cpp index 7b1c100d94..f0a9a220cf 100644 --- a/eeschema/net_navigator.cpp +++ b/eeschema/net_navigator.cpp @@ -120,7 +120,8 @@ static wxString GetNetNavigatorItemText( const SCH_ITEM* aItem, { const SCH_GLOBALLABEL* label = static_cast<const SCH_GLOBALLABEL*>( aItem ); - retv.Printf( _( "Global label '%s' at %s, %s" ), UnescapeString( label->GetText() ), + retv.Printf( _( "Global label '%s' at %s, %s" ), + UnescapeString( label->GetText() ), aUnitsProvider->MessageTextFromValue( label->GetPosition().x ), aUnitsProvider->MessageTextFromValue( label->GetPosition().y ) ); break; @@ -129,7 +130,8 @@ static wxString GetNetNavigatorItemText( const SCH_ITEM* aItem, { const SCH_HIERLABEL* label = static_cast<const SCH_HIERLABEL*>( aItem ); - retv.Printf( _( "Hierarchical label '%s' at %s, %s" ), UnescapeString( label->GetText() ), + retv.Printf( _( "Hierarchical label '%s' at %s, %s" ), + UnescapeString( label->GetText() ), aUnitsProvider->MessageTextFromValue( label->GetPosition().x ), aUnitsProvider->MessageTextFromValue( label->GetPosition().y ) ); break; @@ -178,7 +180,8 @@ static wxString GetNetNavigatorItemText( const SCH_ITEM* aItem, { const SCH_DIRECTIVE_LABEL* entry = static_cast<const SCH_DIRECTIVE_LABEL*>( aItem ); - retv.Printf( _( "Netclass label '%s' at %s, %s" ), UnescapeString( entry->GetText() ), + retv.Printf( _( "Netclass label '%s' at %s, %s" ), + UnescapeString( entry->GetText() ), aUnitsProvider->MessageTextFromValue( entry->GetPosition().x ), aUnitsProvider->MessageTextFromValue( entry->GetPosition().y ) ); break; @@ -263,16 +266,17 @@ void SCH_EDIT_FRAME::MakeNetNavigatorNode( const wxString& aNetName, wxTreeItemI for( const SCH_ITEM* item : subGraph->GetItems() ) { - KICAD_T type = item->Type(); - - if( ( type == SCH_LINE_T ) || ( type == SCH_JUNCTION_T ) - || ( type == SCH_BUS_WIRE_ENTRY_T ) || ( type == SCH_BUS_BUS_ENTRY_T ) ) + if( item->Type() == SCH_LINE_T + || item->Type() == SCH_JUNCTION_T + || item->Type() == SCH_BUS_WIRE_ENTRY_T + || item->Type() == SCH_BUS_BUS_ENTRY_T ) + { continue; + } itemData = new NET_NAVIGATOR_ITEM_DATA( sheetPath, item ); wxTreeItemId id = m_netNavigator->AppendItem( sheetId, - GetNetNavigatorItemText( item, sheetPath, - this ), + GetNetNavigatorItemText( item, sheetPath, this ), -1, -1, itemData ); if( aSelection && *aSelection == *itemData ) @@ -350,8 +354,7 @@ void SCH_EDIT_FRAME::RefreshNetNavigator( const NET_NAVIGATOR_ITEM_DATA* aSelect wxTreeItemId selection = m_netNavigator->GetSelection(); if( selection.IsOk() ) - itemData = dynamic_cast<NET_NAVIGATOR_ITEM_DATA*>( - m_netNavigator->GetItemData( selection ) ); + itemData = dynamic_cast<NET_NAVIGATOR_ITEM_DATA*>( m_netNavigator->GetItemData( selection ) ); m_netNavigator->DeleteAllItems(); nodeCnt++; @@ -444,8 +447,7 @@ const SCH_ITEM* SCH_EDIT_FRAME::SelectNextPrevNetNavigatorItem( bool aNext ) m_netNavigator->SelectItem( nextId ); - NET_NAVIGATOR_ITEM_DATA* data = static_cast<NET_NAVIGATOR_ITEM_DATA*>( - m_netNavigator->GetItemData( nextId ) ); + auto* data = static_cast<NET_NAVIGATOR_ITEM_DATA*>( m_netNavigator->GetItemData( nextId ) ); if( data && data->GetItem() ) return data->GetItem(); @@ -457,17 +459,17 @@ const SCH_ITEM* SCH_EDIT_FRAME::SelectNextPrevNetNavigatorItem( bool aNext ) void SCH_EDIT_FRAME::SelectNetNavigatorItem( const NET_NAVIGATOR_ITEM_DATA* aSelection ) { - wxCHECK( m_netNavigator, /* void */ ); + wxCHECK( m_netNavigator && !m_netNavigator->IsFrozen(), /* void */ ); // Maybe in the future we can do something like collapse the tree for an empty selection. // For now, leave the tree selection in its current state. if( !aSelection ) return; - wxTreeItemIdValue sheetCookie; + wxTreeItemIdValue sheetCookie; NET_NAVIGATOR_ITEM_DATA* itemData = nullptr; - wxTreeItemId rootId = m_netNavigator->GetRootItem(); - wxTreeItemId sheetId = m_netNavigator->GetFirstChild( rootId, sheetCookie ); + wxTreeItemId rootId = m_netNavigator->GetRootItem(); + wxTreeItemId sheetId = m_netNavigator->GetFirstChild( rootId, sheetCookie ); while( sheetId.IsOk() ) { @@ -478,8 +480,7 @@ void SCH_EDIT_FRAME::SelectNetNavigatorItem( const NET_NAVIGATOR_ITEM_DATA* aSel while( itemId.IsOk() ) { - itemData = dynamic_cast<NET_NAVIGATOR_ITEM_DATA*>( - m_netNavigator->GetItemData( itemId ) ); + itemData = dynamic_cast<NET_NAVIGATOR_ITEM_DATA*>( m_netNavigator->GetItemData( itemId ) ); wxCHECK2( itemData, continue ); @@ -506,7 +507,7 @@ void SCH_EDIT_FRAME::SelectNetNavigatorItem( const NET_NAVIGATOR_ITEM_DATA* aSel const SCH_ITEM* SCH_EDIT_FRAME::GetSelectedNetNavigatorItem() const { - if( !m_netNavigator ) + if( !m_netNavigator || m_netNavigator->IsFrozen() ) return nullptr; wxTreeItemId id = m_netNavigator->GetSelection(); @@ -514,8 +515,7 @@ const SCH_ITEM* SCH_EDIT_FRAME::GetSelectedNetNavigatorItem() const if( !id.IsOk() || ( id == m_netNavigator->GetRootItem() ) ) return nullptr; - NET_NAVIGATOR_ITEM_DATA* itemData = - dynamic_cast<NET_NAVIGATOR_ITEM_DATA*>( m_netNavigator->GetItemData( id ) ); + auto* itemData = dynamic_cast<NET_NAVIGATOR_ITEM_DATA*>( m_netNavigator->GetItemData( id ) ); wxCHECK( itemData, nullptr ); @@ -525,7 +525,7 @@ const SCH_ITEM* SCH_EDIT_FRAME::GetSelectedNetNavigatorItem() const void SCH_EDIT_FRAME::onNetNavigatorSelection( wxTreeEvent& aEvent ) { - wxCHECK( m_netNavigator, /* void */ ); + wxCHECK( m_netNavigator && !m_netNavigator->IsFrozen(), /* void */ ); wxTreeItemId id = aEvent.GetItem(); @@ -533,8 +533,7 @@ void SCH_EDIT_FRAME::onNetNavigatorSelection( wxTreeEvent& aEvent ) if( id == m_netNavigator->GetRootItem() ) return; - NET_NAVIGATOR_ITEM_DATA* itemData = - dynamic_cast<NET_NAVIGATOR_ITEM_DATA*>( m_netNavigator->GetItemData( id ) ); + auto* itemData = dynamic_cast<NET_NAVIGATOR_ITEM_DATA*>( m_netNavigator->GetItemData( id ) ); // Just a net name when we have all nets displayed. if( !itemData ) @@ -548,14 +547,15 @@ void SCH_EDIT_FRAME::onNetNavigatorSelection( wxTreeEvent& aEvent ) // Do not focus on item when a sheet tree node is selected. if( m_netNavigator->GetItemParent( id ) != m_netNavigator->GetRootItem() - && itemData->GetItem() ) + && itemData->GetItem() ) { // Make sure we didn't remove the item and/or the screen it resides on before we access it. const SCH_ITEM* item = itemData->GetItem(); // Don't search for child items in screen r-tree. - item = ( ( item->Type() == SCH_SHEET_PIN_T ) || ( item->Type() == SCH_PIN_T ) ) ? - static_cast<const SCH_ITEM*>( item->GetParent() ) : item; + item = ( item->Type() == SCH_SHEET_PIN_T || item->Type() == SCH_PIN_T ) + ? static_cast<const SCH_ITEM*>( item->GetParent() ) + : item; const SCH_SCREEN* screen = itemData->GetSheetPath().LastScreen(); @@ -571,7 +571,7 @@ void SCH_EDIT_FRAME::onNetNavigatorSelection( wxTreeEvent& aEvent ) void SCH_EDIT_FRAME::onNetNavigatorSelChanging( wxTreeEvent& aEvent ) { - wxCHECK( m_netNavigator, /* void */ ); + wxCHECK( m_netNavigator && !m_netNavigator->IsFrozen(), /* void */ ); aEvent.Skip(); } @@ -611,8 +611,7 @@ void SCH_EDIT_FRAME::ToggleNetNavigator() wxTreeItemId selection = m_netNavigator->GetSelection(); if( selection.IsOk() ) - itemData = dynamic_cast<NET_NAVIGATOR_ITEM_DATA*>( - m_netNavigator->GetItemData( selection ) ); + itemData = dynamic_cast<NET_NAVIGATOR_ITEM_DATA*>( m_netNavigator->GetItemData( selection ) ); RefreshNetNavigator( itemData );