Commit 67b241aa authored by David Fuhrmann's avatar David Fuhrmann

macosx: cancel resume dialog after 6 seconds

Also reduce intentation of code.
parent 20f32dd1
......@@ -101,6 +101,8 @@
IBOutlet id o_save_accessory_text;
IBOutlet id o_playlist_header;
int currentResumeTimeout;
}
- (void)searchfieldChanged:(NSNotification *)o_notification;
......
......@@ -1486,10 +1486,28 @@
return YES;
}
- (void)updateAlertWindow:(NSTimer *)timer
{
NSAlert *alert = [timer userInfo];
--currentResumeTimeout;
if (currentResumeTimeout <= 0) {
[[alert window] close];
[NSApp abortModal];
}
NSString *buttonLabel = _NS("Restart playback");
buttonLabel = [buttonLabel stringByAppendingFormat:@" (%d)", currentResumeTimeout];
[[[alert buttons] objectAtIndex:2] setTitle:buttonLabel];
}
- (void)continuePlaybackWhereYouLeftOff:(input_thread_t *)p_input_thread
{
NSDictionary *recentlyPlayedFiles = [[NSUserDefaults standardUserDefaults] objectForKey:@"recentlyPlayedMedia"];
if (recentlyPlayedFiles) {
if (!recentlyPlayedFiles)
return;
input_item_t *p_item = input_GetItem(p_input_thread);
if (!p_item)
return;
......@@ -1512,21 +1530,36 @@
free(psz_url);
NSNumber *lastPosition = [recentlyPlayedFiles objectForKey:url];
if (lastPosition && lastPosition.intValue > 0) {
if (!lastPosition || lastPosition.intValue <= 0)
return;
int settingValue = config_GetInt(VLCIntf, "macosx-continue-playback");
NSInteger returnValue = NSAlertErrorReturn;
if (settingValue == 2) // never resume
return;
if (settingValue == 0) {
NSInteger returnValue = NSAlertErrorReturn;
if (settingValue == 0) { // ask
NSAlert *theAlert = [NSAlert alertWithMessageText:_NS("Continue playback?") defaultButton:_NS("Continue") alternateButton:_NS("Restart playback") otherButton:_NS("Always continue") informativeTextWithFormat:_NS("Playback of \"%@\" will continue at %@"), [NSString stringWithUTF8String:input_item_GetTitleFbName(p_item)], [[VLCStringUtility sharedInstance] stringForTime:lastPosition.intValue]];
currentResumeTimeout = 6;
NSTimer *timer = [NSTimer timerWithTimeInterval:1
target:self
selector:@selector(updateAlertWindow:)
userInfo:theAlert
repeats:YES];
[[NSRunLoop currentRunLoop] addTimer:timer forMode:NSModalPanelRunLoopMode];
[[VLCCoreInteraction sharedInstance] pause];
returnValue = [theAlert runModal];
[timer invalidate];
[[VLCCoreInteraction sharedInstance] playOrPause];
}
if (returnValue == NSAlertAlternateReturn || settingValue == 2)
lastPosition = [NSNumber numberWithInt:0];
// restart button was pressed or timeout happened
if (returnValue == NSAlertAlternateReturn ||
returnValue == NSRunAbortedResponse)
return;
}
mtime_t lastPos = (mtime_t)lastPosition.intValue * 1000000;
msg_Dbg(VLCIntf, "continuing playback at %lld", lastPos);
......@@ -1534,8 +1567,6 @@
if (returnValue == NSAlertOtherReturn)
config_PutInt(VLCIntf, "macosx-continue-playback", 1);
}
}
}
- (void)storePlaybackPositionForItem:(input_thread_t *)p_input_thread
......
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