KiCad PCB EDA Suite
KIPLATFORM::ENV Namespace Reference

Functions

void Init ()
 Perform environment initialization tasks. More...
 
bool MoveToTrash (const wxString &aPath, wxString &aError)
 Move the specified file/directory to the trash bin/recycle bin. More...
 
bool IsNetworkPath (const wxString &aPath)
 Determines if a given path is a network shared file apth On Windows for example, any form of path is accepted drive map or UNC. More...
 
wxString GetDocumentsPath ()
 Retrieves the operating system specific path for a user's documents. More...
 
wxString GetUserConfigPath ()
 Retrieves the operating system specific path for a user's configuration store. More...
 
wxString GetUserCachePath ()
 Retrieves the operating system specific path for user's application cache. More...
 

Function Documentation

◆ GetDocumentsPath()

wxString KIPLATFORM::ENV::GetDocumentsPath ( )

Retrieves the operating system specific path for a user's documents.

Returns
User documents path

Definition at line 78 of file gtk/environment.cpp.

79 {
80  wxString docsPath = g_get_user_data_dir();
81 
82  if( docsPath.IsEmpty() )
83  {
84  wxFileName fallback;
85 
86  fallback.AssignDir( g_get_home_dir() );
87  fallback.AppendDir( ".local" );
88  fallback.AppendDir( "share" );
89  fallback.MakeAbsolute();
90 
91  docsPath = fallback.GetFullPath();
92  }
93 
94  return docsPath;
95 }

Referenced by PATHS::getUserDocumentPath(), and SystemDirsAppend().

◆ GetUserCachePath()

wxString KIPLATFORM::ENV::GetUserCachePath ( )

Retrieves the operating system specific path for user's application cache.

Returns
User cache path

Definition at line 104 of file gtk/environment.cpp.

105 {
106  return g_get_user_cache_dir();
107 }

Referenced by PATHS::GetUserCachePath().

◆ GetUserConfigPath()

wxString KIPLATFORM::ENV::GetUserConfigPath ( )

Retrieves the operating system specific path for a user's configuration store.

Returns
User config path

Definition at line 98 of file gtk/environment.cpp.

99 {
100  return g_get_user_config_dir();
101 }

Referenced by SETTINGS_MANAGER::calculateUserSettingsPath().

◆ Init()

void KIPLATFORM::ENV::Init ( )

Perform environment initialization tasks.

These tasks are called during the wxApp constructor and therefore won't have access to the underlying OS application.

Definition at line 28 of file gtk/environment.cpp.

29 {
30  // Disable proxy menu in Unity window manager. Only usual menubar works with
31  // wxWidgets (at least <= 3.1). When the proxy menu menubar is enable, some
32  // important things for us do not work: menuitems UI events and shortcuts.
33  wxString wm;
34 
35  if( wxGetEnv( wxT( "XDG_CURRENT_DESKTOP" ), &wm ) && wm.CmpNoCase( wxT( "Unity" ) ) == 0 )
36  wxSetEnv ( wxT("UBUNTU_MENUPROXY" ), wxT( "0" ) );
37 
38  // Force the use of X11 backend (or wayland-x11 compatibilty layer). This is
39  // required until wxWidgets supports the Wayland compositors
40  wxSetEnv( wxT( "GDK_BACKEND" ), wxT( "x11" ) );
41 
42  // Disable overlay scrollbars as they mess up wxWidgets window sizing and cause
43  // excessive redraw requests.
44  wxSetEnv( wxT( "GTK_OVERLAY_SCROLLING" ), wxT( "0" ) );
45 
46  // Set GTK2-style input instead of xinput2. This disables touchscreen and smooth
47  // scrolling. It's needed to ensure that we are not getting multiple mouse scroll
48  // events.
49  wxSetEnv( wxT( "GDK_CORE_DEVICE_EVENTS" ), wxT( "1" ) );
50 }

Referenced by APP_KICAD::APP_KICAD(), and APP_SINGLE_TOP::APP_SINGLE_TOP().

◆ IsNetworkPath()

bool KIPLATFORM::ENV::IsNetworkPath ( const wxString &  aPath)

Determines if a given path is a network shared file apth On Windows for example, any form of path is accepted drive map or UNC.

Parameters
aPathis any kind of file path to be tested
Returns
true if given path is on a network location

Definition at line 71 of file gtk/environment.cpp.

72 {
73  // placeholder, we "nerf" behavior if its a network path so return false by default
74  return false;
75 }

Referenced by PROJECT_TREE_PANE::FileWatcherReset().

◆ MoveToTrash()

bool KIPLATFORM::ENV::MoveToTrash ( const wxString &  aPath,
wxString &  aError 
)

Move the specified file/directory to the trash bin/recycle bin.

Parameters
aPathis the absolute path of the file/directory to move to the trash
aErroris the error message saying why the operation failed
Returns
true if the operation succeeds, false if it fails (see the contents of aError)

Definition at line 53 of file gtk/environment.cpp.

54 {
55  GError* err = nullptr;
56  GFile* file = g_file_new_for_path( aPath.fn_str() );
57 
58  bool retVal = g_file_trash( file, NULL, &err );
59 
60  // Extract the error string if the operation failed
61  if( !retVal && err )
62  aError = err->message;
63 
64  g_clear_error( &err );
65  g_object_unref( file );
66 
67  return retVal;
68 }
#define NULL

References NULL.

Referenced by PROJECT_TREE_ITEM::Delete().