KiCad PCB EDA Suite
launch_ext.cpp File Reference
#include <launch_ext.h>
#include <wx/utils.h>

Go to the source code of this file.

Functions

bool LaunchExternal (const wxString &aPath)
 Launches the given file or folder in the host OS. More...
 

Function Documentation

◆ LaunchExternal()

bool LaunchExternal ( const wxString &  aPath)

Launches the given file or folder in the host OS.

Parameters
aPathis a path to a file or folder

Definition at line 25 of file launch_ext.cpp.

26{
27#ifdef __WXMAC__
28
29 const wchar_t* args[] = { L"open", aPath.wc_str(), nullptr };
30 return wxExecute( const_cast<wchar_t**>( args ) ) != -1;
31
32#elif defined( __WXGTK__ ) && !wxCHECK_VERSION( 3, 1, 1 )
33 // On Unix systems `wxLaunchDefaultApplication()` before wxWidgets 3.1.1 mistakenly uses
34 // `wxExecute(xdg_open + " " + document)`, thereby failing for filenames with spaces. Below is
35 // a backport of the fixed `wxLaunchDefaultApplication()`, to be used until we switch to a
36 // newer version of wxWidgets.
37
38 wxString PATH, xdg_open;
39
40 if( wxGetEnv( "PATH", &PATH ) && wxFindFileInPath( &xdg_open, PATH, "xdg-open" ) )
41 {
42 const char* argv[3];
43 argv[0] = xdg_open.fn_str();
44 argv[1] = aPath.fn_str();
45 argv[2] = nullptr;
46
47 if( wxExecute( const_cast<char**>( argv ) ) )
48 return true;
49 }
50
51 return false;
52
53#else
54
55 wxString path( aPath );
56 return wxLaunchDefaultApplication( path );
57
58#endif
59}

References path.

Referenced by KICAD_MANAGER_FRAME::OnBrowseInFileExplorer(), PANEL_COLOR_SETTINGS::OnBtnOpenThemeFolderClicked(), PROJECT_TREE_PANE::onOpenDirectory(), DIALOG_PCM::OnOpenPackageDirClicked(), OpenPDF(), and SCRIPTING_TOOL::ShowPluginFolder().