From fafcef89187c6c17a433e771c6bcc39a03dbc98e Mon Sep 17 00:00:00 2001 From: John Maguire <john.maguire@gmail.com> Date: Thu, 24 Nov 2011 17:31:18 +0100 Subject: [PATCH] Proper spotify settings path on Mac. --- spotifyblob/blob/spotify_utilities.cpp | 2 ++ spotifyblob/blob/spotify_utilities.mm | 27 ++++++++++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/spotifyblob/blob/spotify_utilities.cpp b/spotifyblob/blob/spotify_utilities.cpp index ecc2333c2..f5753ad48 100644 --- a/spotifyblob/blob/spotify_utilities.cpp +++ b/spotifyblob/blob/spotify_utilities.cpp @@ -33,6 +33,7 @@ QString GetCacheDirectory() { return user_cache + "/" + QCoreApplication::applicationName() + "/spotify-cache"; } +#ifndef Q_OS_DARWIN QString GetSettingsDirectory() { QSettings settings; QString file_name = settings.fileName(); @@ -41,5 +42,6 @@ QString GetSettingsDirectory() { dir.mkdir("spotify-settings"); return info.absolutePath() + "/spotify-settings"; } +#endif } // namespace utilities diff --git a/spotifyblob/blob/spotify_utilities.mm b/spotifyblob/blob/spotify_utilities.mm index 7a11cfcc6..7e6cf5568 100644 --- a/spotifyblob/blob/spotify_utilities.mm +++ b/spotifyblob/blob/spotify_utilities.mm @@ -1,6 +1,7 @@ #include "spotify_utilities.h" #import <Foundation/NSAutoreleasePool.h> +#import <Foundation/NSFileManager.h> #import <Foundation/NSPathUtilities.h> namespace utilities { @@ -24,4 +25,30 @@ QString GetUserCacheDirectory() { return ret; } +QString GetSettingsDirectory() { + NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; + NSArray* paths = NSSearchPathForDirectoriesInDomains( + NSApplicationSupportDirectory, + NSUserDomainMask, + YES); + NSString* ret; + if ([paths count] > 0) { + ret = [paths objectAtIndex:0]; + } else { + ret = @"~/Library/Application Support"; + } + ret = [ret stringByAppendingString:@"/Clementine/spotify-settings"]; + + NSFileManager* file_manager = [NSFileManager defaultManager]; + [file_manager createDirectoryAtPath: + ret + withIntermediateDirectories:YES + attributes:nil + error:nil]; + + QString path = QString::fromUtf8([ret UTF8String]); + [pool drain]; + return path; +} + }