[vlc-commits] macosx: restart VLC when resetting preferences to ease our support work ( close #8534)
Felix Paul Kühne
git at videolan.org
Tue Apr 30 13:31:38 CEST 2013
vlc | branch: master | Felix Paul Kühne <fkuehne at videolan.org> | Tue Apr 30 13:31:22 2013 +0200| [df97baf74dd84db4c2394abe1757c5a02c9096be] | committer: Felix Paul Kühne
macosx: restart VLC when resetting preferences to ease our support work (close #8534)
This commit also prettifies the displayed scare messages
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=df97baf74dd84db4c2394abe1757c5a02c9096be
---
modules/gui/macosx/simple_prefs.m | 18 +++++++++++++++++-
1 file changed, 17 insertions(+), 1 deletion(-)
diff --git a/modules/gui/macosx/simple_prefs.m b/modules/gui/macosx/simple_prefs.m
index e96e2e2..90ef92d 100644
--- a/modules/gui/macosx/simple_prefs.m
+++ b/modules/gui/macosx/simple_prefs.m
@@ -686,7 +686,11 @@ static inline char * __config_GetLabel(vlc_object_t *p_this, const char *psz_nam
NSBeginInformationalAlertSheet(_NS("Reset Preferences"), _NS("Cancel"),
_NS("Continue"), nil, o_sprefs_win, self,
@selector(sheetDidEnd: returnCode: contextInfo:), NULL, nil, @"%@",
- _NS("Beware this will reset the VLC media player preferences.\n"
+ _NS("This will reset VLC media player's preferences.\n\n"
+ "Note that VLC will restart during the process, so your current "
+ "playlist will be emptied and eventual playback, streaming or "
+ "transcoding activities will stop immediately.\n\n"
+ "The Media Library will not be affected.\n\n"
"Are you sure you want to continue?"));
else if (sender == o_sprefs_showAll_btn) {
[o_sprefs_win orderOut: self];
@@ -703,11 +707,23 @@ static inline char * __config_GetLabel(vlc_object_t *p_this, const char *psz_nam
/* reset VLC's config */
config_ResetAll(p_intf);
[self resetControls];
+
+ /* force config file creation, since libvlc won't exit normally */
config_SaveConfigFile(p_intf);
/* reset OS X defaults */
[NSUserDefaults resetStandardUserDefaults];
[[NSUserDefaults standardUserDefaults] synchronize];
+
+ /* Relaunch now */
+ const char * path = [[[NSBundle mainBundle] executablePath] UTF8String];
+
+ /* For some reason we need to fork(), not just execl(), which reports a ENOTSUP then. */
+ if (fork() != 0) {
+ exit(0);
+ return;
+ }
+ execl(path, path, NULL);
}
}
More information about the vlc-commits
mailing list