ProcessExecute instead of wxExecute
This commit is contained in:
parent
080746ace7
commit
ba92f94fde
|
@ -12,7 +12,7 @@
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "macros.h"
|
#include "macros.h"
|
||||||
#include "build_version.h"
|
#include "build_version.h"
|
||||||
|
#include <wx/process.h>
|
||||||
|
|
||||||
/*****************************/
|
/*****************************/
|
||||||
wxString GetBuildVersion()
|
wxString GetBuildVersion()
|
||||||
|
@ -30,7 +30,9 @@ Ki_PageDescr::Ki_PageDescr( const wxSize& size, const wxPoint& offset, const wxS
|
||||||
/*********************************************************************************************/
|
/*********************************************************************************************/
|
||||||
{
|
{
|
||||||
// All sizes are in 1/1000 inch
|
// All sizes are in 1/1000 inch
|
||||||
m_Size = size; m_Offset = offset, m_Name = name;
|
m_Size = size;
|
||||||
|
m_Offset = offset;
|
||||||
|
m_Name = name;
|
||||||
|
|
||||||
// Adjust the default value for margins to 400 mils (0,4 inch or 10 mm)
|
// Adjust the default value for margins to 400 mils (0,4 inch or 10 mm)
|
||||||
m_LeftMargin = m_RightMargin = m_TopMargin = m_BottomMargin = 400;
|
m_LeftMargin = m_RightMargin = m_TopMargin = m_BottomMargin = 400;
|
||||||
|
@ -205,6 +207,7 @@ wxString GenDate()
|
||||||
wxT( "jan" ), wxT( "feb" ), wxT( "mar" ), wxT( "apr" ), wxT( "may" ), wxT( "jun" ),
|
wxT( "jan" ), wxT( "feb" ), wxT( "mar" ), wxT( "apr" ), wxT( "may" ), wxT( "jun" ),
|
||||||
wxT( "jul" ), wxT( "aug" ), wxT( "sep" ), wxT( "oct" ), wxT( "nov" ), wxT( "dec" )
|
wxT( "jul" ), wxT( "aug" ), wxT( "sep" ), wxT( "oct" ), wxT( "nov" ), wxT( "dec" )
|
||||||
};
|
};
|
||||||
|
|
||||||
time_t buftime;
|
time_t buftime;
|
||||||
struct tm* Date;
|
struct tm* Date;
|
||||||
wxString string_date;
|
wxString string_date;
|
||||||
|
@ -241,6 +244,14 @@ void* MyMalloc( size_t nb_octets )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool ProcessExecute( const wxString& aCommandLine, int aFlags )
|
||||||
|
{
|
||||||
|
wxProcess* process = wxProcess::Open( aCommandLine, aFlags );
|
||||||
|
|
||||||
|
return process != NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/************************************/
|
/************************************/
|
||||||
void* MyZMalloc( size_t nb_octets )
|
void* MyZMalloc( size_t nb_octets )
|
||||||
/************************************/
|
/************************************/
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
/*****************************************/
|
/*****************************************/
|
||||||
void WinEDA_App::ReadPdfBrowserInfos()
|
void WinEDA_App::ReadPdfBrowserInfos()
|
||||||
/*****************************************/
|
/*****************************************/
|
||||||
|
|
||||||
/* Read from Common config the Pdf browser choice
|
/* Read from Common config the Pdf browser choice
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
|
@ -32,17 +33,22 @@ void WinEDA_App::ReadPdfBrowserInfos()
|
||||||
m_PdfBrowserIsDefault = m_EDA_CommonConfig->Read( wxT( "PdfBrowserIsDefault" ), TRUE );
|
m_PdfBrowserIsDefault = m_EDA_CommonConfig->Read( wxT( "PdfBrowserIsDefault" ), TRUE );
|
||||||
m_PdfBrowser = m_EDA_CommonConfig->Read( wxT( "PdfBrowserName" ), wxEmptyString );
|
m_PdfBrowser = m_EDA_CommonConfig->Read( wxT( "PdfBrowserName" ), wxEmptyString );
|
||||||
}
|
}
|
||||||
if ( m_PdfBrowser.IsEmpty() ) m_PdfBrowserIsDefault = TRUE;
|
if( m_PdfBrowser.IsEmpty() )
|
||||||
|
m_PdfBrowserIsDefault = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*****************************************/
|
/*****************************************/
|
||||||
void WinEDA_App::WritePdfBrowserInfos()
|
void WinEDA_App::WritePdfBrowserInfos()
|
||||||
/*****************************************/
|
/*****************************************/
|
||||||
|
|
||||||
/* Write into Common config the Pdf browser choice
|
/* Write into Common config the Pdf browser choice
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
if ( ! m_EDA_CommonConfig ) return;
|
if( !m_EDA_CommonConfig )
|
||||||
if ( m_PdfBrowser.IsEmpty() ) m_PdfBrowserIsDefault = TRUE;
|
return;
|
||||||
|
if( m_PdfBrowser.IsEmpty() )
|
||||||
|
m_PdfBrowserIsDefault = TRUE;
|
||||||
m_EDA_CommonConfig->Write( wxT( "PdfBrowserIsDefault" ), m_PdfBrowserIsDefault );
|
m_EDA_CommonConfig->Write( wxT( "PdfBrowserIsDefault" ), m_PdfBrowserIsDefault );
|
||||||
m_EDA_CommonConfig->Write( wxT( "PdfBrowserName" ), m_PdfBrowser );
|
m_EDA_CommonConfig->Write( wxT( "PdfBrowserName" ), m_PdfBrowser );
|
||||||
}
|
}
|
||||||
|
@ -69,6 +75,7 @@ static const wxFileTypeInfo EDAfallbacks[] =
|
||||||
wxT( "eeschema -p %s" ),
|
wxT( "eeschema -p %s" ),
|
||||||
wxT( "sch document (from Kicad)" ),
|
wxT( "sch document (from Kicad)" ),
|
||||||
wxT( "sch" ), wxT( "SCH" ), NULL ),
|
wxT( "sch" ), wxT( "SCH" ), NULL ),
|
||||||
|
|
||||||
// must terminate the table with this!
|
// must terminate the table with this!
|
||||||
wxFileTypeInfo()
|
wxFileTypeInfo()
|
||||||
};
|
};
|
||||||
|
@ -78,13 +85,14 @@ static const wxFileTypeInfo EDAfallbacks[] =
|
||||||
bool GetAssociatedDocument( wxFrame* frame, const wxString& LibPath,
|
bool GetAssociatedDocument( wxFrame* frame, const wxString& LibPath,
|
||||||
const wxString& DocName )
|
const wxString& DocName )
|
||||||
/*********************************************************************/
|
/*********************************************************************/
|
||||||
/* Launch the viewer for the doc file DocName (mime type)
|
|
||||||
LibPath is the doc file search path:
|
|
||||||
(kicad/library)
|
|
||||||
DocName is the short filename with ext. Wildcarts are allowed
|
|
||||||
Seach file is made in LibPath/doc/DocName
|
|
||||||
|
|
||||||
if DocName is starting by http: or ftp: or www. the default internet browser is launched
|
/* Launch the viewer for the doc file DocName (mime type)
|
||||||
|
* LibPath is the doc file search path:
|
||||||
|
* (kicad/library)
|
||||||
|
* DocName is the short filename with ext. Wildcarts are allowed
|
||||||
|
* Seach file is made in LibPath/doc/DocName
|
||||||
|
*
|
||||||
|
* if DocName is starting by http: or ftp: or www. the default internet browser is launched
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
wxString docpath, fullfilename;
|
wxString docpath, fullfilename;
|
||||||
|
@ -93,7 +101,8 @@ wxString command;
|
||||||
bool success = FALSE;
|
bool success = FALSE;
|
||||||
|
|
||||||
// Is an internet url
|
// Is an internet url
|
||||||
wxString url_header[3] = {wxT("http:"), wxT("ftp:"),wxT("www.") };
|
static const wxString url_header[3] = { wxT( "http:" ), wxT( "ftp:" ), wxT( "www." ) };
|
||||||
|
|
||||||
for( int ii = 0; ii < 3; ii++ )
|
for( int ii = 0; ii < 3; ii++ )
|
||||||
{
|
{
|
||||||
if( DocName.First( url_header[ii] ) == 0 ) //. seems an internet url
|
if( DocName.First( url_header[ii] ) == 0 ) //. seems an internet url
|
||||||
|
@ -104,7 +113,8 @@ bool success = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Compute the full file name */
|
/* Compute the full file name */
|
||||||
if ( wxIsAbsolutePath(DocName) ) fullfilename = DocName;
|
if( wxIsAbsolutePath( DocName ) )
|
||||||
|
fullfilename = DocName;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
docpath = LibPath + wxT( "doc/" );
|
docpath = LibPath + wxT( "doc/" );
|
||||||
|
@ -118,6 +128,7 @@ bool success = FALSE;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
wxString mask( wxT( "*" ) ), extension;
|
wxString mask( wxT( "*" ) ), extension;
|
||||||
|
|
||||||
#ifdef __WINDOWS__
|
#ifdef __WINDOWS__
|
||||||
mask += wxT( ".*" );
|
mask += wxT( ".*" );
|
||||||
extension = wxT( ".*" );
|
extension = wxT( ".*" );
|
||||||
|
@ -136,7 +147,8 @@ bool success = FALSE;
|
||||||
TRUE, /* true = ne change pas le repertoire courant */
|
TRUE, /* true = ne change pas le repertoire courant */
|
||||||
wxPoint( -1, -1 )
|
wxPoint( -1, -1 )
|
||||||
);
|
);
|
||||||
if ( fullfilename.IsEmpty() ) return FALSE;
|
if( fullfilename.IsEmpty() )
|
||||||
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( !wxFileExists( fullfilename ) )
|
if( !wxFileExists( fullfilename ) )
|
||||||
|
@ -152,6 +164,7 @@ bool success = FALSE;
|
||||||
{
|
{
|
||||||
wxFileType* filetype;
|
wxFileType* filetype;
|
||||||
wxFileName CurrentFileName( fullfilename );
|
wxFileName CurrentFileName( fullfilename );
|
||||||
|
|
||||||
wxString ext, type;
|
wxString ext, type;
|
||||||
ext = CurrentFileName.GetExt();
|
ext = CurrentFileName.GetExt();
|
||||||
filetype = wxTheMimeTypesManager->GetFileTypeFromExtension( ext );
|
filetype = wxTheMimeTypesManager->GetFileTypeFromExtension( ext );
|
||||||
|
@ -168,9 +181,11 @@ bool success = FALSE;
|
||||||
if( filetype )
|
if( filetype )
|
||||||
{
|
{
|
||||||
wxFileType::MessageParameters params( fullfilename, type );
|
wxFileType::MessageParameters params( fullfilename, type );
|
||||||
|
|
||||||
success = filetype->GetOpenCommand( &command, params );
|
success = filetype->GetOpenCommand( &command, params );
|
||||||
delete filetype;
|
delete filetype;
|
||||||
if ( success ) wxExecute(command);
|
if( success )
|
||||||
|
ProcessExecute( command );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( !success )
|
if( !success )
|
||||||
|
@ -179,7 +194,7 @@ bool success = FALSE;
|
||||||
if( ext == wxT( "pdf" ) )
|
if( ext == wxT( "pdf" ) )
|
||||||
{
|
{
|
||||||
success = TRUE; command.Empty();
|
success = TRUE; command.Empty();
|
||||||
if ( wxFileExists( wxT("/usr/bin/xpdf")) )
|
if( wxFileExists( wxT( "/usr/bin/kpdf" ) ) )
|
||||||
command = wxT( "xpdf " ) + fullfilename;
|
command = wxT( "xpdf " ) + fullfilename;
|
||||||
else if( wxFileExists( wxT( "/usr/bin/konqueror" ) ) )
|
else if( wxFileExists( wxT( "/usr/bin/konqueror" ) ) )
|
||||||
command = wxT( "konqueror " ) + fullfilename;
|
command = wxT( "konqueror " ) + fullfilename;
|
||||||
|
@ -188,10 +203,11 @@ bool success = FALSE;
|
||||||
if( command.IsEmpty() ) // not started
|
if( command.IsEmpty() ) // not started
|
||||||
{
|
{
|
||||||
DisplayError( frame,
|
DisplayError( frame,
|
||||||
_(" Cannot find the PDF viewer (xpdf, gpdf or konqueror) in /usr/bin/") );
|
_( " Cannot find the PDF viewer (kpdf, gpdf or konqueror) in /usr/bin/" ) );
|
||||||
success = FALSE;
|
success = FALSE;
|
||||||
}
|
}
|
||||||
else wxExecute(command);
|
else
|
||||||
|
ProcessExecute( command );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
|
@ -202,7 +218,6 @@ bool success = FALSE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
command = g_EDA_Appl->m_PdfBrowser;
|
command = g_EDA_Appl->m_PdfBrowser;
|
||||||
|
@ -211,9 +226,8 @@ bool success = FALSE;
|
||||||
success = TRUE;
|
success = TRUE;
|
||||||
AddDelimiterString( fullfilename );
|
AddDelimiterString( fullfilename );
|
||||||
command += wxT( " " ) + fullfilename;
|
command += wxT( " " ) + fullfilename;
|
||||||
wxExecute(command);
|
ProcessExecute( command );
|
||||||
}
|
}
|
||||||
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Line.Printf( _( "Cannot find Pdf viewer %s" ), command.GetData() );
|
Line.Printf( _( "Cannot find Pdf viewer %s" ), command.GetData() );
|
||||||
|
@ -224,39 +238,44 @@ bool success = FALSE;
|
||||||
return success;
|
return success;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/******************************************************************/
|
/******************************************************************/
|
||||||
int KeyWordOk( const wxString& KeyList, const wxString& Database )
|
int KeyWordOk( const wxString& KeyList, const wxString& Database )
|
||||||
/******************************************************************/
|
/******************************************************************/
|
||||||
|
|
||||||
/* Recherche si dans le texte Database on retrouve tous les mots
|
/* Recherche si dans le texte Database on retrouve tous les mots
|
||||||
cles donnes dans KeyList ( KeyList = suite de mots cles
|
* cles donnes dans KeyList ( KeyList = suite de mots cles
|
||||||
separes par des espaces
|
* separes par des espaces
|
||||||
Retourne:
|
* Retourne:
|
||||||
0 si aucun mot cle trouvé
|
* 0 si aucun mot cle trouvé
|
||||||
1 si mot cle trouvé
|
* 1 si mot cle trouvé
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
wxString KeysCopy, DataList;
|
wxString KeysCopy, DataList;
|
||||||
|
|
||||||
if( KeyList.IsEmpty() ) return(0);
|
if( KeyList.IsEmpty() )
|
||||||
|
return 0;
|
||||||
|
|
||||||
KeysCopy = KeyList; KeysCopy.MakeUpper();
|
KeysCopy = KeyList; KeysCopy.MakeUpper();
|
||||||
DataList = Database; DataList.MakeUpper();
|
DataList = Database; DataList.MakeUpper();
|
||||||
|
|
||||||
wxStringTokenizer Token( KeysCopy, wxT( " \n\r" ) );
|
wxStringTokenizer Token( KeysCopy, wxT( " \n\r" ) );
|
||||||
|
|
||||||
while( Token.HasMoreTokens() )
|
while( Token.HasMoreTokens() )
|
||||||
{
|
{
|
||||||
wxString Key = Token.GetNextToken();
|
wxString Key = Token.GetNextToken();
|
||||||
|
|
||||||
// Search Key in Datalist:
|
// Search Key in Datalist:
|
||||||
wxStringTokenizer Data( DataList, wxT( " \n\r" ) );
|
wxStringTokenizer Data( DataList, wxT( " \n\r" ) );
|
||||||
|
|
||||||
while( Data.HasMoreTokens() )
|
while( Data.HasMoreTokens() )
|
||||||
{
|
{
|
||||||
wxString word = Data.GetNextToken();
|
wxString word = Data.GetNextToken();
|
||||||
if ( word == Key ) return 1; // Key found !
|
if( word == Key )
|
||||||
|
return 1; // Key found !
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// keyword not found
|
// keyword not found
|
||||||
return(0);
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -533,7 +533,7 @@ int ExecuteFile( wxWindow* frame, const wxString& ExecFile, const wxString& para
|
||||||
{
|
{
|
||||||
if( !param.IsEmpty() )
|
if( !param.IsEmpty() )
|
||||||
FullFileName += wxT( " " ) + param;
|
FullFileName += wxT( " " ) + param;
|
||||||
wxExecute( FullFileName );
|
ProcessExecute( FullFileName );
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -748,7 +748,7 @@ void OpenPDF( const wxString& file )
|
||||||
}
|
}
|
||||||
|
|
||||||
if( !command.IsEmpty() )
|
if( !command.IsEmpty() )
|
||||||
wxExecute( command );
|
ProcessExecute( command );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -771,5 +771,5 @@ void OpenFile( const wxString& file )
|
||||||
delete filetype;
|
delete filetype;
|
||||||
|
|
||||||
if( success && !command.IsEmpty() )
|
if( success && !command.IsEmpty() )
|
||||||
wxExecute( command );
|
ProcessExecute( command );
|
||||||
}
|
}
|
||||||
|
|
|
@ -342,7 +342,7 @@ void Write_GENERIC_NetList( WinEDA_SchematicFrame* frame,
|
||||||
CommandFile += wxT( " " ) + TmpFullFileName;
|
CommandFile += wxT( " " ) + TmpFullFileName;
|
||||||
CommandFile += wxT( " " ) + FullFileName;
|
CommandFile += wxT( " " ) + FullFileName;
|
||||||
|
|
||||||
wxExecute( CommandFile, wxEXEC_SYNC );
|
ProcessExecute( CommandFile, wxEXEC_SYNC );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -354,6 +354,18 @@ class WinEDA_DrawPanel;
|
||||||
|
|
||||||
|
|
||||||
/* COMMON.CPP */
|
/* COMMON.CPP */
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function ProcessExecute
|
||||||
|
* runs a child process.
|
||||||
|
* @param aCommandLine The process and any arguments to it all in a single string.
|
||||||
|
* @param aFlags The same args as allowed for wxExecute()
|
||||||
|
* @return bool - true if success, else false
|
||||||
|
*/
|
||||||
|
bool ProcessExecute( const wxString& aCommandLine, int aFlags = wxEXEC_ASYNC );
|
||||||
|
|
||||||
|
|
||||||
wxString ReturnPcbLayerName( int layer_number, bool is_filename = FALSE );
|
wxString ReturnPcbLayerName( int layer_number, bool is_filename = FALSE );
|
||||||
|
|
||||||
/* Return the name of the layer number "layer_number".
|
/* Return the name of the layer number "layer_number".
|
||||||
|
|
|
@ -305,7 +305,7 @@ void dialog_freeroute_exchange::OnButton5Click( wxCommandEvent& event )
|
||||||
if( wxFileExists( FullFileName ) )
|
if( wxFileExists( FullFileName ) )
|
||||||
{
|
{
|
||||||
command << wxT("javaws") << wxT( " " ) + FullFileName;
|
command << wxT("javaws") << wxT( " " ) + FullFileName;
|
||||||
wxExecute( command );
|
ProcessExecute( command );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -134,7 +134,7 @@ void WinEDA_PcbFrame::GlobalRoute( wxDC* DC )
|
||||||
|
|
||||||
Affiche_Message( ExecFileName );
|
Affiche_Message( ExecFileName );
|
||||||
|
|
||||||
wxExecute( ExecFileName );
|
ProcessExecute( ExecFileName );
|
||||||
|
|
||||||
#else
|
#else
|
||||||
wxMessageBox( wxT( "TODO, currently not available" ) );
|
wxMessageBox( wxT( "TODO, currently not available" ) );
|
||||||
|
|
Loading…
Reference in New Issue