]> granicus.if.org Git - handbrake/commitdiff
MacGui: New queue enhancements
authordynaflash <dynaflashtech@gmail.com>
Tue, 11 Sep 2007 15:03:01 +0000 (15:03 +0000)
committerdynaflash <dynaflashtech@gmail.com>
Tue, 11 Sep 2007 15:03:01 +0000 (15:03 +0000)
- clean up work related to starting and stopping of jobs to make sure the behavior is the same in both the queue window and the main window
- No longer adds jobs to queue when you've hit Start but then canceled the overwrite warning.
- Added overwrite alert when doing an Add to Queue. Was only happening previously when you did a Start.
- Stopping a job from either the Queue window or the Main window now goes through the same code path and so the behavior will be identical.
- In the main window, the Start button now changes to Start Queue once you've added things to the queue. This helps clear up any ambiguity about what that button will do
- Cancel button now named Stop. Recommended by BradleyS and/or hawkman I think because this button no longer cancels everything in the queue, just the current job. Wording in the stop warning dialog has been improved (mentions job title).
- The "Show Alert When Done" options now work when you have started the queue from the Queue window.
- Uses the term "passes" in main window
- Added unique icons for each pass type.

git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@949 b64f7644-9d1e-0410-96f1-a4d463321fa5

18 files changed:
macosx/Controller.h
macosx/Controller.mm
macosx/English.lproj/Queue.nib/classes.nib
macosx/English.lproj/Queue.nib/info.nib
macosx/English.lproj/Queue.nib/keyedobjects.nib
macosx/HBQueueController.h
macosx/HBQueueController.mm
macosx/HandBrake.xcodeproj/project.pbxproj
macosx/icons/Detail.png [new file with mode: 0644]
macosx/icons/DetailPressed.png [new file with mode: 0644]
macosx/icons/JobPassFirstLarge.png [new file with mode: 0644]
macosx/icons/JobPassFirstSmall.png [new file with mode: 0644]
macosx/icons/JobPassSecondLarge.png [new file with mode: 0644]
macosx/icons/JobPassSecondSmall.png [new file with mode: 0644]
macosx/icons/JobPassSubtitleLarge.png [new file with mode: 0644]
macosx/icons/JobPassSubtitleSmall.png [new file with mode: 0644]
macosx/icons/JobPassUnknownLarge.png [new file with mode: 0644]
macosx/icons/JobPassUnknownSmall.png [new file with mode: 0644]

index dd985a7b1ff61780b450dd7b35327f5fb9ff8216..807e08ff7295537c22d67c3017a54b6f6c988134 100644 (file)
 - (IBAction) openMainWindow: (id) sender;
 
 - (IBAction) addToQueue: (id) sender;
+- (void) overwriteAddToQueueAlertDone: (NSWindow *) sheet
+    returnCode: (int) returnCode contextInfo: (void *) contextInfo;
+- (void)     doAddToQueue;
+
 - (IBAction) showQueueWindow:(id)sender;
 
 - (IBAction)showPreferencesWindow:(id)sender;
     returnCode: (int) returnCode contextInfo: (void *) contextInfo;
 - (void)     updateAlertDone: (NSWindow *) sheet
     returnCode: (int) returnCode contextInfo: (void *) contextInfo;
-- (void)     _Rip;
+- (void)     doRip;
+
 - (IBAction) Cancel: (id) sender;
-- (void)     _Cancel: (NSWindow *) sheet returnCode: (int) returnCode
-    contextInfo: (void *) contextInfo;
 - (IBAction) Pause: (id) sender;
 
 - (IBAction) calculateBitrate: (id) sender;
index 297eaf7e20c9aeedd6adef037daf4c850a72a750..86d18ff13e40eb21c0bf3a093560e8a56e3713c7 100644 (file)
@@ -51,23 +51,6 @@ static NSString *        AddToQueueIdentifier               = @"Add to Queue Ite
 static NSString *        ShowActivityIdentifier             = @"Debug Output Item Identifier";
 static NSString *        ChooseSourceIdentifier             = @"Choose Source Item Identifier";
 
-/**
- * Returns the number of jobs groups in the queue.
- * @param h Handle to hb_handle_t.
- * @return Number of job groups.
- */
-static int hb_group_count(hb_handle_t * h)    
-{
-       hb_job_t * job;
-       int count = 0;
-       int index = 0;
-       while( ( job = hb_job( h, index++ ) ) )
-       {
-               if (job->sequence_id == 0)
-                       count++;
-       }
-       return count;
-}
 
 /*******************************
  * HBController implementation *
@@ -101,6 +84,7 @@ static int hb_group_count(hb_handle_t * h)
     /* Init others controllers */
     [fPictureController SetHandle: fHandle];
     [fQueueController   setHandle: fHandle];
+    [fQueueController   setHBController: self];
        
     fChapterTitlesDelegate = [[ChapterTitles alloc] init];
     [fChapterTable setDataSource:fChapterTitlesDelegate];
@@ -433,7 +417,7 @@ static int hb_group_count(hb_handle_t * h)
 {
     return [NSArray arrayWithObjects:  StartEncodingIdentifier, PauseEncodingIdentifier, AddToQueueIdentifier,
         ChooseSourceIdentifier, ShowQueueIdentifier, ShowActivityIdentifier, ToggleDrawerIdentifier,
-        NSToolbarCustomizeToolbarItemIdentifier, NSToolbarFlexibleSpaceItemIdentifier, NSToolbarSpaceItemIdentifier,
+        NSToolbarCustomizeToolbarItemIdentifier, NSToolbarFlexibleSpaceItemIdentifier,
         NSToolbarSpaceItemIdentifier, NSToolbarSeparatorItemIdentifier, nil];
 }
 
@@ -451,9 +435,9 @@ static int hb_group_count(hb_handle_t * h)
             if ([ident isEqualToString: StartEncodingIdentifier])
             {
                 [toolbarItem setImage: [NSImage imageNamed: @"Stop"]];
-                [toolbarItem setLabel: @"Cancel"];
-                [toolbarItem setPaletteLabel: @"Cancel"];
-                [toolbarItem setToolTip: @"Cancel Encoding"];
+                [toolbarItem setLabel: @"Stop"];
+                [toolbarItem setPaletteLabel: @"Stop"];
+                [toolbarItem setToolTip: @"Stop Encoding"];
                 return YES;
             }
             if ([ident isEqualToString: PauseEncodingIdentifier])
@@ -490,7 +474,10 @@ static int hb_group_count(hb_handle_t * h)
             if ([ident isEqualToString: StartEncodingIdentifier])
             {
                 [toolbarItem setImage: [NSImage imageNamed: @"Play"]];
-                [toolbarItem setLabel: @"Start"];
+                if (hb_count(fHandle) > 0)
+                    [toolbarItem setLabel: @"Start Queue"];
+                else
+                    [toolbarItem setLabel: @"Start"];
                 [toolbarItem setPaletteLabel: @"Start Encoding"];
                 [toolbarItem setToolTip: @"Start Encoding"];
                 return YES;
@@ -707,8 +694,6 @@ static int hb_group_count(hb_handle_t * h)
                [self showNewScan: NULL];
        }
        
-    BOOL jobGroups = [[NSUserDefaults standardUserDefaults] boolForKey:@"QueueShowsJobsAsGroups"];
-       
     hb_state_t s;
     hb_get_state( fHandle, &s );
        
@@ -768,7 +753,7 @@ static int hb_group_count(hb_handle_t * h)
             [fRipIndicator setDoubleValue: 100.0 * progress_total];
                        
             // If progress bar hasn't been revealed at the bottom of the window, do
-            // that now. This code used to be in _Rip. I moved it to here to handle
+            // that now. This code used to be in doRip. I moved it to here to handle
             // the case where hb_start is called by HBQueueController and not from
             // HBController.
             if (!fRipIndicatorShown)
@@ -832,6 +817,27 @@ static int hb_group_count(hb_handle_t * h)
                        
         case HB_STATE_WORKDONE:
         {
+            // HB_STATE_WORKDONE happpens as a result of hblib finishing all its jobs
+            // or someone calling hb_stop. In the latter case, hb_stop does not clear
+            // out the remaining passes/jobs in the queue. We'll do that here.
+                        
+            // Delete all remaining scans of this job, ie, delete whole encodes.
+            hb_job_t * job;
+            while( ( job = hb_job( fHandle, 0 ) ) && (job->sequence_id != 0) )
+                hb_rem( fHandle, job );
+
+            // Start processing back up if jobs still left in queue
+            if (hb_count(fHandle) > 0)
+            {
+                hb_start(fHandle);
+                fEncodeState = 1;
+                // Validate the toolbar (hack). The toolbar will usually get autovalidated
+                // before we had the chance to restart the queue, hence it will now be in
+                // the wrong state.
+                [toolbar validateVisibleItems];
+                break;
+            }
+
             [fStatusField setStringValue: _( @"Done." )];
             [fRipIndicator setIndeterminate: NO];
             [fRipIndicator setDoubleValue: 0.0];
@@ -840,21 +846,6 @@ static int hb_group_count(hb_handle_t * h)
             /* Restore dock icon */
             [self UpdateDockIcon: -1.0];
 
-            if (jobGroups)
-            {
-                // Delete all remaining scans of this job
-                hb_job_t * job;
-                while( ( job = hb_job( fHandle, 0 ) ) && (job->sequence_id != 0) )
-                    hb_rem( fHandle, job );
-            }
-
-            // Start processing back up if jobs still left in queue
-            if (hb_count(fHandle) > 0)
-            {
-                hb_start(fHandle);
-                break;
-            }
-                       
             if (fRipIndicatorShown)
             {
                 NSRect frame = [fWindow frame];
@@ -888,7 +879,7 @@ static int hb_group_count(hb_handle_t * h)
                                        /*On Screen Notification*/
                                        int status;
                                        NSBeep();
-                                       status = NSRunAlertPanel(@"Put down that cocktail...",@"your HandBrake encode is done!", @"OK", nil, nil);
+                                       status = NSRunAlertPanel(@"Put down that cocktail...",@"Your HandBrake encode is done!", @"OK", nil, nil);
                                        [NSApp requestUserAttention:NSCriticalRequest];
                                        if ( status == NSAlertDefaultReturn ) 
                                        {
@@ -943,12 +934,12 @@ static int hb_group_count(hb_handle_t * h)
     }
        
     /* Lets show the queue status here in the main window */
-       int queue_count = jobGroups ? hb_group_count( fHandle ) : hb_count( fHandle );
+       int queue_count = hb_count( fHandle );
        if( queue_count )
        {
                [fQueueStatus setStringValue: [NSString stringWithFormat:
-                       @"%d task%s in the queue",
-                                                queue_count, ( queue_count > 1 ) ? "s" : ""]];
+                       @"%d pass%s in the queue",
+                                                queue_count, ( queue_count > 1 ) ? "es" : ""]];
        }
        else
        {
@@ -1540,114 +1531,142 @@ static int hb_group_count(hb_handle_t * h)
 
 
 
+/* addToQueue: puts up an alert before ultimately calling doAddToQueue
+*/
 - (IBAction) addToQueue: (id) sender
 {
-/* We get the destination directory from the destingation field here */
+       /* We get the destination directory from the destination field here */
        NSString *destinationDirectory = [[fDstFile2Field stringValue] stringByDeletingLastPathComponent];
        /* We check for a valid destination here */
        if ([[NSFileManager defaultManager] fileExistsAtPath:destinationDirectory] == 0) 
        {
                NSRunAlertPanel(@"Warning!", @"This is not a valid destination directory!", @"OK", nil, nil);
+        return;
        }
-       else
-       {
-               
-               hb_list_t  * list  = hb_get_titles( fHandle );
-               hb_title_t * title = (hb_title_t *) hb_list_item( list,
-                                                                                                                 [fSrcTitlePopUp indexOfSelectedItem] );
-               hb_job_t * job = title->job;
-               
-        // Assign a sequence number, starting at zero, to each job added so they can
-        // be lumped together in the UI.
-        job->sequence_id = -1;
-               
-               [self PrepareJob];
-               
-               /* Destination file */
-               job->file = [[fDstFile2Field stringValue] UTF8String];
 
-                if( [fSubForcedCheck state] == NSOnState )
-                {
-                    job->subtitle_force = 1;
-                } else {
-                    job->subtitle_force = 0;
-                }
+    /* We check for duplicate name here */
+       if( [[NSFileManager defaultManager] fileExistsAtPath:
+            [fDstFile2Field stringValue]] )
+    {
+        NSBeginCriticalAlertSheet( _( @"File already exists" ),
+            _( @"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];
+    }
+}
 
-                /*
-                 * subtitle of -1 is a scan
-                 */
-                if( job->subtitle == -1 )
-                {
-                    char *x264opts_tmp;
-
-                    /*
-                     * When subtitle scan is enabled do a fast pre-scan job
-                     * which will determine which subtitles to enable, if any.
-                     */
-                    job->pass = -1;
-                    x264opts_tmp = job->x264opts;
-                    job->subtitle = -1;
-
-                    job->x264opts = NULL;
-                    
-                    job->indepth_scan = 1;  
-
-                    job->select_subtitle = (hb_subtitle_t**)malloc(sizeof(hb_subtitle_t*));
-                    *(job->select_subtitle) = NULL;
-                    
-                    /*
-                     * Add the pre-scan job
-                     */
-                                       job->sequence_id++; // for job grouping
-                    hb_add( fHandle, job );
-
-                    job->x264opts = x264opts_tmp;
-                } else {
-                    job->select_subtitle = NULL;
-                }
+/* overwriteAddToQueueAlertDone: called from the alert posted by addToQueue that asks
+   the user if they want to overwrite an exiting movie file.
+*/
+- (void) overwriteAddToQueueAlertDone: (NSWindow *) sheet
+    returnCode: (int) returnCode contextInfo: (void *) contextInfo
+{
+    if( returnCode == NSAlertAlternateReturn )
+        [self doAddToQueue];
+}
 
-                /* No subtitle were selected, so reset the subtitle to -1 (which before
-                 * this point meant we were scanning
-                 */
-                if( job->subtitle == -2 )
-                {
-                    job->subtitle = -1;
-                }
+- (void) doAddToQueue
+{
+    hb_list_t  * list  = hb_get_titles( fHandle );
+    hb_title_t * title = (hb_title_t *) hb_list_item( list, [fSrcTitlePopUp indexOfSelectedItem] );
+    hb_job_t * job = title->job;
 
-               if( [fVidTwoPassCheck state] == NSOnState )
-               {
-            hb_subtitle_t **subtitle_tmp = job->select_subtitle;
-                        job->indepth_scan = 0;
+    // Assign a sequence number, starting at zero, to each job added so they can
+    // be lumped together in the UI.
+    job->sequence_id = -1;
 
-                       job->pass = 1;
-                       job->sequence_id++; // for job grouping
-                       hb_add( fHandle, job );
-            
-                       job->pass = 2;
-                       job->sequence_id++; // for job grouping
-                       
-                       job->x264opts = (char *)calloc(1024, 1); /* Fixme, this just leaks */  
-                       strcpy(job->x264opts, [[fAdvancedOptions optionsString] UTF8String]);
+    [self PrepareJob];
 
-            job->select_subtitle = subtitle_tmp;
+    /* Destination file */
+    job->file = [[fDstFile2Field stringValue] UTF8String];
 
-                       hb_add( fHandle, job );
-               }
-               else
-               {
-                        job->indepth_scan = 0;
-                       job->pass = 0;
-                       job->sequence_id++; // for job grouping
-                       hb_add( fHandle, job );
-               }
+    if( [fSubForcedCheck state] == NSOnState )
+        job->subtitle_force = 1;
+    else
+        job->subtitle_force = 0;
+
+    /*
+    * subtitle of -1 is a scan
+    */
+    if( job->subtitle == -1 )
+    {
+        char *x264opts_tmp;
+
+        /*
+        * When subtitle scan is enabled do a fast pre-scan job
+        * which will determine which subtitles to enable, if any.
+        */
+        job->pass = -1;
+        x264opts_tmp = job->x264opts;
+        job->subtitle = -1;
+
+        job->x264opts = NULL;
+
+        job->indepth_scan = 1;  
+
+        job->select_subtitle = (hb_subtitle_t**)malloc(sizeof(hb_subtitle_t*));
+        *(job->select_subtitle) = NULL;
+
+        /*
+        * Add the pre-scan job
+        */
+        job->sequence_id++; // for job grouping
+        hb_add( fHandle, job );
+
+        job->x264opts = x264opts_tmp;
+    }
+    else
+        job->select_subtitle = NULL;
+
+    /* No subtitle were selected, so reset the subtitle to -1 (which before
+    * this point meant we were scanning
+    */
+    if( job->subtitle == -2 )
+        job->subtitle = -1;
+
+    if( [fVidTwoPassCheck state] == NSOnState )
+    {
+        hb_subtitle_t **subtitle_tmp = job->select_subtitle;
+        job->indepth_scan = 0;
+
+        job->pass = 1;
+        job->sequence_id++; // for job grouping
+        hb_add( fHandle, job );
+
+        job->pass = 2;
+        job->sequence_id++; // for job grouping
+
+        job->x264opts = (char *)calloc(1024, 1); /* Fixme, this just leaks */  
+        strcpy(job->x264opts, [[fAdvancedOptions optionsString] UTF8String]);
+
+        job->select_subtitle = subtitle_tmp;
+
+        hb_add( fHandle, job );
+    }
+    else
+    {
+        job->indepth_scan = 0;
+        job->pass = 0;
+        job->sequence_id++; // for job grouping
+        hb_add( fHandle, job );
+    }
        
+    NSString *destinationDirectory = [[fDstFile2Field stringValue] stringByDeletingLastPathComponent];
        [[NSUserDefaults standardUserDefaults] setObject:destinationDirectory forKey:@"LastDestinationDirectory"];
        /* Lets try to update stuff, taken from remove in the queue controller */
        [fQueueController performSelectorOnMainThread: @selector( updateQueueUI )
         withObject: NULL waitUntilDone: NO];
-       }
 }
 
+/* Rip: puts up an alert before ultimately calling doRip
+*/
 - (IBAction) Rip: (id) sender
 {
     /* Rip or Cancel ? */
@@ -1659,17 +1678,26 @@ static int hb_group_count(hb_handle_t * h)
         [self Cancel: sender];
         return;
     }
-       /* if there is no job in the queue, then add it to the queue and rip 
-       otherwise, there are already jobs in queue, so just rip the queue */
-       int count = hb_count( fHandle );
-       if( count < 1 )
-        {
-               [self addToQueue: sender];
-               }
     
-           /* We check for duplicate name here */
-       if( [[NSFileManager defaultManager] fileExistsAtPath:
-            [fDstFile2Field stringValue]] )
+    // If there are jobs in the queue, then this is a rip the queue
+    
+    if (hb_count( fHandle ) > 0)
+    {
+        [self doRip];
+        return;
+    }
+
+    // Before adding jobs to the queue, check for a valid destination.
+
+    NSString *destinationDirectory = [[fDstFile2Field stringValue] stringByDeletingLastPathComponent];
+    if ([[NSFileManager defaultManager] fileExistsAtPath:destinationDirectory] == 0) 
+    {
+        NSRunAlertPanel(@"Warning!", @"This is not a valid destination directory!", @"OK", nil, nil);
+        return;
+    }
+
+    /* We check for duplicate name here */
+    if( [[NSFileManager defaultManager] fileExistsAtPath:[fDstFile2Field stringValue]] )
     {
         NSBeginCriticalAlertSheet( _( @"File already exists" ),
             _( @"Cancel" ), _( @"Overwrite" ), NULL, fWindow, self,
@@ -1677,31 +1705,34 @@ static int hb_group_count(hb_handle_t * h)
             NULL, NULL, [NSString stringWithFormat:
             _( @"Do you want to overwrite %@?" ),
             [fDstFile2Field stringValue]] );
-        return;
+            
+        // overWriteAlertDone: will be called when the alert is dismissed. It will call doRip.
+    }
+    else
+    {
+        [self doRip];
     }
-       /* We get the destination directory from the destination field here */
-       NSString *destinationDirectory = [[fDstFile2Field stringValue] stringByDeletingLastPathComponent];
-       /* We check for a valid destination here */
-       if ([[NSFileManager defaultManager] fileExistsAtPath:destinationDirectory] == 0) 
-       {
-               NSRunAlertPanel(@"Warning!", @"This is not a valid destination directory!", @"OK", nil, nil);
-       }
-       else
-       {
-       [[NSUserDefaults standardUserDefaults] setObject:destinationDirectory forKey:@"LastDestinationDirectory"];
-               [self _Rip];
-       }
-       
-
-
 }
 
+/* overWriteAlertDone: called from the alert posted by Rip: that asks the user if they
+   want to overwrite an exiting movie file.
+*/
 - (void) overWriteAlertDone: (NSWindow *) sheet
     returnCode: (int) returnCode contextInfo: (void *) contextInfo
 {
     if( returnCode == NSAlertAlternateReturn )
     {
-        [self _Rip];
+        /* if there is no job in the queue, then add it to the queue and rip 
+        otherwise, there are already jobs in queue, so just rip the queue */
+        int count = hb_count( fHandle );
+        if( count == 0 )
+        {
+            [self doAddToQueue];
+        }
+
+        NSString *destinationDirectory = [[fDstFile2Field stringValue] stringByDeletingLastPathComponent];
+        [[NSUserDefaults standardUserDefaults] setObject:destinationDirectory forKey:@"LastDestinationDirectory"];
+        [self doRip];
     }
 }
 
@@ -1721,7 +1752,7 @@ static int hb_group_count(hb_handle_t * h)
     [NSApp terminate: self];
 }
 
-- (void) _Rip
+- (void) doRip
 {
     /* Let libhb do the job */
     hb_start( fHandle );
@@ -1729,25 +1760,82 @@ static int hb_group_count(hb_handle_t * h)
        fEncodeState = 1;
 }
 
-- (IBAction) Cancel: (id) sender
+
+
+
+
+//------------------------------------------------------------------------------------
+// Cancels the current job and proceeds with the next one in the queue.
+//------------------------------------------------------------------------------------
+- (void) doCancelCurrentJob
 {
-    NSBeginCriticalAlertSheet( _( @"Cancel - Are you sure?" ),
-        _( @"Keep working" ), _( @"Cancel encoding" ), NULL, fWindow, self,
-        @selector( _Cancel:returnCode:contextInfo: ), NULL, NULL,
-        _( @"Encoding won't be recoverable." ) );
+    // Stop the current job. hb_stop will only cancel the current pass and then set
+    // its state to HB_STATE_WORKDONE. It also does this asynchronously. So when we
+    // see the state has changed to HB_STATE_WORKDONE (in updateUI), we'll delete the
+    // remaining passes of the job and then start the queue back up if there are any
+    // remaining jobs.
+     
+    hb_stop( fHandle );
+    fEncodeState = 2;   // don't alert at end of processing since this was a cancel
+    
 }
 
-- (void) _Cancel: (NSWindow *) sheet
-    returnCode: (int) returnCode contextInfo: (void *) contextInfo
+//------------------------------------------------------------------------------------
+// Displays an alert asking user if the want to cancel encoding of current job.
+// Cancel: returns immediately after posting the alert. Later, when the user
+// acknowledges the alert, doCancelCurrentJob is called.
+//------------------------------------------------------------------------------------
+- (IBAction)Cancel: (id)sender
 {
-    if( returnCode == NSAlertAlternateReturn )
+    if (!fHandle) return;
+    
+    hb_job_t * job = hb_current_job(fHandle);
+    if (!job) return;
+
+    // If command key is down, don't prompt
+    BOOL hasCmdKeyMask = ([[NSApp currentEvent] modifierFlags] & NSCommandKeyMask) != 0;
+    if (hasCmdKeyMask)
+        [self doCancelCurrentJob];
+    else
     {
-        hb_stop( fHandle );
-               /*set the fEncodeState State */
-            fEncodeState = 2;
+        NSString * alertTitle = [NSString stringWithFormat:NSLocalizedString(@"Do you want to stop encoding of %@?", nil),
+                [NSString stringWithUTF8String:job->title->name]];
+        
+        // Which window to attach the sheet to?
+        NSWindow * docWindow;
+        if ([sender respondsToSelector: @selector(window)])
+            docWindow = [sender window];
+        else
+            docWindow = fWindow;
+            
+        NSBeginCriticalAlertSheet(
+                alertTitle,
+                NSLocalizedString(@"Keep Encoding", nil), NSLocalizedString(@"Stop Encoding", nil), nil, docWindow, self,
+                nil, @selector(didDimissCancelCurrentJob:returnCode:contextInfo:), nil,
+                NSLocalizedString(@"Your movie will be lost if you don't continue encoding.", nil),
+                [NSString stringWithUTF8String:job->title->name]);
+        
+        // didDimissCancelCurrentJob:returnCode:contextInfo: will be called when the dialog is dismissed
+
+        // N.B.: didDimissCancelCurrentJob:returnCode:contextInfo: is designated as the dismiss
+        // selector to prevent a crash. As a dismiss selector, the alert window will
+        // have already be dismissed. If we don't do it this way, the dismissing of
+        // the alert window will cause the table view to be redrawn at a point where
+        // current job has been deleted by hblib but we don't know about it yet. This
+        // is a prime example of wy we need to NOT be relying on hb_current_job!!!!
     }
 }
 
+- (void) didDimissCancelCurrentJob: (NSWindow *)sheet returnCode: (int)returnCode contextInfo: (void *)contextInfo
+{
+    if (returnCode == NSAlertAlternateReturn)
+        [self doCancelCurrentJob];
+}
+
+
+
+
+
 - (IBAction) Pause: (id) sender
 {
     hb_state_t s;
index 4e9bbaa785b13198da75897cad6e51cccf8ebab9..3e0a52912477b0e2d9537cfe58e745b38f4d1dd5 100644 (file)
             }; 
             SUPERCLASS = NSObject; 
         }, 
