Merge branch 'more-xdg-dirs'

Add possibility to use wxStandardPaths and, hence, wxFileConfig, in
XDG-compliant (but backwards-incompatible) mode.

Closes #17727.
This commit is contained in:
Vadim Zeitlin
2017-03-15 00:49:11 +01:00
11 changed files with 299 additions and 98 deletions

View File

@@ -29,6 +29,8 @@ public:
virtual wxString GetUserLocalDataDir() const wxOVERRIDE;
virtual wxString GetPluginsDir() const wxOVERRIDE;
virtual wxString GetUserDir(Dir userDir) const wxOVERRIDE;
virtual wxString MakeConfigFileName(const wxString& basename,
ConfigFileConv conv) const wxOVERRIDE;
// MSW-specific methods

View File

@@ -32,6 +32,8 @@ public:
GetLocalizedResourcesDir(const wxString& lang,
ResourceCat category = ResourceCat_None) const wxOVERRIDE;
virtual wxString GetUserDir(Dir userDir) const wxOVERRIDE;
virtual wxString MakeConfigFileName(const wxString& basename,
ConfigFileConv conv) const wxOVERRIDE;
protected:
// Ctor is protected, use wxStandardPaths::Get() instead of instantiating

View File

@@ -60,6 +60,21 @@ public:
Dir_Videos
};
// Layout to use for user config/data files under Unix.
enum FileLayout
{
FileLayout_Classic, // Default: use home directory.
FileLayout_XDG // Recommended: use XDG specification.
};
// Naming convention for the config files under Unix.
enum ConfigFileConv
{
ConfigFileConv_Dot, // Classic Unix dot-file convention.
ConfigFileConv_Ext // Use .conf extension.
};
// return the global standard paths object
static wxStandardPaths& Get();
@@ -155,6 +170,10 @@ public:
virtual wxString GetUserDir(Dir userDir) const;
virtual wxString
MakeConfigFileName(const wxString& basename,
ConfigFileConv conv = ConfigFileConv_Ext) const = 0;
// virtual dtor for the base class
virtual ~wxStandardPathsBase();
@@ -166,6 +185,15 @@ public:
bool UsesAppInfo(int info) const { return (m_usedAppInfo & info) != 0; }
void SetFileLayout(FileLayout layout)
{
m_fileLayout = layout;
}
FileLayout GetFileLayout() const
{
return m_fileLayout;
}
protected:
// Ctor is protected as this is a base class which should never be created
@@ -182,6 +210,9 @@ protected:
// combination of AppInfo_XXX flags used by AppendAppInfo()
int m_usedAppInfo;
// The file layout to use, currently only used under Unix.
FileLayout m_fileLayout;
};
#if wxUSE_STDPATHS

View File

@@ -49,6 +49,8 @@ public:
#ifndef __VMS
virtual wxString GetUserDir(Dir userDir) const wxOVERRIDE;
#endif
virtual wxString MakeConfigFileName(const wxString& basename,
ConfigFileConv conv) const wxOVERRIDE;
protected:
// Ctor is protected, use wxStandardPaths::Get() instead of instantiating