Try standard XDG location for documents directory
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53094 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -47,6 +47,9 @@ public:
|
|||||||
virtual wxString GetPluginsDir() const;
|
virtual wxString GetPluginsDir() const;
|
||||||
virtual wxString GetLocalizedResourcesDir(const wxString& lang,
|
virtual wxString GetLocalizedResourcesDir(const wxString& lang,
|
||||||
ResourceCat category) const;
|
ResourceCat category) const;
|
||||||
|
#ifndef __VMS
|
||||||
|
virtual wxString GetDocumentsDir() const;
|
||||||
|
#endif
|
||||||
|
|
||||||
private:
|
private:
|
||||||
wxString m_prefix;
|
wxString m_prefix;
|
||||||
|
@@ -33,6 +33,8 @@
|
|||||||
#endif //WX_PRECOMP
|
#endif //WX_PRECOMP
|
||||||
|
|
||||||
#include "wx/filename.h"
|
#include "wx/filename.h"
|
||||||
|
#include "wx/log.h"
|
||||||
|
#include "wx/textfile.h"
|
||||||
|
|
||||||
#if defined( __LINUX__ ) || defined( __VMS )
|
#if defined( __LINUX__ ) || defined( __VMS )
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
@@ -52,6 +54,7 @@ wxString wxStandardPaths::GetUserConfigDir() const
|
|||||||
return wxFileName::GetHomeDir();
|
return wxFileName::GetHomeDir();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
// wxStandardPaths implementation for VMS
|
// wxStandardPaths implementation for VMS
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
@@ -215,6 +218,46 @@ wxStandardPaths::GetLocalizedResourcesDir(const wxString& lang,
|
|||||||
return GetInstallPrefix() + _T("/share/locale/") + lang + _T("/LC_MESSAGES");
|
return GetInstallPrefix() + _T("/share/locale/") + lang + _T("/LC_MESSAGES");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
wxString wxStandardPaths::GetDocumentsDir() const
|
||||||
|
{
|
||||||
|
{
|
||||||
|
wxLogNull logNull;
|
||||||
|
wxString homeDir = wxFileName::GetHomeDir();
|
||||||
|
wxString configPath;
|
||||||
|
if (wxGetenv(wxT("XDG_CONFIG_HOME")))
|
||||||
|
configPath = wxGetenv(wxT("XDG_CONFIG_HOME"));
|
||||||
|
else
|
||||||
|
configPath = homeDir + wxT("/.config");
|
||||||
|
wxString dirsFile = configPath + wxT("/user-dirs.dirs");
|
||||||
|
if (wxFileExists(dirsFile))
|
||||||
|
{
|
||||||
|
wxTextFile textFile;
|
||||||
|
if (textFile.Open(dirsFile))
|
||||||
|
{
|
||||||
|
size_t i;
|
||||||
|
for (i = 0; i < textFile.GetLineCount(); i++)
|
||||||
|
{
|
||||||
|
wxString line(textFile[i]);
|
||||||
|
int pos = line.Find(wxT("XDG_DOCUMENTS_DIR"));
|
||||||
|
if (pos != wxNOT_FOUND)
|
||||||
|
{
|
||||||
|
wxString value = line.AfterFirst(wxT('='));
|
||||||
|
value.Replace(wxT("$HOME"), homeDir);
|
||||||
|
value.Trim(true);
|
||||||
|
value.Trim(false);
|
||||||
|
if (!value.IsEmpty() && wxDirExists(value))
|
||||||
|
return value;
|
||||||
|
else
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return wxStandardPathsBase::GetDocumentsDir();
|
||||||
|
}
|
||||||
|
|
||||||
#endif // __VMS/!__VMS
|
#endif // __VMS/!__VMS
|
||||||
|
|
||||||
#endif // wxUSE_STDPATHS
|
#endif // wxUSE_STDPATHS
|
||||||
|
Reference in New Issue
Block a user