+        {CLASS = HBImageAndTextCell; LANGUAGE = ObjC; SUPERCLASS = NSTextFieldCell; }, 
         {CLASS = HBPictureGLView; LANGUAGE = ObjC; SUPERCLASS = NSOpenGLView; }, 
         {
             ACTIONS = {
                 cancelCurrentJob = id; 
-                detailChanged = id; 
-                jobGroupsChanged = id; 
+                hideDetail = id; 
                 removeSelectedJob = id; 
+                showDetail = id; 
+                showJobsAsGroups = id; 
+                showJobsAsPasses = id; 
                 showQueueWindow = id; 
-                toggleShowsDetail = id; 
-                toggleShowsJobsAsGroups = id; 
                 toggleStartPause = id; 
             }; 
             CLASS = HBQueueController; 
             LANGUAGE = ObjC; 
             OUTLETS = {
                 fCurrentJobPane = NSView; 
-                fDetailCheckbox = NSButton; 
                 fJobDescTextField = NSTextField; 
-                fJobGroupsCheckbox = NSButton; 
                 fJobIconView = NSImageView; 
+                fOutlineView = NSOutlineView; 
                 fProgressBar = NSProgressIndicator; 
                 fProgressTextField = NSTextField; 
                 fQueueCountField = NSTextField; 
                 fQueuePane = NSView; 
                 fQueueWindow = NSWindow; 
-                fStartPauseButton = NSButton; 
                 fTaskView = NSTableView; 
             }; 
             SUPERCLASS = NSObject; 
index f2104c54a3a2230903465b89713c2d4137e11523..0d9cf8ed49c2a2de98f87dd13d3c4bff9e09b46e 100644 (file)
@@ -3,7 +3,7 @@
 <plist version="1.0">
 <dict>
        <key>IBDocumentLocation</key>
-       <string>63 594 453 434 0 0 1680 1028 </string>
+       <string>361 594 453 434 0 0 1680 1028 </string>
        <key>IBFramework Version</key>
        <string>446.1</string>
        <key>IBLockedObjects</key>
index 2b8608f3877fde8e64f852a9d45f07e5bf38f551..b43b41beeb175d195830ec6873c9f6744f7f4af1 100644 (file)
                        <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>264</integer>
+                               <integer>222</integer>
                        </dict>
                        <key>NSAccessibilityConnectors</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>261</integer>
+                               <integer>219</integer>
                        </dict>
                        <key>NSAccessibilityOidsKeys</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>262</integer>
+                               <integer>220</integer>
                        </dict>
                        <key>NSAccessibilityOidsValues</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>263</integer>
+                               <integer>221</integer>
                        </dict>
                        <key>NSClassesKeys</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>216</integer>
+                               <integer>183</integer>
                        </dict>
                        <key>NSClassesValues</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>217</integer>
+                               <integer>184</integer>
                        </dict>
                        <key>NSConnections</key>
                        <dict>
                        <key>NSNamesKeys</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>202</integer>
+                               <integer>171</integer>
                        </dict>
                        <key>NSNamesValues</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>203</integer>
+                               <integer>172</integer>
                        </dict>
                        <key>NSNextOid</key>
-                       <integer>2596</integer>
+                       <integer>2610</integer>
                        <key>NSObjectsKeys</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>199</integer>
+                               <integer>168</integer>
                        </dict>
                        <key>NSObjectsValues</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>201</integer>
+                               <integer>170</integer>
                        </dict>
                        <key>NSOidsKeys</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>218</integer>
+                               <integer>185</integer>
                        </dict>
                        <key>NSOidsValues</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>219</integer>
+                               <integer>186</integer>
                        </dict>
                        <key>NSRoot</key>
                        <dict>
                        <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>67</integer>
+                               <integer>65</integer>
                        </dict>
                        <key>NS.objects</key>
                        <array>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>74</integer>
-                               </dict>
-                               <dict>
-                                       <key>CF$UID</key>
-                                       <integer>150</integer>
-                               </dict>
-                               <dict>
-                                       <key>CF$UID</key>
-                                       <integer>152</integer>
+                                       <integer>72</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>154</integer>
-                               </dict>
-                               <dict>
-                                       <key>CF$UID</key>
-                                       <integer>156</integer>
-                               </dict>
-                               <dict>
-                                       <key>CF$UID</key>
-                                       <integer>158</integer>
-                               </dict>
-                               <dict>
-                                       <key>CF$UID</key>
-                                       <integer>160</integer>
-                               </dict>
-                               <dict>
-                                       <key>CF$UID</key>
-                                       <integer>162</integer>
+                                       <integer>131</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>165</integer>
+                                       <integer>133</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>167</integer>
+                                       <integer>135</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>169</integer>
+                                       <integer>137</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>171</integer>
+                                       <integer>139</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>186</integer>
+                                       <integer>141</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>187</integer>
+                                       <integer>144</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>189</integer>
+                                       <integer>146</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>191</integer>
+                                       <integer>148</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>193</integer>
+                                       <integer>163</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>195</integer>
+                                       <integer>164</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>197</integer>
+                                       <integer>166</integer>
                                </dict>
                        </array>
                </dict>
                        <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>73</integer>
+                               <integer>71</integer>
                        </dict>
                        <key>NSDestination</key>
                        <dict>
                        <key>NSLabel</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>72</integer>
+                               <integer>70</integer>
                        </dict>
                        <key>NSSource</key>
                        <dict>
                        <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>71</integer>
+                               <integer>69</integer>
                        </dict>
                        <key>NSClassName</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>69</integer>
+                               <integer>67</integer>
                        </dict>
                        <key>NSExtension</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>70</integer>
+                               <integer>68</integer>
                        </dict>
                        <key>NSFrame</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>68</integer>
+                               <integer>66</integer>
                        </dict>
                        <key>NSNextResponder</key>
                        <dict>
                        <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>179</integer>
+                               <integer>156</integer>
                        </dict>
                        <key>NSFrame</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>178</integer>
+                               <integer>155</integer>
                        </dict>
                        <key>NSNextResponder</key>
                        <dict>
                        <key>NSSubviews</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>177</integer>
+                               <integer>154</integer>
                        </dict>
                </dict>
                <dict>
                        <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>67</integer>
+                               <integer>65</integer>
                        </dict>
                        <key>NS.objects</key>
                        <array>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>52</integer>
+                                       <integer>48</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>57</integer>
+                                       <integer>53</integer>
                                </dict>
                        </array>
                </dict>
                        <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>51</integer>
+                               <integer>47</integer>
                        </dict>
                        <key>NSCell</key>
                        <dict>
                        <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>50</integer>
+                               <integer>46</integer>
                        </dict>
                        <key>NSAlign</key>
                        <integer>0</integer>
                        <integer>130560</integer>
                        <key>NSCellFlags2</key>
                        <integer>33554432</integer>
-                       <key>NSContents</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>46</integer>
-                       </dict>
                        <key>NSScale</key>
                        <integer>0</integer>
                        <key>NSStyle</key>
                        <integer>0</integer>
                </dict>
-               <dict>
-                       <key>$class</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>49</integer>
-                       </dict>
-                       <key>NSClassName</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>47</integer>
-                       </dict>
-                       <key>NSResourceName</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>48</integer>
-                       </dict>
-               </dict>
-               <string>NSImage</string>
-               <string>JobLarge</string>
-               <dict>
-                       <key>$classes</key>
-                       <array>
-                               <string>NSCustomResource</string>
-                               <string>%NSCustomResource</string>
-                               <string>NSObject</string>
-                       </array>
-                       <key>$classname</key>
-                       <string>NSCustomResource</string>
-               </dict>
                <dict>
                        <key>$classes</key>
                        <array>
                        <key>NSCell</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>54</integer>
+                               <integer>50</integer>
                        </dict>
                        <key>NSEnabled</key>
                        <true/>
                        <key>NSFrame</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>53</integer>
+                               <integer>49</integer>
                        </dict>
                        <key>NSNextResponder</key>
                        <dict>
                        <key>NSContents</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>55</integer>
+                               <integer>51</integer>
                        </dict>
                        <key>NSControlView</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>52</integer>
+                               <integer>48</integer>
                        </dict>
                        <key>NSSupport</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>56</integer>
+                               <integer>52</integer>
                        </dict>
                        <key>NSTextColor</key>
                        <dict>
                        <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>66</integer>
+                               <integer>64</integer>
                        </dict>
                        <key>NSCell</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>59</integer>
+                               <integer>55</integer>
                        </dict>
                        <key>NSEnabled</key>
                        <true/>
                        <key>NSFrame</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>58</integer>
+                               <integer>54</integer>
                        </dict>
                        <key>NSNextResponder</key>
                        <dict>
                        <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>65</integer>
+                               <integer>63</integer>
                        </dict>
                        <key>NSAlternateContents</key>
                        <dict>
                        <key>NSAlternateImage</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>62</integer>
+                               <integer>60</integer>
                        </dict>
                        <key>NSButtonFlags</key>
                        <integer>138690815</integer>
                        <key>NSControlView</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>57</integer>
+                               <integer>53</integer>
                        </dict>
                        <key>NSKeyEquivalent</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>64</integer>
+                               <integer>62</integer>
                        </dict>
                        <key>NSNormalImage</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>60</integer>
+                               <integer>56</integer>
                        </dict>
                        <key>NSPeriodicDelay</key>
                        <integer>200</integer>
                        <key>NSSupport</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>56</integer>
+                               <integer>52</integer>
                        </dict>
                </dict>
                <dict>
                        <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>49</integer>
+                               <integer>59</integer>
                        </dict>
                        <key>NSClassName</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>47</integer>
+                               <integer>57</integer>
                        </dict>
                        <key>NSResourceName</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>61</integer>
+                               <integer>58</integer>
                        </dict>
                </dict>
+               <string>NSImage</string>
                <string>Delete</string>
+               <dict>
+                       <key>$classes</key>
+                       <array>
+                               <string>NSCustomResource</string>
+                               <string>%NSCustomResource</string>
+                               <string>NSObject</string>
+                       </array>
+                       <key>$classname</key>
+                       <string>NSCustomResource</string>
+               </dict>
                <dict>
                        <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>49</integer>
+                               <integer>59</integer>
                        </dict>
                        <key>NSClassName</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>47</integer>
+                               <integer>57</integer>
                        </dict>
                        <key>NSResourceName</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>63</integer>
+                               <integer>61</integer>
                        </dict>
                </dict>
                <string>DeletePressed</string>
                        <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>73</integer>
+                               <integer>71</integer>
                        </dict>
                        <key>NSDestination</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>75</integer>
+                               <integer>73</integer>
                        </dict>
                        <key>NSLabel</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>149</integer>
+                               <integer>130</integer>
                        </dict>
                        <key>NSSource</key>
                        <dict>
                        <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>71</integer>
+                               <integer>69</integer>
                        </dict>
                        <key>NSClassName</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>69</integer>
+                               <integer>67</integer>
                        </dict>
                        <key>NSExtension</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>70</integer>
+                               <integer>68</integer>
                        </dict>
                        <key>NSFrameSize</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>148</integer>
+                               <integer>129</integer>
                        </dict>
                        <key>NSNextResponder</key>
                        <dict>
                        <key>NSSubviews</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>76</integer>
+                               <integer>74</integer>
                        </dict>
                        <key>NSSuperview</key>
                        <dict>
                        <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>67</integer>
+                               <integer>65</integer>
                        </dict>
                        <key>NS.objects</key>
                        <array>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>77</integer>
-                               </dict>
-                               <dict>
-                                       <key>CF$UID</key>
-                                       <integer>82</integer>
-                               </dict>
-                               <dict>
-                                       <key>CF$UID</key>
-                                       <integer>131</integer>
-                               </dict>
-                               <dict>
-                                       <key>CF$UID</key>
-                                       <integer>138</integer>
+                                       <integer>75</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>144</integer>
+                                       <integer>80</integer>
                                </dict>
                        </array>
                </dict>
                        <key>NSCell</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>79</integer>
+                               <integer>77</integer>
                        </dict>
                        <key>NSEnabled</key>
                        <true/>
                        <key>NSFrame</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>78</integer>
+                               <integer>76</integer>
                        </dict>
                        <key>NSNextResponder</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>75</integer>
+                               <integer>73</integer>
                        </dict>
                        <key>NSSuperview</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>75</integer>
+                               <integer>73</integer>
                        </dict>
                        <key>NSvFlags</key>
                        <integer>264</integer>
                </dict>
-               <string>{{17, 227}, {231, 14}}</string>
+               <string>{{17, 227}, {540, 14}}</string>
                <dict>
                        <key>$class</key>
                        <dict>
                        <key>NSContents</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>80</integer>
+                               <integer>78</integer>
                        </dict>
                        <key>NSControlView</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>77</integer>
+                               <integer>75</integer>
                        </dict>
                        <key>NSSupport</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>81</integer>
+                               <integer>79</integer>
                        </dict>
                        <key>NSTextColor</key>
                        <dict>
                        <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>130</integer>
+                               <integer>128</integer>
                        </dict>
                        <key>NSContentView</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>84</integer>
+                               <integer>82</integer>
                        </dict>
                        <key>NSFrame</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>129</integer>
+                               <integer>127</integer>
                        </dict>
                        <key>NSHScroller</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>126</integer>
+                               <integer>124</integer>
                        </dict>
                        <key>NSNextKeyView</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>84</integer>
+                               <integer>82</integer>
                        </dict>
                        <key>NSNextResponder</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>75</integer>
+                               <integer>73</integer>
                        </dict>
                        <key>NSScrollAmts</key>
                        <data>
                        <key>NSSubviews</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>83</integer>
+                               <integer>81</integer>
                        </dict>
                        <key>NSSuperview</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>75</integer>
+                               <integer>73</integer>
                        </dict>
                        <key>NSVScroller</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>122</integer>
+                               <integer>120</integer>
                        </dict>
                        <key>NSsFlags</key>
                        <integer>18</integer>
                        <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>67</integer>
+                               <integer>65</integer>
                        </dict>
                        <key>NS.objects</key>
                        <array>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>84</integer>
+                                       <integer>82</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>122</integer>
+                                       <integer>120</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>126</integer>
+                                       <integer>124</integer>
                                </dict>
                        </array>
                </dict>
                        <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>121</integer>
+                               <integer>119</integer>
                        </dict>
                        <key>NSBGColor</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>109</integer>
+                               <integer>107</integer>
                        </dict>
                        <key>NSDocView</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>86</integer>
+                               <integer>84</integer>
                        </dict>
                        <key>NSFrame</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>120</integer>
+                               <integer>118</integer>
                        </dict>
                        <key>NSNextKeyView</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>86</integer>
+                               <integer>84</integer>
                        </dict>
                        <key>NSNextResponder</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>82</integer>
+                               <integer>80</integer>
                        </dict>
                        <key>NSSubviews</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>85</integer>
+                               <integer>83</integer>
                        </dict>
                        <key>NSSuperview</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>82</integer>
+                               <integer>80</integer>
                        </dict>
                        <key>NScvFlags</key>
                        <integer>4</integer>
                        <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>67</integer>
+                               <integer>65</integer>
                        </dict>
                        <key>NS.objects</key>
                        <array>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>86</integer>
+                                       <integer>84</integer>
                                </dict>
                        </array>
                </dict>
                        <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>119</integer>
+                               <integer>117</integer>
                        </dict>
                        <key>NSBackgroundColor</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>97</integer>
+                               <integer>95</integer>
                        </dict>
                        <key>NSColumnAutoresizingStyle</key>
                        <integer>1</integer>
                        <key>NSCornerView</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>88</integer>
+                               <integer>86</integer>
                        </dict>
                        <key>NSDraggingSourceMaskForLocal</key>
                        <integer>15</integer>
                        <key>NSFrameSize</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>87</integer>
+                               <integer>85</integer>
                        </dict>
                        <key>NSGridColor</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>116</integer>
+                               <integer>114</integer>
                        </dict>
                        <key>NSIntercellSpacingHeight</key>
                        <real>2</real>
                        <key>NSNextResponder</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>84</integer>
+                               <integer>82</integer>
                        </dict>
                        <key>NSRowHeight</key>
                        <real>17</real>
                        <key>NSSuperview</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>84</integer>
+                               <integer>82</integer>
                        </dict>
                        <key>NSTableColumns</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>91</integer>
+                               <integer>89</integer>
                        </dict>
                        <key>NSTvFlags</key>
                        <integer>314605568</integer>
                        <key>NSvFlags</key>
                        <integer>4352</integer>
                </dict>
-               <string>{517, 190}</string>
+               <string>{518, 190}</string>
                <dict>
                        <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>90</integer>
+                               <integer>88</integer>
                        </dict>
                        <key>NSFrame</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>89</integer>
+                               <integer>87</integer>
                        </dict>
                        <key>NSNextResponder</key>
                        <dict>
                        <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>67</integer>
+                               <integer>65</integer>
                        </dict>
                        <key>NS.objects</key>
                        <array>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>92</integer>
+                                       <integer>90</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>103</integer>
+                                       <integer>101</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>111</integer>
+                                       <integer>109</integer>
                                </dict>
                        </array>
                </dict>
                        <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>102</integer>
+                               <integer>100</integer>
                        </dict>
                        <key>NSDataCell</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>101</integer>
+                               <integer>99</integer>
                        </dict>
                        <key>NSHeaderCell</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>94</integer>
+                               <integer>92</integer>
                        </dict>
                        <key>NSIdentifier</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>93</integer>
+                               <integer>91</integer>
                        </dict>
                        <key>NSIsEditable</key>
                        <true/>
                        <key>NSTableView</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>86</integer>
+                               <integer>84</integer>
                        </dict>
                        <key>NSWidth</key>
                        <real>20</real>
                        <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>100</integer>
+                               <integer>98</integer>
                        </dict>
                        <key>NSBackgroundColor</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>95</integer>
+                               <integer>93</integer>
                        </dict>
                        <key>NSCellFlags</key>
                        <integer>67239424</integer>
                        <key>NSSupport</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>81</integer>
+                               <integer>79</integer>
                        </dict>
                        <key>NSTextColor</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>98</integer>
+                               <integer>96</integer>
                        </dict>
                </dict>
                <dict>
                        <key>NSColor</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>97</integer>
+                               <integer>95</integer>
                        </dict>
                        <key>NSColorName</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>96</integer>
+                               <integer>94</integer>
                        </dict>
                        <key>NSColorSpace</key>
                        <integer>6</integer>
                        <key>NSColorName</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>99</integer>
+                               <integer>97</integer>
                        </dict>
                        <key>NSColorSpace</key>
                        <integer>6</integer>
                        <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>50</integer>
+                               <integer>46</integer>
                        </dict>
                        <key>NSAlign</key>
                        <integer>1</integer>
                        <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>102</integer>
+                               <integer>100</integer>
                        </dict>
                        <key>NSDataCell</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>108</integer>
+                               <integer>106</integer>
                        </dict>
                        <key>NSHeaderCell</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>105</integer>
+                               <integer>103</integer>
                        </dict>
                        <key>NSIdentifier</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>104</integer>
+                               <integer>102</integer>
                        </dict>
                        <key>NSIsResizeable</key>
                        <true/>
                        <key>NSTableView</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>86</integer>
+                               <integer>84</integer>
                        </dict>
                        <key>NSWidth</key>
-                       <real>468</real>
+                       <real>469</real>
                </dict>
                <string>desc</string>
                <dict>
                        <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>100</integer>
+                               <integer>98</integer>
                        </dict>
                        <key>NSBackgroundColor</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>107</integer>
+                               <integer>105</integer>
                        </dict>
                        <key>NSCellFlags</key>
                        <integer>75628032</integer>
                        <key>NSContents</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>106</integer>
+                               <integer>104</integer>
                        </dict>
                        <key>NSSupport</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>81</integer>
+                               <integer>79</integer>
                        </dict>
                        <key>NSTextColor</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>98</integer>
+                               <integer>96</integer>
                        </dict>
                </dict>
                <string>Job</string>
                        <key>NSBackgroundColor</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>109</integer>
+                               <integer>107</integer>
                        </dict>
                        <key>NSCellFlags</key>
                        <integer>337772096</integer>
                        <key>NSControlView</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>86</integer>
+                               <integer>84</integer>
                        </dict>
                        <key>NSSupport</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>81</integer>
+                               <integer>52</integer>
                        </dict>
                        <key>NSTextColor</key>
                        <dict>
                        <key>NSColorName</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>110</integer>
+                               <integer>108</integer>
                        </dict>
                        <key>NSColorSpace</key>
                        <integer>6</integer>
                        <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>102</integer>
+                               <integer>100</integer>
                        </dict>
                        <key>NSDataCell</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>114</integer>
+                               <integer>112</integer>
                        </dict>
                        <key>NSHeaderCell</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>113</integer>
+                               <integer>111</integer>
                        </dict>
                        <key>NSIdentifier</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>112</integer>
+                               <integer>110</integer>
                        </dict>
                        <key>NSMaxWidth</key>
-                       <real>1000</real>
+                       <real>20</real>
                        <key>NSMinWidth</key>
-                       <real>4</real>
+                       <real>8</real>
                        <key>NSTableView</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>86</integer>
+                               <integer>84</integer>
                        </dict>
                        <key>NSWidth</key>
                        <real>20</real>
                        <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>100</integer>
+                               <integer>98</integer>
                        </dict>
                        <key>NSBackgroundColor</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>95</integer>
+                               <integer>93</integer>
                        </dict>
                        <key>NSCellFlags</key>
                        <integer>67239424</integer>
                        <key>NSSupport</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>81</integer>
+                               <integer>79</integer>
                        </dict>
                        <key>NSTextColor</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>98</integer>
+                               <integer>96</integer>
                        </dict>
                </dict>
                <dict>
                        <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>65</integer>
+                               <integer>63</integer>
                        </dict>
                        <key>NSAlternateContents</key>
                        <dict>
                        <key>NSControlView</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>86</integer>
+                               <integer>84</integer>
                        </dict>
                        <key>NSKeyEquivalent</key>
                        <dict>
                        <key>NSNormalImage</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>60</integer>
+                               <integer>56</integer>
                        </dict>
                        <key>NSPeriodicDelay</key>
                        <integer>400</integer>
                        <key>NSSupport</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>115</integer>
+                               <integer>113</integer>
                        </dict>
                </dict>
                <dict>
                        <key>NSColor</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>118</integer>
+                               <integer>116</integer>
                        </dict>
                        <key>NSColorName</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>117</integer>
+                               <integer>115</integer>
                        </dict>
                        <key>NSColorSpace</key>
                        <integer>6</integer>
                        <key>$classname</key>
                        <string>NSTableView</string>
                </dict>
-               <string>{{1, 1}, {517, 190}}</string>
+               <string>{{1, 1}, {518, 190}}</string>
                <dict>
                        <key>$classes</key>
                        <array>
                        <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>125</integer>
+                               <integer>123</integer>
                        </dict>
                        <key>NSAction</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>124</integer>
+                               <integer>122</integer>
                        </dict>
                        <key>NSFrame</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>123</integer>
+                               <integer>121</integer>
                        </dict>
                        <key>NSNextResponder</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>82</integer>
+                               <integer>80</integer>
                        </dict>
                        <key>NSPercent</key>
-                       <real>0.93596059083938599</real>
+                       <real>0.95263159275054932</real>
                        <key>NSSuperview</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>82</integer>
+                               <integer>80</integer>
                        </dict>
                        <key>NSTarget</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>82</integer>
+                               <integer>80</integer>
                        </dict>
                        <key>NSvFlags</key>
                        <integer>256</integer>
                </dict>
-               <string>{{518, 1}, {15, 190}}</string>
+               <string>{{519, 1}, {15, 190}}</string>
                <string>_doScroller:</string>
                <dict>
                        <key>$classes</key>
                        <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>125</integer>
+                               <integer>123</integer>
                        </dict>
                        <key>NSAction</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>128</integer>
+                               <integer>126</integer>
                        </dict>
                        <key>NSFrame</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>127</integer>
+                               <integer>125</integer>
                        </dict>
                        <key>NSNextResponder</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>82</integer>
+                               <integer>80</integer>
                        </dict>
                        <key>NSPercent</key>
                        <real>0.88602942228317261</real>
                        <key>NSSuperview</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>82</integer>
+                               <integer>80</integer>
                        </dict>
                        <key>NSTarget</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>82</integer>
+                               <integer>80</integer>
                        </dict>
                        <key>NSsFlags</key>
                        <integer>1</integer>
                </dict>
                <string>{{-100, -100}, {482, 11}}</string>
                <string>_doScroller:</string>
-               <string>{{20, 20}, {534, 192}}</string>
+               <string>{{20, 20}, {535, 192}}</string>
                <dict>
                        <key>$classes</key>
                        <array>
                        <key>$classname</key>
                        <string>NSScrollView</string>
                </dict>
+               <string>{574, 257}</string>
+               <string>fQueuePane</string>
                <dict>
                        <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>66</integer>
+                               <integer>71</integer>
                        </dict>
-                       <key>NSCell</key>
+                       <key>NSDestination</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>133</integer>
+                               <integer>14</integer>
                        </dict>
-                       <key>NSEnabled</key>
-                       <true/>
-                       <key>NSFrame</key>
+                       <key>NSLabel</key>
                        <dict>
                                <key>CF$UID</key>
                                <integer>132</integer>
                        </dict>
-                       <key>NSNextResponder</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>75</integer>
-                       </dict>
-                       <key>NSSuperview</key>
+                       <key>NSSource</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>75</integer>
+                               <integer>2</integer>
                        </dict>
-                       <key>NSvFlags</key>
-                       <integer>-2147483383</integer>
                </dict>
-               <string>{{471, 226}, {85, 16}}</string>
+               <string>fProgressBar</string>
                <dict>
                        <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>65</integer>
-                       </dict>
-                       <key>NSAlternateContents</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>22</integer>
+                               <integer>71</integer>
                        </dict>
-                       <key>NSAlternateImage</key>
+                       <key>NSDestination</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>135</integer>
+                               <integer>75</integer>
                        </dict>
-                       <key>NSButtonFlags</key>
-                       <integer>1211912703</integer>
-                       <key>NSButtonFlags2</key>
-                       <integer>2</integer>
-                       <key>NSCellFlags</key>
-                       <integer>67239424</integer>
-                       <key>NSCellFlags2</key>
-                       <integer>131072</integer>
-                       <key>NSContents</key>
+                       <key>NSLabel</key>
                        <dict>
                                <key>CF$UID</key>
                                <integer>134</integer>
                        </dict>
-                       <key>NSControlView</key>
+                       <key>NSSource</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>131</integer>
+                               <integer>2</integer>
                        </dict>
-                       <key>NSKeyEquivalent</key>
+               </dict>
+               <string>fQueueCountField</string>
+               <dict>
+                       <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>22</integer>
+                               <integer>71</integer>
                        </dict>
-                       <key>NSPeriodicDelay</key>
-                       <integer>200</integer>
-                       <key>NSPeriodicInterval</key>
-                       <integer>25</integer>
-                       <key>NSSupport</key>
+                       <key>NSDestination</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>81</integer>
+                               <integer>84</integer>
                        </dict>
-               </dict>
-               <string>Show Detail</string>
-               <dict>
-                       <key>$class</key>
+                       <key>NSLabel</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>137</integer>
+                               <integer>136</integer>
                        </dict>
-                       <key>NSImageName</key>
+                       <key>NSSource</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>136</integer>
+                               <integer>2</integer>
                        </dict>
                </dict>
-               <string>NSSwitch</string>
-               <dict>
-                       <key>$classes</key>
-                       <array>
-                               <string>NSButtonImageSource</string>
-                               <string>NSObject</string>
-                       </array>
-                       <key>$classname</key>
-                       <string>NSButtonImageSource</string>
-               </dict>
+               <string>fTaskView</string>
                <dict>
                        <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>66</integer>
-                       </dict>
-                       <key>NSCell</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>140</integer>
+                               <integer>71</integer>
                        </dict>
-                       <key>NSEnabled</key>
-                       <true/>
-                       <key>NSFrame</key>
+                       <key>NSDestination</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>139</integer>
+                               <integer>19</integer>
                        </dict>
-                       <key>NSNextResponder</key>
+                       <key>NSLabel</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>75</integer>
+                               <integer>138</integer>
                        </dict>
-                       <key>NSSuperview</key>
+                       <key>NSSource</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>75</integer>
+                               <integer>2</integer>
                        </dict>
-                       <key>NSvFlags</key>
-                       <integer>-2147483380</integer>
                </dict>
-               <string>{{20, 220}, {34, 32}}</string>
+               <string>fProgressTextField</string>
                <dict>
                        <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>65</integer>
+                               <integer>71</integer>
                        </dict>
-                       <key>NSAlternateContents</key>
+                       <key>NSDestination</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>22</integer>
+                               <integer>48</integer>
                        </dict>
-                       <key>NSButtonFlags</key>
-                       <integer>138690815</integer>
-                       <key>NSButtonFlags2</key>
-                       <integer>34</integer>
-                       <key>NSCellFlags</key>
-                       <integer>67239424</integer>
-                       <key>NSCellFlags2</key>
-                       <integer>134217728</integer>
-                       <key>NSContents</key>
+                       <key>NSLabel</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>22</integer>
+                               <integer>140</integer>
                        </dict>
-                       <key>NSControlView</key>
+                       <key>NSSource</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>138</integer>
+                               <integer>2</integer>
                        </dict>
-                       <key>NSKeyEquivalent</key>
+               </dict>
+               <string>fJobDescTextField</string>
+               <dict>
+                       <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
                                <integer>143</integer>
                        </dict>
-                       <key>NSNormalImage</key>
+                       <key>NSDestination</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>141</integer>
+                               <integer>2</integer>
                        </dict>
-                       <key>NSPeriodicDelay</key>
-                       <integer>200</integer>
-                       <key>NSPeriodicInterval</key>
-                       <integer>25</integer>
-                       <key>NSSupport</key>
+                       <key>NSLabel</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>56</integer>
+                               <integer>142</integer>
+                       </dict>
+                       <key>NSSource</key>
+                       <dict>
+                               <key>CF$UID</key>
+                               <integer>112</integer>
                        </dict>
                </dict>
+               <string>removeSelectedJob:</string>
+               <dict>
+                       <key>$classes</key>
+                       <array>
+                               <string>NSNibControlConnector</string>
+                               <string>NSNibConnector</string>
+                               <string>NSObject</string>
+                       </array>
+                       <key>$classname</key>
+                       <string>NSNibControlConnector</string>
+               </dict>
                <dict>
                        <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>49</integer>
+                               <integer>71</integer>
                        </dict>
-                       <key>NSClassName</key>
+                       <key>NSDestination</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>47</integer>
+                               <integer>2</integer>
                        </dict>
-                       <key>NSResourceName</key>
+                       <key>NSLabel</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>142</integer>
+                               <integer>145</integer>
                        </dict>
-               </dict>
-               <string>Play</string>
-               <dict>
-                       <key>$class</key>
+                       <key>NSSource</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>6</integer>
-                       </dict>
-                       <key>NS.string</key>
-                       <string></string>
-               </dict>
-               <dict>
-                       <key>$class</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>66</integer>
-                       </dict>
-                       <key>NSCell</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>146</integer>
-                       </dict>
-                       <key>NSEnabled</key>
-                       <true/>
-                       <key>NSFrame</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>145</integer>
-                       </dict>
-                       <key>NSNextResponder</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>75</integer>
-                       </dict>
-                       <key>NSSuperview</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>75</integer>
-                       </dict>
-                       <key>NSvFlags</key>
-                       <integer>-2147483383</integer>
-               </dict>
-               <string>{{370, 226}, {98, 16}}</string>
-               <dict>
-                       <key>$class</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>65</integer>
-                       </dict>
-                       <key>NSAlternateContents</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>22</integer>
-                       </dict>
-                       <key>NSAlternateImage</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>135</integer>
-                       </dict>
-                       <key>NSButtonFlags</key>
-                       <integer>1211912703</integer>
-                       <key>NSButtonFlags2</key>
-                       <integer>2</integer>
-                       <key>NSCellFlags</key>
-                       <integer>-2080244224</integer>
-                       <key>NSCellFlags2</key>
-                       <integer>131072</integer>
-                       <key>NSContents</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>147</integer>
-                       </dict>
-                       <key>NSControlView</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>144</integer>
-                       </dict>
-                       <key>NSKeyEquivalent</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>22</integer>
-                       </dict>
-                       <key>NSPeriodicDelay</key>
-                       <integer>200</integer>
-                       <key>NSPeriodicInterval</key>
-                       <integer>25</integer>
-                       <key>NSSupport</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>81</integer>
-                       </dict>
-               </dict>
-               <string>Show Encodes</string>
-               <string>{574, 257}</string>
-               <string>fQueuePane</string>
-               <dict>
-                       <key>$class</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>73</integer>
-                       </dict>
-                       <key>NSDestination</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>14</integer>
-                       </dict>
-                       <key>NSLabel</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>151</integer>
-                       </dict>
-                       <key>NSSource</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>2</integer>
-                       </dict>
-               </dict>
-               <string>fProgressBar</string>
-               <dict>
-                       <key>$class</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>73</integer>
-                       </dict>
-                       <key>NSDestination</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>131</integer>
-                       </dict>
-                       <key>NSLabel</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>153</integer>
-                       </dict>
-                       <key>NSSource</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>2</integer>
-                       </dict>
-               </dict>
-               <string>fDetailCheckbox</string>
-               <dict>
-                       <key>$class</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>73</integer>
-                       </dict>
-                       <key>NSDestination</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>77</integer>
-                       </dict>
-                       <key>NSLabel</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>155</integer>
-                       </dict>
-                       <key>NSSource</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>2</integer>
-                       </dict>
-               </dict>
-               <string>fQueueCountField</string>
-               <dict>
-                       <key>$class</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>73</integer>
-                       </dict>
-                       <key>NSDestination</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>86</integer>
-                       </dict>
-                       <key>NSLabel</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>157</integer>
-                       </dict>
-                       <key>NSSource</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>2</integer>
-                       </dict>
-               </dict>
-               <string>fTaskView</string>
-               <dict>
-                       <key>$class</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>73</integer>
-                       </dict>
-                       <key>NSDestination</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>19</integer>
-                       </dict>
-                       <key>NSLabel</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>159</integer>
-                       </dict>
-                       <key>NSSource</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>2</integer>
-                       </dict>
-               </dict>
-               <string>fProgressTextField</string>
-               <dict>
-                       <key>$class</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>73</integer>
-                       </dict>
-                       <key>NSDestination</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>52</integer>
-                       </dict>
-                       <key>NSLabel</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>161</integer>
-                       </dict>
-                       <key>NSSource</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>2</integer>
-                       </dict>
-               </dict>
-               <string>fJobDescTextField</string>
-               <dict>
-                       <key>$class</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>164</integer>
-                       </dict>
-                       <key>NSDestination</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>2</integer>
-                       </dict>
-                       <key>NSLabel</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>163</integer>
-                       </dict>
-                       <key>NSSource</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>114</integer>
-                       </dict>
-               </dict>
-               <string>removeSelectedJob:</string>
-               <dict>
-                       <key>$classes</key>
-                       <array>
-                               <string>NSNibControlConnector</string>
-                               <string>NSNibConnector</string>
-                               <string>NSObject</string>
-                       </array>
-                       <key>$classname</key>
-                       <string>NSNibControlConnector</string>
-               </dict>
-               <dict>
-                       <key>$class</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>73</integer>
-                       </dict>
-                       <key>NSDestination</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>2</integer>
-                       </dict>
-                       <key>NSLabel</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>166</integer>
-                       </dict>
-                       <key>NSSource</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>86</integer>
+                               <integer>84</integer>
                        </dict>
                </dict>
                <string>dataSource</string>
                        <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>73</integer>
+                               <integer>71</integer>
                        </dict>
                        <key>NSDestination</key>
                        <dict>
                        <key>NSLabel</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>168</integer>
+                               <integer>147</integer>
                        </dict>
                        <key>NSSource</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>86</integer>
+                               <integer>84</integer>
                        </dict>
                </dict>
                <string>delegate</string>
                        <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>164</integer>
-                       </dict>
-                       <key>NSDestination</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>2</integer>
-                       </dict>
-                       <key>NSLabel</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>170</integer>
-                       </dict>
-                       <key>NSSource</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>131</integer>
-                       </dict>
-               </dict>
-               <string>detailChanged:</string>
-               <dict>
-                       <key>$class</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>73</integer>
+                               <integer>71</integer>
                        </dict>
                        <key>NSDestination</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>172</integer>
+                               <integer>149</integer>
                        </dict>
                        <key>NSLabel</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>185</integer>
+                               <integer>162</integer>
                        </dict>
                        <key>NSSource</key>
                        <dict>
                        <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>184</integer>
+                               <integer>161</integer>
                        </dict>
                        <key>NSFrameAutosaveName</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>183</integer>
+                               <integer>160</integer>
                        </dict>
                        <key>NSMaxSize</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>182</integer>
+                               <integer>159</integer>
                        </dict>
                        <key>NSMinSize</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>181</integer>
+                               <integer>158</integer>
                        </dict>
                        <key>NSScreenRect</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>180</integer>
+                               <integer>157</integer>
                        </dict>
                        <key>NSViewClass</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>176</integer>
+                               <integer>153</integer>
                        </dict>
                        <key>NSWTFlags</key>
                        <integer>1886912512</integer>
                        <key>NSWindowClass</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>175</integer>
+                               <integer>152</integer>
                        </dict>
                        <key>NSWindowRect</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>173</integer>
+                               <integer>150</integer>
                        </dict>
                        <key>NSWindowStyleMask</key>
                        <integer>4110</integer>
                        <key>NSWindowTitle</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>174</integer>
+                               <integer>151</integer>
                        </dict>
                        <key>NSWindowView</key>
                        <dict>
                                <integer>12</integer>
                        </dict>
                </dict>
-               <string>{{420, 319}, {574, 433}}</string>
+               <string>{{176, 464}, {574, 433}}</string>
                <string>Queue - HandBrake</string>
-               <dict>
-                       <key>$class</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>6</integer>
-                       </dict>
-                       <key>NS.string</key>
-                       <string>NSWindow</string>
-               </dict>
+               <string>NSWindow</string>
                <dict>
                        <key>$class</key>
                        <dict>
                        <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>67</integer>
+                               <integer>65</integer>
                        </dict>
                        <key>NS.objects</key>
                        <array>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>75</integer>
+                                       <integer>73</integer>
                                </dict>
                        </array>
                </dict>
                        <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>73</integer>
-                       </dict>
-                       <key>NSDestination</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>2</integer>
-                       </dict>
-                       <key>NSLabel</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>168</integer>
-                       </dict>
-                       <key>NSSource</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>172</integer>
-                       </dict>
-               </dict>
-               <dict>
-                       <key>$class</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>73</integer>
-                       </dict>
-                       <key>NSDestination</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>138</integer>
-                       </dict>
-                       <key>NSLabel</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>188</integer>
-                       </dict>
-                       <key>NSSource</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>2</integer>
-                       </dict>
-               </dict>
-               <string>fStartPauseButton</string>
-               <dict>
-                       <key>$class</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>164</integer>
+                               <integer>71</integer>
                        </dict>
                        <key>NSDestination</key>
                        <dict>
                        <key>NSLabel</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>190</integer>
+                               <integer>147</integer>
                        </dict>
                        <key>NSSource</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>138</integer>
+                               <integer>149</integer>
                        </dict>
                </dict>
-               <string>toggleStartPause:</string>
                <dict>
                        <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>164</integer>
+                               <integer>143</integer>
                        </dict>
                        <key>NSDestination</key>
                        <dict>
                        <key>NSLabel</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>192</integer>
+                               <integer>165</integer>
                        </dict>
                        <key>NSSource</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>57</integer>
+                               <integer>53</integer>
                        </dict>
                </dict>
                <string>cancelCurrentJob:</string>
                        <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>164</integer>
-                       </dict>
-                       <key>NSDestination</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>2</integer>
-                       </dict>
-                       <key>NSLabel</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>194</integer>
-                       </dict>
-                       <key>NSSource</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>144</integer>
-                       </dict>
-               </dict>
-               <string>jobGroupsChanged:</string>
-               <dict>
-                       <key>$class</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>73</integer>
-                       </dict>
-                       <key>NSDestination</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>144</integer>
-                       </dict>
-                       <key>NSLabel</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>196</integer>
-                       </dict>
-                       <key>NSSource</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>2</integer>
-                       </dict>
-               </dict>
-               <string>fJobGroupsCheckbox</string>
-               <dict>
-                       <key>$class</key>
-                       <dict>
-                               <key>CF$UID</key>
-                               <integer>73</integer>
+                               <integer>71</integer>
                        </dict>
                        <key>NSDestination</key>
                        <dict>
                        <key>NSLabel</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>198</integer>
+                               <integer>167</integer>
                        </dict>
                        <key>NSSource</key>
                        <dict>
                        <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>200</integer>
+                               <integer>169</integer>
                        </dict>
                        <key>NS.objects</key>
                        <array>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>75</integer>
+                                       <integer>112</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>82</integer>
+                                       <integer>53</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>172</integer>
+                                       <integer>90</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>77</integer>
+                                       <integer>84</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>131</integer>
+                                       <integer>149</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>92</integer>
+                                       <integer>19</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>57</integer>
+                                       <integer>12</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>103</integer>
+                                       <integer>75</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>138</integer>
+                                       <integer>73</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>111</integer>
+                                       <integer>14</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>12</integer>
+                                       <integer>80</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>144</integer>
+                                       <integer>48</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>114</integer>
-                               </dict>
-                               <dict>
-                                       <key>CF$UID</key>
-                                       <integer>52</integer>
-                               </dict>
-                               <dict>
-                                       <key>CF$UID</key>
-                                       <integer>14</integer>
-                               </dict>
-                               <dict>
-                                       <key>CF$UID</key>
-                                       <integer>86</integer>
+                                       <integer>99</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>19</integer>
+                                       <integer>109</integer>
                                </dict>
                        </array>
                </dict>
                        <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>200</integer>
+                               <integer>169</integer>
                        </dict>
                        <key>NS.objects</key>
                        <array>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>12</integer>
-                               </dict>
-                               <dict>
-                                       <key>CF$UID</key>
-                                       <integer>75</integer>
-                               </dict>
-                               <dict>
-                                       <key>CF$UID</key>
-                                       <integer>2</integer>
-                               </dict>
-                               <dict>
-                                       <key>CF$UID</key>
-                                       <integer>75</integer>
+                                       <integer>109</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>75</integer>
+                                       <integer>11</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>86</integer>
+                                       <integer>84</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>11</integer>
+                                       <integer>80</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>86</integer>
+                                       <integer>2</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>75</integer>
+                                       <integer>149</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>86</integer>
+                                       <integer>73</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>172</integer>
+                                       <integer>11</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>75</integer>
+                                       <integer>12</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>92</integer>
+                                       <integer>11</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>111</integer>
+                                       <integer>73</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>11</integer>
+                                       <integer>84</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>82</integer>
+                                       <integer>90</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>11</integer>
+                                       <integer>84</integer>
                                </dict>
                        </array>
                </dict>
                        <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>200</integer>
+                               <integer>169</integer>
                        </dict>
                        <key>NS.objects</key>
                        <array>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>131</integer>
-                               </dict>
-                               <dict>
-                                       <key>CF$UID</key>
-                                       <integer>86</integer>
-                               </dict>
-                               <dict>
-                                       <key>CF$UID</key>
-                                       <integer>82</integer>
-                               </dict>
-                               <dict>
-                                       <key>CF$UID</key>
-                                       <integer>138</integer>
+                                       <integer>149</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>52</integer>
+                                       <integer>48</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>103</integer>
+                                       <integer>2</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>144</integer>
+                                       <integer>84</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>57</integer>
+                                       <integer>80</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>172</integer>
+                                       <integer>101</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>2</integer>
+                                       <integer>75</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>77</integer>
+                                       <integer>53</integer>
                                </dict>
                        </array>
                </dict>
                        <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>200</integer>
+                               <integer>169</integer>
                        </dict>
                        <key>NS.objects</key>
                        <array>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>204</integer>
-                               </dict>
-                               <dict>
-                                       <key>CF$UID</key>
-                                       <integer>205</integer>
-                               </dict>
-                               <dict>
-                                       <key>CF$UID</key>
-                                       <integer>206</integer>
-                               </dict>
-                               <dict>
-                                       <key>CF$UID</key>
-                                       <integer>207</integer>
+                                       <integer>173</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>208</integer>
+                                       <integer>174</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>209</integer>
+                                       <integer>175</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>210</integer>
+                                       <integer>176</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>211</integer>
+                                       <integer>177</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>212</integer>
+                                       <integer>178</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>207</integer>
+                                       <integer>179</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>213</integer>
+                                       <integer>180</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>214</integer>
+                                       <integer>181</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>215</integer>
+                                       <integer>182</integer>
                                </dict>
                        </array>
                </dict>
-               <string>NSButton4</string>
-               <string>NSTableView</string>
-               <string>NSScrollView1</string>
-               <string>NSButton</string>
-               <string>NSTextField221</string>
-               <string>NSTableColumn</string>
-               <string>1</string>
-               <string>NSButton41</string>
-               <string>NSTextField1</string>
                <string>Window</string>
+               <string>NSTextField221</string>
                <dict>
                        <key>$class</key>
                        <dict>
                        <key>NS.string</key>
                        <string>File's Owner</string>
                </dict>
+               <string>1</string>
+               <string>NSTableView</string>
+               <string>NSTextField1</string>
+               <string>NSScrollView1</string>
+               <string>NSTableColumn</string>
                <string>NSTextField2</string>
+               <string>NSButton</string>
                <dict>
                        <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>200</integer>
+                               <integer>169</integer>
                        </dict>
                        <key>NS.objects</key>
                        <array/>
                        <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>200</integer>
+                               <integer>169</integer>
                        </dict>
                        <key>NS.objects</key>
                        <array/>
                        <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>200</integer>
+                               <integer>169</integer>
                        </dict>
                        <key>NS.objects</key>
                        <array>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>12</integer>
-                               </dict>
-                               <dict>
-                                       <key>CF$UID</key>
-                                       <integer>197</integer>
-                               </dict>
-                               <dict>
-                                       <key>CF$UID</key>
-                                       <integer>19</integer>
-                               </dict>
-                               <dict>
-                                       <key>CF$UID</key>
-                                       <integer>160</integer>
-                               </dict>
-                               <dict>
-                                       <key>CF$UID</key>
-                                       <integer>172</integer>
-                               </dict>
-                               <dict>
-                                       <key>CF$UID</key>
-                                       <integer>57</integer>
-                               </dict>
-                               <dict>
-                                       <key>CF$UID</key>
-                                       <integer>77</integer>
-                               </dict>
-                               <dict>
-                                       <key>CF$UID</key>
-                                       <integer>186</integer>
-                               </dict>
-                               <dict>
-                                       <key>CF$UID</key>
-                                       <integer>52</integer>
+                                       <integer>14</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>75</integer>
+                                       <integer>99</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>193</integer>
+                                       <integer>36</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>74</integer>
+                                       <integer>80</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>101</integer>
+                                       <integer>11</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>138</integer>
+                                       <integer>137</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>92</integer>
+                                       <integer>131</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>167</integer>
+                                       <integer>19</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>154</integer>
-                               </dict>
-                               <dict>
-                                       <key>CF$UID</key>
-                                       <integer>189</integer>
+                                       <integer>144</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>162</integer>
+                                       <integer>90</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>169</integer>
+                                       <integer>133</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>152</integer>
+                                       <integer>101</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>165</integer>
+                                       <integer>112</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>187</integer>
+                                       <integer>166</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>114</integer>
+                                       <integer>141</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>11</integer>
+                                       <integer>48</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>111</integer>
+                                       <integer>146</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>171</integer>
+                                       <integer>75</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>14</integer>
+                                       <integer>164</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>82</integer>
+                                       <integer>73</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>191</integer>
+                                       <integer>12</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>156</integer>
+                                       <integer>148</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>144</integer>
+                                       <integer>10</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>195</integer>
+                                       <integer>135</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>10</integer>
+                                       <integer>163</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>103</integer>
+                                       <integer>139</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>86</integer>
+                                       <integer>149</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>158</integer>
+                                       <integer>84</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>36</integer>
+                                       <integer>53</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>150</integer>
+                                       <integer>109</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>131</integer>
+                                       <integer>72</integer>
                                </dict>
                        </array>
                </dict>
                        <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>200</integer>
+                               <integer>169</integer>
                        </dict>
                        <key>NS.objects</key>
                        <array>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>220</integer>
-                               </dict>
-                               <dict>
-                                       <key>CF$UID</key>
-                                       <integer>221</integer>
-                               </dict>
-                               <dict>
-                                       <key>CF$UID</key>
-                                       <integer>222</integer>
-                               </dict>
-                               <dict>
-                                       <key>CF$UID</key>
-                                       <integer>223</integer>
-                               </dict>
-                               <dict>
-                                       <key>CF$UID</key>
-                                       <integer>224</integer>
-                               </dict>
-                               <dict>
-                                       <key>CF$UID</key>
-                                       <integer>225</integer>
-                               </dict>
-                               <dict>
-                                       <key>CF$UID</key>
-                                       <integer>226</integer>
-                               </dict>
-                               <dict>
-                                       <key>CF$UID</key>
-                                       <integer>227</integer>
-                               </dict>
-                               <dict>
-                                       <key>CF$UID</key>
-                                       <integer>228</integer>
-                               </dict>
-                               <dict>
-                                       <key>CF$UID</key>
-                                       <integer>229</integer>
+                                       <integer>187</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>230</integer>
+                                       <integer>188</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>231</integer>
+                                       <integer>189</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>232</integer>
+                                       <integer>190</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>233</integer>
+                                       <integer>191</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>234</integer>
+                                       <integer>192</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>235</integer>
+                                       <integer>193</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>236</integer>
+                                       <integer>194</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>237</integer>
+                                       <integer>195</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>238</integer>
+                                       <integer>196</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>239</integer>
+                                       <integer>197</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>240</integer>
+                                       <integer>198</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>241</integer>
+                                       <integer>199</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>242</integer>
+                                       <integer>200</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>243</integer>
+                                       <integer>201</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>244</integer>
+                                       <integer>202</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>245</integer>
+                                       <integer>203</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>246</integer>
+                                       <integer>204</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>247</integer>
+                                       <integer>205</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>248</integer>
+                                       <integer>206</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>249</integer>
+                                       <integer>207</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>250</integer>
+                                       <integer>208</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>251</integer>
+                                       <integer>209</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>252</integer>
+                                       <integer>210</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>253</integer>
+                                       <integer>211</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>254</integer>
+                                       <integer>212</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>255</integer>
+                                       <integer>213</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>256</integer>
+                                       <integer>214</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>257</integer>
+                                       <integer>215</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>258</integer>
+                                       <integer>216</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>259</integer>
+                                       <integer>217</integer>
                                </dict>
                                <dict>
                                        <key>CF$UID</key>
-                                       <integer>260</integer>
+                                       <integer>218</integer>
                                </dict>
                        </array>
                </dict>
-               <integer>2577</integer>
-               <integer>2595</integer>
-               <integer>2541</integer>
-               <integer>2568</integer>
-               <integer>2576</integer>
-               <integer>2584</integer>
-               <integer>2511</integer>
-               <integer>2579</integer>
-               <integer>2515</integer>
-               <integer>2547</integer>
-               <integer>2588</integer>
-               <integer>2561</integer>
+               <integer>2539</integer>
                <integer>2559</integer>
-               <integer>2580</integer>
-               <integer>2553</integer>
-               <integer>2571</integer>
+               <integer>2538</integer>
+               <integer>2517</integer>
+               <integer>2543</integer>
+               <integer>2567</integer>
+               <integer>2562</integer>
+               <integer>2541</integer>
                <integer>1</integer>
-               <integer>2564</integer>
-               <integer>2583</integer>
-               <integer>2569</integer>
-               <integer>2572</integer>
-               <integer>2563</integer>
                <integer>2570</integer>
-               <integer>2581</integer>
+               <integer>2553</integer>
+               <integer>2564</integer>
+               <integer>2519</integer>
                <integer>2523</integer>
-               <integer>2543</integer>
-               <integer>2522</integer>
-               <integer>2578</integer>
-               <integer>2539</integer>
-               <integer>2517</integer>
+               <integer>2595</integer>
+               <integer>2569</integer>
+               <integer>2515</integer>
+               <integer>2571</integer>
+               <integer>2511</integer>
                <integer>2586</integer>
-               <integer>2565</integer>
-               <integer>2587</integer>
-               <integer>2589</integer>
+               <integer>2547</integer>
+               <integer>2577</integer>
+               <integer>2578</integer>
                <integer>2560</integer>
-               <integer>2519</integer>
+               <integer>2565</integer>
+               <integer>2579</integer>
+               <integer>2568</integer>
+               <integer>2576</integer>
                <integer>2518</integer>
-               <integer>2567</integer>
-               <integer>2538</integer>
-               <integer>2562</integer>
-               <integer>2535</integer>
+               <integer>2584</integer>
+               <integer>2522</integer>
+               <integer>2561</integer>
                <dict>
                        <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>67</integer>
+                               <integer>65</integer>
                        </dict>
                        <key>NS.objects</key>
                        <array/>
                        <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>200</integer>
+                               <integer>169</integer>
                        </dict>
                        <key>NS.objects</key>
                        <array/>
                        <key>$class</key>
                        <dict>
                                <key>CF$UID</key>
-                               <integer>200</integer>
+                               <integer>169</integer>
                        </dict>
                        <key>NS.objects</key>
                        <array/>
index 7ee030eecbab1a878fb5f1ff9344ee7b3323f624..474392507a3f0c98b703768913f188fb50aede81 100644 (file)
@@ -8,14 +8,24 @@
 #include <Cocoa/Cocoa.h>
 
 #include "hb.h"
+@class HBController;
+
+// HB_OUTLINE_QUEUE turns on an outline view for the queue.
+#define HB_OUTLINE_QUEUE 0
+
 
 @interface HBQueueController : NSObject
 {
     hb_handle_t                  *fHandle;
+    HBController                 *fHBController;
     NSViewAnimation              *fAnimation;
     BOOL                         fCurrentJobHidden;  // YES when fCurrentJobPane has been shifted out of view (see showCurrentJobPane)
     BOOL                         fShowsJobsAsGroups;
     BOOL                         fShowsDetail;
+#if HB_OUTLINE_QUEUE
+    NSMutableArray               *fEncodes;
+    IBOutlet NSOutlineView       *fOutlineView;
+#endif
     
     //  +---------------fQueueWindow----------------+
     //  |+-------------fCurrentJobPane-------------+|
     // fQueuePane - always visible; fills entire window when fCurrentJobPane is hidden
     IBOutlet NSView              *fQueuePane;
     IBOutlet NSTableView         *fTaskView;
-    IBOutlet NSButton            *fDetailCheckbox;
-    IBOutlet NSButton            *fJobGroupsCheckbox;    // just for testing
     IBOutlet NSTextField         *fQueueCountField;
-    IBOutlet NSButton            *fStartPauseButton;
     
 }
 
 - (void)setHandle: (hb_handle_t *)handle;
+- (void)setHBController: (HBController *)controller;
 - (void)updateQueueUI;
 - (void)updateCurrentJobUI;
 
 - (IBAction)showQueueWindow: (id)sender;
 - (IBAction)removeSelectedJob: (id)sender;
 - (IBAction)cancelCurrentJob: (id)sender;
-- (IBAction)detailChanged: (id)sender;
-- (IBAction)jobGroupsChanged: (id)sender;
-- (IBAction)toggleShowsDetail: (id)sender;
-- (IBAction)toggleShowsJobsAsGroups: (id)sender;
+- (IBAction)showDetail: (id)sender;
+- (IBAction)hideDetail: (id)sender;
+- (IBAction)showJobsAsGroups: (id)sender;
+- (IBAction)showJobsAsPasses: (id)sender;
 - (IBAction)toggleStartPause: (id)sender;
 
 @end
index 657178c7467b97186fc50af8274e4747752696bb..755692a0267de342ba0fa071d883dea548cc8347 100644 (file)
@@ -5,6 +5,25 @@
     It may be used under the terms of the GNU General Public License. */
 
 #include "HBQueueController.h"
+#include "Controller.h"
+
+#define HB_QUEUE_DRAGGING 0
+#define HBQueueDataType         @"HBQueueDataType"
+
+// UNI_QUEUE turns on the feature where the first item in the queue NSTableView is the
+// current job followed by the jobs in hblib's queue. In this scheme, fCurrentJobPane
+// disappers.
+#define HB_UNI_QUEUE 0
+
+#define HB_ROW_HEIGHT_DETAIL       98.0
+#define HB_ROW_HEIGHT_NO_DETAIL    17.0
+#define HB_ROW_HEIGHT_ACTIVE_JOB   60.0
+
+//------------------------------------------------------------------------------------
+#pragma mark Job group functions
+//------------------------------------------------------------------------------------
+// These could be part of hblib if we think hblib should have knowledge of groups.
+// For now, I see groups as a metaphor that HBQueueController provides.
 
 /**
  * Returns the number of jobs groups in the queue.
@@ -85,11 +104,52 @@ static hb_job_t * hb_next_job( hb_handle_t * h, hb_job_t * job )
     while( ( j = hb_job( h, index++ ) ) )
     {
         if (j == job)
-            return hb_job( h, index+1 );
+            return hb_job( h, index );
     }
     return NULL;
 }
 
+#pragma mark -
+//------------------------------------------------------------------------------------
+// HBJob
+//------------------------------------------------------------------------------------
+
+#if HB_OUTLINE_QUEUE
+
+@interface HBJob : NSObject
+{
+    hb_job_t                *fJob;
+}
++ (HBJob*) jobWithJob: (hb_job_t *) job;
+- (id) initWithJob: (hb_job_t *) job;
+- (hb_job_t *) job;
+@end
+
+@implementation HBJob
++ (HBJob*) jobWithJob: (hb_job_t *) job
+{
+    return [[[HBJob alloc] initWithJob:job] autorelease];
+}
+
+- (id) initWithJob: (hb_job_t *) job
+{
+    if (self = [super init])
+    {
+        // job is not owned by HBJob. It does not get dealloacted when HBJob is released.
+        fJob = job;
+    }
+    return self; 
+}
+
+- (hb_job_t*) job
+{
+    return fJob;
+}
+
+@end
+
+#endif // HB_OUTLINE_QUEUE
+
 #pragma mark -
 
 // Toolbar identifiers
@@ -116,8 +176,15 @@ static NSString*    HBShowGroupsToolbarIdentifier             = @"HBShowGroupsTo
             nil]];
 
         fShowsDetail = [[NSUserDefaults standardUserDefaults] boolForKey:@"QueueShowsDetail"];
+#if HB_OUTLINE_QUEUE
+        fShowsJobsAsGroups = YES;
+#else
         fShowsJobsAsGroups = [[NSUserDefaults standardUserDefaults] boolForKey:@"QueueShowsJobsAsGroups"];
+#endif
 
+#if HB_OUTLINE_QUEUE
+        fEncodes = [[NSMutableArray arrayWithCapacity:0] retain];
+#endif
     }
     return self; 
 }
@@ -133,6 +200,10 @@ static NSString*    HBShowGroupsToolbarIdentifier             = @"HBShowGroupsTo
     if ([fQueueWindow delegate] == self)
         [fQueueWindow setDelegate:nil];
     
+#if HB_OUTLINE_QUEUE
+    [fEncodes release];
+#endif
+
     [super dealloc];
 }
 
@@ -144,6 +215,14 @@ static NSString*    HBShowGroupsToolbarIdentifier             = @"HBShowGroupsTo
     fHandle = handle;
 }
 
+//------------------------------------------------------------------------------------
+// Receive HBController
+//------------------------------------------------------------------------------------
+- (void)setHBController: (HBController *)controller
+{
+    fHBController = controller;
+}
+
 //------------------------------------------------------------------------------------
 // Displays and brings the queue window to the front
 //------------------------------------------------------------------------------------
@@ -220,10 +299,19 @@ static NSString*    HBShowGroupsToolbarIdentifier             = @"HBShowGroupsTo
     [[NSUserDefaults standardUserDefaults] setBool:showsDetail forKey:@"QueueShowsDetail"];
     [[NSUserDefaults standardUserDefaults] synchronize];
 
-    // clumsy - have to update UI
-    [fDetailCheckbox setState:showsDetail ? NSOnState : NSOffState];
-    
-    [fTaskView setRowHeight:showsDetail ? 98.0 : 17.0];
+    [fTaskView setRowHeight:showsDetail ? HB_ROW_HEIGHT_DETAIL : HB_ROW_HEIGHT_NO_DETAIL];
+#if HB_UNI_QUEUE
+    if (hb_count(fHandle))
+        [fTaskView noteHeightOfRowsWithIndexesChanged:[NSIndexSet indexSetWithIndex:0]];
+#endif
+#if HB_OUTLINE_QUEUE
+
+        [fOutlineView noteHeightOfRowsWithIndexesChanged:
+            [NSIndexSet indexSetWithIndexesInRange:
+                NSMakeRange(0,[fOutlineView numberOfRows])
+                ]];
+#endif
+
     if ([fTaskView selectedRow] != -1)
         [fTaskView scrollRowToVisible:[fTaskView selectedRow]];
 }
@@ -233,19 +321,76 @@ static NSString*    HBShowGroupsToolbarIdentifier             = @"HBShowGroupsTo
 //------------------------------------------------------------------------------------
 - (void)setShowsJobsAsGroups: (BOOL)showsGroups
 {
+#if HB_OUTLINE_QUEUE
+    return; // Can't modify this value. It's always YES.
+#endif
     fShowsJobsAsGroups = showsGroups;
     
     [[NSUserDefaults standardUserDefaults] setBool:showsGroups forKey:@"QueueShowsJobsAsGroups"];
     [[NSUserDefaults standardUserDefaults] synchronize];
 
-    // clumsy - have to update UI
-    [fJobGroupsCheckbox setState:showsGroups ? NSOnState : NSOffState];
-    
     [self updateQueueUI];
     if ([fTaskView selectedRow] != -1)
         [fTaskView scrollRowToVisible:[fTaskView selectedRow]];
 }
 
+//------------------------------------------------------------------------------------
+// Returns a 16x16 image that represents a job pass.
+//------------------------------------------------------------------------------------
+- (NSImage *)smallImageForPass: (int)pass
+{
+    switch (pass)
+    {
+        case -1: return [NSImage imageNamed: @"JobPassSubtitleSmall"];
+        case  1: return [NSImage imageNamed: @"JobPassFirstSmall"];
+        case  2: return [NSImage imageNamed: @"JobPassSecondSmall"];
+        default: return [NSImage imageNamed: @"JobPassUnknownSmall"];
+    }
+}
+
+//------------------------------------------------------------------------------------
+// Returns a 64x64 image that represents a job pass.
+//------------------------------------------------------------------------------------
+- (NSImage *)largeImageForPass: (int)pass
+{
+    switch (pass)
+    {
+        case -1: return [NSImage imageNamed: @"JobPassSubtitleLarge"];
+        case  1: return [NSImage imageNamed: @"JobPassFirstLarge"];
+        case  2: return [NSImage imageNamed: @"JobPassSecondLarge"];
+        default: return [NSImage imageNamed: @"JobPassUnknownLarge"];
+    }
+}
+
+#if HB_OUTLINE_QUEUE
+//------------------------------------------------------------------------------------
+// Rebuilds the contents of fEncodes which is a array of encodes and HBJobs.
+//------------------------------------------------------------------------------------
+- (void)rebuildEncodes
+{
+    [fEncodes removeAllObjects];
+
+    NSMutableArray * aJobGroup = [NSMutableArray arrayWithCapacity:0];
+    hb_job_t * nextJob = hb_group( fHandle, 0 );
+    while( nextJob )
+    {
+        if (nextJob->sequence_id == 0)
+        {
+            // Encountered a new group. Add the current one to fEncodes and then start a new one.
+            if ([aJobGroup count] > 0)
+            {
+                [fEncodes addObject:aJobGroup];
+                aJobGroup = [NSMutableArray arrayWithCapacity:0];
+            }
+        }
+        [aJobGroup addObject: [HBJob jobWithJob:nextJob]];
+        nextJob = hb_next_job (fHandle, nextJob);
+    }
+    if ([aJobGroup count] > 0)
+        [fEncodes addObject:aJobGroup];
+}
+#endif
+
 //------------------------------------------------------------------------------------
 // Generates a multi-line text string that includes the job name on the first line
 // followed by details of the job on subsequent lines. If the text is to be drawn as
@@ -253,7 +398,8 @@ static NSString*    HBShowGroupsToolbarIdentifier             = @"HBShowGroupsTo
 // contain multiple fonts and paragraph formating.
 //------------------------------------------------------------------------------------
 - (NSAttributedString *)attributedDescriptionForJob: (hb_job_t *)job
-                                         withDetail: (BOOL)detail
+                                          withTitle: (BOOL)withTitle
+                                         withDetail: (BOOL)withDetail
                                    withHighlighting: (BOOL)highlighted
 {
     NSMutableAttributedString * finalString;   // the return value
@@ -284,17 +430,19 @@ static NSString*    HBShowGroupsToolbarIdentifier             = @"HBShowGroupsTo
     // Title, in bold
     // Show the name of the source Note: use title->name instead of title->dvd since
     // name is just the chosen folder, instead of dvd which is the full path
-    anAttributedString = [[[NSAttributedString alloc] initWithString:[NSString stringWithUTF8String:title->name] attributes:titleAttribute] autorelease];
-    [finalString appendAttributedString:anAttributedString];
-
+    if (withTitle)
+    {
+        anAttributedString = [[[NSAttributedString alloc] initWithString:[NSString stringWithUTF8String:title->name] attributes:titleAttribute] autorelease];
+        [finalString appendAttributedString:anAttributedString];
+    }
+    
     // Other info in plain
-    aMutableString = [NSMutableString stringWithCapacity:200];
     
-    BOOL jobGroups = [[NSUserDefaults standardUserDefaults] boolForKey:@"QueueShowsJobsAsGroups"];
+    aMutableString = [NSMutableString stringWithCapacity:200];
 
     // The subtitle scan doesn't contain all the stuff we need (like x264opts).
     // So grab the next job in the group for display purposes.
-    if (jobGroups && job->pass == -1)
+    if (fShowsJobsAsGroups && job->pass == -1)
     {
         // When job is the one currently being processed, then the next in its group
         // is the the first job in the queue.
@@ -307,177 +455,182 @@ static NSString*    HBShowGroupsToolbarIdentifier             = @"HBShowGroupsTo
             job = nextjob;
     }
 
-    NSString * chapterString = (job->chapter_start == job->chapter_end) ?
-            [NSString stringWithFormat:@"Chapter %d", job->chapter_start] :
-            [NSString stringWithFormat:@"Chapters %d through %d", job->chapter_start, job->chapter_end];
-    
-    // Scan pass
-    if (job->pass == -1)
+    if (withTitle)
     {
-        [aMutableString appendString:[NSString stringWithFormat:
-                @"  (Title %d, %@, Subtitle Scan)", title->index, chapterString]];
+        NSString * chapterString = (job->chapter_start == job->chapter_end) ?
+                [NSString stringWithFormat:@"Chapter %d", job->chapter_start] :
+                [NSString stringWithFormat:@"Chapters %d through %d", job->chapter_start, job->chapter_end];
+    
+        // Scan pass
+        if (job->pass == -1)
+        {
+            [aMutableString appendString:[NSString stringWithFormat:
+                    @"  (Title %d, %@, Subtitle Scan)", title->index, chapterString]];
+        }
+        else
+        {
+            if (fShowsJobsAsGroups)
+                [aMutableString appendString:[NSString stringWithFormat:
+                        @"  (Title %d, %@, %d-Pass)",
+                        title->index, chapterString, MIN( 2, job->pass + 1 )]];
+            else
+                [aMutableString appendString:[NSString stringWithFormat:
+                        @"  (Title %d, %@, Pass %d of %d)",
+                        title->index, chapterString, MAX( 1, job->pass ), MIN( 2, job->pass + 1 )]];
+        }
     }
-
-    // Normal pass
-    else
+    
+    // End of title stuff
+    
+    
+    // Normal pass - show detail
+    if (withDetail && job->pass != -1)
     {
-        if (jobGroups)
-            [aMutableString appendString:[NSString stringWithFormat:
-                    @"  (Title %d, %@, %d-Pass)",
-                    title->index, chapterString, MIN( 2, job->pass + 1 )]];
+        NSString * jobFormat;
+        NSString * jobPictureDetail;
+        NSString * jobVideoDetail;
+        NSString * jobVideoCodec;
+        NSString * jobVideoQuality;
+        NSString * jobAudioDetail;
+        NSString * jobAudioCodec;
+
+        /* Muxer settings (File Format in the gui) */
+        if (job->mux == 65536 || job->mux == 131072 || job->mux == 1048576)
+            jobFormat = @"MP4"; // HB_MUX_MP4,HB_MUX_PSP,HB_MUX_IPOD
+        else if (job->mux == 262144)
+            jobFormat = @"AVI"; // HB_MUX_AVI
+        else if (job->mux == 524288)
+            jobFormat = @"OGM"; // HB_MUX_OGM
+        else if (job->mux == 2097152)
+            jobFormat = @"MKV"; // HB_MUX_MKV
         else
-            [aMutableString appendString:[NSString stringWithFormat:
-                    @"  (Title %d, %@, Pass %d of %d)",
-                    title->index, chapterString, MAX( 1, job->pass ), MIN( 2, job->pass + 1 )]];
+            jobFormat = @"unknown";
         
-        if (detail)
+        // 2097152
+        /* Video Codec settings (Encoder in the gui) */
+        if (job->vcodec == 1)
+            jobVideoCodec = @"FFmpeg"; // HB_VCODEC_FFMPEG
+        else if (job->vcodec == 2)
+            jobVideoCodec = @"XviD"; // HB_VCODEC_XVID
+        else if (job->vcodec == 4)
         {
-            NSString * jobFormat;
-            NSString * jobPictureDetail;
-            NSString * jobVideoDetail;
-            NSString * jobVideoCodec;
-            NSString * jobVideoQuality;
-            NSString * jobAudioDetail;
-            NSString * jobAudioCodec;
-
-            /* Muxer settings (File Format in the gui) */
-            if (job->mux == 65536 || job->mux == 131072 || job->mux == 1048576)
-                jobFormat = @"MP4"; // HB_MUX_MP4,HB_MUX_PSP,HB_MUX_IPOD
-            else if (job->mux == 262144)
-                jobFormat = @"AVI"; // HB_MUX_AVI
-            else if (job->mux == 524288)
-                jobFormat = @"OGM"; // HB_MUX_OGM
-            else if (job->mux == 2097152)
-                jobFormat = @"MKV"; // HB_MUX_MKV
-            else
-                jobFormat = @"unknown";
-            
-            // 2097152
-            /* Video Codec settings (Encoder in the gui) */
-            if (job->vcodec == 1)
-                jobVideoCodec = @"FFmpeg"; // HB_VCODEC_FFMPEG
-            else if (job->vcodec == 2)
-                jobVideoCodec = @"XviD"; // HB_VCODEC_XVID
-            else if (job->vcodec == 4)
-            {
-                /* Deterimine for sure how we are now setting iPod uuid atom */
-                if (job->h264_level) // We are encoding for iPod
-                    jobVideoCodec = @"x264 (H.264 iPod)"; // HB_VCODEC_X264    
-                else
-                    jobVideoCodec = @"x264 (H.264 Main)"; // HB_VCODEC_X264
-            }
-            else
-                jobVideoCodec = @"unknown";
-            
-            /* Audio Codecs (Second half of Codecs in the gui) */
-            if (job->acodec == 256)
-                jobAudioCodec = @"AAC"; // HB_ACODEC_FAAC
-            else if (job->acodec == 512)
-                jobAudioCodec = @"MP3"; // HB_ACODEC_LAME
-            else if (job->acodec == 1024)
-                jobAudioCodec = @"Vorbis"; // HB_ACODEC_VORBIS
-            else if (job->acodec == 2048)
-                jobAudioCodec = @"AC3"; // HB_ACODEC_AC3
+            /* Deterimine for sure how we are now setting iPod uuid atom */
+            if (job->h264_level) // We are encoding for iPod
+                jobVideoCodec = @"x264 (H.264 iPod)"; // HB_VCODEC_X264    
             else
-                jobAudioCodec = @"unknown";
-            /* Show Basic File info */
-            if (job->chapter_markers == 1)
-                [aMutableString appendString:[NSString stringWithFormat:@"\nFormat: %@ Container, %@ Video + %@ Audio, Chapter Markers", jobFormat, jobVideoCodec, jobAudioCodec]];
-            else
-                [aMutableString appendString:[NSString stringWithFormat:@"\nFormat: %@ Container, %@ Video + %@ Audio", jobFormat, jobVideoCodec, jobAudioCodec]];
-                
-            /*Picture info*/
-            /*integers for picture values deinterlace, crop[4], keep_ratio, grayscale, pixel_ratio, pixel_aspect_width, pixel_aspect_height,
-             maxWidth, maxHeight */
-            if (job->pixel_ratio == 1)
-            {
-                int titlewidth = title->width - job->crop[2] - job->crop[3];
-                int displayparwidth = titlewidth * job->pixel_aspect_width / job->pixel_aspect_height;
-                int displayparheight = title->height - job->crop[0] - job->crop[1];
-                jobPictureDetail = [NSString stringWithFormat:@"Picture: %dx%d (%dx%d Anamorphic)", displayparwidth, displayparheight, job->width, displayparheight];
-            }
-            else
-                jobPictureDetail = [NSString stringWithFormat:@"Picture: %dx%d", job->width, job->height];
-            if (job->keep_ratio == 1)
-                jobPictureDetail = [jobPictureDetail stringByAppendingString:@" Keep Aspect Ratio"];
-            
-            if (job->grayscale == 1)
-                jobPictureDetail = [jobPictureDetail stringByAppendingString:@", Grayscale"];
-            
-            if (job->deinterlace == 1)
-                jobPictureDetail = [jobPictureDetail stringByAppendingString:@", Deinterlace"];
-            /* Show Picture info */    
-            [aMutableString appendString:[NSString stringWithFormat:@"\n%@", jobPictureDetail]];
-            
-            /* Detailed Video info */
-            if (job->vquality <= 0 || job->vquality >= 1)
-                jobVideoQuality =[NSString stringWithFormat:@"%d kbps", job->vbitrate];
-            else
-            {
-                NSNumber * vidQuality;
-                vidQuality = [NSNumber numberWithInt:job->vquality * 100];
-                /* this is screwed up kind of. Needs to be formatted properly */
-                if (job->crf == 1)
-                    jobVideoQuality =[NSString stringWithFormat:@"%@%% CRF", vidQuality];            
-                else
-                    jobVideoQuality =[NSString stringWithFormat:@"%@%% CQP", vidQuality];
-            }
-            
-            if (job->vrate_base == 1126125)
-            {
-                /* NTSC FILM 23.976 */
-                jobVideoDetail = [NSString stringWithFormat:@"Video: %@, %@, 23.976 fps", jobVideoCodec, jobVideoQuality];
-            }
-            else if (job->vrate_base == 900900)
-            {
-                /* NTSC 29.97 */
-                jobVideoDetail = [NSString stringWithFormat:@"Video: %@, %@, 29.97 fps", jobVideoCodec, jobVideoQuality];
-            }
-            else
-            {
-                /* Everything else */
-                jobVideoDetail = [NSString stringWithFormat:@"Video: %@, %@, %d fps", jobVideoCodec, jobVideoQuality, job->vrate / job->vrate_base];
-            }
-            
-            /* Add the video detail string to the job filed in the window */
-            [aMutableString appendString:[NSString stringWithFormat:@"\n%@", jobVideoDetail]];
-            
-            /* if there is an x264 option string, lets add it here*/
-            /*NOTE: Due to size, lets get this in a tool tip*/
-            
-            if (job->x264opts)
-                [aMutableString appendString:[NSString stringWithFormat:@"\nx264 Options: %@", [NSString stringWithUTF8String:job->x264opts]]];
+                jobVideoCodec = @"x264 (H.264 Main)"; // HB_VCODEC_X264
+        }
+        else
+            jobVideoCodec = @"unknown";
+        
+        /* Audio Codecs (Second half of Codecs in the gui) */
+        if (job->acodec == 256)
+            jobAudioCodec = @"AAC"; // HB_ACODEC_FAAC
+        else if (job->acodec == 512)
+            jobAudioCodec = @"MP3"; // HB_ACODEC_LAME
+        else if (job->acodec == 1024)
+            jobAudioCodec = @"Vorbis"; // HB_ACODEC_VORBIS
+        else if (job->acodec == 2048)
+            jobAudioCodec = @"AC3"; // HB_ACODEC_AC3
+        else
+            jobAudioCodec = @"unknown";
+        /* Show Basic File info */
+        if (job->chapter_markers == 1)
+            [aMutableString appendString:[NSString stringWithFormat:@"\nFormat: %@ Container, %@ Video + %@ Audio, Chapter Markers", jobFormat, jobVideoCodec, jobAudioCodec]];
+        else
+            [aMutableString appendString:[NSString stringWithFormat:@"\nFormat: %@ Container, %@ Video + %@ Audio", jobFormat, jobVideoCodec, jobAudioCodec]];
             
-            /* Audio Detail */
-            if ([jobAudioCodec isEqualToString: @"AC3"])
-                jobAudioDetail = [NSString stringWithFormat:@"Audio: %@, Pass-Through", jobAudioCodec];
+        /*Picture info*/
+        /*integers for picture values deinterlace, crop[4], keep_ratio, grayscale, pixel_ratio, pixel_aspect_width, pixel_aspect_height,
+         maxWidth, maxHeight */
+        if (job->pixel_ratio == 1)
+        {
+            int titlewidth = title->width - job->crop[2] - job->crop[3];
+            int displayparwidth = titlewidth * job->pixel_aspect_width / job->pixel_aspect_height;
+            int displayparheight = title->height - job->crop[0] - job->crop[1];
+            jobPictureDetail = [NSString stringWithFormat:@"Picture: %dx%d (%dx%d Anamorphic)", displayparwidth, displayparheight, job->width, displayparheight];
+        }
+        else
+            jobPictureDetail = [NSString stringWithFormat:@"Picture: %dx%d", job->width, job->height];
+        if (job->keep_ratio == 1)
+            jobPictureDetail = [jobPictureDetail stringByAppendingString:@" Keep Aspect Ratio"];
+        
+        if (job->grayscale == 1)
+            jobPictureDetail = [jobPictureDetail stringByAppendingString:@", Grayscale"];
+        
+        if (job->deinterlace == 1)
+            jobPictureDetail = [jobPictureDetail stringByAppendingString:@", Deinterlace"];
+        /* Show Picture info */    
+        [aMutableString appendString:[NSString stringWithFormat:@"\n%@", jobPictureDetail]];
+        
+        /* Detailed Video info */
+        if (job->vquality <= 0 || job->vquality >= 1)
+            jobVideoQuality =[NSString stringWithFormat:@"%d kbps", job->vbitrate];
+        else
+        {
+            NSNumber * vidQuality;
+            vidQuality = [NSNumber numberWithInt:job->vquality * 100];
+            /* this is screwed up kind of. Needs to be formatted properly */
+            if (job->crf == 1)
+                jobVideoQuality =[NSString stringWithFormat:@"%@%% CRF", vidQuality];            
             else
-                jobAudioDetail = [NSString stringWithFormat:@"Audio: %@, %d kbps, %d Hz", jobAudioCodec, job->abitrate, job->arate];
-            
-            /* we now get the audio mixdown info for each of the two gui audio tracks */
-            /* lets do it the long way here to get a handle on things.
-                Hardcoded for two tracks for gui: audio_mixdowns[i] audio_mixdowns[i] */
-            int ai; // counter for each audios [] , macgui only allows for two audio tracks currently
-            for( ai = 0; ai < 2; ai++ )
-            {
-                if (job->audio_mixdowns[ai] == HB_AMIXDOWN_MONO)
-                    jobAudioDetail = [jobAudioDetail stringByAppendingString:[NSString stringWithFormat:@", Track %d: Mono",ai + 1]];
-                if (job->audio_mixdowns[ai] == HB_AMIXDOWN_STEREO)
-                    jobAudioDetail = [jobAudioDetail stringByAppendingString:[NSString stringWithFormat:@", Track %d: Stereo",ai + 1]];
-                if (job->audio_mixdowns[ai] == HB_AMIXDOWN_DOLBY)
-                    jobAudioDetail = [jobAudioDetail stringByAppendingString:[NSString stringWithFormat:@", Track %d: Dolby Surround",ai + 1]];
-                if (job->audio_mixdowns[ai] == HB_AMIXDOWN_DOLBYPLII)
-                    jobAudioDetail = [jobAudioDetail stringByAppendingString:[NSString stringWithFormat:@", Track %d: Dolby Pro Logic II",ai + 1]];
-                if (job->audio_mixdowns[ai] == HB_AMIXDOWN_6CH)
-                    jobAudioDetail = [jobAudioDetail stringByAppendingString:[NSString stringWithFormat:@", Track %d: 6-channel discreet",ai + 1]];
-            }
-            
-            /* Add the Audio detail string to the job filed in the window */
-            [aMutableString appendString:[NSString stringWithFormat: @"\n%@", jobAudioDetail]];
-            
-            /*Destination Field */
-            [aMutableString appendString:[NSString stringWithFormat:@"\nDestination: %@", [NSString stringWithUTF8String:job->file]]];
+                jobVideoQuality =[NSString stringWithFormat:@"%@%% CQP", vidQuality];
+        }
+        
+        if (job->vrate_base == 1126125)
+        {
+            /* NTSC FILM 23.976 */
+            jobVideoDetail = [NSString stringWithFormat:@"Video: %@, %@, 23.976 fps", jobVideoCodec, jobVideoQuality];
+        }
+        else if (job->vrate_base == 900900)
+        {
+            /* NTSC 29.97 */
+            jobVideoDetail = [NSString stringWithFormat:@"Video: %@, %@, 29.97 fps", jobVideoCodec, jobVideoQuality];
         }
+        else
+        {
+            /* Everything else */
+            jobVideoDetail = [NSString stringWithFormat:@"Video: %@, %@, %d fps", jobVideoCodec, jobVideoQuality, job->vrate / job->vrate_base];
+        }
+        
+        /* Add the video detail string to the job filed in the window */
+        [aMutableString appendString:[NSString stringWithFormat:@"\n%@", jobVideoDetail]];
+        
+        /* if there is an x264 option string, lets add it here*/
+        /*NOTE: Due to size, lets get this in a tool tip*/
+        
+        if (job->x264opts)
+            [aMutableString appendString:[NSString stringWithFormat:@"\nx264 Options: %@", [NSString stringWithUTF8String:job->x264opts]]];
+        
+        /* Audio Detail */
+        if ([jobAudioCodec isEqualToString: @"AC3"])
+            jobAudioDetail = [NSString stringWithFormat:@"Audio: %@, Pass-Through", jobAudioCodec];
+        else
+            jobAudioDetail = [NSString stringWithFormat:@"Audio: %@, %d kbps, %d Hz", jobAudioCodec, job->abitrate, job->arate];
+        
+        /* we now get the audio mixdown info for each of the two gui audio tracks */
+        /* lets do it the long way here to get a handle on things.
+            Hardcoded for two tracks for gui: audio_mixdowns[i] audio_mixdowns[i] */
+        int ai; // counter for each audios [] , macgui only allows for two audio tracks currently
+        for( ai = 0; ai < 2; ai++ )
+        {
+            if (job->audio_mixdowns[ai] == HB_AMIXDOWN_MONO)
+                jobAudioDetail = [jobAudioDetail stringByAppendingString:[NSString stringWithFormat:@", Track %d: Mono",ai + 1]];
+            if (job->audio_mixdowns[ai] == HB_AMIXDOWN_STEREO)
+                jobAudioDetail = [jobAudioDetail stringByAppendingString:[NSString stringWithFormat:@", Track %d: Stereo",ai + 1]];
+            if (job->audio_mixdowns[ai] == HB_AMIXDOWN_DOLBY)
+                jobAudioDetail = [jobAudioDetail stringByAppendingString:[NSString stringWithFormat:@", Track %d: Dolby Surround",ai + 1]];
+            if (job->audio_mixdowns[ai] == HB_AMIXDOWN_DOLBYPLII)
+                jobAudioDetail = [jobAudioDetail stringByAppendingString:[NSString stringWithFormat:@", Track %d: Dolby Pro Logic II",ai + 1]];
+            if (job->audio_mixdowns[ai] == HB_AMIXDOWN_6CH)
+                jobAudioDetail = [jobAudioDetail stringByAppendingString:[NSString stringWithFormat:@", Track %d: 6-channel discreet",ai + 1]];
+        }
+        
+        /* Add the Audio detail string to the job filed in the window */
+        [aMutableString appendString:[NSString stringWithFormat: @"\n%@", jobAudioDetail]];
+        
+        /*Destination Field */
+        [aMutableString appendString:[NSString stringWithFormat:@"\nDestination: %@", [NSString stringWithUTF8String:job->file]]];
     }
     
     anAttributedString = [[[NSAttributedString alloc] initWithString:aMutableString attributes:highlighted ? detailHighlightedAttribute : detailAttribute] autorelease];
