diff --git a/eeschema/eeschema_config.cpp b/eeschema/eeschema_config.cpp index ecdcea32dc..6bd7538722 100644 --- a/eeschema/eeschema_config.cpp +++ b/eeschema/eeschema_config.cpp @@ -79,6 +79,15 @@ bool SCH_EDIT_FRAME::LoadProjectSettings() void SCH_EDIT_FRAME::ShowSchematicSetupDialog( const wxString& aInitialPage ) { + SCH_SCREENS screens( Schematic().Root() ); + std::vector> oldAliases; + + for( SCH_SCREEN* screen = screens.GetFirst(); screen != nullptr; screen = screens.GetNext() ) + { + for( const std::shared_ptr& alias : screen->GetBusAliases() ) + oldAliases.push_back( alias ); + } + DIALOG_SCHEMATIC_SETUP dlg( this ); if( !aInitialPage.IsEmpty() ) @@ -104,6 +113,18 @@ void SCH_EDIT_FRAME::ShowSchematicSetupDialog( const wxString& aInitialPage ) GetCanvas()->GetView()->MarkDirty(); GetCanvas()->GetView()->UpdateAllItems( KIGFX::REPAINT ); + + std::vector> newAliases; + + for( SCH_SCREEN* screen = screens.GetFirst(); screen != nullptr; screen = screens.GetNext() ) + { + for( const std::shared_ptr& alias : screen->GetBusAliases() ) + newAliases.push_back( alias ); + } + + if( oldAliases != newAliases ) + RecalculateConnections( nullptr, GLOBAL_CLEANUP ); + RefreshOperatingPointDisplay(); GetCanvas()->Refresh(); }