All pastes #778993 Raw Edit

Mine

public diff v1 · immutable
·published 2007-11-18 02:34 UTC
rendered paste body
Index: macosx/Controller.mm===================================================================--- macosx/Controller.mm	(revision 1064)+++ macosx/Controller.mm	(working copy)@@ -134,10 +134,10 @@              } 	-    /* Show scan panel ASAP */-    [self performSelectorOnMainThread: @selector(showScanPanel:)+    /* Show Browse Sources Window ASAP */+    [self performSelectorOnMainThread: @selector(browseSources:)                            withObject: NULL waitUntilDone: NO];-}+                           }  - (void) updateAlertDone: (NSWindow *) sheet               returnCode: (int) returnCode contextInfo: (void *) contextInfo@@ -861,7 +861,7 @@         [item setToolTip: @"Choose Video Source"];         [item setImage: [NSImage imageNamed: @"Source"]];         [item setTarget: self];-        [item setAction: @selector(showScanPanel:)];+        [item setAction: @selector(browseSources:)];     }     else     {@@ -978,7 +978,7 @@         if (action == @selector(addToQueue:) || action == @selector(showPicturePanel:) || action == @selector(showAddPresetPanel:))             return SuccessfulScan && [fWindow attachedSheet] == nil;         -        if (action == @selector(showScanPanel:))+        if (action == @selector(browseSources:))         {             if (s.state == HB_STATE_SCANNING)                 return NO;@@ -1054,14 +1054,10 @@ #pragma mark - #pragma mark Get New Source -- (IBAction) showScanPanel: (id) sender+/*Opens the source browse window, called from Open Source widgets */+- (IBAction) browseSources: (id) sender {     [self enableUI: NO];-	[self browseSources:NULL];-}--- (void) browseSources: (id) sender-{     NSOpenPanel * panel; 	     panel = [NSOpenPanel openPanel];@@ -1078,48 +1074,116 @@ 		sourceDirectory = @"~/Desktop"; 		sourceDirectory = [sourceDirectory stringByExpandingTildeInPath]; 	}-   [panel beginSheetForDirectory: sourceDirectory file: nil types: nil-				   modalForWindow: fWindow modalDelegate: self-				   didEndSelector: @selector( browseSourcesDone:returnCode:contextInfo: )-					  contextInfo: nil];+    /* we open up the browse sources sheet here and call for browseSourcesDone after the sheet is closed+        * to evaluate whether we want to specify a title, we pass the sender in the contextInfo variable+        */+    [panel beginSheetForDirectory: sourceDirectory file: nil types: nil+                   modalForWindow: fWindow modalDelegate: self+                   didEndSelector: @selector( browseSourcesDone:returnCode:contextInfo: )+                      contextInfo: sender];  }  - (void) browseSourcesDone: (NSOpenPanel *) sheet-		 returnCode: (int) returnCode contextInfo: (void *) contextInfo+                returnCode: (int) returnCode contextInfo: (void *) contextInfo {+    /* we convert the sender content of contextInfo back into a variable called sender+    * mostly just for consistency for evaluation later+    */+    id sender = (id)contextInfo;     /* User selected a file to open */ 	if( returnCode == NSOKButton )     {-        [fSrcDVD2Field setStringValue: _( @"Opening a new source ..." )];+        +        NSString *scanPath = [[sheet filenames] objectAtIndex: 0];+        /* we order out sheet, which is the browse window as we need to open+        * the title selection sheet right away+        */+        [sheet orderOut: self];+        /* We put the chosen source path in the source display text field for the+            * source title selection sheet in which the user specifies the specific title to be+            * scanned */+        [fScanSrcTitlePathField setStringValue: [NSString stringWithFormat:@"%@", scanPath]];+        +        if (sender == fOpenSourceTitleMMenu)+        {+            /* We show the actual sheet where the user specifies the title to be scanned +            * as we are going to do a title specific scan+            */+            [self showSourceTitleScanPanel:NULL];+        }+        else+        {+            /* We are just doing a standard full source scan, so we specify "0" to libhb */+            NSString *path = [[sheet filenames] objectAtIndex: 0];+            [self performScan:path scanTitleNum:0];   +        }+        +    }+    else // User clicked Cancel in browse window+    {+        /* if we have a title loaded up */+        if ([[fSrcDVD2Field stringValue] length] > 0)+        {+            [self enableUI: YES];+        }+    }+}+    +/* Here we open the title selection sheet where we can specify an exact title to be scanned */+- (IBAction) showSourceTitleScanPanel: (id) sender+{+    /* We default the title number to be scanned to "0" which results in a full source scan, unless the+    * user changes it+    */+    [fScanSrcTitleNumField setStringValue: @"0"];+	/* Show the panel */+	[NSApp beginSheet: fScanSrcTitlePanel modalForWindow: fWindow modalDelegate: NULL didEndSelector: NULL contextInfo: NULL];+}++- (IBAction) closeSourceTitleScanPanel: (id) sender+{+    [NSApp endSheet: fScanSrcTitlePanel];+    [fScanSrcTitlePanel orderOut: self];+    if(sender == fScanSrcTitleOpenButton)+    {+        /* We setup the scan status in the main window to indicate a source title scan */+        [fSrcDVD2Field setStringValue: _( @"Opening a new source title ..." )]; 		[fScanIndicator setHidden: NO]; 	    [fScanIndicator setIndeterminate: YES];         [fScanIndicator startAnimation: nil]; 		 		/* we set the last source directory in the prefs here */-		NSString *sourceDirectory = [[[sheet filenames] objectAtIndex: 0] stringByDeletingLastPathComponent];+		NSString *sourceDirectory = [[fScanSrcTitlePathField stringValue] stringByDeletingLastPathComponent]; 		[[NSUserDefaults standardUserDefaults] setObject:sourceDirectory forKey:@"LastSourceDirectory"];-		-        NSString *path = [[sheet filenames] objectAtIndex: 0];-        HBDVDDetector *detector = [HBDVDDetector detectorForPath:path];-        if( [detector isVideoDVD] )-        {-            // The chosen path was actually on a DVD, so use the raw block-            // device path instead.-            path = [detector devicePath];-        }-		-		hb_scan( fHandle, [path UTF8String], 0 );-	}-	else // User clicked Cancel in browse window-	{-		/* if we have a title loaded up */-		if ([[fSrcDVD2Field stringValue] length] > 0)-		{-            [self enableUI: YES];-        }-	}+        /* We use the performScan method to actually perform the specified scan passing the path and the title+            * to be scanned+            */+        [self performScan:[fScanSrcTitlePathField stringValue] scanTitleNum:[fScanSrcTitleNumField intValue]];+    } } ++/* Here we actually tell hb_scan to perform the source scan, using the path to source and title number*/+- (void) performScan:(NSString *) scanPath scanTitleNum: (int) scanTitleNum+{+    NSString *path = scanPath;+    HBDVDDetector *detector = [HBDVDDetector detectorForPath:path];+    if( [detector isVideoDVD] )+    {+        // The chosen path was actually on a DVD, so use the raw block+        // device path instead.+        path = [detector devicePath];+    }+    /* If there is no title number passed to scan, we use "0"+        * which causes the default behavior of a full source scan+    */+    if (!scanTitleNum)+    {+        scanTitleNum = 0;+    }+    hb_scan( fHandle, [path UTF8String], scanTitleNum );+}+ - (IBAction) showNewScan:(id)sender { 	hb_list_t  * list;@@ -1137,13 +1201,13 @@ 	} 	else 	{-     /* We increment the successful scancount here by one,-		   which we use at the end of this function to tell the gui-		   if this is the first successful scan since launch and whether-		   or not we should set all settings to the defaults */+        /* We increment the successful scancount here by one,+        which we use at the end of this function to tell the gui+        if this is the first successful scan since launch and whether+        or not we should set all settings to the defaults */ 		         currentSuccessfulScanCount++;-+                 [toolbar validateVisibleItems]; 		 		[fSrcTitlePopUp removeAllItems];@@ -1154,17 +1218,17 @@             currentSource = [NSString stringWithUTF8String: title->name];                          /* To get the source name as well as the default output name, first we check to see if-               the selected directory is the VIDEO_TS Directory */+                the selected directory is the VIDEO_TS Directory */             if ([[currentSource lastPathComponent] isEqualToString: @"VIDEO_TS"])             {-            /* If VIDEO_TS Folder is chosen, choose its parent folder for the source display name -               we have to use the title->dvd value so we get the proper name of the volume if a physical dvd is the source*/-            sourceDisplayName = [NSString stringWithFormat:[[[NSString stringWithUTF8String: title->dvd] stringByDeletingLastPathComponent] lastPathComponent]];+                /* If VIDEO_TS Folder is chosen, choose its parent folder for the source display name +                we have to use the title->dvd value so we get the proper name of the volume if a physical dvd is the source*/+                sourceDisplayName = [NSString stringWithFormat:[[[NSString stringWithUTF8String: title->dvd] stringByDeletingLastPathComponent] lastPathComponent]];             }             else             {-            /* if not the VIDEO_TS Folder, we can assume the chosen folder is the source name */-            sourceDisplayName = [NSString stringWithFormat:[currentSource lastPathComponent]];+                /* if not the VIDEO_TS Folder, we can assume the chosen folder is the source name */+                sourceDisplayName = [NSString stringWithFormat:[currentSource lastPathComponent]];             } 			/*Set DVD Name at top of window*/ 			[fSrcDVD2Field setStringValue:[NSString stringWithFormat: @"%@", sourceDisplayName]];@@ -1183,17 +1247,15 @@ 					@"%@/Desktop/%@.mp4", NSHomeDirectory(),sourceDisplayName]]; 			} 			-			 			if (longuestpri < title->hours*60*60 + title->minutes *60 + title->seconds) 			{ 				longuestpri=title->hours*60*60 + title->minutes *60 + title->seconds; 				indxpri=i; 			} 			+			[self formatPopUpChanged:NULL]; 			-        [self formatPopUpChanged:NULL];-			-        [fSrcTitlePopUp addItemWithTitle: [NSString+            [fSrcTitlePopUp addItemWithTitle: [NSString                 stringWithFormat: @"%d - %02dh%02dm%02ds",                 title->index, title->hours, title->minutes,                 title->seconds]];@@ -1207,17 +1269,17 @@ 		[self enableUI: YES]; 		 		/* if its the initial successful scan after awakeFromNib */-	   if (currentSuccessfulScanCount == 1)-	   {-           [self selectDefaultPreset: NULL];-           /* if Deinterlace upon launch is specified in the prefs, then set to 1 for "Fast",-           if not, then set to 0 for none */-           if ([[NSUserDefaults standardUserDefaults] boolForKey:@"DefaultDeinterlaceOn"] > 0)-               [fPictureController setDeinterlace:1];-           else-               [fPictureController setDeinterlace:0];-	   }-       +        if (currentSuccessfulScanCount == 1)+        {+            [self selectDefaultPreset: NULL];+            /* if Deinterlace upon launch is specified in the prefs, then set to 1 for "Fast",+            if not, then set to 0 for none */+            if ([[NSUserDefaults standardUserDefaults] boolForKey:@"DefaultDeinterlaceOn"] > 0)+                [fPictureController setDeinterlace:1];+            else+                [fPictureController setDeinterlace:0];+        }+         	} } Index: macosx/English.lproj/MainMenu.nib/info.nib===================================================================--- macosx/English.lproj/MainMenu.nib/info.nib	(revision 1064)+++ macosx/English.lproj/MainMenu.nib/info.nib	(working copy)@@ -3,7 +3,7 @@ <plist version="1.0"> <dict> 	<key>IBDocumentLocation</key>-	<string>133 168 417 350 0 0 1440 878 </string>+	<string>37 120 663 378 0 0 1440 878 </string> 	<key>IBEditorPositions</key> 	<dict> 		<key>1843</key>@@ -11,7 +11,7 @@ 		<key>2436</key> 		<string>307 361 192 68 0 0 1440 878 </string> 		<key>29</key>-		<string>233 476 368 44 0 0 1440 878 </string>+		<string>57 811 368 44 0 0 1440 878 </string> 	</dict> 	<key>IBFramework Version</key> 	<string>446.1</string>@@ -28,10 +28,9 @@ 	<key>IBOpenObjects</key> 	<array> 		<integer>29</integer>-		<integer>21</integer> 	</array> 	<key>IBSystem Version</key>-	<string>8R2218</string>+	<string>8S2167</string> 	<key>IBUserGuides</key> 	<dict> 		<key>21</key>Index: macosx/English.lproj/MainMenu.nib/keyedobjects.nib===================================================================Cannot display: file marked as a binary type.svn:mime-type = application/octet-streamIndex: macosx/English.lproj/MainMenu.nib/classes.nib===================================================================--- macosx/English.lproj/MainMenu.nib/classes.nib	(revision 1064)+++ macosx/English.lproj/MainMenu.nib/classes.nib	(working copy)@@ -71,6 +71,7 @@                 calculatePictureSizing = id;                  chapterPopUpChanged = id;                  closeAddPresetPanel = id; +                closeSourceTitleScanPanel = id;                  codecsPopUpChanged = id;                  customSettingUsed = id;                  deleteFactoryPresets = id; @@ -96,6 +97,7 @@                 showPreferencesWindow = id;                  showQueueWindow = id;                  showScanPanel = id; +                showSourceTitleScanPanel = id;                  subtitleSelectionChanged = id;                  tableViewSelected = id;                  titlePopUpChanged = id; @@ -130,6 +132,7 @@                 fDstFormatField = NSTextField;                  fDstFormatPopUp = NSPopUpButton;                  fDstMpgLargeFileCheck = NSButton; +                fOpenSourceTitleMMenu = NSMenuItem;                  fPicLabelAnamorphic = NSTextField;                  fPicLabelAr = NSTextField;                  fPicLabelAutoCrop = NSTextField; @@ -169,6 +172,11 @@                 fQueueStatus = NSTextField;                  fRipIndicator = NSProgressIndicator;                  fScanIndicator = NSProgressIndicator; +                fScanSrcTitleCancelButton = NSButton; +                fScanSrcTitleNumField = NSTextField; +                fScanSrcTitleOpenButton = NSButton; +                fScanSrcTitlePanel = NSPanel; +                fScanSrcTitlePathField = NSTextField;                  fSrcChapterEndPopUp = NSPopUpButton;                  fSrcChapterField = NSTextField;                  fSrcChapterStartPopUp = NSPopUpButton; Index: macosx/Controller.h===================================================================--- macosx/Controller.h	(revision 1064)+++ macosx/Controller.h	(working copy)@@ -24,6 +24,16 @@     IBOutlet NSWindow            * fWindow;     NSToolbar                    * toolbar;     +    /* Main Menu Outlets */+    NSMenuItem                   * fOpenSourceTitleMMenu;+    +    /* Source Title Scan Outlets */+    IBOutlet NSPanel              * fScanSrcTitlePanel;+    IBOutlet NSTextField          * fScanSrcTitlePathField;+    IBOutlet NSTextField          * fScanSrcTitleNumField;+    IBOutlet NSButton             * fScanSrcTitleCancelButton;+    IBOutlet NSButton             * fScanSrcTitleOpenButton;+         /* Picture panel */     PictureController            * fPictureController;     @@ -183,16 +193,19 @@ 	NSString                      * currentSource; } +- (IBAction) browseSources: (id) sender;+- (void) browseSourcesDone: (NSOpenPanel *) sheet+                returnCode: (int) returnCode contextInfo: (void *) contextInfo;+- (IBAction) showSourceTitleScanPanel: (id) sender;+- (IBAction) closeSourceTitleScanPanel: (id) sender;  +- (void) performScan:(NSString *) scanPath scanTitleNum: (int) scanTitleNum;+- (IBAction) showNewScan: (id) sender;+ - (void)     TranslateStrings;  - (void)     updateUI: (NSTimer *) timer; - (void)     enableUI: (bool) enable;-- (IBAction) showNewScan: (id) sender;-- (IBAction) showScanPanel: (id) sender;-- (IBAction) browseSources: (id) sender;-- (void) browseSourcesDone: (NSOpenPanel *) sheet-    returnCode: (int) returnCode contextInfo: (void *) contextInfo;-    + - (IBAction) titlePopUpChanged: (id) sender; - (IBAction) chapterPopUpChanged: (id) sender; @@ -211,7 +224,7 @@  - (IBAction) browseFile: (id) sender; - (void)     browseFileDone: (NSSavePanel *) sheet-    returnCode: (int) returnCode contextInfo: (void *) contextInfo;+                 returnCode: (int) returnCode contextInfo: (void *) contextInfo;  - (IBAction) videoMatrixChanged: (id) sender; - (IBAction) qualitySliderChanged: (id) sender;@@ -222,7 +235,7 @@  - (IBAction) addToQueue: (id) sender; - (void) overwriteAddToQueueAlertDone: (NSWindow *) sheet-    returnCode: (int) returnCode contextInfo: (void *) contextInfo;+                           returnCode: (int) returnCode contextInfo: (void *) contextInfo; - (void)     doAddToQueue;  - (IBAction) showQueueWindow:(id)sender;@@ -231,9 +244,9 @@  - (IBAction) Rip: (id) sender; - (void)     overWriteAlertDone: (NSWindow *) sheet-    returnCode: (int) returnCode contextInfo: (void *) contextInfo;+                     returnCode: (int) returnCode contextInfo: (void *) contextInfo; - (void)     updateAlertDone: (NSWindow *) sheet-    returnCode: (int) returnCode contextInfo: (void *) contextInfo;+                  returnCode: (int) returnCode contextInfo: (void *) contextInfo; - (void)     doRip;  - (IBAction) Cancel: (id) sender;@@ -248,7 +261,7 @@ - (IBAction) openForums:   (id) sender; - (IBAction) openUserGuide:   (id) sender; -// Preset Methods Here+    // Preset Methods Here - (void) loadPresets; - (IBAction) customSettingUsed: (id) sender; - (IBAction) showAddPresetPanel: (id) sender;@@ -286,21 +299,21 @@ - (IBAction)getDefaultPresets:(id)sender; - (IBAction)tableViewSelected:(id)sender; -// NSTableDataSource methods+    // NSTableDataSource methods - (int)numberOfRowsInTableView:(NSTableView *)aTableView; - (id)tableView:(NSTableView *)aTableView       objectValueForTableColumn:(NSTableColumn *)aTableColumn-      row:(int)rowIndex;+            row:(int)rowIndex; - (void)tableView:(NSTableView *)aTableView-        setObjectValue:(id)anObject-        forTableColumn:(NSTableColumn *)aTableColumn-        row:(int)rowIndex;-// To determine user presets cell display properties+   setObjectValue:(id)anObject+   forTableColumn:(NSTableColumn *)aTableColumn+              row:(int)rowIndex;+    // To determine user presets cell display properties - (void)tableView:(NSTableView *)aTableView 		willDisplayCell:(id)aCell forTableColumn:(NSTableColumn *)aTableColumn-		 row:(int)rowIndex;+              row:(int)rowIndex; -// Growl methods+    // Growl methods - (NSDictionary *) registrationDictionaryForGrowl; -(IBAction)showGrowlDoneNotification:(id)sender; - (IBAction)showDebugOutputPanel:(id)sender;