@@ -609,8 +762,7 @@ static NSString*    HBShowGroupsToolbarIdentifier             = @"HBShowGroupsTo
         #define p s->param.working
         [fProgressBar setIndeterminate:NO];
 
-        BOOL jobGroups = [[NSUserDefaults standardUserDefaults] boolForKey:@"QueueShowsJobsAsGroups"];
-        float progress_total = jobGroups ?
+        float progress_total = fShowsJobsAsGroups ?
                 100.0 * ( p.progress + p.job_cur - 1 ) / p.job_count :
                 100.0 * p.progress;
 
@@ -633,47 +785,6 @@ static NSString*    HBShowGroupsToolbarIdentifier             = @"HBShowGroupsTo
     }
 }
 
-//------------------------------------------------------------------------------------
-// Refresh start/pause button (fStartPauseButton) from current state.
-//------------------------------------------------------------------------------------
-- (void) updateStartPauseButton
-{
-
-// ************* THIS METHOD CAN DISAPPEAR. THE BUTTON IS NOW HIDDEN AND CAN BE DELETED
-    if (!fHandle) return;
-
-    hb_state_t s;
-    hb_get_state2 (fHandle, &s);
-
-    if (s.state == HB_STATE_PAUSED)
-    {
-        [fStartPauseButton setEnabled:YES];
-//        [fStartPauseButton setTitle:NSLocalizedString(@"Resume", nil)];
-        [fStartPauseButton setImage:[NSImage imageNamed: @"Play"]];
-   }
-    
-    else if ((s.state == HB_STATE_WORKING) || (s.state == HB_STATE_MUXING))
-    {
-        [fStartPauseButton setEnabled:YES];
-//        [fStartPauseButton setTitle:NSLocalizedString(@"Pause", nil)];
-        [fStartPauseButton setImage:[NSImage imageNamed: @"Pause"]];
-    }
-
-    else if (hb_count(fHandle) > 0)
-    {
-        [fStartPauseButton setEnabled:YES];
-//        [fStartPauseButton setTitle:NSLocalizedString(@"Start", nil)];
-        [fStartPauseButton setImage:[NSImage imageNamed: @"Play"]];
-    }
-
-    else
-    {
-        [fStartPauseButton setEnabled:NO];
-//        [fStartPauseButton setTitle:NSLocalizedString(@"Start", nil)];
-        [fStartPauseButton setImage:[NSImage imageNamed: @"Play"]];
-    }
-}
-
 //------------------------------------------------------------------------------------
 // Refresh queue count text field (fQueueCountField).
 //------------------------------------------------------------------------------------
