summaryrefslogtreecommitdiffstats
path: root/macosx
diff options
context:
space:
mode:
authordynaflash <[email protected]>2008-04-07 20:11:46 +0000
committerdynaflash <[email protected]>2008-04-07 20:11:46 +0000
commit2ce44139652d30c39d3e1f54e1ab0f0d22613e60 (patch)
tree3bf32e3ed6ec141faf5517608a8326094f8169ee /macosx
parent4715027b7977ccfec3d57f7cad429f7e5b93e282 (diff)
MacGui: Enhance Growl notifications and send to metaX so that each encode is handled as it comes off of the queue.
- Previously only the last encode of a queue gave the finished growl notification and was sent to metaX. Now if specified by the user they happen as the encodes progress through the queue. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1388 b64f7644-9d1e-0410-96f1-a4d463321fa5
Diffstat (limited to 'macosx')
-rw-r--r--macosx/Controller.h4
-rw-r--r--macosx/Controller.mm61
-rw-r--r--macosx/HBQueueController.mm24
3 files changed, 57 insertions, 32 deletions
diff --git a/macosx/Controller.h b/macosx/Controller.h
index a9ed52e80..1afd6674a 100644
--- a/macosx/Controller.h
+++ b/macosx/Controller.h
@@ -354,10 +354,10 @@ BOOL fIsDragging;
- (IBAction)deletePreset:(id)sender;
- (IBAction)getDefaultPresets:(id)sender;
-
+-(void)sendToMetaX:(NSString *) filePath;
// Growl methods
- (NSDictionary *) registrationDictionaryForGrowl;
--(IBAction)showGrowlDoneNotification:(id)sender;
+-(void)showGrowlDoneNotification:(NSString *) filePath;
- (IBAction)showDebugOutputPanel:(id)sender;
- (void)setupToolbar;
diff --git a/macosx/Controller.mm b/macosx/Controller.mm
index 2f7b52273..68616550c 100644
--- a/macosx/Controller.mm
+++ b/macosx/Controller.mm
@@ -637,14 +637,7 @@ static NSString * ChooseSourceIdentifier = @"Choose Source It
/* Check to see if the encode state has not been cancelled
to determine if we should check for encode done notifications */
if (fEncodeState != 2) {
- /* If Growl Notification or Window and Growl has been selected */
- if ([[[NSUserDefaults standardUserDefaults] stringForKey:@"AlertWhenDone"] isEqualToString: @"Growl Notification"] ||
- [[[NSUserDefaults standardUserDefaults] stringForKey:@"AlertWhenDone"] isEqualToString: @"Alert Window And Growl"])
- {
- /*Growl Notification*/
- [self showGrowlDoneNotification: NULL];
- }
- /* If Alert Window or Window and Growl has been selected */
+ /* If Alert Window or Window and Growl has been selected */
if ([[[NSUserDefaults standardUserDefaults] stringForKey:@"AlertWhenDone"] isEqualToString: @"Alert Window"] ||
[[[NSUserDefaults standardUserDefaults] stringForKey:@"AlertWhenDone"] isEqualToString: @"Alert Window And Growl"])
{
@@ -687,16 +680,7 @@ static NSString * ChooseSourceIdentifier = @"Choose Source It
[self enableUI: YES];
}
- // MetaX insertion via AppleScript
- if([[NSUserDefaults standardUserDefaults] boolForKey: @"sendToMetaX"] == YES)
- {
- NSAppleScript *myScript = [[NSAppleScript alloc] initWithSource: [NSString stringWithFormat: @"%@%@%@", @"tell application \"MetaX\" to open (POSIX file \"", [fDstFile2Field stringValue], @"\")"]];
- [myScript executeAndReturnError: nil];
- [myScript release];
- }
-
-
- }
+ }
else
{
[self enableUI: YES];
@@ -981,7 +965,7 @@ static NSString * ChooseSourceIdentifier = @"Choose Source It
}
#pragma mark -
-#pragma mark Growl
+#pragma mark Encode Done Actions
// register a test notification and make
// it enabled by default
#define SERVICE_NAME @"Encode Done"
@@ -995,18 +979,37 @@ static NSString * ChooseSourceIdentifier = @"Choose Source It
return registrationDictionary;
}
--(IBAction)showGrowlDoneNotification:(id)sender
+-(void)showGrowlDoneNotification:(NSString *) filePath
{
- [GrowlApplicationBridge
- notifyWithTitle:@"Put down that cocktail..."
- description:@"your HandBrake encode is done!"
- notificationName:SERVICE_NAME
- iconData:nil
- priority:0
- isSticky:1
- clickContext:nil];
+ /* This is called from HBQueueController as jobs roll off of the queue in currentJobChanged */
+ NSString * finishedEncode = filePath;
+ /* strip off the path to just show the file name */
+ finishedEncode = [finishedEncode lastPathComponent];
+ if ([[[NSUserDefaults standardUserDefaults] stringForKey:@"AlertWhenDone"] isEqualToString: @"Growl Notification"] ||
+ [[[NSUserDefaults standardUserDefaults] stringForKey:@"AlertWhenDone"] isEqualToString: @"Alert Window And Growl"])
+ {
+ NSString * growlMssg = [NSString stringWithFormat: @"your HandBrake encode %@ is done!",finishedEncode];
+ [GrowlApplicationBridge
+ notifyWithTitle:@"Put down that cocktail..."
+ description:growlMssg
+ notificationName:SERVICE_NAME
+ iconData:nil
+ priority:0
+ isSticky:1
+ clickContext:nil];
+ }
+
+}
+-(void)sendToMetaX:(NSString *) filePath
+{
+ /* This is called from HBQueueController as jobs roll off of the queue in currentJobChanged */
+ if([[NSUserDefaults standardUserDefaults] boolForKey: @"sendToMetaX"] == YES)
+ {
+ NSAppleScript *myScript = [[NSAppleScript alloc] initWithSource: [NSString stringWithFormat: @"%@%@%@", @"tell application \"MetaX\" to open (POSIX file \"", filePath, @"\")"]];
+ [myScript executeAndReturnError: nil];
+ [myScript release];
+ }
}
-
#pragma mark -
#pragma mark Get New Source
diff --git a/macosx/HBQueueController.mm b/macosx/HBQueueController.mm
index a0241332e..3e0668e24 100644
--- a/macosx/HBQueueController.mm
+++ b/macosx/HBQueueController.mm
@@ -1473,6 +1473,8 @@ static NSString* HBQueuePauseResumeToolbarIdentifier = @"HBQueuePauseRe
[fProgressBar setIndeterminate:NO];
[fProgressBar stopAnimation:nil];
[fProgressBar setDoubleValue:0.0];
+
+
}
else
@@ -1571,9 +1573,12 @@ static NSString* HBQueuePauseResumeToolbarIdentifier = @"HBQueuePauseRe
withSubtitleInfo: YES]];
}
}
-
else
+ {
[fJobDescTextField setStringValue: @"No encodes pending"];
+
+ }
+
}
//------------------------------------------------------------------------------------
@@ -1748,6 +1753,19 @@ static NSString* HBQueuePauseResumeToolbarIdentifier = @"HBQueuePauseRe
//------------------------------------------------------------------------------------
- (void)currentJobChanged: (HBJob *) currentJob
{
+ /* if the job has a destination path, lets perform finished job notifications in fHBController
+ * We call this here so that we pickup the last job in the queue and single encodes before fCurrentJob
+ * is released. So for the first job and the beginning of single encodes we check for the existence
+ * of a valid fCurrentJob jobGroup
+ */
+ if ([[fCurrentJob jobGroup] destinationPath] && [fCurrentJobGroup status] != HBStatusCanceled)
+ {
+ /* Try to send the growl notification destinationPath*/
+ [fHBController showGrowlDoneNotification: [[fCurrentJob jobGroup] destinationPath]];
+ /* Try to send the file to metax*/
+ [fHBController sendToMetaX: [[fCurrentJob jobGroup] destinationPath]];
+ }
+
[currentJob retain];
[fCurrentJob release];
fCurrentJob = currentJob;
@@ -1770,7 +1788,11 @@ static NSString* HBQueuePauseResumeToolbarIdentifier = @"HBQueuePauseRe
// all other cases are assumed to be a successful encode. BTW, libhb
// doesn't currently report errors back to the GUI.
if ([fCurrentJobGroup status] != HBStatusCanceled)
+ {
[fCurrentJobGroup setStatus:HBStatusCompleted];
+ }
+
+
}
// Set the new group