Commit 297a54fa authored by Dick Hollenbeck's avatar Dick Hollenbeck
Browse files

Make project templates work with KICAD_PTEMPLATES env var.

parent 3e4a79d0
Loading
Loading
Loading
Loading
+15 −10
Original line number Diff line number Diff line
@@ -191,23 +191,28 @@ void DIALOG_TEMPLATE_SELECTOR::AddPage( const wxString& aTitle, wxFileName& aPat

    // Get a list of files under the template path to include as choices...
    wxArrayString   files;
    wxDir dir, sub;
    wxDir           dir;

    if ( dir.Open( aPath.GetPath() ) )
    wxString path = aPath.GetFullPath();    // caller ensures this ends with file separator.

    if( dir.Open( path ) )
    {
        wxString filename;
        bool cont = dir.GetFirst( &filename, wxEmptyString, wxDIR_FILES | wxDIR_DIRS );
        wxDir       sub_dir;
        wxString    sub_name;

        bool cont = dir.GetFirst( &sub_name, wxEmptyString, wxDIR_DIRS );
        while( cont )
        {
            if( sub.Open( aPath.GetPathWithSep() + filename ) )
            wxString sub_full = path + sub_name;
            if( sub_dir.Open( sub_full ) )
            {
                files.Add( filename );
                PROJECT_TEMPLATE* pt = new PROJECT_TEMPLATE( aPath.GetPathWithSep() + filename );
                files.Add( sub_name );

                PROJECT_TEMPLATE* pt = new PROJECT_TEMPLATE( sub_full );
                AddTemplate( m_notebook->GetPageCount() - 1, pt );
            }

            cont = dir.GetNext( &filename );
            cont = dir.GetNext( &sub_name );
        }
    }
}
+15 −7
Original line number Diff line number Diff line
@@ -78,11 +78,12 @@ void KICAD_MANAGER_FRAME::CreateNewProject( const wxString aPrjFullFileName, boo
        {
            wxString kicadEnv;
            wxGetEnv( wxT( "KICAD"), &kicadEnv );

            templatePath = kicadEnv + SEP() + wxT("template") + SEP();
        }
        else
        {
            wxFileName templatePath = wxPathOnly(wxStandardPaths::Get().GetExecutablePath()) +
            templatePath = wxPathOnly(wxStandardPaths::Get().GetExecutablePath()) +
                SEP() + wxT( ".." ) + SEP() + wxT( "share" ) + SEP() + wxT( "template" ) + SEP();
        }

@@ -98,11 +99,16 @@ void KICAD_MANAGER_FRAME::CreateNewProject( const wxString aPrjFullFileName, boo
        // if there is
        wxString envStr;
        wxGetEnv( wxT( "KICAD_PTEMPLATES" ), &envStr );
        wxFileName envPath = envStr;

        if( envStr != wxEmptyString )
        if( envStr )
        {
            wxChar sep = SEP();

            if( !envStr.EndsWith( &sep ) )
                envStr += sep;

            wxFileName envPath = envStr;

            ps->AddPage( _( "Portable Templates" ), envPath );
        }

@@ -256,6 +262,7 @@ void KICAD_MANAGER_FRAME::OnLoadProject( wxCommandEvent& event )
    SetTitle( title );
    UpdateFileHistory( m_ProjectFileName.GetFullPath() );
    m_LeftWin->ReCreateTreePrj();

#ifdef KICAD_USE_FILES_WATCHER
    // Rebuild the list of watched paths.
    // however this is possible only when the main loop event handler is running,
@@ -263,6 +270,7 @@ void KICAD_MANAGER_FRAME::OnLoadProject( wxCommandEvent& event )
    wxCommandEvent cmd( wxEVT_COMMAND_MENU_SELECTED, ID_INIT_WATCHED_PATHS );
    wxPostEvent( this, cmd);
#endif

    wxString msg;
    msg.Format( _( "Working dir: <%s>\nProject: <%s>\n" ),
                GetChars( m_ProjectFileName.GetPath() ),
+1 −1
Original line number Diff line number Diff line
@@ -96,7 +96,7 @@

    wxStandardPaths::GetExecutableDir()/../share/template/
    wxStandardPaths::GetUserDataDir()/templates/
    wxGetEnv(wxT("KICAD_TEMPLATES"))
    wxGetEnv(wxT("KICAD_PTEMPLATES"))
    wxGetEnv(wxT("KICAD"))/template/

*/