@@ -681,9 +792,8 @@ static NSString*    HBShowGroupsToolbarIdentifier             = @"HBShowGroupsTo
 {
     NSString * msg;
     int jobCount;
-    BOOL jobGroups = [[NSUserDefaults standardUserDefaults] boolForKey:@"QueueShowsJobsAsGroups"];
     
-    if (jobGroups)
+    if (fShowsJobsAsGroups)
     {
         jobCount = fHandle ? hb_group_count(fHandle) : 0;
         if (jobCount == 1)
@@ -715,16 +825,16 @@ static NSString*    HBShowGroupsToolbarIdentifier             = @"HBShowGroupsTo
     
     if (fHandle)
     {
-        hb_get_state( fHandle, &s );
+        hb_get_state2( fHandle, &s );
         job = hb_current_job(fHandle);
     }
 
     if (job)
     {
-        [fJobDescTextField setAttributedStringValue:[self attributedDescriptionForJob:job withDetail:YES withHighlighting:NO]];
+        [fJobDescTextField setAttributedStringValue:[self attributedDescriptionForJob:job withTitle:YES withDetail:YES withHighlighting:NO]];
 
         [self showCurrentJobPane:YES];
-        [fJobIconView setImage: fShowsJobsAsGroups ? [NSImage imageNamed:@"JobLarge"] : [NSImage imageNamed:@"JobPassLarge"] ];
+        [fJobIconView setImage: fShowsJobsAsGroups ? [NSImage imageNamed:@"JobLarge"] : [self largeImageForPass: job->pass] ];
         
         NSString * statusMsg = [self progressStatusStringForJob:job state:&s];
         NSString * timeMsg = [self progressTimeRemainingStringForJob:job state:&s];
@@ -740,10 +850,6 @@ static NSString*    HBShowGroupsToolbarIdentifier             = @"HBShowGroupsTo
         [self showCurrentJobPane:NO];
         [fProgressBar stopAnimation:nil];    // just in case in was animating
     }
-
-    // Gross hack. Also update start/pause button. Have to do it here since we don't
-    // have any other periodic chance to update the button.
-    [self updateStartPauseButton];
 }
 
 //------------------------------------------------------------------------------------
@@ -752,11 +858,15 @@ static NSString*    HBShowGroupsToolbarIdentifier             = @"HBShowGroupsTo
 //------------------------------------------------------------------------------------
 - (void)updateQueueUI
 {
+#if HB_OUTLINE_QUEUE
+    [self rebuildEncodes];
+    [fOutlineView noteNumberOfRowsChanged];
+    [fOutlineView reloadData];
+#endif
     [fTaskView noteNumberOfRowsChanged];
     [fTaskView reloadData];
     
     [self updateQueueCountField];
-    [self updateStartPauseButton];
 }
 
 //------------------------------------------------------------------------------------
@@ -769,109 +879,76 @@ static NSString*    HBShowGroupsToolbarIdentifier             = @"HBShowGroupsTo
     int row = [sender selectedRow];
     if (row != -1)
     {
-        BOOL jobGroups = [[NSUserDefaults standardUserDefaults] boolForKey:@"QueueShowsJobsAsGroups"];
-        if (jobGroups)
+#if HB_UNI_QUEUE
+        if (row == 0)
+        {
+            [self cancelCurrentJob:sender];
+        }
+        else
+        {
+            row--;
+            if (fShowsJobsAsGroups)
+                hb_rem_group( fHandle, hb_group( fHandle, row ) );
+            else
+                hb_rem( fHandle, hb_job( fHandle, row ) );
+        }
+#else
+        if (fShowsJobsAsGroups)
             hb_rem_group( fHandle, hb_group( fHandle, row ) );
         else
             hb_rem( fHandle, hb_job( fHandle, row ) );
+#endif
         [self updateQueueUI];
     }
 }
 
 //------------------------------------------------------------------------------------
