Fall back to explicit documents path if XDG special dirs are missing

Fixes https://gitlab.com/kicad/code/kicad/-/issues/7452
This commit is contained in:
Jon Evans 2021-02-08 19:44:39 -05:00
parent 6f0424d742
commit 9728ceab0d
1 changed files with 16 additions and 2 deletions

View File

@ -21,6 +21,7 @@
#include <glib.h>
#include <gio/gio.h>
#include <kiplatform/environment.h>
#include <wx/filename.h>
bool KIPLATFORM::ENV::MoveToTrash( const wxString& aPath, wxString& aError )
@ -50,7 +51,20 @@ bool KIPLATFORM::ENV::IsNetworkPath( const wxString& aPath )
wxString KIPLATFORM::ENV::GetDocumentsPath()
{
return g_get_user_special_dir( G_USER_DIRECTORY_DOCUMENTS );
wxString docsPath = g_get_user_special_dir( G_USER_DIRECTORY_DOCUMENTS );
if( docsPath.IsEmpty() )
{
wxFileName fallback;
fallback.AssignDir( g_get_home_dir() );
fallback.AppendDir( "Documents" );
fallback.MakeAbsolute();
docsPath = fallback.GetFullPath();
}
return docsPath;
}
@ -63,4 +77,4 @@ wxString KIPLATFORM::ENV::GetUserConfigPath()
wxString KIPLATFORM::ENV::GetUserCachePath()
{
return g_get_user_cache_dir();
}
}