summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--macosx/Controller.mm13
-rw-r--r--macosx/HBQueueController.h5
-rw-r--r--macosx/HBQueueController.mm26
-rw-r--r--macosx/InstantHandBrake/InstantHandBrake.xcodeproj/project.pbxproj8
4 files changed, 44 insertions, 8 deletions
diff --git a/macosx/Controller.mm b/macosx/Controller.mm
index 4e53fa1f8..891564230 100644
--- a/macosx/Controller.mm
+++ b/macosx/Controller.mm
@@ -1700,6 +1700,19 @@ static NSString * ChooseSourceIdentifier = @"Choose Source It
[fDstFile2Field stringValue]] );
// overwriteAddToQueueAlertDone: will be called when the alert is dismissed.
}
+
+ // Warn if another pending job in the queue has the same destination path
+ else if ([fQueueController pendingJobGroupWithDestinationPath:[fDstFile2Field stringValue]] != nil)
+ {
+ NSBeginCriticalAlertSheet( _( @"Another queued encode has specified the same destination." ),
+ _( @"Cancel" ), _( @"Overwrite" ), NULL, fWindow, self,
+ @selector( overwriteAddToQueueAlertDone:returnCode:contextInfo: ),
+ NULL, NULL, [NSString stringWithFormat:
+ _( @"Do you want to overwrite %@?" ),
+ [fDstFile2Field stringValue]] );
+ // overwriteAddToQueueAlertDone: will be called when the alert is dismissed.
+ }
+
else
{
[self doAddToQueue];
diff --git a/macosx/HBQueueController.h b/macosx/HBQueueController.h
index d1bb0c782..2070f0418 100644
--- a/macosx/HBQueueController.h
+++ b/macosx/HBQueueController.h
@@ -178,7 +178,7 @@ BOOL fIsDragging;
- (HBQueueJobGroupStatus) status;
- (void) setPresetName: (NSString *)name;
- (NSString *) presetName;
-- (NSString *) path;
+- (NSString *) destinationPath;
- (NSString *) name;
// Creating a description
@@ -264,6 +264,9 @@ BOOL fIsDragging;
- (HBJobGroup *) currentJobGroup;
- (HBJob *) currentJob;
+// Getting job groups
+- (HBJobGroup *) pendingJobGroupWithDestinationPath: (NSString *)path;
+
// Getting queue statistics
- (unsigned int) pendingCount;
- (unsigned int) completedCount;
diff --git a/macosx/HBQueueController.mm b/macosx/HBQueueController.mm
index 6743b378c..75095af69 100644
--- a/macosx/HBQueueController.mm
+++ b/macosx/HBQueueController.mm
@@ -805,7 +805,7 @@ NSString *HBJobGroupStatusNotification = @"HBJobGroupStatusNotification";
return firstJob ? firstJob->titleName : nil;
}
-- (NSString *) path
+- (NSString *) destinationPath
{
HBJob * firstJob = [self jobAtIndex:0];
return firstJob ? firstJob->file : nil;
@@ -907,6 +907,8 @@ static NSString* HBQueuePauseResumeToolbarIdentifier = @"HBQueuePauseRe
return fCurrentJob;
}
+#pragma mark -
+
//------------------------------------------------------------------------------------
// Displays and brings the queue window to the front
//------------------------------------------------------------------------------------
@@ -976,6 +978,24 @@ static NSString* HBQueuePauseResumeToolbarIdentifier = @"HBQueuePauseRe
fCurrentJobGroup = aJobGroup;
}
+#pragma mark - Finding job groups
+
+//------------------------------------------------------------------------------------
+// Returns the first pending job with a specified destination path or nil if no such
+// job exists.
+//------------------------------------------------------------------------------------
+- (HBJobGroup *) pendingJobGroupWithDestinationPath: (NSString *)path
+{
+ HBJobGroup * aJobGroup;
+ NSEnumerator * groupEnum = [fJobGroups objectEnumerator];
+ while ( (aJobGroup = [groupEnum nextObject]) )
+ {
+ if ([[aJobGroup destinationPath] isEqualToString: path])
+ return aJobGroup;
+ }
+ return nil;
+}
+
//------------------------------------------------------------------------------------
// Locates and returns a HBJob whose sequence_id matches a specified value.
//------------------------------------------------------------------------------------
@@ -1604,8 +1624,8 @@ static NSString* HBQueuePauseResumeToolbarIdentifier = @"HBQueuePauseRe
while (row != NSNotFound)
{
HBJobGroup * jobGroup = [fOutlineView itemAtRow: row];
- if ([[jobGroup path] length])
- [[NSWorkspace sharedWorkspace] selectFile:[jobGroup path] inFileViewerRootedAtPath:nil];
+ if ([[jobGroup destinationPath] length])
+ [[NSWorkspace sharedWorkspace] selectFile:[jobGroup destinationPath] inFileViewerRootedAtPath:nil];
row = [selectedRows indexGreaterThanIndex: row];
}
diff --git a/macosx/InstantHandBrake/InstantHandBrake.xcodeproj/project.pbxproj b/macosx/InstantHandBrake/InstantHandBrake.xcodeproj/project.pbxproj
index 5264013cf..a62c18d2e 100644
--- a/macosx/InstantHandBrake/InstantHandBrake.xcodeproj/project.pbxproj
+++ b/macosx/InstantHandBrake/InstantHandBrake.xcodeproj/project.pbxproj
@@ -29,28 +29,28 @@
isa = PBXContainerItemProxy;
containerPortal = A9DB3A080D37EC2800F77345 /* libhb.xcodeproj */;
proxyType = 2;
- remoteGlobalIDString = 0DFF0B720B6BC6E600549488 /* libhb.a */;
+ remoteGlobalIDString = 0DFF0B720B6BC6E600549488;
remoteInfo = libhb;
};
A9DB3A100D37EC2800F77345 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = A9DB3A080D37EC2800F77345 /* libhb.xcodeproj */;
proxyType = 2;
- remoteGlobalIDString = 0D096DFF0B707D1200A845D4 /* libhb.dylib */;
+ remoteGlobalIDString = 0D096DFF0B707D1200A845D4;
remoteInfo = "libhb dlib";
};
A9DB3A120D37EC2800F77345 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = A9DB3A080D37EC2800F77345 /* libhb.xcodeproj */;
proxyType = 2;
- remoteGlobalIDString = A9DB38E00D37E9BA00F77345 /* HB.framework */;
+ remoteGlobalIDString = A9DB38E00D37E9BA00F77345;
remoteInfo = HB;
};
A9DB3A140D37EC4200F77345 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = A9DB3A080D37EC2800F77345 /* libhb.xcodeproj */;
proxyType = 1;
- remoteGlobalIDString = 0DFF0B710B6BC6E600549488 /* libhb */;
+ remoteGlobalIDString = 0DFF0B710B6BC6E600549488;
remoteInfo = libhb;
};
/* End PBXContainerItemProxy section */