ProcessExecute instead of wxExecute
This commit is contained in:
parent
080746ace7
commit
ba92f94fde
|
@ -12,7 +12,7 @@
|
|||
#include "common.h"
|
||||
#include "macros.h"
|
||||
#include "build_version.h"
|
||||
|
||||
#include <wx/process.h>
|
||||
|
||||
/*****************************/
|
||||
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
|
||||
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)
|
||||
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( "jul" ), wxT( "aug" ), wxT( "sep" ), wxT( "oct" ), wxT( "nov" ), wxT( "dec" )
|
||||
};
|
||||
|
||||
time_t buftime;
|
||||
struct tm* 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 )
|
||||
/************************************/
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
/*****************************************/
|
||||
void WinEDA_App::ReadPdfBrowserInfos()
|
||||
/*****************************************/
|
||||
|
||||
/* 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_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()
|
||||
/*****************************************/
|
||||
|
||||
/* Write into Common config the Pdf browser choice
|
||||
*/
|
||||
{
|
||||
if ( ! m_EDA_CommonConfig ) return;
|
||||
if ( m_PdfBrowser.IsEmpty() ) m_PdfBrowserIsDefault = TRUE;
|
||||
if( !m_EDA_CommonConfig )
|
||||
return;
|
||||
if( m_PdfBrowser.IsEmpty() )
|
||||
m_PdfBrowserIsDefault = TRUE;
|
||||
m_EDA_CommonConfig->Write( wxT( "PdfBrowserIsDefault" ), m_PdfBrowserIsDefault );
|
||||
m_EDA_CommonConfig->Write( wxT( "PdfBrowserName" ), m_PdfBrowser );
|
||||
}
|
||||
|
@ -69,6 +75,7 @@ static const wxFileTypeInfo EDAfallbacks[] =
|
|||
wxT( "eeschema -p %s" ),
|
||||
wxT( "sch document (from Kicad)" ),
|
||||
wxT( "sch" ), wxT( "SCH" ), NULL ),
|
||||
|
||||
// must terminate the table with this!
|
||||
wxFileTypeInfo()
|
||||
};
|
||||
|
@ -78,13 +85,14 @@ static const wxFileTypeInfo EDAfallbacks[] =
|
|||
bool GetAssociatedDocument( wxFrame* frame, const wxString& LibPath,
|
||||
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;
|
||||
|
@ -93,7 +101,8 @@ wxString command;
|
|||
bool success = FALSE;
|
||||
|
||||
// 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++ )
|
||||
{
|
||||
if( DocName.First( url_header[ii] ) == 0 ) //. seems an internet url
|
||||
|
@ -104,7 +113,8 @@ bool success = FALSE;
|
|||
}
|
||||
|
||||
/* Compute the full file name */
|
||||
if ( wxIsAbsolutePath(DocName) ) fullfilename = DocName;
|
||||
if( wxIsAbsolutePath( DocName ) )
|
||||
fullfilename = DocName;
|
||||
else
|
||||
{
|
||||
docpath = LibPath + wxT( "doc/" );
|
||||
|
@ -118,6 +128,7 @@ bool success = FALSE;
|
|||
#endif
|
||||
|
||||
wxString mask( wxT( "*" ) ), extension;
|
||||
|
||||
#ifdef __WINDOWS__
|
||||
mask += wxT( ".*" );
|
||||
extension = wxT( ".*" );
|
||||
|
@ -136,7 +147,8 @@ bool success = FALSE;
|
|||
TRUE, /* true = ne change pas le repertoire courant */
|
||||
wxPoint( -1, -1 )
|
||||
);
|
||||
if ( fullfilename.IsEmpty() ) return FALSE;
|
||||
if( fullfilename.IsEmpty() )
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if( !wxFileExists( fullfilename ) )
|
||||
|
@ -152,6 +164,7 @@ bool success = FALSE;
|
|||
{
|
||||
wxFileType* filetype;
|
||||
wxFileName CurrentFileName( fullfilename );
|
||||
|
||||
wxString ext, type;
|
||||
ext = CurrentFileName.GetExt();
|
||||
filetype = wxTheMimeTypesManager->GetFileTypeFromExtension( ext );
|
||||
|
@ -168,9 +181,11 @@ bool success = FALSE;
|
|||
if( filetype )
|
||||
{
|
||||
wxFileType::MessageParameters params( fullfilename, type );
|
||||
|
||||
success = filetype->GetOpenCommand( &command, params );
|
||||
delete filetype;
|
||||
if ( success ) wxExecute(command);
|
||||
if( success )
|
||||
ProcessExecute( command );
|
||||
}
|
||||
|
||||
if( !success )
|
||||
|
@ -179,7 +194,7 @@ bool success = FALSE;
|
|||
if( ext == wxT( "pdf" ) )
|
||||
{
|
||||
success = TRUE; command.Empty();
|
||||
if ( wxFileExists( wxT("/usr/bin/xpdf")) )
|
||||
if( wxFileExists( wxT( "/usr/bin/kpdf" ) ) )
|
||||
command = wxT( "xpdf " ) + fullfilename;
|
||||
else if( wxFileExists( wxT( "/usr/bin/konqueror" ) ) )
|
||||
command = wxT( "konqueror " ) + fullfilename;
|
||||
|
@ -188,10 +203,11 @@ bool success = FALSE;
|
|||
if( command.IsEmpty() ) // not started
|
||||
{
|
||||
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;
|
||||
}
|
||||
else wxExecute(command);
|
||||
else
|
||||
ProcessExecute( command );
|
||||
}
|
||||
else
|
||||
#endif
|
||||
|
@ -202,7 +218,6 @@ bool success = FALSE;
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
command = g_EDA_Appl->m_PdfBrowser;
|
||||
|
@ -211,9 +226,8 @@ bool success = FALSE;
|
|||
success = TRUE;
|
||||
AddDelimiterString( fullfilename );
|
||||
command += wxT( " " ) + fullfilename;
|
||||
wxExecute(command);
|
||||
ProcessExecute( command );
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
Line.Printf( _( "Cannot find Pdf viewer %s" ), command.GetData() );
|
||||
|
@ -224,39 +238,44 @@ bool success = FALSE;
|
|||
return success;
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************/
|
||||
int KeyWordOk( const wxString& KeyList, const wxString& Database )
|
||||
/******************************************************************/
|
||||
|
||||
/* Recherche si dans le texte Database on retrouve tous les mots
|
||||
cles donnes dans KeyList ( KeyList = suite de mots cles
|
||||
separes par des espaces
|
||||
Retourne:
|
||||
0 si aucun mot cle trouvé
|
||||
1 si mot cle trouvé
|
||||
* cles donnes dans KeyList ( KeyList = suite de mots cles
|
||||
* separes par des espaces
|
||||
* Retourne:
|
||||
* 0 si aucun mot cle trouvé
|
||||
* 1 si mot cle trouvé
|
||||
*/
|
||||
{
|
||||
wxString KeysCopy, DataList;
|
||||
|
||||
if( KeyList.IsEmpty() ) return(0);
|
||||
if( KeyList.IsEmpty() )
|
||||
return 0;
|
||||
|
||||
KeysCopy = KeyList; KeysCopy.MakeUpper();
|
||||
DataList = Database; DataList.MakeUpper();
|
||||
|
||||
wxStringTokenizer Token( KeysCopy, wxT( " \n\r" ) );
|
||||
|
||||
while( Token.HasMoreTokens() )
|
||||
{
|
||||
wxString Key = Token.GetNextToken();
|
||||
|
||||
// Search Key in Datalist:
|
||||
wxStringTokenizer Data( DataList, wxT( " \n\r" ) );
|
||||
|
||||
while( Data.HasMoreTokens() )
|
||||
{
|
||||
wxString word = Data.GetNextToken();
|
||||
if ( word == Key ) return 1; // Key found !
|
||||
if( word == Key )
|
||||
return 1; // Key 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() )
|
||||
FullFileName += wxT( " " ) + param;
|
||||
wxExecute( FullFileName );
|
||||
ProcessExecute( FullFileName );
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -748,7 +748,7 @@ void OpenPDF( const wxString& file )
|
|||
}
|
||||
|
||||
if( !command.IsEmpty() )
|
||||
wxExecute( command );
|
||||
ProcessExecute( command );
|
||||
}
|
||||
|
||||
|
||||
|
@ -771,5 +771,5 @@ void OpenFile( const wxString& file )
|
|||
delete filetype;
|
||||
|
||||
if( success && !command.IsEmpty() )
|
||||
wxExecute( command );
|
||||
ProcessExecute( command );
|
||||
}
|
||||
|
|
|
@ -342,7 +342,7 @@ void Write_GENERIC_NetList( WinEDA_SchematicFrame* frame,
|
|||
CommandFile += wxT( " " ) + TmpFullFileName;
|
||||
CommandFile += wxT( " " ) + FullFileName;
|
||||
|
||||
wxExecute( CommandFile, wxEXEC_SYNC );
|
||||
ProcessExecute( CommandFile, wxEXEC_SYNC );
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -354,6 +354,18 @@ class WinEDA_DrawPanel;
|
|||
|
||||
|
||||
/* 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 );
|
||||
|
||||
/* Return the name of the layer number "layer_number".
|
||||
|
|
|
@ -305,7 +305,7 @@ void dialog_freeroute_exchange::OnButton5Click( wxCommandEvent& event )
|
|||
if( wxFileExists( FullFileName ) )
|
||||
{
|
||||
command << wxT("javaws") << wxT( " " ) + FullFileName;
|
||||
wxExecute( command );
|
||||
ProcessExecute( command );
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -134,7 +134,7 @@ void WinEDA_PcbFrame::GlobalRoute( wxDC* DC )
|
|||
|
||||
Affiche_Message( ExecFileName );
|
||||
|
||||
wxExecute( ExecFileName );
|
||||
ProcessExecute( ExecFileName );
|
||||
|
||||
#else
|
||||
wxMessageBox( wxT( "TODO, currently not available" ) );
|
||||
|
|
Loading…
Reference in New Issue