Commit d0c9363f authored by Pierre d'Herbemont's avatar Pierre d'Herbemont

macosx: Check for older preferences and ask to delete them.

parent 157fcfc7
...@@ -212,6 +212,11 @@ static int InteractCallback( vlc_object_t *p_this, const char *psz_variable, ...@@ -212,6 +212,11 @@ static int InteractCallback( vlc_object_t *p_this, const char *psz_variable,
} }
#pragma mark - #pragma mark -
#pragma mark Private
@interface VLCMain ()
- (void)_removeOldPreferences;
@end
/***************************************************************************** /*****************************************************************************
* VLCMain implementation * VLCMain implementation
...@@ -460,6 +465,8 @@ static VLCMain *_o_sharedMainInstance = nil; ...@@ -460,6 +465,8 @@ static VLCMain *_o_sharedMainInstance = nil;
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification - (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{ {
[self _removeOldPreferences];
#ifdef UPDATE_CHECK #ifdef UPDATE_CHECK
/* Check for update silently on startup */ /* Check for update silently on startup */
if( !nib_update_loaded ) if( !nib_update_loaded )
...@@ -2219,6 +2226,49 @@ end: ...@@ -2219,6 +2226,49 @@ end:
} }
} }
#pragma mark -
#pragma mark Remove old prefs
- (void)_removeOldPreferences
{
static NSString * kVLCPreferencesVersion = @"VLCPreferencesVersion";
static const int kCurrentPreferencesVersion = 1;
int version = [[NSUserDefaults standardUserDefaults] integerForKey:kVLCPreferencesVersion];
if( version >= kCurrentPreferencesVersion ) return;
NSArray *libraries = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,
NSUserDomainMask, YES);
if( !libraries || [libraries count] == 0) return;
NSString * preferences = [[libraries objectAtIndex:0] stringByAppendingPathComponent:@"Preferences"];
/* File not found, don't attempt anything */
if(![[NSFileManager defaultManager] fileExistsAtPath:[preferences stringByAppendingPathComponent:@"VLC"]] &&
![[NSFileManager defaultManager] fileExistsAtPath:[preferences stringByAppendingPathComponent:@"org.videolan.vlc.plist"]] )
{
[[NSUserDefaults standardUserDefaults] setInteger:kCurrentPreferencesVersion forKey:kVLCPreferencesVersion];
return;
}
int res = NSRunInformationalAlertPanel(_NS("Remove old preferences?"),
_NS("We just found an older version of VLC's preferences files."),
_NS("Move To Trash and Relaunch VLC"), _NS("Ignore"), nil, nil);
if( res != NSOKButton ) return;
NSArray * ourPreferences = [NSArray arrayWithObjects:@"org.videolan.vlc.plist", @"VLC"];
/* Move the file to trash so that user can find them later */
[[NSWorkspace sharedWorkspace] performFileOperation:NSWorkspaceRecycleOperation source:preferences destination:nil files:ourPreferences tag:0];
/* really reset the defaults from now on */
[NSUserDefaults resetStandardUserDefaults];
[[NSUserDefaults standardUserDefaults] setInteger:kCurrentPreferencesVersion forKey:kVLCPreferencesVersion];
/* Relaunch now */
[[NSWorkspace sharedWorkspace] launchApplication:[[NSBundle mainBundle] bundlePath]];
exit(0);
}
#pragma mark - #pragma mark -
#pragma mark Errors, warnings and messages #pragma mark Errors, warnings and messages
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment