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

Make project templates work with KICAD_PTEMPLATES env var.

parent 3e4a79d0
......@@ -114,7 +114,7 @@ void TEMPLATE_WIDGET::OnMouse( wxMouseEvent& event )
void DIALOG_TEMPLATE_SELECTOR::onNotebookResize(wxSizeEvent& event)
{
for ( size_t i=0; i < m_notebook->GetPageCount(); i++ )
for( size_t i=0; i < m_notebook->GetPageCount(); i++ )
{
m_panels[i]->SetSize( m_notebook->GetSize().GetWidth() - 6, 140 );
m_panels[i]->m_SizerBase->FitInside( m_panels[i] );
......@@ -190,24 +190,29 @@ void DIALOG_TEMPLATE_SELECTOR::AddPage( const wxString& aTitle, wxFileName& aPat
m_panels.push_back( p );
// Get a list of files under the template path to include as choices...
wxArrayString files;
wxDir dir, sub;
wxArrayString files;
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 );
}
}
}
......@@ -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();
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();
}
......@@ -97,13 +98,18 @@ void KICAD_MANAGER_FRAME::CreateNewProject( const wxString aPrjFullFileName, boo
// Check to see if a custom template location is available and setup a new selection tab
// if there is
wxString envStr;
wxGetEnv( wxT("KICAD_PTEMPLATES"), &envStr );
wxFileName envPath = envStr;
wxGetEnv( wxT( "KICAD_PTEMPLATES" ), &envStr );
if( envStr != wxEmptyString )
if( envStr )
{
wxChar sep = SEP();
if( !envStr.EndsWith( &sep ) )
envStr += sep;
wxFileName envPath = envStr;
ps->AddPage( _("Portable Templates"), envPath );
ps->AddPage( _( "Portable Templates" ), envPath );
}
// Show the project template selector dialog
......@@ -236,7 +242,7 @@ void KICAD_MANAGER_FRAME::OnLoadProject( wxCommandEvent& event )
if( !m_ProjectFileName.FileExists() && !filename.IsSameAs( nameless_prj ) )
{
wxString msg;
msg.Printf( _( "KiCad project file <%s> not found" ),
msg.Printf( _( "KiCad project file <%s> not found" ),
GetChars( m_ProjectFileName.GetFullPath() ) );
DisplayError( this, msg );
......@@ -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() ),
......
......@@ -96,7 +96,7 @@
wxStandardPaths::GetExecutableDir()/../share/template/
wxStandardPaths::GetUserDataDir()/templates/
wxGetEnv(wxT("KICAD_TEMPLATES"))
wxGetEnv(wxT("KICAD_PTEMPLATES"))
wxGetEnv(wxT("KICAD"))/template/
*/
......
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