-// Prompts user if the want to cancel encoding of current job. If so, hb_stop gets
-// called.
+// Prompts user if the want to cancel encoding of current job. If so, doCancelCurrentJob
+// gets called.
 //------------------------------------------------------------------------------------
 - (IBAction)cancelCurrentJob: (id)sender
 {
-    if (!fHandle) return;
-    
-    hb_job_t * job = hb_current_job(fHandle);
-    if (!job) return;
-
-    // If command key is down, don't prompt
-    BOOL hasCmdKeyMask = ([[NSApp currentEvent] modifierFlags] & NSCommandKeyMask) != 0;
-    if (hasCmdKeyMask)
-        hb_stop(fHandle);
-    else
-    {
-        NSString * alertTitle = [NSString stringWithFormat:NSLocalizedString(@"Do you want to stop processing of %@?", nil),
-                [NSString stringWithUTF8String:job->title->name]];
-        
-        NSBeginCriticalAlertSheet(
-                alertTitle,
-                NSLocalizedString(@"Stop Processing", nil), NSLocalizedString(@"Keep Processing", nil), nil, fQueueWindow, self,
-                @selector(cancelCurrentJob:returnCode:contextInfo:), nil, nil,
-                NSLocalizedString(@"Your movie will be lost if you don't continue processing.", nil),
-                [NSString stringWithUTF8String:job->title->name]);
-
-        // cancelCurrentJob:returnCode:contextInfo: will be called when the dialog is dismissed
-    }
-}
-
-- (void) cancelCurrentJob: (NSWindow *)sheet returnCode: (int)returnCode contextInfo: (void *)contextInfo
-{
-    if (returnCode == NSAlertDefaultReturn)
-        hb_stop(fHandle);
+    [fHBController Cancel:sender];
 }
 
 //------------------------------------------------------------------------------------
