Commit 87e5b6b8 authored by jean-pierre charras's avatar jean-pierre charras
Browse files

Pcbnew: allows pcbnew to open a .kicad_pcb or a .brd file, from the command line.

parent 4352edda
Loading
Loading
Loading
Loading
+12 −10
Original line number Original line Diff line number Diff line
@@ -105,10 +105,12 @@ bool EDA_APP::OnInit()
{
{
    wxFileName      fn;
    wxFileName      fn;
    PCB_EDIT_FRAME* frame = NULL;
    PCB_EDIT_FRAME* frame = NULL;
    wxString msg;


#ifdef KICAD_SCRIPTING
#ifdef KICAD_SCRIPTING
    if ( !pcbnewInitPythonScripting() )
    if ( !pcbnewInitPythonScripting() )
    {
    {
        wxMessageBox( wxT( "pcbnewInitPythonScripting() fails" ) );
        return false;
        return false;
    }
    }
#endif
#endif
@@ -129,12 +131,13 @@ bool EDA_APP::OnInit()
    {
    {
        fn = argv[1];
        fn = argv[1];


        if( fn.GetExt() != PcbFileExtension )
        if( fn.GetExt() != PcbFileExtension && fn.GetExt() != LegacyPcbFileExtension )
        {
        {
            wxLogDebug( wxT( "Pcbnew file <%s> has the wrong extension.  \
            msg.Printf( _( "Pcbnew file <%s> has a wrong extension.\n\
Changing extension to .%s." ), GetChars( fn.GetFullPath() ),
Changing extension to .%s." ), GetChars( fn.GetFullPath() ),
                               GetChars( PcbFileExtension ) );
                               GetChars( PcbFileExtension ) );
            fn.SetExt( PcbFileExtension );
            fn.SetExt( PcbFileExtension );
            wxMessageBox( msg );
        }
        }


        if( fn.IsOk() && fn.DirExists() )
        if( fn.IsOk() && fn.DirExists() )
@@ -177,7 +180,7 @@ Changing extension to .%s." ), GetChars( fn.GetFullPath() ),
         * However, because legacy board files are named *.brd,
         * However, because legacy board files are named *.brd,
         * and new files are named *.kicad_pcb,
         * and new files are named *.kicad_pcb,
         * for all previous projects ( before 2012, december 14 ),
         * for all previous projects ( before 2012, december 14 ),
         * becuse KiCad manager ask to load a .kicad_pcb file
         * because KiCad manager ask to load a .kicad_pcb file
         * if this file does not exist, it is certainly useful
         * if this file does not exist, it is certainly useful
         * to test if a legacy file is existing,
         * to test if a legacy file is existing,
         * under the same name, and therefore if the user want to load it
         * under the same name, and therefore if the user want to load it
@@ -196,10 +199,9 @@ Changing extension to .%s." ), GetChars( fn.GetFullPath() ),
            fn_legacy.SetExt( LegacyPcbFileExtension );
            fn_legacy.SetExt( LegacyPcbFileExtension );
            if( fn_legacy.FileExists() )
            if( fn_legacy.FileExists() )
            {
            {
                wxString msg;
                msg.Printf( _( "File <%s> does not exist.\n\
                msg.Printf( _( "File <%s> does not exist.\n"
However a legacy file <%s> exists.\nDo you want to load it?\n\
"However a legacy file <%s> exists.\nDo you want to load it?\n"
It will be saved under the new file format" ),
"It will be saved under the new file format" ),
                            GetChars( fn.GetFullPath() ),
                            GetChars( fn.GetFullPath() ),
                            GetChars( fn_legacy.GetFullPath() ) );
                            GetChars( fn_legacy.GetFullPath() ) );
                if( IsOK( frame, msg ) )
                if( IsOK( frame, msg ) )
@@ -217,13 +219,13 @@ Changing extension to .%s." ), GetChars( fn.GetFullPath() ),


        if( ! file_exists )
        if( ! file_exists )
        {   // File does not exists: prepare an empty board
        {   // File does not exists: prepare an empty board
            if( ! fn.GetPath().IsEmpty() )
                wxSetWorkingDirectory( fn.GetPath() );
                wxSetWorkingDirectory( fn.GetPath() );
            frame->GetBoard()->SetFileName( fn.GetFullPath( wxPATH_UNIX ) );
            frame->GetBoard()->SetFileName( fn.GetFullPath( wxPATH_UNIX ) );
            frame->UpdateTitle();
            frame->UpdateTitle();
            frame->UpdateFileHistory( frame->GetBoard()->GetFileName() );
            frame->UpdateFileHistory( frame->GetBoard()->GetFileName() );
            frame->OnModify();          // Ready to save the new empty board
            frame->OnModify();          // Ready to save the new empty board


            wxString msg;
            msg.Printf( _( "File <%s> does not exist.\nThis is normal for a new project" ),
            msg.Printf( _( "File <%s> does not exist.\nThis is normal for a new project" ),
                        GetChars( frame->GetBoard()->GetFileName() ) );
                        GetChars( frame->GetBoard()->GetFileName() ) );
            wxMessageBox( msg );
            wxMessageBox( msg );