mirror of
https://github.com/wxWidgets/wxWidgets.git
synced 2026-08-20 22:06:25 +08:00
Add wxStandardPaths::Dir_Config
This allows using GetUserDir(Dir_Config) to retrieve XDG-compliant location of the configuration files, independently of the file layout used by the global wxStandardPaths object. Recommend using this directory instead of GetUserDataDir() for multiple configuration files under Unix.
This commit is contained in:
@@ -51,6 +51,7 @@ public:
|
||||
enum Dir
|
||||
{
|
||||
Dir_Cache,
|
||||
Dir_Config,
|
||||
Dir_Documents,
|
||||
Dir_Desktop,
|
||||
Dir_Downloads,
|
||||
|
||||
+14
-2
@@ -79,6 +79,18 @@ public:
|
||||
*/
|
||||
Dir_Cache,
|
||||
|
||||
/**
|
||||
Directory containing configuration information.
|
||||
|
||||
Example return values:
|
||||
- Unix: `~/.config`
|
||||
- Windows: `C:\Users\username\AppData\Roaming`
|
||||
- Mac: @c `~/Library/Preferences`
|
||||
|
||||
@since 3.3.0
|
||||
*/
|
||||
Dir_Config,
|
||||
|
||||
/**
|
||||
Directory containing user documents.
|
||||
|
||||
@@ -384,8 +396,8 @@ public:
|
||||
- Mac: @c ~/Library/Preferences
|
||||
|
||||
Only use this method if you have a single configuration file to put in this
|
||||
directory, otherwise GetUserDataDir() is more appropriate as the latter
|
||||
adds @c appinfo to the path, unlike this function.
|
||||
directory, otherwise calling AppendAppInfo() with the value returned by
|
||||
GetDir() with wxStandardPaths::Dir_Config is more appropriate.
|
||||
*/
|
||||
virtual wxString GetUserConfigDir() const;
|
||||
|
||||
|
||||
@@ -189,6 +189,9 @@ wxString wxStandardPaths::GetUserDir(Dir userDir) const
|
||||
case Dir_Cache:
|
||||
csidl = CSIDL_LOCAL_APPDATA;
|
||||
break;
|
||||
case Dir_Config:
|
||||
csidl = CSIDL_APPDATA;
|
||||
break;
|
||||
case Dir_Desktop:
|
||||
csidl = CSIDL_DESKTOPDIRECTORY;
|
||||
break;
|
||||
|
||||
@@ -101,12 +101,18 @@ wxStandardPaths::GetLocalizedResourcesDir(const wxString& lang,
|
||||
|
||||
wxString wxStandardPaths::GetUserDir(Dir userDir) const
|
||||
{
|
||||
wxString subdir;
|
||||
|
||||
NSSearchPathDirectory dirType;
|
||||
switch (userDir)
|
||||
{
|
||||
case Dir_Cache:
|
||||
dirType = NSCachesDirectory;
|
||||
break;
|
||||
case Dir_Config:
|
||||
dirType = NSLibraryDirectory;
|
||||
subdir = "/Preferences";
|
||||
break;
|
||||
case Dir_Desktop:
|
||||
dirType = NSDesktopDirectory;
|
||||
break;
|
||||
@@ -127,7 +133,7 @@ wxString wxStandardPaths::GetUserDir(Dir userDir) const
|
||||
break;
|
||||
}
|
||||
|
||||
return GetFMDirectory(dirType, NSUserDomainMask);
|
||||
return GetFMDirectory(dirType, NSUserDomainMask) + subdir;
|
||||
}
|
||||
|
||||
wxString
|
||||
|
||||
@@ -274,7 +274,11 @@ wxString wxStandardPaths::GetUserDir(Dir userDir) const
|
||||
return cacheDir;
|
||||
}
|
||||
|
||||
const wxFileName dirsFile(GetXDGConfigHome(), wxS("user-dirs.dirs"));
|
||||
const wxString configDir = GetXDGConfigHome();
|
||||
if (userDir == Dir_Config)
|
||||
return configDir;
|
||||
|
||||
const wxFileName dirsFile(configDir, wxS("user-dirs.dirs"));
|
||||
if ( dirsFile.FileExists() )
|
||||
{
|
||||
wxString userDirId;
|
||||
|
||||
Reference in New Issue
Block a user