diff --git a/eeschema/eeschema.cpp b/eeschema/eeschema.cpp index 5cb8734098..0c8cfd7308 100644 --- a/eeschema/eeschema.cpp +++ b/eeschema/eeschema.cpp @@ -96,11 +96,8 @@ static std::unique_ptr readSchematicFromFile( const std::string& aFil // Restore all of the loaded symbol instances from the root sheet screen. sheets.UpdateSymbolInstanceData( schematic->RootScreen()->GetSymbolInstances() ); - if( schematic->RootScreen()->GetFileFormatVersionAtLoad() < 20221206 ) - { - for( SCH_SCREEN* screen = screens.GetFirst(); screen; screen = screens.GetNext() ) - screen->MigrateSimModels(); - } + for( SCH_SCREEN* screen = screens.GetFirst(); screen; screen = screens.GetNext() ) + screen->MigrateSimModels(); sheets.AnnotatePowerSymbols(); diff --git a/eeschema/eeschema_helpers.cpp b/eeschema/eeschema_helpers.cpp index 3c77bcac9e..9f8ec6f1e1 100644 --- a/eeschema/eeschema_helpers.cpp +++ b/eeschema/eeschema_helpers.cpp @@ -146,11 +146,8 @@ SCHEMATIC* EESCHEMA_HELPERS::LoadSchematic( wxString& aFileName, SCH_IO_MGR::SCH sheetList.UpdateSheetInstanceData( schematic->RootScreen()->GetSheetInstances()); - if( schematic->RootScreen()->GetFileFormatVersionAtLoad() < 20221206 ) - { - for( SCH_SCREEN* screen = screens.GetFirst(); screen; screen = screens.GetNext() ) - screen->MigrateSimModels(); - } + for( SCH_SCREEN* screen = screens.GetFirst(); screen; screen = screens.GetNext() ) + screen->MigrateSimModels(); sheetList.AnnotatePowerSymbols(); diff --git a/eeschema/files-io.cpp b/eeschema/files-io.cpp index 455bf1970e..bc08ab8573 100644 --- a/eeschema/files-io.cpp +++ b/eeschema/files-io.cpp @@ -456,11 +456,8 @@ bool SCH_EDIT_FRAME::OpenProjectFiles( const std::vector& aFileSet, in if( Schematic().RootScreen()->GetFileFormatVersionAtLoad() < 20221110 ) sheetList.UpdateSheetInstanceData( Schematic().RootScreen()->GetSheetInstances()); - if( Schematic().RootScreen()->GetFileFormatVersionAtLoad() < 20221206 ) - { - for( SCH_SCREEN* screen = schematic.GetFirst(); screen; screen = schematic.GetNext() ) - screen->MigrateSimModels(); - } + for( SCH_SCREEN* screen = schematic.GetFirst(); screen; screen = schematic.GetNext() ) + screen->MigrateSimModels(); } Schematic().ConnectionGraph()->Reset(); diff --git a/eeschema/sheet.cpp b/eeschema/sheet.cpp index 926ec12a31..c7e1e4d48e 100644 --- a/eeschema/sheet.cpp +++ b/eeschema/sheet.cpp @@ -166,9 +166,6 @@ bool SCH_EDIT_FRAME::LoadSheetFromFile( SCH_SHEET* aSheet, SCH_SHEET_PATH* aHier return false; } - if( newSheet->GetScreen()->GetFileFormatVersionAtLoad() < 20221206 ) - newSheet->GetScreen()->MigrateSimModels(); - // If the loaded schematic is in a different folder from the current project and // it contains hierarchical sheets, the hierarchical sheet paths need to be updated. if( fileName.GetPathWithSep() != Prj().GetProjectPath() && newSheet->CountSheets() ) @@ -505,6 +502,8 @@ bool SCH_EDIT_FRAME::LoadSheetFromFile( SCH_SHEET* aSheet, SCH_SHEET_PATH* aHier } } + newScreen->MigrateSimModels(); + // Attempt to create new symbol instances using the instance data loaded above. sheetHierarchy.AddNewSymbolInstances( *aHierarchy ); diff --git a/eeschema/tools/sch_editor_control.cpp b/eeschema/tools/sch_editor_control.cpp index e95cf1981b..a495b05ad6 100644 --- a/eeschema/tools/sch_editor_control.cpp +++ b/eeschema/tools/sch_editor_control.cpp @@ -1815,6 +1815,8 @@ int SCH_EDITOR_CONTROL::Paste( const TOOL_EVENT& aEvent ) // Save loaded screen instances to m_clipboardSheetInstances setClipboardInstances( tempScreen ); + tempScreen->MigrateSimModels(); + PASTE_MODE pasteMode = annotate.automatic ? PASTE_MODE::RESPECT_OPTIONS : PASTE_MODE::REMOVE_ANNOTATIONS;