-// Enables or disables the display of detail information for each job based on the 
-// state of the sender.
+// Turns on the display of detail information for each job. Does nothing if detail is
+// already turned on.
 //------------------------------------------------------------------------------------
-- (IBAction)detailChanged: (id)sender
+- (IBAction)showDetail: (id)sender
 {
-    if ([sender isMemberOfClass:[NSButton class]])
-    {
-        BOOL detail = [sender state] == NSOnState;
-        [[NSUserDefaults standardUserDefaults] setBool:detail forKey:@"QueueShowsDetail"];
-
-        [self setShowsDetail:detail];
-    }
+    if (!fShowsDetail)
+        [self setShowsDetail:YES];
 }
 
 //------------------------------------------------------------------------------------
-// Enables or disables the display of job groups based on the state of the sender.
+// Turns off the display of detail information for each job. Does nothing if detail is
+// already turned off.
 //------------------------------------------------------------------------------------
-- (IBAction)jobGroupsChanged: (id)sender
+- (IBAction)hideDetail: (id)sender
 {
-    if ([sender isMemberOfClass:[NSButton class]])
-    {
-        BOOL groups = [sender state] == NSOnState;
-        [[NSUserDefaults standardUserDefaults] setBool:groups forKey:@"QueueShowsJobsAsGroups"];
-
-        [self setShowsJobsAsGroups:groups];
-    }
-    else if ([sender isMemberOfClass:[NSSegmentedControl class]])
-    {
-        BOOL groups = [sender selectedSegment] == 0;
-        [[NSUserDefaults standardUserDefaults] setBool:groups forKey:@"QueueShowsJobsAsGroups"];
-
-        [self setShowsJobsAsGroups:groups];
-    }
-    else if ([sender isMemberOfClass:[NSMatrix class]])
-    {
-        BOOL groups = [sender selectedColumn] == 0;
-        [[NSUserDefaults standardUserDefaults] setBool:groups forKey:@"QueueShowsJobsAsGroups"];
-
-        [self setShowsJobsAsGroups:groups];
-    }
+    if (fShowsDetail)
+        [self setShowsDetail:NO];
 }
 
 //------------------------------------------------------------------------------------
