Commit 3821472a authored by Jacobo Aragunde Perez's avatar Jacobo Aragunde Perez Committed by jean-pierre charras

Prevent Pcbnew from opening the same file twice.

parent f914cd0d
...@@ -241,7 +241,14 @@ the changes?" ) ) ) ...@@ -241,7 +241,14 @@ the changes?" ) ) )
fileName.SetExt( pi->GetFileExtension() ); fileName.SetExt( pi->GetFileExtension() );
if( !aAppend ) if( !aAppend )
{
if( !wxGetApp().LockFile( fileName.GetFullPath() ) )
{
DisplayError( this, _( "This file is already open." ) );
return false;
}
Clear_Pcb( false ); // pass false since we prompted above for a modified board Clear_Pcb( false ); // pass false since we prompted above for a modified board
}
CheckForAutoSaveFile( fileName, fileName.GetExt() ); CheckForAutoSaveFile( fileName, fileName.GetExt() );
......
...@@ -117,16 +117,6 @@ bool EDA_APP::OnInit() ...@@ -117,16 +117,6 @@ bool EDA_APP::OnInit()
InitEDA_Appl( wxT( "Pcbnew" ), APP_PCBNEW_T ); InitEDA_Appl( wxT( "Pcbnew" ), APP_PCBNEW_T );
if( m_Checker && m_Checker->IsAnotherRunning() )
{
if( !IsOK( NULL, _( "Pcbnew is already running, Continue?" ) ) )
return false;
}
// read current setup and reopen last directory if no filename to open in command line
bool reopenLastUsedDirectory = argc == 1;
GetSettings( reopenLastUsedDirectory );
if( argc > 1 ) if( argc > 1 )
{ {
fn = argv[1]; fn = argv[1];
...@@ -140,10 +130,26 @@ Changing extension to .%s." ), GetChars( fn.GetFullPath() ), ...@@ -140,10 +130,26 @@ Changing extension to .%s." ), GetChars( fn.GetFullPath() ),
wxMessageBox( msg ); wxMessageBox( msg );
} }
if( fn.IsOk() && fn.DirExists() ) if( !wxGetApp().LockFile( fn.GetFullPath() ) )
wxSetWorkingDirectory( fn.GetPath() ); {
DisplayError( NULL, _( "This file is already open." ) );
return false;
}
}
if( m_Checker && m_Checker->IsAnotherRunning() )
{
if( !IsOK( NULL, _( "Pcbnew is already running, Continue?" ) ) )
return false;
} }
// read current setup and reopen last directory if no filename to open in command line
bool reopenLastUsedDirectory = argc == 1;
GetSettings( reopenLastUsedDirectory );
if( fn.IsOk() && fn.DirExists() )
wxSetWorkingDirectory( fn.GetPath() );
g_DrawBgColor = BLACK; g_DrawBgColor = BLACK;
/* Must be called before creating the main frame in order to /* Must be called before creating the main frame in order to
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment