KiCad PCB EDA Suite
launch_ext.h File Reference

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( wxT( "PATH" ), &PATH ) && wxFindFileInPath( &xdg_open, PATH, wxT( "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(), OpenPDF(), and SCRIPTING_TOOL::showPluginFolder().