-// Toggles the Shows Detail setting.
+// Turns on displaying of jobs as groups by calling setShowsJobsAsGroups:YES. Does
+// nothing if groups are already turned on. 
 //------------------------------------------------------------------------------------
-- (IBAction)toggleShowsDetail: (id)sender
+- (IBAction)showJobsAsGroups: (id)sender
 {
-    [self setShowsDetail:!fShowsDetail];
+    if (!fShowsJobsAsGroups)
+        [self setShowsJobsAsGroups:YES];
 }
 
 //------------------------------------------------------------------------------------
-// Toggles the Shows Jobs As Groups setting.
+// Turns on displaying of jobs as individual items by calling setShowsJobsAsGroups:NO.
+// Does nothing if groups are already turned off. 
 //------------------------------------------------------------------------------------
-- (IBAction)toggleShowsJobsAsGroups: (id)sender
+- (IBAction)showJobsAsPasses: (id)sender
 {
-    [self setShowsJobsAsGroups:!fShowsJobsAsGroups];
+    if (fShowsJobsAsGroups)
+        [self setShowsJobsAsGroups:NO];
 }
 
 //------------------------------------------------------------------------------------
@@ -890,14 +967,13 @@ static NSString*    HBShowGroupsToolbarIdentifier             = @"HBShowGroupsTo
         hb_pause (fHandle);
     else
     {
-        BOOL jobGroups = [[NSUserDefaults standardUserDefaults] boolForKey:@"QueueShowsJobsAsGroups"];
-        if (jobGroups)
+        if (fShowsJobsAsGroups)
         {
             if (hb_group_count(fHandle) > 0)
-                hb_start (fHandle);
+                [fHBController doRip];
         }
         else if (hb_count(fHandle) > 0)
-            hb_start (fHandle);
+            [fHBController doRip];
     }    
 }
 
@@ -959,33 +1035,45 @@ static NSString*    HBShowGroupsToolbarIdentifier             = @"HBShowGroupsTo
         toolbarItem = [[[NSToolbarItem alloc] initWithItemIdentifier: itemIdentifier] autorelease];
                
         // Set the text label to be displayed in the toolbar and customization palette 
-               [toolbarItem setLabel: @"Show Detail"];
-               [toolbarItem setPaletteLabel: @"Show Detail"];
+               [toolbarItem setLabel: @"Detail"];
+               [toolbarItem setPaletteLabel: @"Detail"];
                
                // Set up a reasonable tooltip, and image
-               [toolbarItem setToolTip: @"Show Detail"];
-               [toolbarItem setImage: [NSImage imageNamed: @"Info"]];
+               [toolbarItem setToolTip: @"Displays detailed information in the queue"];
+               [toolbarItem setImage: [NSImage imageNamed: @"Detail"]];
                
                // Tell the item what message to send when it is clicked 
                [toolbarItem setTarget: self];
-               [toolbarItem setAction: @selector(toggleShowsDetail:)];
+               [toolbarItem setAction: fShowsDetail ? @selector(hideDetail:) : @selector(showDetail:)];
        }
     
     else if ([itemIdentifier isEqual: HBShowGroupsToolbarIdentifier])
     {
         toolbarItem = [[[NSToolbarItem alloc] initWithItemIdentifier: itemIdentifier] autorelease];
                
+/*
         // Set the text label to be displayed in the toolbar and customization palette 
-               [toolbarItem setLabel: @"View"];
-               [toolbarItem setPaletteLabel: @"View"];
+               [toolbarItem setLabel: @"Passes"];
+               [toolbarItem setPaletteLabel: @"Passes"];
                
                // Set up a reasonable tooltip, and image
-               [toolbarItem setToolTip: @"View"];
-//             [toolbarItem setImage: [NSImage imageNamed: @"Disc"]];
-        
+               [toolbarItem setToolTip: @"Displays individual passes in the queue"];
+               [toolbarItem setImage: [NSImage imageNamed: @"Passes"]];
         
+               // Tell the item what message to send when it is clicked 
+               [toolbarItem setTarget: self];
+               [toolbarItem setAction: fShowsJobsAsGroups ? @selector(showJobsAsPasses:) : @selector(showJobsAsGroups:)];
+*/
+  
+// Various attempts at other button types in the toolbar. A matrix worked fine to display
+// a button for encodes & passes, but ultimately I decided to go with a single button
+// called "Passes" that toggles on or off. All these suffer from the fact taht you need
+// to override NSToolbarItem for them in order to validate their state.
+               [toolbarItem setLabel: @"View"];
+               [toolbarItem setPaletteLabel: @"View"];
+
         NSButtonCell * buttonCell = [[[NSButtonCell alloc] initImageCell:nil] autorelease];
-        [buttonCell setBezelStyle:NSShadowlessSquareBezelStyle];//NSShadowlessSquareBezelStyle
+        [buttonCell setBezelStyle:NSShadowlessSquareBezelStyle];
         [buttonCell setButtonType:NSToggleButton];
         [buttonCell setBordered:NO];
         [buttonCell setImagePosition:NSImageOnly];
@@ -1003,10 +1091,16 @@ static NSString*    HBShowGroupsToolbarIdentifier             = @"HBShowGroupsTo
         [buttonCell setTitle:@""];
         [buttonCell setImage:[NSImage imageNamed: @"Encodes"]];
         [buttonCell setAlternateImage:[NSImage imageNamed: @"EncodesPressed"]];
+               [buttonCell setAction: @selector(showJobsAsGroups:)];
+               [matrix setToolTip: @"Displays encodes in the queue" forCell:buttonCell];
+
         buttonCell = [matrix cellAtRow:0 column:1];
         [buttonCell setTitle:@""];
         [buttonCell setImage:[NSImage imageNamed: @"Passes"]];
         [buttonCell setAlternateImage:[NSImage imageNamed: @"PassesPressed"]];
+               [buttonCell setAction: @selector(showJobsAsPasses:)];
+               [matrix setToolTip: @"Displays individual passes in the queue" forCell:buttonCell];
+
         [toolbarItem setMinSize: [matrix frame].size];
         [toolbarItem setMaxSize: [matrix frame].size];
                [toolbarItem setView: matrix];
@@ -1027,18 +1121,18 @@ static NSString*    HBShowGroupsToolbarIdentifier             = @"HBShowGroupsTo
 */
 
 /*
-        NSButton * button = [[[NSButton alloc] initWithFrame:NSMakeRect(0,0,20,20)] autorelease];
+        NSButton * button = [[[NSButton alloc] initWithFrame:NSMakeRect(0,0,32,32)] autorelease];
         [button setButtonType:NSSwitchButton];
         [button setTitle:@""];
         [button setState: fShowsJobsAsGroups ? NSOnState : NSOffState];
         [toolbarItem setMinSize: NSMakeSize(20,20)];
         [toolbarItem setMaxSize: NSMakeSize(20,20)];
                [toolbarItem setView: button];
-*/
                
                // Tell the item what message to send when it is clicked 
                [toolbarItem setTarget: self];
                [toolbarItem setAction: @selector(jobGroupsChanged:)];
+*/
        }
     
     return toolbarItem;
@@ -1134,38 +1228,34 @@ static NSString*    HBShowGroupsToolbarIdentifier             = @"HBShowGroupsTo
         }
        }
     
-/* not used because HBShowGroupsToolbarIdentifier is now a custom view
     else if ([[toolbarItem itemIdentifier] isEqual: HBShowGroupsToolbarIdentifier])
     {
         enable = hb_count(fHandle) > 0;
+               [toolbarItem setAction: fShowsJobsAsGroups ? @selector(showJobsAsPasses:) : @selector(showJobsAsGroups:)];
         if (fShowsJobsAsGroups)
         {
-            [toolbarItem setLabel: @"View Passes"];
-            [toolbarItem setPaletteLabel: @"View Passes"];
-            [toolbarItem setToolTip: @"Displays items in the queue as individual passes"];
+            [toolbarItem setImage: [NSImage imageNamed: @"Passes"]];
+            [toolbarItem setToolTip: @"Displays individual passes in the queue"];
         }
         else
         {
-            [toolbarItem setLabel: @"View Encodes"];
-            [toolbarItem setPaletteLabel: @"View Encodes"];
-            [toolbarItem setToolTip: @"Displays items in the queue as encodes"];
+            [toolbarItem setImage: [NSImage imageNamed: @"PassesPressed"]];
+            [toolbarItem setToolTip: @"Displays encodes in the queue"];
         }
     }
-*/
     
     else if ([[toolbarItem itemIdentifier] isEqual: HBShowDetailToolbarIdentifier])
     {
         enable = hb_count(fHandle) > 0;
+               [toolbarItem setAction: fShowsDetail ? @selector(hideDetail:) : @selector(showDetail:)];
         if (fShowsDetail)
         {
-            [toolbarItem setLabel: @"Hide Detail"];
-            [toolbarItem setPaletteLabel: @"Hide Detail"];
-            [toolbarItem setToolTip: @"Displays detailed information in the queue"];
+            [toolbarItem setImage: [NSImage imageNamed: @"DetailPressed"]];
+            [toolbarItem setToolTip: @"Hides detailed information in the queue"];
         }
         else
         {
-            [toolbarItem setLabel: @"Show Detail"];
-            [toolbarItem setPaletteLabel: @"Show Detail"];
+            [toolbarItem setImage: [NSImage imageNamed: @"Detail"]];
             [toolbarItem setToolTip: @"Displays detailed information in the queue"];
         }
     }
@@ -1191,6 +1281,16 @@ static NSString*    HBShowGroupsToolbarIdentifier             = @"HBShowGroupsTo
     [self setShowsDetail:fShowsDetail];
     [self setShowsJobsAsGroups:fShowsJobsAsGroups];
     [self showCurrentJobPane:NO];
+
+#if HB_QUEUE_DRAGGING
+    [fTaskView registerForDraggedTypes: [NSArray arrayWithObject:HBQueueDataType] ];
+#endif
+
+#if HB_OUTLINE_QUEUE
+    // Don't allow autoresizing of main column, else the "delete" column will get
+    // pushed out of view.
+    [fOutlineView setAutoresizesOutlineColumn: NO];
+#endif
 }
 
 
@@ -1210,11 +1310,18 @@ static NSString*    HBShowGroupsToolbarIdentifier             = @"HBShowGroupsTo
 //------------------------------------------------------------------------------------
 - (int)numberOfRowsInTableView: (NSTableView *)aTableView
 {
-    BOOL jobGroups = [[NSUserDefaults standardUserDefaults] boolForKey:@"QueueShowsJobsAsGroups"];
-    if (jobGroups)
+#if HB_UNI_QUEUE
+    int numItems = hb_current_job(fHandle) ? 1 : 0;
+    if (fShowsJobsAsGroups)
+        return numItems + hb_group_count(fHandle);
+    else
+        return numItems + hb_count(fHandle);
+#else
+    if (fShowsJobsAsGroups)
         return hb_group_count(fHandle);
     else
         return hb_count(fHandle);
+#endif
 }
 
 //------------------------------------------------------------------------------------
@@ -1227,28 +1334,47 @@ static NSString*    HBShowGroupsToolbarIdentifier             = @"HBShowGroupsTo
     if (!fHandle)
         return @"";    // fatal error!
         
-    hb_job_t * job;
+    hb_job_t * job = nil;
 
-    BOOL jobGroups = [[NSUserDefaults standardUserDefaults] boolForKey:@"QueueShowsJobsAsGroups"];
-    if (jobGroups)
+#if HB_UNI_QUEUE
+    // Looking for the current job?
+    int jobIndex = rowIndex;
+    if (hb_current_job(fHandle))
+    {
+        if (rowIndex == 0)
+            job = hb_current_job(fHandle);
+        else
+            jobIndex = rowIndex - 1;
+    }
+    
+    if (!job)
+    {
+        if (fShowsJobsAsGroups)
+            job = hb_group(fHandle, jobIndex);
+        else
+            job = hb_job(fHandle, jobIndex);
+    }
+#else
+    if (fShowsJobsAsGroups)
         job = hb_group(fHandle, rowIndex);
     else
         job = hb_job(fHandle, rowIndex);
-
+#endif
+    
     if (!job)
         return @"";    // fatal error!
 
     if ([[aTableColumn identifier] isEqualToString:@"desc"])
     {
         BOOL highlighted = [aTableView isRowSelected:rowIndex] && [[aTableView window] isKeyWindow] && ([[aTableView window] firstResponder] == aTableView);
-        return [self attributedDescriptionForJob:job withDetail:fShowsDetail withHighlighting:highlighted];    
+        return [self attributedDescriptionForJob:job withTitle:YES withDetail:fShowsDetail withHighlighting:highlighted];    
     }
     
     else if ([[aTableColumn identifier] isEqualToString:@"delete"])
         return @"";
 
     else if ([[aTableColumn identifier] isEqualToString:@"icon"])
-        return fShowsJobsAsGroups ? [NSImage imageNamed:@"JobSmall"] : [NSImage imageNamed:@"JobPassSmall"];
+        return fShowsJobsAsGroups ? [NSImage imageNamed:@"JobSmall"] : [self smallImageForPass: job->pass];
 
     return @"";
 }
@@ -1276,4 +1402,153 @@ static NSString*    HBShowGroupsToolbarIdentifier             = @"HBShowGroupsTo
     }
 }
 
