1
0
mirror of https://github.com/clementine-player/Clementine synced 2024-12-19 04:52:30 +01:00

Use a sensible spotify settings directory on Windows instead of C:\HKEY_CURRENT_USER\... ಠ_ಠ

This commit is contained in:
David Sansome 2012-08-04 17:16:06 +01:00
parent c8b145c8b6
commit 5845b069a3
3 changed files with 25 additions and 27 deletions

View File

@ -29,39 +29,36 @@
namespace utilities {
QString GetCacheDirectory() {
QString user_cache = GetUserDataDirectory();
return user_cache + "/" + QCoreApplication::applicationName() + "/spotify-cache";
}
#ifndef Q_OS_DARWIN // See spotify_utilities.mm for Mac implementation.
QString GetUserCacheDirectory() {
#ifndef Q_OS_WINDOWS
QString GetUserDataDirectory() {
const char* xdg_cache_dir = getenv("XDG_CACHE_HOME");
if (!xdg_cache_dir) {
return QDir::homePath() + "/.config";
}
return QString::fromLocal8Bit(xdg_cache_dir);
}
#else // Q_OS_WINDOWS
const char* cache_dir = getenv("APPDATA");
if (!cache_dir) {
return QDir::homePath() + "/.config/";
}
return QDir::fromNativeSeparators(QString::fromLocal8Bit(cache_dir));
#endif // Q_OS_WINDOWS
QString GetSettingsDirectory() {
QString ret;
#ifdef Q_OS_WIN32
ret = GetUserDataDirectory() + "/" + QCoreApplication::applicationName() + "/spotify-settings";
#else
ret = QFileInfo(QSettings().fileName()).absolutePath() + "/spotify-settings";
#endif // Q_OS_WIN32
// Create the directory
QDir dir;
dir.mkpath(ret);
return ret;
}
#endif // Q_OS_DARWIN
QString GetCacheDirectory() {
QString user_cache = GetUserCacheDirectory();
return user_cache + "/" + QCoreApplication::applicationName() + "/spotify-cache";
}
#ifndef Q_OS_DARWIN
QString GetSettingsDirectory() {
QSettings settings;
QString file_name = settings.fileName();
QFileInfo info(file_name);
QDir dir = info.dir();
dir.mkdir("spotify-settings");
return info.absolutePath() + "/spotify-settings";
}
#endif
} // namespace utilities

View File

@ -25,8 +25,9 @@
namespace utilities {
// Get the path to the current user's local cache for all apps.
QString GetUserCacheDirectory();
// Get the path to the current user's data directory for all apps.
QString GetUserDataDirectory();
// Get the path for Clementine's cache.
QString GetCacheDirectory();

View File

@ -6,7 +6,7 @@
namespace utilities {
QString GetUserCacheDirectory() {
QString GetUserDataDirectory() {
NSAutoreleasePool* pool = [NSAutoreleasePool alloc];
[pool init];