diff --git a/pcbnew/files.cpp b/pcbnew/files.cpp index 939fe4830d..d151b9534c 100644 --- a/pcbnew/files.cpp +++ b/pcbnew/files.cpp @@ -408,8 +408,6 @@ bool PCB_EDIT_FRAME::OpenProjectFiles( const std::vector& aFileSet, in return false; } - m_file_checker.reset( lockFile.release() ); - if( GetScreen()->IsModify() && !GetBoard()->IsEmpty() ) { if( !HandleUnsavedChanges( this, _( "The current PCB has been modified. Save changes?" ), @@ -419,6 +417,9 @@ bool PCB_EDIT_FRAME::OpenProjectFiles( const std::vector& aFileSet, in } } + // Release the lock file, until the new file is actually loaded + m_file_checker.reset( nullptr ); + wxFileName pro = fullFileName; pro.SetExt( ProjectFileExtension ); @@ -503,6 +504,7 @@ bool PCB_EDIT_FRAME::OpenProjectFiles( const std::vector& aFileSet, in return false; } + // 6.0 TODO: some settings didn't make it into the board file in 5.1 so as not to // change the file format. For 5.1 we must copy them across from the config-initialized // board. @@ -552,6 +554,9 @@ bool PCB_EDIT_FRAME::OpenProjectFiles( const std::vector& aFileSet, in GetBoard()->SetFileName( fname ); } + // Lock the file newly opened: + m_file_checker.reset( lockFile.release() ); + if( !converted ) UpdateFileHistory( GetBoard()->GetFileName() );