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

Prevent Pcbnew from opening the same file twice.

parent f914cd0d
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -241,7 +241,14 @@ the changes?" ) ) )
        fileName.SetExt( pi->GetFileExtension() );

    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
    }

    CheckForAutoSaveFile( fileName, fileName.GetExt() );

+18 −12
Original line number Diff line number Diff line
@@ -117,16 +117,6 @@ bool EDA_APP::OnInit()

    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 )
    {
        fn = argv[1];
@@ -140,9 +130,25 @@ Changing extension to .%s." ), GetChars( fn.GetFullPath() ),
            wxMessageBox( msg );
        }

        if( !wxGetApp().LockFile( fn.GetFullPath() ) )
        {
            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;