Make project templates work with KICAD_PTEMPLATES env var.
This commit is contained in:
parent
3e4a79d063
commit
297a54fa3e
|
@ -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/
|
||||
|
||||
*/
|
||||
|
|
Loading…
Reference in New Issue