+//------------------------------------------------------------------------------------
+// NSTableView delegate
+//------------------------------------------------------------------------------------
+#if HB_UNI_QUEUE
+- (float)tableView:(NSTableView *)tableView heightOfRow:(int)row
+{
+    if ((row == 0) && hb_current_job(fHandle))
+        return HB_ROW_HEIGHT_ACTIVE_JOB;
+    else 
+        return fShowsDetail ? HB_ROW_HEIGHT_DETAIL : HB_ROW_HEIGHT_NO_DETAIL;
+}
+#endif
+
+#if HB_QUEUE_DRAGGING
+- (BOOL)tableView:(NSTableView *)tv writeRowsWithIndexes:(NSIndexSet *)rowIndexes toPasteboard:(NSPasteboard*)pboard
+{
+    // Copy the row numbers to the pasteboard.
+    NSData *data = [NSKeyedArchiver archivedDataWithRootObject:rowIndexes];
+    [pboard declareTypes:[NSArray arrayWithObject:HBQueueDataType] owner:self];
+    [pboard setData:data forType:HBQueueDataType];
+    return YES;
+}
+#endif
+
+#if HB_QUEUE_DRAGGING
+- (NSDragOperation)tableView:(NSTableView*)tv validateDrop:(id <NSDraggingInfo>)info proposedRow:(int)row proposedDropOperation:(NSTableViewDropOperation)op
+{
+    // Add code here to validate the drop
+    NSLog(@"validate Drop");
+    return NSDragOperationEvery;
+}
+#endif
+
+#if HB_QUEUE_DRAGGING
+- (BOOL)tableView:(NSTableView *)aTableView acceptDrop:(id <NSDraggingInfo>)info
+            row:(int)row dropOperation:(NSTableViewDropOperation)operation
+{
+    NSPasteboard* pboard = [info draggingPasteboard];
+    NSData* rowData = [pboard dataForType:HBQueueDataType];
+    NSIndexSet* rowIndexes = [NSKeyedUnarchiver unarchiveObjectWithData:rowData];
+    int dragRow = [rowIndexes firstIndex];
+    // Move the specified row to its new location...
+    
+    return YES;
+}
+#endif
+
+
+#if HB_OUTLINE_QUEUE
+
+- (id)outlineView:(NSOutlineView *)outlineView child:(int)index ofItem:(id)item
+{
+    if (item == nil)
+        return [fEncodes objectAtIndex:index];
+    else
+        return [item objectAtIndex:index];
+}
+
+- (BOOL)outlineView:(NSOutlineView *)outlineView isItemExpandable:(id)item
+{
+    return ! [item isKindOfClass:[HBJob class]];
+}
+
+- (int)outlineView:(NSOutlineView *)outlineView numberOfChildrenOfItem:(id)item
+{
+    if (item == nil)
+        return [fEncodes count];
+    else
+        return [item count];
+}
+
+- (float)outlineView:(NSOutlineView *)outlineView heightOfRowByItem:(id)item
+{
+    if (fShowsDetail && [item isKindOfClass:[HBJob class]])
+        return HB_ROW_HEIGHT_DETAIL;
+    else
+        return HB_ROW_HEIGHT_NO_DETAIL;
+}
+
+- (id)outlineView:(NSOutlineView *)outlineView objectValueForTableColumn:(NSTableColumn *)tableColumn byItem:(id)item
+{
+    BOOL highlighted = [outlineView isRowSelected:[outlineView rowForItem: item]] && [[outlineView window] isKeyWindow] && ([[outlineView window] firstResponder] == outlineView);
+    if ([item isKindOfClass:[HBJob class]])
+    {
+        if ([[tableColumn identifier] isEqualToString:@"desc"])
+        {
+            hb_job_t * job = [item job];
+//            return [self attributedDescriptionForJob:job withTitle:NO withDetail:fShowsDetail withHighlighting:highlighted];
+            if (job->pass == -1)
+                return @"Subtitle Scan";
+            else
+            {
+                int passNum = MAX( 1, job->pass );
+                if (passNum == 1)
+                    return @"1st Pass";
+                if (passNum == 2)
+                    return @"2nd Pass";
+                else
+                    return [NSString stringWithFormat: @"Pass %d", passNum];
+            }
+        }
+    }
+    
+    else
+    {
+        hb_job_t * job = [[item objectAtIndex:0] job];
+        if ([[tableColumn identifier] isEqualToString:@"desc"])
+            return [self attributedDescriptionForJob:job withTitle:YES withDetail:NO withHighlighting:highlighted];    
+    }
+
+    return @"";
+}
+
+- (void)outlineView:(NSOutlineView *)outlineView willDisplayCell:(id)cell forTableColumn:(NSTableColumn *)tableColumn item:(id)item
+{
+    if ([[tableColumn identifier] isEqualToString:@"desc"])
+    {
+        if ([item isKindOfClass:[HBJob class]])
+            [cell setImage:[self smallImageForPass: [item job]->pass]];
+        else
+            [cell setImage:[NSImage imageNamed:@"JobSmall"]];
+    }
+    
+    else if ([[tableColumn identifier] isEqualToString:@"delete"])
+    {
+        // The Delete action can only be applied for group items, not indivdual jobs.
+        if ([item isKindOfClass:[HBJob class]])
+        {
+            [cell setEnabled: NO];
+            [cell setImage: nil];
+        }
+        else
+        {
+            [cell setEnabled: YES];
+            BOOL highlighted = [outlineView isRowSelected:[outlineView rowForItem: item]] && [[outlineView window] isKeyWindow] && ([[outlineView window] firstResponder] == outlineView);
+            if (highlighted)
+            {
+                [cell setImage:[NSImage imageNamed:@"DeleteHighlight"]];
+                [cell setAlternateImage:[NSImage imageNamed:@"DeleteHighlightPressed"]];
+            }
+            else
+                [cell setImage:[NSImage imageNamed:@"Delete"]];
+        }
+    }
+}
+
+#endif
+
 @end
index 9f00454299c6df7529e1feeb608bdaeef75ad3d0..aec33037ad0479c2382fcb6cf5321ff7dae147b4 100644 (file)
                A9AC41DF0C918DB500DDF9B8 /* HBAdvancedController.m in Sources */ = {isa = PBXBuildFile; fileRef = A9AC41DD0C918DB500DDF9B8 /* HBAdvancedController.m */; };
                A9AC41E00C918DB500DDF9B8 /* HBAdvancedController.h in Headers */ = {isa = PBXBuildFile; fileRef = A9AC41DE0C918DB500DDF9B8 /* HBAdvancedController.h */; };
                A9AC41E70C918DC000DDF9B8 /* AdvancedView.nib in Resources */ = {isa = PBXBuildFile; fileRef = A9AC41E50C918DC000DDF9B8 /* AdvancedView.nib */; };
-               A9B4CEC80C95752B0086548A /* pref-general.png in Resources */ = {isa = PBXBuildFile; fileRef = A9B4CEC70C95752B0086548A /* pref-general.png */; };
                A9DE40450C959834008A5440 /* minus-8.png in Resources */ = {isa = PBXBuildFile; fileRef = A9DE40430C959834008A5440 /* minus-8.png */; };
                A9DE40460C959834008A5440 /* plus-8.png in Resources */ = {isa = PBXBuildFile; fileRef = A9DE40440C959834008A5440 /* plus-8.png */; };
                B48359A80C82960500E04440 /* lang.c in Sources */ = {isa = PBXBuildFile; fileRef = B48359A70C82960500E04440 /* lang.c */; };
                E30EC7740C90BDD0004B9545 /* PassesPressed.png in Resources */ = {isa = PBXBuildFile; fileRef = E30EC7700C90BDD0004B9545 /* PassesPressed.png */; };
                E30EC7750C90BDD0004B9545 /* Passes.png in Resources */ = {isa = PBXBuildFile; fileRef = E30EC7710C90BDD0004B9545 /* Passes.png */; };
                E30EC7760C90BDD0004B9545 /* EncodesPressed.png in Resources */ = {isa = PBXBuildFile; fileRef = E30EC7720C90BDD0004B9545 /* EncodesPressed.png */; };
-               E318F0470C90D6D3003EFB59 /* JobPassLarge.png in Resources */ = {isa = PBXBuildFile; fileRef = E318F0460C90D6D3003EFB59 /* JobPassLarge.png */; };
-               E318F0580C90D88C003EFB59 /* JobPassSmall.png in Resources */ = {isa = PBXBuildFile; fileRef = E318F0570C90D88C003EFB59 /* JobPassSmall.png */; };
-               E318F0830C90DC4A003EFB59 /* Info.png in Resources */ = {isa = PBXBuildFile; fileRef = E318F0820C90DC4A003EFB59 /* Info.png */; };
+               E37167800C92F5090072B384 /* DetailPressed.png in Resources */ = {isa = PBXBuildFile; fileRef = E371677E0C92F5090072B384 /* DetailPressed.png */; };
+               E37167810C92F5090072B384 /* Detail.png in Resources */ = {isa = PBXBuildFile; fileRef = E371677F0C92F5090072B384 /* Detail.png */; };
+               E37167890C92F6180072B384 /* JobPassSecondSmall.png in Resources */ = {isa = PBXBuildFile; fileRef = E37167830C92F6180072B384 /* JobPassSecondSmall.png */; };
+               E371678A0C92F6180072B384 /* JobPassSubtitleSmall.png in Resources */ = {isa = PBXBuildFile; fileRef = E37167840C92F6180072B384 /* JobPassSubtitleSmall.png */; };
+               E371678B0C92F6180072B384 /* JobPassFirstSmall.png in Resources */ = {isa = PBXBuildFile; fileRef = E37167850C92F6180072B384 /* JobPassFirstSmall.png */; };
+               E371678C0C92F6180072B384 /* JobPassFirstLarge.png in Resources */ = {isa = PBXBuildFile; fileRef = E37167860C92F6180072B384 /* JobPassFirstLarge.png */; };
+               E371678D0C92F6180072B384 /* JobPassSubtitleLarge.png in Resources */ = {isa = PBXBuildFile; fileRef = E37167870C92F6180072B384 /* JobPassSubtitleLarge.png */; };
+               E371678E0C92F6180072B384 /* JobPassSecondLarge.png in Resources */ = {isa = PBXBuildFile; fileRef = E37167880C92F6180072B384 /* JobPassSecondLarge.png */; };
+               E37167A90C92FAA50072B384 /* JobPassUnknownSmall.png in Resources */ = {isa = PBXBuildFile; fileRef = E37167A70C92FAA50072B384 /* JobPassUnknownSmall.png */; };
+               E37167AA0C92FAA50072B384 /* JobPassUnknownLarge.png in Resources */ = {isa = PBXBuildFile; fileRef = E37167A80C92FAA50072B384 /* JobPassUnknownLarge.png */; };
                E37C89410C83988F00C1B919 /* DeleteHighlight.png in Resources */ = {isa = PBXBuildFile; fileRef = E37C893D0C83988F00C1B919 /* DeleteHighlight.png */; };
                E37C89420C83988F00C1B919 /* Delete.png in Resources */ = {isa = PBXBuildFile; fileRef = E37C893E0C83988F00C1B919 /* Delete.png */; };
                E37C89430C83988F00C1B919 /* JobSmall.png in Resources */ = {isa = PBXBuildFile; fileRef = E37C893F0C83988F00C1B919 /* JobSmall.png */; };
                E30EC7700C90BDD0004B9545 /* PassesPressed.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = PassesPressed.png; sourceTree = "<group>"; };
                E30EC7710C90BDD0004B9545 /* Passes.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Passes.png; sourceTree = "<group>"; };
                E30EC7720C90BDD0004B9545 /* EncodesPressed.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = EncodesPressed.png; sourceTree = "<group>"; };
-               E318F0460C90D6D3003EFB59 /* JobPassLarge.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = JobPassLarge.png; sourceTree = "<group>"; };
-               E318F0570C90D88C003EFB59 /* JobPassSmall.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = JobPassSmall.png; sourceTree = "<group>"; };
-               E318F0820C90DC4A003EFB59 /* Info.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Info.png; sourceTree = "<group>"; };
+               E371677E0C92F5090072B384 /* DetailPressed.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = DetailPressed.png; sourceTree = "<group>"; };
+               E371677F0C92F5090072B384 /* Detail.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Detail.png; sourceTree = "<group>"; };
+               E37167830C92F6180072B384 /* JobPassSecondSmall.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = JobPassSecondSmall.png; sourceTree = "<group>"; };
+               E37167840C92F6180072B384 /* JobPassSubtitleSmall.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = JobPassSubtitleSmall.png; sourceTree = "<group>"; };
+               E37167850C92F6180072B384 /* JobPassFirstSmall.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = JobPassFirstSmall.png; sourceTree = "<group>"; };
+               E37167860C92F6180072B384 /* JobPassFirstLarge.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = JobPassFirstLarge.png; sourceTree = "<group>"; };
+               E37167870C92F6180072B384 /* JobPassSubtitleLarge.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = JobPassSubtitleLarge.png; sourceTree = "<group>"; };
+               E37167880C92F6180072B384 /* JobPassSecondLarge.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = JobPassSecondLarge.png; sourceTree = "<group>"; };
+               E37167A70C92FAA50072B384 /* JobPassUnknownSmall.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = JobPassUnknownSmall.png; sourceTree = "<group>"; };
+               E37167A80C92FAA50072B384 /* JobPassUnknownLarge.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = JobPassUnknownLarge.png; sourceTree = "<group>"; };
                E37C893D0C83988F00C1B919 /* DeleteHighlight.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = DeleteHighlight.png; sourceTree = "<group>"; };
                E37C893E0C83988F00C1B919 /* Delete.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Delete.png; sourceTree = "<group>"; };
                E37C893F0C83988F00C1B919 /* JobSmall.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = JobSmall.png; sourceTree = "<group>"; };
                                E3003CB40C8852B70072F2A8 /* DeletePressed.png */,
                                E37C893D0C83988F00C1B919 /* DeleteHighlight.png */,
                                E3003C7E0C88505D0072F2A8 /* DeleteHighlightPressed.png */,
-                               E37C89400C83988F00C1B919 /* JobLarge.png */,
-                               E37C893F0C83988F00C1B919 /* JobSmall.png */,
                                E30EC76F0C90BDD0004B9545 /* Encodes.png */,
                                E30EC7720C90BDD0004B9545 /* EncodesPressed.png */,
                                E30EC7700C90BDD0004B9545 /* PassesPressed.png */,
                                E30EC7710C90BDD0004B9545 /* Passes.png */,
-                               E318F0570C90D88C003EFB59 /* JobPassSmall.png */,
-                               E318F0460C90D6D3003EFB59 /* JobPassLarge.png */,
-                               E318F0820C90DC4A003EFB59 /* Info.png */,
+                               E37C89400C83988F00C1B919 /* JobLarge.png */,
+                               E37C893F0C83988F00C1B919 /* JobSmall.png */,
+                               E37167850C92F6180072B384 /* JobPassFirstSmall.png */,
+                               E37167860C92F6180072B384 /* JobPassFirstLarge.png */,
+                               E37167830C92F6180072B384 /* JobPassSecondSmall.png */,
+                               E37167880C92F6180072B384 /* JobPassSecondLarge.png */,
+                               E37167840C92F6180072B384 /* JobPassSubtitleSmall.png */,
+                               E37167870C92F6180072B384 /* JobPassSubtitleLarge.png */,
+                               E37167A70C92FAA50072B384 /* JobPassUnknownSmall.png */,
+                               E37167A80C92FAA50072B384 /* JobPassUnknownLarge.png */,
+                               E371677E0C92F5090072B384 /* DetailPressed.png */,
+                               E371677F0C92F5090072B384 /* Detail.png */,
                        );
                        path = icons;
                        sourceTree = "<group>";
                                E30EC7740C90BDD0004B9545 /* PassesPressed.png in Resources */,
                                E30EC7750C90BDD0004B9545 /* Passes.png in Resources */,
                                E30EC7760C90BDD0004B9545 /* EncodesPressed.png in Resources */,
-                               E318F0470C90D6D3003EFB59 /* JobPassLarge.png in Resources */,
-                               E318F0580C90D88C003EFB59 /* JobPassSmall.png in Resources */,
-                               E318F0830C90DC4A003EFB59 /* Info.png in Resources */,
                                A9AC41E70C918DC000DDF9B8 /* AdvancedView.nib in Resources */,
                                A97A1DB40C91A6800015BC08 /* Express.nib in Resources */,
                                A9ABA2270C92AECA00D98324 /* PictureSettings.nib in Resources */,
-                               A9B4CEC80C95752B0086548A /* pref-general.png in Resources */,
+                               E37167800C92F5090072B384 /* DetailPressed.png in Resources */,
+                               E37167810C92F5090072B384 /* Detail.png in Resources */,
+                               E37167890C92F6180072B384 /* JobPassSecondSmall.png in Resources */,
+                               E371678A0C92F6180072B384 /* JobPassSubtitleSmall.png in Resources */,
+                               E371678B0C92F6180072B384 /* JobPassFirstSmall.png in Resources */,
+                               E371678C0C92F6180072B384 /* JobPassFirstLarge.png in Resources */,
+                               E371678D0C92F6180072B384 /* JobPassSubtitleLarge.png in Resources */,
+                               E371678E0C92F6180072B384 /* JobPassSecondLarge.png in Resources */,
+                               E37167A90C92FAA50072B384 /* JobPassUnknownSmall.png in Resources */,
+                               E37167AA0C92FAA50072B384 /* JobPassUnknownLarge.png in Resources */,
                                A9DE40450C959834008A5440 /* minus-8.png in Resources */,
                                A9DE40460C959834008A5440 /* plus-8.png in Resources */,
                                A94537560C95E6A300EBB9B1 /* pref-picture.png in Resources */,
diff --git a/macosx/icons/Detail.png b/macosx/icons/Detail.png
new file mode 100644 (file)
index 0000000..b98500a
Binary files /dev/null and b/macosx/icons/Detail.png differ
diff --git a/macosx/icons/DetailPressed.png b/macosx/icons/DetailPressed.png
new file mode 100644 (file)
index 0000000..b4ecf3e
Binary files /dev/null and b/macosx/icons/DetailPressed.png differ
diff --git a/macosx/icons/JobPassFirstLarge.png b/macosx/icons/JobPassFirstLarge.png
new file mode 100644 (file)
index 0000000..e772fdb
Binary files /dev/null and b/macosx/icons/JobPassFirstLarge.png differ
diff --git a/macosx/icons/JobPassFirstSmall.png b/macosx/icons/JobPassFirstSmall.png
new file mode 100644 (file)
index 0000000..415ac3f
Binary files /dev/null and b/macosx/icons/JobPassFirstSmall.png differ
diff --git a/macosx/icons/JobPassSecondLarge.png b/macosx/icons/JobPassSecondLarge.png
new file mode 100644 (file)
index 0000000..f5f6dcd
Binary files /dev/null and b/macosx/icons/JobPassSecondLarge.png differ
diff --git a/macosx/icons/JobPassSecondSmall.png b/macosx/icons/JobPassSecondSmall.png
new file mode 100644 (file)
index 0000000..ec111d2
Binary files /dev/null and b/macosx/icons/JobPassSecondSmall.png differ
diff --git a/macosx/icons/JobPassSubtitleLarge.png b/macosx/icons/JobPassSubtitleLarge.png
new file mode 100644 (file)
index 0000000..8ea9ddb
Binary files /dev/null and b/macosx/icons/JobPassSubtitleLarge.png differ
diff --git a/macosx/icons/JobPassSubtitleSmall.png b/macosx/icons/JobPassSubtitleSmall.png
new file mode 100644 (file)
index 0000000..c6e04be
Binary files /dev/null and b/macosx/icons/JobPassSubtitleSmall.png differ
diff --git a/macosx/icons/JobPassUnknownLarge.png b/macosx/icons/JobPassUnknownLarge.png
new file mode 100644 (file)
index 0000000..c6c5087
Binary files /dev/null and b/macosx/icons/JobPassUnknownLarge.png differ
diff --git a/macosx/icons/JobPassUnknownSmall.png b/macosx/icons/JobPassUnknownSmall.png
new file mode 100644 (file)
index 0000000..d60542e
Binary files /dev/null and b/macosx/icons/JobPassUnknownSmall.png differ