diff options
author | dynaflash <[email protected]> | 2007-09-07 13:40:40 +0000 |
---|---|---|
committer | dynaflash <[email protected]> | 2007-09-07 13:40:40 +0000 |
commit | ccf90bfd9146a00783cb5322c63257335192c74d (patch) | |
tree | 65a67e6fbf053fc235e7238a0b60955c81a6d70e | |
parent | f4b5569ecc77150c7bde00b9368aa81fe33b7cfd (diff) |
MacGui: Queue Improvements from travistex
- Add view selection widget to choose "encode by encode" or "pass by pass" view
- Add "Show Detail" button to toggle detailed view on/off
- Removed #define JOB_GROUPS. You can now control this in the UI and show either "encodes" or "passes".
- Revamped the progress strings to give you exact progress.
- New terminology (encodes and passes)
- New toolbar in queue window (not complete, icons need work)
- New files, added to project:
Encodes.png
EncodesPressed.png
Info.png
JobPassLarge.png
JobPassSmall.png
Passes.png
PassesPressed.png
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@931 b64f7644-9d1e-0410-96f1-a4d463321fa5
-rw-r--r-- | libhb/common.h | 4 | ||||
-rw-r--r-- | macosx/Controller.mm | 80 | ||||
-rw-r--r-- | macosx/English.lproj/Queue.nib/classes.nib | 9 | ||||
-rw-r--r-- | macosx/English.lproj/Queue.nib/info.nib | 2 | ||||
-rw-r--r-- | macosx/English.lproj/Queue.nib/keyedobjects.nib | 1171 | ||||
-rw-r--r-- | macosx/HBQueueController.h | 13 | ||||
-rw-r--r-- | macosx/HBQueueController.mm | 585 | ||||
-rw-r--r-- | macosx/HandBrake.xcodeproj/project.pbxproj | 29 | ||||
-rw-r--r-- | macosx/icons/Encodes.png | bin | 0 -> 843 bytes | |||
-rw-r--r-- | macosx/icons/EncodesPressed.png | bin | 0 -> 1006 bytes | |||
-rw-r--r-- | macosx/icons/Info.png | bin | 0 -> 1814 bytes | |||
-rw-r--r-- | macosx/icons/JobPassLarge.png | bin | 0 -> 1379 bytes | |||
-rw-r--r-- | macosx/icons/JobPassSmall.png | bin | 0 -> 604 bytes | |||
-rw-r--r-- | macosx/icons/Passes.png | bin | 0 -> 896 bytes | |||
-rw-r--r-- | macosx/icons/PassesPressed.png | bin | 0 -> 1038 bytes |
15 files changed, 1224 insertions, 669 deletions
diff --git a/libhb/common.h b/libhb/common.h index 12558871e..f32c620ab 100644 --- a/libhb/common.h +++ b/libhb/common.h @@ -104,10 +104,8 @@ const char * hb_mixdown_get_short_name_from_mixdown( int amixdown ); *****************************************************************************/ struct hb_job_s { -#if JOB_GROUPS - /* ID assigned by UI so it can lump jobs together */ + /* ID assigned by UI so it can groups job passes together */ int sequence_id; -#endif /* Pointer to the title to be ripped */ hb_title_t * title; diff --git a/macosx/Controller.mm b/macosx/Controller.mm index 920136e67..a73b60719 100644 --- a/macosx/Controller.mm +++ b/macosx/Controller.mm @@ -51,7 +51,6 @@ static NSString * AddToQueueIdentifier = @"Add to Queue Ite static NSString * ShowActivityIdentifier = @"Debug Output Item Identifier"; static NSString * ChooseSourceIdentifier = @"Choose Source Item Identifier"; -#if JOB_GROUPS /** * Returns the number of jobs groups in the queue. * @param h Handle to hb_handle_t. @@ -69,7 +68,6 @@ static int hb_group_count(hb_handle_t * h) } return count; } -#endif /******************************* * HBController implementation * @@ -163,6 +161,8 @@ static int hb_group_count(hb_handle_t * h) - (void) awakeFromNib { [fWindow center]; + [fWindow setExcludedFromWindowsMenu:YES]; + /* set the main menu bar so it doesnt auto enable the menu items so we can manually do it with setEnabled: This should be changed to use validateUserInterfaceItem: along with setAutoEnablesItems: YES @@ -666,8 +666,7 @@ list = hb_get_titles( fHandle ); [self showNewScan: NULL]; } - - + BOOL jobGroups = [[NSUserDefaults standardUserDefaults] boolForKey:@"QueueShowsJobsAsGroups"]; hb_state_t s; hb_get_state( fHandle, &s ); @@ -810,24 +809,20 @@ list = hb_get_titles( fHandle ); /* Restore dock icon */ [self UpdateDockIcon: -1.0]; -#if JOB_GROUPS - 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; - } -#else - /* FIXME */ - hb_job_t * job; - while( ( job = hb_job( fHandle, 0 ) ) ) + if (jobGroups) { - hb_rem( fHandle, job ); + // 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; } -#endif if (fRipIndicatorShown) { @@ -916,13 +911,8 @@ list = hb_get_titles( fHandle ); } } - /* Lets show the queue status - here in the main window*/ -#if JOB_GROUPS - int queue_count = hb_group_count( fHandle ); -#else - int queue_count = hb_count( fHandle ); -#endif + /* Lets show the queue status here in the main window */ + int queue_count = jobGroups ? hb_group_count( fHandle ) : hb_count( fHandle ); if( queue_count ) { [fQueueStatus setStringValue: [NSString stringWithFormat: @@ -939,6 +929,7 @@ list = hb_get_titles( fHandle ); selector: @selector( updateUI: ) userInfo: NULL repeats: FALSE] forMode: NSModalPanelRunLoopMode]; } + - (IBAction) showNewScan:(id)sender { hb_list_t * list; @@ -1588,11 +1579,9 @@ list = hb_get_titles( fHandle ); [fSrcTitlePopUp indexOfSelectedItem] ); hb_job_t * job = title->job; -#if JOB_GROUPS - // Assign a sequence number, starting at zero, to each job added so they can - // be lumped together in the UI. - job->sequence_id = -1; -#endif + // 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]; @@ -1631,9 +1620,7 @@ list = hb_get_titles( fHandle ); /* * Add the pre-scan job */ -#if JOB_GROUPS - job->sequence_id++; -#endif + job->sequence_id++; // for job grouping hb_add( fHandle, job ); job->x264opts = x264opts_tmp; @@ -1651,26 +1638,21 @@ list = hb_get_titles( fHandle ); if( [fVidTwoPassCheck state] == NSOnState ) { - hb_subtitle_t **subtitle_tmp = job->select_subtitle; - - job->select_subtitle = NULL; - - job->subtitle_scan = 0; + hb_subtitle_t **subtitle_tmp = job->select_subtitle; + job->select_subtitle = NULL; + job->subtitle_scan = 0; job->pass = 1; -#if JOB_GROUPS - job->sequence_id++; -#endif + job->sequence_id++; // for job grouping hb_add( fHandle, job ); -#if JOB_GROUPS - job->sequence_id++; -#endif + job->pass = 2; + job->sequence_id++; // for job grouping job->x264opts = (char *)calloc(1024, 1); /* Fixme, this just leaks */ strcpy(job->x264opts, [[fDisplayX264Options stringValue] UTF8String]); - job->select_subtitle = subtitle_tmp; + job->select_subtitle = subtitle_tmp; hb_add( fHandle, job ); } @@ -1678,9 +1660,7 @@ list = hb_get_titles( fHandle ); { job->subtitle_scan = 0; job->pass = 0; -#if JOB_GROUPS - job->sequence_id++; -#endif + job->sequence_id++; // for job grouping hb_add( fHandle, job ); } diff --git a/macosx/English.lproj/Queue.nib/classes.nib b/macosx/English.lproj/Queue.nib/classes.nib index 420f84df2..4e9bbaa78 100644 --- a/macosx/English.lproj/Queue.nib/classes.nib +++ b/macosx/English.lproj/Queue.nib/classes.nib @@ -217,8 +217,11 @@ ACTIONS = { cancelCurrentJob = id; detailChanged = id; + jobGroupsChanged = id; removeSelectedJob = id; showQueueWindow = id; + toggleShowsDetail = id; + toggleShowsJobsAsGroups = id; toggleStartPause = id; }; CLASS = HBQueueController; @@ -227,9 +230,10 @@ fCurrentJobPane = NSView; fDetailCheckbox = NSButton; fJobDescTextField = NSTextField; + fJobGroupsCheckbox = NSButton; + fJobIconView = NSImageView; fProgressBar = NSProgressIndicator; - fProgressStatus = NSTextField; - fProgressTimeRemaining = NSTextField; + fProgressTextField = NSTextField; fQueueCountField = NSTextField; fQueuePane = NSView; fQueueWindow = NSWindow; @@ -250,6 +254,7 @@ SUPERCLASS = NSTextField; }, {CLASS = MVMenuButton; LANGUAGE = ObjC; SUPERCLASS = NSButton; }, + {CLASS = NSSegmentedControl; LANGUAGE = ObjC; SUPERCLASS = NSControl; }, { ACTIONS = { ClosePanel = id; diff --git a/macosx/English.lproj/Queue.nib/info.nib b/macosx/English.lproj/Queue.nib/info.nib index 4bd1dba9d..f2104c54a 100644 --- a/macosx/English.lproj/Queue.nib/info.nib +++ b/macosx/English.lproj/Queue.nib/info.nib @@ -3,7 +3,7 @@ <plist version="1.0"> <dict> <key>IBDocumentLocation</key> - <string>483 594 453 434 0 0 1680 1028 </string> + <string>63 594 453 434 0 0 1680 1028 </string> <key>IBFramework Version</key> <string>446.1</string> <key>IBLockedObjects</key> diff --git a/macosx/English.lproj/Queue.nib/keyedobjects.nib b/macosx/English.lproj/Queue.nib/keyedobjects.nib index e0811e93e..2b8608f38 100644 --- a/macosx/English.lproj/Queue.nib/keyedobjects.nib +++ b/macosx/English.lproj/Queue.nib/keyedobjects.nib @@ -11,32 +11,32 @@ <key>$class</key> <dict> <key>CF$UID</key> - <integer>257</integer> + <integer>264</integer> </dict> <key>NSAccessibilityConnectors</key> <dict> <key>CF$UID</key> - <integer>254</integer> + <integer>261</integer> </dict> <key>NSAccessibilityOidsKeys</key> <dict> <key>CF$UID</key> - <integer>255</integer> + <integer>262</integer> </dict> <key>NSAccessibilityOidsValues</key> <dict> <key>CF$UID</key> - <integer>256</integer> + <integer>263</integer> </dict> <key>NSClassesKeys</key> <dict> <key>CF$UID</key> - <integer>211</integer> + <integer>216</integer> </dict> <key>NSClassesValues</key> <dict> <key>CF$UID</key> - <integer>212</integer> + <integer>217</integer> </dict> <key>NSConnections</key> <dict> @@ -56,34 +56,34 @@ <key>NSNamesKeys</key> <dict> <key>CF$UID</key> - <integer>197</integer> + <integer>202</integer> </dict> <key>NSNamesValues</key> <dict> <key>CF$UID</key> - <integer>198</integer> + <integer>203</integer> </dict> <key>NSNextOid</key> - <integer>2587</integer> + <integer>2596</integer> <key>NSObjectsKeys</key> <dict> <key>CF$UID</key> - <integer>194</integer> + <integer>199</integer> </dict> <key>NSObjectsValues</key> <dict> <key>CF$UID</key> - <integer>196</integer> + <integer>201</integer> </dict> <key>NSOidsKeys</key> <dict> <key>CF$UID</key> - <integer>213</integer> + <integer>218</integer> </dict> <key>NSOidsValues</key> <dict> <key>CF$UID</key> - <integer>214</integer> + <integer>219</integer> </dict> <key>NSRoot</key> <dict> @@ -160,7 +160,7 @@ <key>$class</key> <dict> <key>CF$UID</key> - <integer>71</integer> + <integer>67</integer> </dict> <key>NS.objects</key> <array> @@ -170,55 +170,55 @@ </dict> <dict> <key>CF$UID</key> - <integer>78</integer> + <integer>74</integer> </dict> <dict> <key>CF$UID</key> - <integer>149</integer> + <integer>150</integer> </dict> <dict> <key>CF$UID</key> - <integer>151</integer> + <integer>152</integer> </dict> <dict> <key>CF$UID</key> - <integer>153</integer> + <integer>154</integer> </dict> <dict> <key>CF$UID</key> - <integer>155</integer> + <integer>156</integer> </dict> <dict> <key>CF$UID</key> - <integer>157</integer> + <integer>158</integer> </dict> <dict> <key>CF$UID</key> - <integer>159</integer> + <integer>160</integer> </dict> <dict> <key>CF$UID</key> - <integer>161</integer> + <integer>162</integer> </dict> <dict> <key>CF$UID</key> - <integer>163</integer> + <integer>165</integer> </dict> <dict> <key>CF$UID</key> - <integer>166</integer> + <integer>167</integer> </dict> <dict> <key>CF$UID</key> - <integer>168</integer> + <integer>169</integer> </dict> <dict> <key>CF$UID</key> - <integer>170</integer> + <integer>171</integer> </dict> <dict> <key>CF$UID</key> - <integer>172</integer> + <integer>186</integer> </dict> <dict> <key>CF$UID</key> @@ -226,15 +226,23 @@ </dict> <dict> <key>CF$UID</key> - <integer>188</integer> + <integer>189</integer> </dict> <dict> <key>CF$UID</key> - <integer>190</integer> + <integer>191</integer> </dict> <dict> <key>CF$UID</key> - <integer>192</integer> + <integer>193</integer> + </dict> + <dict> + <key>CF$UID</key> + <integer>195</integer> + </dict> + <dict> + <key>CF$UID</key> + <integer>197</integer> </dict> </array> </dict> @@ -242,7 +250,7 @@ <key>$class</key> <dict> <key>CF$UID</key> - <integer>77</integer> + <integer>73</integer> </dict> <key>NSDestination</key> <dict> @@ -252,7 +260,7 @@ <key>NSLabel</key> <dict> <key>CF$UID</key> - <integer>76</integer> + <integer>72</integer> </dict> <key>NSSource</key> <dict> @@ -264,22 +272,22 @@ <key>$class</key> <dict> <key>CF$UID</key> - <integer>75</integer> + <integer>71</integer> </dict> <key>NSClassName</key> <dict> <key>CF$UID</key> - <integer>73</integer> + <integer>69</integer> </dict> <key>NSExtension</key> <dict> <key>CF$UID</key> - <integer>74</integer> + <integer>70</integer> </dict> <key>NSFrame</key> <dict> <key>CF$UID</key> - <integer>72</integer> + <integer>68</integer> </dict> <key>NSNextResponder</key> <dict> @@ -303,12 +311,12 @@ <key>$class</key> <dict> <key>CF$UID</key> - <integer>180</integer> + <integer>179</integer> </dict> <key>NSFrame</key> <dict> <key>CF$UID</key> - <integer>179</integer> + <integer>178</integer> </dict> <key>NSNextResponder</key> <dict> @@ -318,14 +326,14 @@ <key>NSSubviews</key> <dict> <key>CF$UID</key> - <integer>178</integer> + <integer>177</integer> </dict> </dict> <dict> <key>$class</key> <dict> <key>CF$UID</key> - <integer>71</integer> + <integer>67</integer> </dict> <key>NS.objects</key> <array> @@ -343,15 +351,11 @@ </dict> <dict> <key>CF$UID</key> - <integer>40</integer> + <integer>52</integer> </dict> <dict> <key>CF$UID</key> - <integer>56</integer> - </dict> - <dict> - <key>CF$UID</key> - <integer>61</integer> + <integer>57</integer> </dict> </array> </dict> @@ -447,7 +451,7 @@ <key>NSvFlags</key> <integer>268</integer> </dict> - <string>{{89, 28}, {154, 14}}</string> + <string>{{92, 28}, {462, 13}}</string> <dict> <key>$class</key> <dict> @@ -462,7 +466,7 @@ <key>NSCellFlags</key> <integer>67239424</integer> <key>NSCellFlags2</key> - <integer>272629760</integer> + <integer>272760832</integer> <key>NSContents</key> <dict> <key>CF$UID</key> @@ -497,9 +501,9 @@ <integer>24</integer> </dict> <key>NSSize</key> - <real>11</real> + <real>10</real> <key>NSfFlags</key> - <integer>3100</integer> + <integer>2843</integer> </dict> <string>LucidaGrande</string> <dict> @@ -625,86 +629,17 @@ <key>$class</key> <dict> <key>CF$UID</key> - <integer>35</integer> - </dict> - <key>NSCell</key> - <dict> - <key>CF$UID</key> - <integer>38</integer> - </dict> - <key>NSEnabled</key> - <true/> - <key>NSFrame</key> - <dict> - <key>CF$UID</key> - <integer>37</integer> - </dict> - <key>NSNextResponder</key> - <dict> - <key>CF$UID</key> - <integer>11</integer> - </dict> - <key>NSSuperview</key> - <dict> - <key>CF$UID</key> - <integer>11</integer> - </dict> - <key>NSvFlags</key> - <integer>266</integer> - </dict> - <string>{{245, 28}, {288, 14}}</string> - <dict> - <key>$class</key> - <dict> - <key>CF$UID</key> - <integer>34</integer> - </dict> - <key>NSBackgroundColor</key> - <dict> - <key>CF$UID</key> - <integer>26</integer> - </dict> - <key>NSCellFlags</key> - <integer>67239424</integer> - <key>NSCellFlags2</key> - <integer>71303168</integer> - <key>NSContents</key> - <dict> - <key>CF$UID</key> - <integer>39</integer> - </dict> - <key>NSControlView</key> - <dict> - <key>CF$UID</key> - <integer>36</integer> - </dict> - <key>NSSupport</key> - <dict> - <key>CF$UID</key> - <integer>23</integer> - </dict> - <key>NSTextColor</key> - <dict> - <key>CF$UID</key> - <integer>31</integer> - </dict> - </dict> - <string>Time Remaining: Calculating...</string> - <dict> - <key>$class</key> - <dict> - <key>CF$UID</key> - <integer>55</integer> + <integer>51</integer> </dict> <key>NSCell</key> <dict> <key>CF$UID</key> - <integer>49</integer> + <integer>45</integer> </dict> <key>NSDragTypes</key> <dict> <key>CF$UID</key> - <integer>41</integer> + <integer>37</integer> </dict> <key>NSEditable</key> <true/> @@ -713,7 +648,7 @@ <key>NSFrame</key> <dict> <key>CF$UID</key> - <integer>48</integer> + <integer>44</integer> </dict> <key>NSNextResponder</key> <dict> @@ -738,27 +673,27 @@ <array> <dict> <key>CF$UID</key> - <integer>42</integer> + <integer>38</integer> </dict> <dict> <key>CF$UID</key> - <integer>43</integer> + <integer>39</integer> </dict> <dict> <key>CF$UID</key> - <integer>44</integer> + <integer>40</integer> </dict> <dict> <key>CF$UID</key> - <integer>45</integer> + <integer>41</integer> </dict> <dict> <key>CF$UID</key> - <integer>46</integer> + <integer>42</integer> </dict> <dict> <key>CF$UID</key> - <integer>47</integer> + <integer>43</integer> </dict> </array> </dict> @@ -773,7 +708,7 @@ <key>$class</key> <dict> <key>CF$UID</key> - <integer>54</integer> + <integer>50</integer> </dict> <key>NSAlign</key> <integer>0</integer> @@ -786,7 +721,7 @@ <key>NSContents</key> <dict> <key>CF$UID</key> - <integer>50</integer> + <integer>46</integer> </dict> <key>NSScale</key> <integer>0</integer> @@ -797,17 +732,17 @@ <key>$class</key> <dict> <key>CF$UID</key> - <integer>53</integer> + <integer>49</integer> </dict> <key>NSClassName</key> <dict> <key>CF$UID</key> - <integer>51</integer> + <integer>47</integer> </dict> <key>NSResourceName</key> <dict> <key>CF$UID</key> - <integer>52</integer> + <integer>48</integer> </dict> </dict> <string>NSImage</string> @@ -854,14 +789,14 @@ <key>NSCell</key> <dict> <key>CF$UID</key> - <integer>58</integer> + <integer>54</integer> </dict> <key>NSEnabled</key> <true/> <key>NSFrame</key> <dict> <key>CF$UID</key> - <integer>57</integer> + <integer>53</integer> </dict> <key>NSNextResponder</key> <dict> @@ -876,7 +811,7 @@ <key>NSvFlags</key> <integer>266</integer> </dict> - <string>{{89, 46}, {468, 110}}</string> + <string>{{91, 46}, {466, 110}}</string> <dict> <key>$class</key> <dict> @@ -895,17 +830,17 @@ <key>NSContents</key> <dict> <key>CF$UID</key> - <integer>59</integer> + <integer>55</integer> </dict> <key>NSControlView</key> <dict> <key>CF$UID</key> - <integer>56</integer> + <integer>52</integer> </dict> <key>NSSupport</key> <dict> <key>CF$UID</key> - <integer>60</integer> + <integer>56</integer> </dict> <key>NSTextColor</key> <dict> @@ -934,19 +869,19 @@ <key>$class</key> <dict> <key>CF$UID</key> - <integer>70</integer> + <integer>66</integer> </dict> <key>NSCell</key> <dict> <key>CF$UID</key> - <integer>63</integer> + <integer>59</integer> </dict> <key>NSEnabled</key> <true/> <key>NSFrame</key> <dict> <key>CF$UID</key> - <integer>62</integer> + <integer>58</integer> </dict> <key>NSNextResponder</key> <dict> @@ -966,7 +901,7 @@ <key>$class</key> <dict> <key>CF$UID</key> - <integer>69</integer> + <integer>65</integer> </dict> <key>NSAlternateContents</key> <dict> @@ -976,7 +911,7 @@ <key>NSAlternateImage</key> <dict> <key>CF$UID</key> - <integer>66</integer> + <integer>62</integer> </dict> <key>NSButtonFlags</key> <integer>138690815</integer> @@ -994,17 +929,17 @@ <key>NSControlView</key> <dict> <key>CF$UID</key> - <integer>61</integer> + <integer>57</integer> </dict> <key>NSKeyEquivalent</key> <dict> <key>CF$UID</key> - <integer>68</integer> + <integer>64</integer> </dict> <key>NSNormalImage</key> <dict> <key>CF$UID</key> - <integer>64</integer> + <integer>60</integer> </dict> <key>NSPeriodicDelay</key> <integer>200</integer> @@ -1013,24 +948,24 @@ <key>NSSupport</key> <dict> <key>CF$UID</key> - <integer>60</integer> + <integer>56</integer> </dict> </dict> <dict> <key>$class</key> <dict> <key>CF$UID</key> - <integer>53</integer> + <integer>49</integer> </dict> <key>NSClassName</key> <dict> <key>CF$UID</key> - <integer>51</integer> + <integer>47</integer> </dict> <key>NSResourceName</key> <dict> <key>CF$UID</key> - <integer>65</integer> + <integer>61</integer> </dict> </dict> <string>Delete</string> @@ -1038,17 +973,17 @@ <key>$class</key> <dict> <key>CF$UID</key> - <integer>53</integer> + <integer>49</integer> </dict> <key>NSClassName</key> <dict> <key>CF$UID</key> - <integer>51</integer> + <integer>47</integer> </dict> <key>NSResourceName</key> <dict> <key>CF$UID</key> - <integer>67</integer> + <integer>63</integer> </dict> </dict> <string>DeletePressed</string> @@ -1124,17 +1059,17 @@ <key>$class</key> <dict> <key>CF$UID</key> - <integer>77</integer> + <integer>73</integer> </dict> <key>NSDestination</key> <dict> <key>CF$UID</key> - <integer>79</integer> + <integer>75</integer> </dict> <key>NSLabel</key> <dict> <key>CF$UID</key> - <integer>148</integer> + <integer>149</integer> </dict> <key>NSSource</key> <dict> @@ -1146,22 +1081,22 @@ <key>$class</key> <dict> <key>CF$UID</key> - <integer>75</integer> + <integer>71</integer> </dict> <key>NSClassName</key> <dict> <key>CF$UID</key> - <integer>73</integer> + <integer>69</integer> </dict> <key>NSExtension</key> <dict> <key>CF$UID</key> - <integer>74</integer> + <integer>70</integer> </dict> <key>NSFrameSize</key> <dict> <key>CF$UID</key> - <integer>147</integer> + <integer>148</integer> </dict> <key>NSNextResponder</key> <dict> @@ -1171,7 +1106,7 @@ <key>NSSubviews</key> <dict> <key>CF$UID</key> - <integer>80</integer> + <integer>76</integer> </dict> <key>NSSuperview</key> <dict> @@ -1185,25 +1120,29 @@ <key>$class</key> <dict> <key>CF$UID</key> - <integer>71</integer> + <integer>67</integer> </dict> <key>NS.objects</key> <array> <dict> <key>CF$UID</key> - <integer>81</integer> + <integer>77</integer> </dict> <dict> <key>CF$UID</key> - <integer>85</integer> + <integer>82</integer> </dict> <dict> <key>CF$UID</key> - <integer>134</integer> + <integer>131</integer> </dict> <dict> <key>CF$UID</key> - <integer>141</integer> + <integer>138</integer> + </dict> + <dict> + <key>CF$UID</key> + <integer>144</integer> </dict> </array> </dict> @@ -1216,29 +1155,29 @@ <key>NSCell</key> <dict> <key>CF$UID</key> - <integer>83</integer> + <integer>79</integer> </dict> <key>NSEnabled</key> <true/> <key>NSFrame</key> <dict> <key>CF$UID</key> - <integer>82</integer> + <integer>78</integer> </dict> <key>NSNextResponder</key> <dict> <key>CF$UID</key> - <integer>79</integer> + <integer>75</integer> </dict> <key>NSSuperview</key> <dict> <key>CF$UID</key> - <integer>79</integer> + <integer>75</integer> </dict> <key>NSvFlags</key> <integer>264</integer> </dict> - <string>{{59, 227}, {253, 14}}</string> + <string>{{17, 227}, {231, 14}}</string> <dict> <key>$class</key> <dict> @@ -1257,17 +1196,17 @@ <key>NSContents</key> <dict> <key>CF$UID</key> - <integer>84</integer> + <integer>80</integer> </dict> <key>NSControlView</key> <dict> <key>CF$UID</key> - <integer>81</integer> + <integer>77</integer> </dict> <key>NSSupport</key> <dict> <key>CF$UID</key> - <integer>23</integer> + <integer>81</integer> </dict> <key>NSTextColor</key> <dict> @@ -1280,32 +1219,48 @@ <key>$class</key> <dict> <key>CF$UID</key> - <integer>133</integer> + <integer>25</integer> + </dict> + <key>NSName</key> + <dict> + <key>CF$UID</key> + <integer>24</integer> + </dict> + <key>NSSize</key> + <real>11</real> + <key>NSfFlags</key> + <integer>3100</integer> + </dict> + <dict> + <key>$class</key> + <dict> + <key>CF$UID</key> + <integer>130</integer> </dict> <key>NSContentView</key> <dict> <key>CF$UID</key> - <integer>87</integer> + <integer>84</integer> </dict> <key>NSFrame</key> <dict> <key>CF$UID</key> - <integer>132</integer> + <integer>129</integer> </dict> <key>NSHScroller</key> <dict> <key>CF$UID</key> - <integer>129</integer> + <integer>126</integer> </dict> <key>NSNextKeyView</key> <dict> <key>CF$UID</key> - <integer>87</integer> + <integer>84</integer> </dict> <key>NSNextResponder</key> <dict> <key>CF$UID</key> - <integer>79</integer> + <integer>75</integer> </dict> <key>NSScrollAmts</key> <data> @@ -1314,17 +1269,17 @@ <key>NSSubviews</key> <dict> <key>CF$UID</key> - <integer>86</integer> + <integer>83</integer> </dict> <key>NSSuperview</key> <dict> <key>CF$UID</key> - <integer>79</integer> + <integer>75</integer> </dict> <key>NSVScroller</key> <dict> <key>CF$UID</key> - <integer>125</integer> + <integer>122</integer> </dict> <key>NSsFlags</key> <integer>18</integer> @@ -1335,21 +1290,21 @@ <key>$class</key> <dict> <key>CF$UID</key> - <integer>71</integer> + <integer>67</integer> </dict> <key>NS.objects</key> <array> <dict> <key>CF$UID</key> - <integer>87</integer> + <integer>84</integer> </dict> <dict> <key>CF$UID</key> - <integer>125</integer> + <integer>122</integer> </dict> <dict> <key>CF$UID</key> - <integer>129</integer> + <integer>126</integer> </dict> </array> </dict> @@ -1357,42 +1312,42 @@ <key>$class</key> <dict> <key>CF$UID</key> - <integer>124</integer> + <integer>121</integer> </dict> <key>NSBGColor</key> <dict> <key>CF$UID</key> - <integer>112</integer> + <integer>109</integer> </dict> <key>NSDocView</key> <dict> <key>CF$UID</key> - <integer>89</integer> + <integer>86</integer> </dict> <key>NSFrame</key> <dict> <key>CF$UID</key> - <integer>123</integer> + <integer>120</integer> </dict> <key>NSNextKeyView</key> <dict> <key>CF$UID</key> - <integer>89</integer> + <integer>86</integer> </dict> <key>NSNextResponder</key> <dict> <key>CF$UID</key> - <integer>85</integer> + <integer>82</integer> </dict> <key>NSSubviews</key> <dict> <key>CF$UID</key> - <integer>88</integer> + <integer>85</integer> </dict> <key>NSSuperview</key> <dict> <key>CF$UID</key> - <integer>85</integer> + <integer>82</integer> </dict> <key>NScvFlags</key> <integer>4</integer> @@ -1403,13 +1358,13 @@ <key>$class</key> <dict> <key>CF$UID</key> - <integer>71</integer> + <integer>67</integer> </dict> <key>NS.objects</key> <array> <dict> <key>CF$UID</key> - <integer>89</integer> + <integer>86</integer> </dict> </array> </dict> @@ -1417,19 +1372,19 @@ <key>$class</key> <dict> <key>CF$UID</key> - <integer>122</integer> + <integer>119</integer> </dict> <key>NSBackgroundColor</key> <dict> <key>CF$UID</key> - <integer>100</integer> + <integer>97</integer> </dict> <key>NSColumnAutoresizingStyle</key> <integer>1</integer> <key>NSCornerView</key> <dict> <key>CF$UID</key> - <integer>91</integer> + <integer>88</integer> </dict> <key>NSDraggingSourceMaskForLocal</key> <integer>15</integer> @@ -1440,12 +1395,12 @@ <key>NSFrameSize</key> <dict> <key>CF$UID</key> - <integer>90</integer> + <integer>87</integer> </dict> <key>NSGridColor</key> <dict> <key>CF$UID</key> - <integer>119</integer> + <integer>116</integer> </dict> <key>NSIntercellSpacingHeight</key> <real>2</real> @@ -1454,19 +1409,19 @@ <key>NSNextResponder</key> <dict> <key>CF$UID</key> - <integer>87</integer> + <integer>84</integer> </dict> <key>NSRowHeight</key> <real>17</real> <key>NSSuperview</key> <dict> <key>CF$UID</key> - <integer>87</integer> + <integer>84</integer> </dict> <key>NSTableColumns</key> <dict> <key>CF$UID</key> - <integer>94</integer> + <integer>91</integer> </dict> <key>NSTvFlags</key> <integer>314605568</integer> @@ -1478,12 +1433,12 @@ <key>$class</key> <dict> <key>CF$UID</key> - <integer>93</integer> + <integer>90</integer> </dict> <key>NSFrame</key> <dict> <key>CF$UID</key> - <integer>92</integer> + <integer>89</integer> </dict> <key>NSNextResponder</key> <dict> @@ -1509,21 +1464,21 @@ <key>$class</key> <dict> <key>CF$UID</key> - <integer>71</integer> + <integer>67</integer> </dict> <key>NS.objects</key> <array> <dict> <key>CF$UID</key> - <integer>95</integer> + <integer>92</integer> </dict> <dict> <key>CF$UID</key> - <integer>106</integer> + <integer>103</integer> </dict> <dict> <key>CF$UID</key> - <integer>114</integer> + <integer>111</integer> </dict> </array> </dict> @@ -1531,22 +1486,22 @@ <key>$class</key> <dict> <key>CF$UID</key> - <integer>105</integer> + <integer>102</integer> </dict> <key>NSDataCell</key> <dict> <key>CF$UID</key> - <integer>104</integer> + <integer>101</integer> </dict> <key>NSHeaderCell</key> <dict> <key>CF$UID</key> - <integer>97</integer> + <integer>94</integer> </dict> <key>NSIdentifier</key> <dict> <key>CF$UID</key> - <integer>96</integer> + <integer>93</integer> </dict> <key>NSIsEditable</key> <true/> @@ -1557,7 +1512,7 @@ <key>NSTableView</key> <dict> <key>CF$UID</key> - <integer>89</integer> + <integer>86</integer> </dict> <key>NSWidth</key> <real>20</real> @@ -1567,12 +1522,12 @@ <key>$class</key> <dict> <key>CF$UID</key> - <integer>103</integer> + <integer>100</integer> </dict> <key>NSBackgroundColor</key> <dict> <key>CF$UID</key> - <integer>98</integer> + <integer>95</integer> </dict> <key>NSCellFlags</key> <integer>67239424</integer> @@ -1586,12 +1541,12 @@ <key>NSSupport</key> <dict> <key>CF$UID</key> - <integer>23</integer> + <integer>81</integer> </dict> <key>NSTextColor</key> <dict> <key>CF$UID</key> - <integer>101</integer> + <integer>98</integer> </dict> </dict> <dict> @@ -1608,12 +1563,12 @@ <key>NSColor</key> <dict> <key>CF$UID</key> - <integer>100</integer> + <integer>97</integer> </dict> <key>NSColorName</key> <dict> <key>CF$UID</key> - <integer>99</integer> + <integer>96</integer> </dict> <key>NSColorSpace</key> <integer>6</integer> @@ -1651,7 +1606,7 @@ <key>NSColorName</key> <dict> <key>CF$UID</key> - <integer>102</integer> + <integer>99</integer> </dict> <key>NSColorSpace</key> <integer>6</integer> @@ -1673,7 +1628,7 @@ <key>$class</key> <dict> <key>CF$UID</key> - <integer>54</integer> + <integer>50</integer> </dict> <key>NSAlign</key> <integer>1</integer> @@ -1701,22 +1656,22 @@ <key>$class</key> <dict> <key>CF$UID</key> - <integer>105</integer> + <integer>102</integer> </dict> <key>NSDataCell</key> <dict> <key>CF$UID</key> - <integer>111</integer> + <integer>108</integer> </dict> <key>NSHeaderCell</key> <dict> <key>CF$UID</key> - <integer>108</integer> + <integer>105</integer> </dict> <key>NSIdentifier</key> <dict> <key>CF$UID</key> - <integer>107</integer> + <integer>104</integer> </dict> <key>NSIsResizeable</key> <true/> @@ -1729,7 +1684,7 @@ <key>NSTableView</key> <dict> <key>CF$UID</key> - <integer>89</integer> + <integer>86</integer> </dict> <key>NSWidth</key> <real>468</real> @@ -1739,12 +1694,12 @@ <key>$class</key> <dict> <key>CF$UID</key> - <integer>103</integer> + <integer>100</integer> </dict> <key>NSBackgroundColor</key> <dict> <key>CF$UID</key> - <integer>110</integer> + <integer>107</integer> </dict> <key>NSCellFlags</key> <integer>75628032</integer> @@ -1753,17 +1708,17 @@ <key>NSContents</key> <dict> <key>CF$UID</key> - <integer>109</integer> + <integer>106</integer> </dict> <key>NSSupport</key> <dict> <key>CF$UID</key> - <integer>23</integer> + <integer>81</integer> </dict> <key>NSTextColor</key> <dict> <key>CF$UID</key> - <integer>101</integer> + <integer>98</integer> </dict> </dict> <string>Job</string> @@ -1789,7 +1744,7 @@ <key>NSBackgroundColor</key> <dict> <key>CF$UID</key> - <integer>112</integer> + <integer>109</integer> </dict> <key>NSCellFlags</key> <integer>337772096</integer> @@ -1798,12 +1753,12 @@ <key>NSControlView</key> <dict> <key>CF$UID</key> - <integer>89</integer> + <integer>86</integer> </dict> <key>NSSupport</key> <dict> <key>CF$UID</key> - <integer>23</integer> + <integer>81</integer> </dict> <key>NSTextColor</key> <dict> @@ -1830,7 +1785,7 @@ <key>NSColorName</key> <dict> <key>CF$UID</key> - <integer>113</integer> + <integer>110</integer> </dict> <key>NSColorSpace</key> <integer>6</integer> @@ -1840,22 +1795,22 @@ <key>$class</key> <dict> <key>CF$UID</key> - <integer>105</integer> + <integer>102</integer> </dict> <key>NSDataCell</key> <dict> <key>CF$UID</key> - <integer>117</integer> + <integer>114</integer> </dict> <key>NSHeaderCell</key> <dict> <key>CF$UID</key> - <integer>116</integer> + <integer>113</integer> </dict> <key>NSIdentifier</key> <dict> <key>CF$UID</key> - <integer>115</integer> + <integer>112</integer> </dict> <key>NSMaxWidth</key> <real>1000</real> @@ -1864,7 +1819,7 @@ <key>NSTableView</key> <dict> <key>CF$UID</key> - <integer>89</integer> + <integer>86</integer> </dict> <key>NSWidth</key> <real>20</real> @@ -1874,12 +1829,12 @@ <key>$class</key> <dict> <key>CF$UID</key> - <integer>103</integer> + <integer>100</integer> </dict> <key>NSBackgroundColor</key> <dict> <key>CF$UID</key> - <integer>98</integer> + <integer>95</integer> </dict> <key>NSCellFlags</key> <integer>67239424</integer> @@ -1893,19 +1848,19 @@ <key>NSSupport</key> <dict> <key>CF$UID</key> - <integer>23</integer> + <integer>81</integer> </dict> <key>NSTextColor</key> <dict> <key>CF$UID</key> - <integer>101</integer> + <integer>98</integer> </dict> </dict> <dict> <key>$class</key> <dict> <key>CF$UID</key> - <integer>69</integer> + <integer>65</integer> </dict> <key>NSAlternateContents</key> <dict> @@ -1928,7 +1883,7 @@ <key>NSControlView</key> <dict> <key>CF$UID</key> - <integer>89</integer> + <integer>86</integer> </dict> <key>NSKeyEquivalent</key> <dict> @@ -1938,7 +1893,7 @@ <key>NSNormalImage</key> <dict> <key>CF$UID</key> - <integer>64</integer> + <integer>60</integer> </dict> <key>NSPeriodicDelay</key> <integer>400</integer> @@ -1947,7 +1902,7 @@ <key>NSSupport</key> <dict> <key>CF$UID</key> - <integer>118</integer> + <integer>115</integer> </dict> </dict> <dict> @@ -1980,12 +1935,12 @@ <key>NSColor</key> <dict> <key>CF$UID</key> - <integer>121</integer> + <integer>118</integer> </dict> <key>NSColorName</key> <dict> <key>CF$UID</key> - <integer>120</integer> + <integer>117</integer> </dict> <key>NSColorSpace</key> <integer>6</integer> @@ -2033,34 +1988,34 @@ <key>$class</key> <dict> <key>CF$UID</key> - <integer>128</integer> + <integer>125</integer> </dict> <key>NSAction</key> <dict> <key>CF$UID</key> - <integer>127</integer> + <integer>124</integer> </dict> <key>NSFrame</key> <dict> <key>CF$UID</key> - <integer>126</integer> + <integer>123</integer> </dict> <key>NSNextResponder</key> <dict> <key>CF$UID</key> - <integer>85</integer> + <integer>82</integer> </dict> <key>NSPercent</key> <real>0.93596059083938599</real> <key>NSSuperview</key> <dict> <key>CF$UID</key> - <integer>85</integer> + <integer>82</integer> </dict> <key>NSTarget</key> <dict> <key>CF$UID</key> - <integer>85</integer> + <integer>82</integer> </dict> <key>NSvFlags</key> <integer>256</integer> @@ -2083,34 +2038,34 @@ <key>$class</key> <dict> <key>CF$UID</key> - <integer>128</integer> + <integer>125</integer> </dict> <key>NSAction</key> <dict> <key>CF$UID</key> - <integer>131</integer> + <integer>128</integer> </dict> <key>NSFrame</key> <dict> <key>CF$UID</key> - <integer>130</integer> + <integer>127</integer> </dict> <key>NSNextResponder</key> <dict> <key>CF$UID</key> - <integer>85</integer> + <integer>82</integer> </dict> <key>NSPercent</key> <real>0.88602942228317261</real> <key>NSSuperview</key> <dict> <key>CF$UID</key> - <integer>85</integer> + <integer>82</integer> </dict> <key>NSTarget</key> <dict> <key>CF$UID</key> - <integer>85</integer> + <integer>82</integer> </dict> <key>NSsFlags</key> <integer>1</integer> @@ -2135,39 +2090,39 @@ <key>$class</key> <dict> <key>CF$UID</key> - <integer>70</integer> + <integer>66</integer> </dict> <key>NSCell</key> <dict> <key>CF$UID</key> - <integer>136</integer> + <integer>133</integer> </dict> <key>NSEnabled</key> <true/> <key>NSFrame</key> <dict> <key>CF$UID</key> - <integer>135</integer> + <integer>132</integer> </dict> <key>NSNextResponder</key> <dict> <key>CF$UID</key> - <integer>79</integer> + <integer>75</integer> </dict> <key>NSSuperview</key> <dict> <key>CF$UID</key> - <integer>79</integer> + <integer>75</integer> </dict> <key>NSvFlags</key> - <integer>265</integer> + <integer>-2147483383</integer> </dict> <string>{{471, 226}, {85, 16}}</string> <dict> <key>$class</key> <dict> <key>CF$UID</key> - <integer>69</integer> + <integer>65</integer> </dict> <key>NSAlternateContents</key> <dict> @@ -2177,7 +2132,7 @@ <key>NSAlternateImage</key> <dict> <key>CF$UID</key> - <integer>138</integer> + <integer>135</integer> </dict> <key>NSButtonFlags</key> <integer>1211912703</integer> @@ -2190,12 +2145,12 @@ <key>NSContents</key> <dict> <key>CF$UID</key> - <integer>137</integer> + <integer>134</integer> </dict> <key>NSControlView</key> <dict> <key>CF$UID</key> - <integer>134</integer> + <integer>131</integer> </dict> <key>NSKeyEquivalent</key> <dict> @@ -2209,7 +2164,7 @@ <key>NSSupport</key> <dict> <key>CF$UID</key> - <integer>23</integer> + <integer>81</integer> </dict> </dict> <string>Show Detail</string> @@ -2217,12 +2172,12 @@ <key>$class</key> <dict> <key>CF$UID</key> - <integer>140</integer> + <integer>137</integer> </dict> <key>NSImageName</key> <dict> <key>CF$UID</key> - <integer>139</integer> + <integer>136</integer> </dict> </dict> <string>NSSwitch</string> @@ -2239,39 +2194,39 @@ <key>$class</key> <dict> <key>CF$UID</key> - <integer>70</integer> + <integer>66</integer> </dict> <key>NSCell</key> <dict> <key>CF$UID</key> - <integer>143</integer> + <integer>140</integer> </dict> <key>NSEnabled</key> <true/> <key>NSFrame</key> <dict> <key>CF$UID</key> - <integer>142</integer> + <integer>139</integer> </dict> <key>NSNextResponder</key> <dict> <key>CF$UID</key> - <integer>79</integer> + <integer>75</integer> </dict> <key>NSSuperview</key> <dict> <key>CF$UID</key> - <integer>79</integer> + <integer>75</integer> </dict> <key>NSvFlags</key> - <integer>268</integer> + <integer>-2147483380</integer> </dict> <string>{{20, 220}, {34, 32}}</string> <dict> <key>$class</key> <dict> <key>CF$UID</key> - <integer>69</integer> + <integer>65</integer> </dict> <key>NSAlternateContents</key> <dict> @@ -2294,17 +2249,17 @@ <key>NSControlView</key> <dict> <key>CF$UID</key> - <integer>141</integer> + <integer>138</integer> </dict> <key>NSKeyEquivalent</key> <dict> <key>CF$UID</key> - <integer>146</integer> + <integer>143</integer> </dict> <key>NSNormalImage</key> <dict> <key>CF$UID</key> - <integer>144</integer> + <integer>141</integer> </dict> <key>NSPeriodicDelay</key> <integer>200</integer> @@ -2313,24 +2268,24 @@ <key>NSSupport</key> <dict> <key>CF$UID</key> - <integer>60</integer> + <integer>56</integer> </dict> </dict> <dict> <key>$class</key> <dict> <key>CF$UID</key> - <integer>53</integer> + <integer>49</integer> </dict> <key>NSClassName</key> <dict> <key>CF$UID</key> - <integer>51</integer> + <integer>47</integer> </dict> <key>NSResourceName</key> <dict> <key>CF$UID</key> - <integer>145</integer> + <integer>142</integer> </dict> </dict> <string>Play</string> @@ -2343,46 +2298,105 @@ <key>NS.string</key> <string></string> </dict> - <string>{574, 257}</string> - <string>fQueuePane</string> <dict> <key>$class</key> <dict> <key>CF$UID</key> - <integer>77</integer> + <integer>66</integer> </dict> - <key>NSDestination</key> + <key>NSCell</key> <dict> <key>CF$UID</key> - <integer>14</integer> + <integer>146</integer> </dict> - <key>NSLabel</key> + <key>NSEnabled</key> + <true/> + <key>NSFrame</key> <dict> <key>CF$UID</key> - <integer>150</integer> + <integer>145</integer> </dict> - <key>NSSource</key> + <key>NSNextResponder</key> <dict> <key>CF$UID</key> - <integer>2</integer> + <integer>75</integer> + </dict> + <key>NSSuperview</key> + <dict> + <key>CF$UID</key> + <integer>75</integer> </dict> + <key>NSvFlags</key> + <integer>-2147483383</integer> </dict> - <string>fProgressBar</string> + <string>{{370, 226}, {98, 16}}</string> <dict> <key>$class</key> <dict> <key>CF$UID</key> - <integer>77</integer> + <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>134</integer> + <integer>14</integer> </dict> <key>NSLabel</key> <dict> <key>CF$UID</key> - <integer>152</integer> + <integer>151</integer> </dict> <key>NSSource</key> <dict> @@ -2390,22 +2404,22 @@ <integer>2</integer> </dict> </dict> - <string>fDetailCheckbox</string> + <string>fProgressBar</string> <dict> <key>$class</key> <dict> <key>CF$UID</key> - <integer>77</integer> + <integer>73</integer> </dict> <key>NSDestination</key> <dict> <key>CF$UID</key> - <integer>81</integer> + <integer>131</integer> </dict> <key>NSLabel</key> <dict> <key>CF$UID</key> - <integer>154</integer> + <integer>153</integer> </dict> <key>NSSource</key> <dict> @@ -2413,22 +2427,22 @@ <integer>2</integer> </dict> </dict> - <string>fQueueCountField</string> + <string>fDetailCheckbox</string> <dict> <key>$class</key> <dict> <key>CF$UID</key> - <integer>77</integer> + <integer>73</integer> </dict> <key>NSDestination</key> <dict> <key>CF$UID</key> - <integer>89</integer> + <integer>77</integer> </dict> <key>NSLabel</key> <dict> <key>CF$UID</key> - <integer>156</integer> + <integer>155</integer> </dict> <key>NSSource</key> <dict> @@ -2436,22 +2450,22 @@ <integer>2</integer> </dict> </dict> - <string>fTaskView</string> + <string>fQueueCountField</string> <dict> <key>$class</key> <dict> <key>CF$UID</key> - <integer>77</integer> + <integer>73</integer> </dict> <key>NSDestination</key> <dict> <key>CF$UID</key> - <integer>36</integer> + <integer>86</integer> </dict> <key>NSLabel</key> <dict> <key>CF$UID</key> - <integer>158</integer> + <integer>157</integer> </dict> <key>NSSource</key> <dict> @@ -2459,12 +2473,12 @@ <integer>2</integer> </dict> </dict> - <string>fProgressTimeRemaining</string> + <string>fTaskView</string> <dict> <key>$class</key> <dict> <key>CF$UID</key> - <integer>77</integer> + <integer>73</integer> </dict> <key>NSDestination</key> <dict> @@ -2474,7 +2488,7 @@ <key>NSLabel</key> <dict> <key>CF$UID</key> - <integer>160</integer> + <integer>159</integer> </dict> <key>NSSource</key> <dict> @@ -2482,22 +2496,22 @@ <integer>2</integer> </dict> </dict> - <string>fProgressStatus</string> + <string>fProgressTextField</string> <dict> <key>$class</key> <dict> <key>CF$UID</key> - <integer>77</integer> + <integer>73</integer> </dict> <key>NSDestination</key> <dict> <key>CF$UID</key> - <integer>56</integer> + <integer>52</integer> </dict> <key>NSLabel</key> <dict> <key>CF$UID</key> - <integer>162</integer> + <integer>161</integer> </dict> <key>NSSource</key> <dict> @@ -2510,7 +2524,7 @@ <key>$class</key> <dict> <key>CF$UID</key> - <integer>165</integer> + <integer>164</integer> </dict> <key>NSDestination</key> <dict> @@ -2520,12 +2534,12 @@ <key>NSLabel</key> <dict> <key>CF$UID</key> - <integer>164</integer> + <integer>163</integer> </dict> <key>NSSource</key> <dict> <key>CF$UID</key> - <integer>117</integer> + <integer>114</integer> </dict> </dict> <string>removeSelectedJob:</string> @@ -2543,7 +2557,7 @@ <key>$class</key> <dict> <key>CF$UID</key> - <integer>77</integer> + <integer>73</integer> </dict> <key>NSDestination</key> <dict> @@ -2553,12 +2567,12 @@ <key>NSLabel</key> <dict> <key>CF$UID</key> - <integer>167</integer> + <integer>166</integer> </dict> <key>NSSource</key> <dict> <key>CF$UID</key> - <integer>89</integer> + <integer>86</integer> </dict> </dict> <string>dataSource</string> @@ -2566,7 +2580,7 @@ <key>$class</key> <dict> <key>CF$UID</key> - <integer>77</integer> + <integer>73</integer> </dict> <key>NSDestination</key> <dict> @@ -2576,12 +2590,12 @@ <key>NSLabel</key> <dict> <key>CF$UID</key> - <integer>169</integer> + <integer>168</integer> </dict> <key>NSSource</key> <dict> <key>CF$UID</key> - <integer>89</integer> + <integer>86</integer> </dict> </dict> <string>delegate</string> @@ -2589,7 +2603,7 @@ <key>$class</key> <dict> <key>CF$UID</key> - <integer>165</integer> + <integer>164</integer> </dict> <key>NSDestination</key> <dict> @@ -2599,12 +2613,12 @@ <key>NSLabel</key> <dict> <key>CF$UID</key> - <integer>171</integer> + <integer>170</integer> </dict> <key>NSSource</key> <dict> <key>CF$UID</key> - <integer>134</integer> + <integer>131</integer> </dict> </dict> <string>detailChanged:</string> @@ -2612,17 +2626,17 @@ <key>$class</key> <dict> <key>CF$UID</key> - <integer>77</integer> + <integer>73</integer> </dict> <key>NSDestination</key> <dict> <key>CF$UID</key> - <integer>173</integer> + <integer>172</integer> </dict> <key>NSLabel</key> <dict> <key>CF$UID</key> - <integer>186</integer> + <integer>185</integer> </dict> <key>NSSource</key> <dict> @@ -2634,32 +2648,32 @@ <key>$class</key> <dict> <key>CF$UID</key> - <integer>185</integer> + <integer>184</integer> </dict> <key>NSFrameAutosaveName</key> <dict> <key>CF$UID</key> - <integer>184</integer> + <integer>183</integer> </dict> <key>NSMaxSize</key> <dict> <key>CF$UID</key> - <integer>183</integer> + <integer>182</integer> </dict> <key>NSMinSize</key> <dict> <key>CF$UID</key> - <integer>182</integer> + <integer>181</integer> </dict> <key>NSScreenRect</key> <dict> <key>CF$UID</key> - <integer>181</integer> + <integer>180</integer> </dict> <key>NSViewClass</key> <dict> <key>CF$UID</key> - <integer>177</integer> + <integer>176</integer> </dict> <key>NSWTFlags</key> <integer>1886912512</integer> @@ -2668,19 +2682,19 @@ <key>NSWindowClass</key> <dict> <key>CF$UID</key> - <integer>176</integer> + <integer>175</integer> </dict> <key>NSWindowRect</key> <dict> <key>CF$UID</key> - <integer>174</integer> + <integer>173</integer> </dict> <key>NSWindowStyleMask</key> - <integer>14</integer> + <integer>4110</integer> <key>NSWindowTitle</key> <dict> <key>CF$UID</key> - <integer>175</integer> + <integer>174</integer> </dict> <key>NSWindowView</key> <dict> @@ -2688,7 +2702,7 @@ <integer>12</integer> </dict> </dict> - <string>{{651, 179}, {574, 433}}</string> + <string>{{420, 319}, {574, 433}}</string> <string>Queue - HandBrake</string> <dict> <key>$class</key> @@ -2712,7 +2726,7 @@ <key>$class</key> <dict> <key>CF$UID</key> - <integer>71</integer> + <integer>67</integer> </dict> <key>NS.objects</key> <array> @@ -2722,7 +2736,7 @@ </dict> <dict> <key>CF$UID</key> - <integer>79</integer> + <integer>75</integer> </dict> </array> </dict> @@ -2755,7 +2769,7 @@ <key>$class</key> <dict> <key>CF$UID</key> - <integer>77</integer> + <integer>73</integer> </dict> <key>NSDestination</key> <dict> @@ -2765,29 +2779,29 @@ <key>NSLabel</key> <dict> <key>CF$UID</key> - <integer>169</integer> + <integer>168</integer> </dict> <key>NSSource</key> <dict> <key>CF$UID</key> - <integer>173</integer> + <integer>172</integer> </dict> </dict> <dict> <key>$class</key> <dict> <key>CF$UID</key> - <integer>77</integer> + <integer>73</integer> </dict> <key>NSDestination</key> <dict> <key>CF$UID</key> - <integer>141</integer> + <integer>138</integer> </dict> <key>NSLabel</key> <dict> <key>CF$UID</key> - <integer>189</integer> + <integer>188</integer> </dict> <key>NSSource</key> <dict> @@ -2800,7 +2814,7 @@ <key>$class</key> <dict> <key>CF$UID</key> - <integer>165</integer> + <integer>164</integer> </dict> <key>NSDestination</key> <dict> @@ -2810,12 +2824,12 @@ <key>NSLabel</key> <dict> <key>CF$UID</key> - <integer>191</integer> + <integer>190</integer> </dict> <key>NSSource</key> <dict> <key>CF$UID</key> - <integer>141</integer> + <integer>138</integer> </dict> </dict> <string>toggleStartPause:</string> @@ -2823,7 +2837,7 @@ <key>$class</key> <dict> <key>CF$UID</key> - <integer>165</integer> + <integer>164</integer> </dict> <key>NSDestination</key> <dict> @@ -2833,12 +2847,12 @@ <key>NSLabel</key> <dict> <key>CF$UID</key> - <integer>193</integer> + <integer>192</integer> </dict> <key>NSSource</key> <dict> <key>CF$UID</key> - <integer>61</integer> + <integer>57</integer> </dict> </dict> <string>cancelCurrentJob:</string> @@ -2846,89 +2860,158 @@ <key>$class</key> <dict> <key>CF$UID</key> - <integer>195</integer> + <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> + </dict> + <key>NSDestination</key> + <dict> + <key>CF$UID</key> + <integer>36</integer> + </dict> + <key>NSLabel</key> + <dict> + <key>CF$UID</key> + <integer>198</integer> + </dict> + <key>NSSource</key> + <dict> + <key>CF$UID</key> + <integer>2</integer> + </dict> + </dict> + <string>fJobIconView</string> + <dict> + <key>$class</key> + <dict> + <key>CF$UID</key> + <integer>200</integer> </dict> <key>NS.objects</key> <array> <dict> <key>CF$UID</key> - <integer>134</integer> + <integer>75</integer> </dict> <dict> <key>CF$UID</key> - <integer>85</integer> + <integer>82</integer> </dict> <dict> <key>CF$UID</key> - <integer>114</integer> + <integer>172</integer> </dict> <dict> <key>CF$UID</key> - <integer>14</integer> + <integer>77</integer> </dict> <dict> <key>CF$UID</key> - <integer>141</integer> + <integer>131</integer> </dict> <dict> <key>CF$UID</key> - <integer>173</integer> + <integer>92</integer> </dict> <dict> <key>CF$UID</key> - <integer>106</integer> + <integer>57</integer> </dict> <dict> <key>CF$UID</key> - <integer>11</integer> + <integer>103</integer> </dict> <dict> <key>CF$UID</key> - <integer>104</integer> + <integer>36</integer> </dict> <dict> <key>CF$UID</key> - <integer>79</integer> + <integer>138</integer> </dict> <dict> <key>CF$UID</key> - <integer>12</integer> + <integer>111</integer> </dict> <dict> <key>CF$UID</key> - <integer>40</integer> + <integer>12</integer> </dict> <dict> <key>CF$UID</key> - <integer>81</integer> + <integer>144</integer> </dict> <dict> <key>CF$UID</key> - <integer>117</integer> + <integer>101</integer> </dict> <dict> <key>CF$UID</key> - <integer>56</integer> + <integer>114</integer> </dict> <dict> <key>CF$UID</key> - <integer>36</integer> + <integer>52</integer> </dict> <dict> <key>CF$UID</key> - <integer>89</integer> + <integer>14</integer> </dict> <dict> <key>CF$UID</key> - <integer>19</integer> + <integer>86</integer> </dict> <dict> <key>CF$UID</key> - <integer>95</integer> + <integer>11</integer> </dict> <dict> <key>CF$UID</key> - <integer>61</integer> + <integer>19</integer> </dict> </array> </dict> @@ -2945,69 +3028,69 @@ <key>$class</key> <dict> <key>CF$UID</key> - <integer>195</integer> + <integer>200</integer> </dict> <key>NS.objects</key> <array> <dict> <key>CF$UID</key> - <integer>79</integer> + <integer>12</integer> </dict> <dict> <key>CF$UID</key> - <integer>79</integer> + <integer>75</integer> </dict> <dict> <key>CF$UID</key> - <integer>89</integer> + <integer>2</integer> </dict> <dict> <key>CF$UID</key> - <integer>11</integer> + <integer>75</integer> </dict> <dict> <key>CF$UID</key> - <integer>79</integer> + <integer>75</integer> </dict> <dict> <key>CF$UID</key> - <integer>2</integer> + <integer>86</integer> </dict> <dict> <key>CF$UID</key> - <integer>89</integer> + <integer>11</integer> </dict> <dict> <key>CF$UID</key> - <integer>12</integer> + <integer>86</integer> </dict> <dict> <key>CF$UID</key> - <integer>95</integer> + <integer>11</integer> </dict> <dict> <key>CF$UID</key> - <integer>12</integer> + <integer>75</integer> </dict> <dict> <key>CF$UID</key> - <integer>173</integer> + <integer>86</integer> </dict> <dict> <key>CF$UID</key> - <integer>11</integer> + <integer>172</integer> </dict> <dict> <key>CF$UID</key> - <integer>79</integer> + <integer>75</integer> </dict> <dict> <key>CF$UID</key> - <integer>114</integer> + <integer>92</integer> </dict> <dict> <key>CF$UID</key> - <integer>11</integer> + <integer>111</integer> </dict> <dict> <key>CF$UID</key> @@ -3015,15 +3098,15 @@ </dict> <dict> <key>CF$UID</key> - <integer>85</integer> + <integer>11</integer> </dict> <dict> <key>CF$UID</key> - <integer>11</integer> + <integer>82</integer> </dict> <dict> <key>CF$UID</key> - <integer>89</integer> + <integer>12</integer> </dict> <dict> <key>CF$UID</key> @@ -3035,61 +3118,61 @@ <key>$class</key> <dict> <key>CF$UID</key> - <integer>195</integer> + <integer>200</integer> </dict> <key>NS.objects</key> <array> <dict> <key>CF$UID</key> - <integer>2</integer> + <integer>131</integer> </dict> <dict> <key>CF$UID</key> - <integer>14</integer> + <integer>86</integer> </dict> <dict> <key>CF$UID</key> - <integer>61</integer> + <integer>82</integer> </dict> <dict> <key>CF$UID</key> - <integer>19</integer> + <integer>138</integer> </dict> <dict> <key>CF$UID</key> - <integer>36</integer> + <integer>52</integer> </dict> <dict> <key>CF$UID</key> - <integer>56</integer> + <integer>103</integer> </dict> <dict> <key>CF$UID</key> - <integer>89</integer> + <integer>14</integer> </dict> <dict> <key>CF$UID</key> - <integer>141</integer> + <integer>144</integer> </dict> <dict> <key>CF$UID</key> - <integer>173</integer> + <integer>19</integer> </dict> <dict> <key>CF$UID</key> - <integer>81</integer> + <integer>57</integer> </dict> <dict> <key>CF$UID</key> - <integer>106</integer> + <integer>172</integer> </dict> <dict> <key>CF$UID</key> - <integer>134</integer> + <integer>2</integer> </dict> <dict> <key>CF$UID</key> - <integer>85</integer> + <integer>77</integer> </dict> </array> </dict> @@ -3097,45 +3180,45 @@ <key>$class</key> <dict> <key>CF$UID</key> - <integer>195</integer> + <integer>200</integer> </dict> <key>NS.objects</key> <array> <dict> <key>CF$UID</key> - <integer>199</integer> + <integer>204</integer> </dict> <dict> <key>CF$UID</key> - <integer>200</integer> + <integer>205</integer> </dict> <dict> <key>CF$UID</key> - <integer>201</integer> + <integer>206</integer> </dict> <dict> <key>CF$UID</key> - <integer>202</integer> + <integer>207</integer> </dict> <dict> <key>CF$UID</key> - <integer>203</integer> + <integer>208</integer> </dict> <dict> <key>CF$UID</key> - <integer>204</integer> + <integer>209</integer> </dict> <dict> <key>CF$UID</key> - <integer>205</integer> + <integer>210</integer> </dict> <dict> <key>CF$UID</key> - <integer>201</integer> + <integer>211</integer> </dict> <dict> <key>CF$UID</key> - <integer>206</integer> + <integer>212</integer> </dict> <dict> <key>CF$UID</key> @@ -3143,18 +3226,28 @@ </dict> <dict> <key>CF$UID</key> - <integer>208</integer> + <integer>213</integer> </dict> <dict> <key>CF$UID</key> - <integer>209</integer> + <integer>214</integer> </dict> <dict> <key>CF$UID</key> - <integer>210</integer> + <integer>215</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> <dict> <key>$class</key> <dict> @@ -3164,22 +3257,12 @@ <key>NS.string</key> <string>File's Owner</string> </dict> - <string>1</string> - <string>NSButton</string> - <string>NSTextField1</string> - <string>NSTextField11</string> - <string>NSTextField221</string> - <string>NSTableView</string> - <string>Window</string> <string>NSTextField2</string> - <string>NSTableColumn</string> - <string>NSButton4</string> - <string>NSScrollView1</string> <dict> <key>$class</key> <dict> <key>CF$UID</key> - <integer>195</integer> + <integer>200</integer> </dict> <key>NS.objects</key> <array/> @@ -3188,7 +3271,7 @@ <key>$class</key> <dict> <key>CF$UID</key> - <integer>195</integer> + <integer>200</integer> </dict> <key>NS.objects</key> <array/> @@ -3197,97 +3280,101 @@ <key>$class</key> <dict> <key>CF$UID</key> - <integer>195</integer> + <integer>200</integer> </dict> <key>NS.objects</key> <array> <dict> <key>CF$UID</key> - <integer>2</integer> + <integer>12</integer> </dict> <dict> <key>CF$UID</key> - <integer>161</integer> + <integer>197</integer> </dict> <dict> <key>CF$UID</key> - <integer>173</integer> + <integer>19</integer> </dict> <dict> <key>CF$UID</key> - <integer>10</integer> + <integer>160</integer> </dict> <dict> <key>CF$UID</key> - <integer>61</integer> + <integer>172</integer> </dict> <dict> <key>CF$UID</key> - <integer>192</integer> + <integer>57</integer> </dict> <dict> <key>CF$UID</key> - <integer>95</integer> + <integer>77</integer> </dict> <dict> <key>CF$UID</key> - <integer>170</integer> + <integer>186</integer> </dict> <dict> <key>CF$UID</key> - <integer>134</integer> + <integer>52</integer> </dict> <dict> <key>CF$UID</key> - <integer>153</integer> + <integer>75</integer> </dict> <dict> <key>CF$UID</key> - <integer>78</integer> + <integer>193</integer> </dict> <dict> <key>CF$UID</key> - <integer>40</integer> + <integer>74</integer> </dict> <dict> <key>CF$UID</key> - <integer>104</integer> + <integer>101</integer> </dict> <dict> <key>CF$UID</key> - <integer>106</integer> + <integer>138</integer> </dict> <dict> <key>CF$UID</key> - <integer>36</integer> + <integer>92</integer> </dict> <dict> <key>CF$UID</key> - <integer>190</integer> + <integer>167</integer> </dict> <dict> <key>CF$UID</key> - <integer>85</integer> + <integer>2</integer> </dict> <dict> <key>CF$UID</key> - <integer>166</integer> + <integer>154</integer> </dict> <dict> <key>CF$UID</key> - <integer>168</integer> + <integer>189</integer> </dict> <dict> <key>CF$UID</key> - <integer>14</integer> + <integer>162</integer> + </dict> + <dict> + <key>CF$UID</key> + <integer>169</integer> </dict> <dict> <key>CF$UID</key> - <integer>163</integer> + <integer>152</integer> </dict> <dict> <key>CF$UID</key> - <integer>159</integer> + <integer>165</integer> </dict> <dict> <key>CF$UID</key> @@ -3295,67 +3382,71 @@ </dict> <dict> <key>CF$UID</key> + <integer>114</integer> + </dict> + <dict> + <key>CF$UID</key> <integer>11</integer> </dict> <dict> <key>CF$UID</key> - <integer>188</integer> + <integer>111</integer> </dict> <dict> <key>CF$UID</key> - <integer>149</integer> + <integer>171</integer> </dict> <dict> <key>CF$UID</key> - <integer>172</integer> + <integer>14</integer> </dict> <dict> <key>CF$UID</key> - <integer>19</integer> + <integer>82</integer> </dict> <dict> <key>CF$UID</key> - <integer>141</integer> + <integer>191</integer> </dict> <dict> <key>CF$UID</key> - <integer>114</integer> + <integer>156</integer> </dict> <dict> <key>CF$UID</key> - <integer>81</integer> + <integer>144</integer> </dict> <dict> <key>CF$UID</key> - <integer>56</integer> + <integer>195</integer> </dict> <dict> <key>CF$UID</key> - <integer>155</integer> + <integer>10</integer> </dict> <dict> <key>CF$UID</key> - <integer>12</integer> + <integer>103</integer> </dict> <dict> <key>CF$UID</key> - <integer>151</integer> + <integer>86</integer> </dict> <dict> <key>CF$UID</key> - <integer>117</integer> + <integer>158</integer> </dict> <dict> <key>CF$UID</key> - <integer>79</integer> + <integer>36</integer> </dict> <dict> <key>CF$UID</key> - <integer>89</integer> + <integer>150</integer> </dict> <dict> <key>CF$UID</key> - <integer>157</integer> + <integer>131</integer> </dict> </array> </dict> @@ -3363,32 +3454,12 @@ <key>$class</key> <dict> <key>CF$UID</key> - <integer>195</integer> + <integer>200</integer> </dict> <key>NS.objects</key> <array> <dict> <key>CF$UID</key> - <integer>215</integer> - </dict> - <dict> - <key>CF$UID</key> - <integer>216</integer> - </dict> - <dict> - <key>CF$UID</key> - <integer>217</integer> - </dict> - <dict> - <key>CF$UID</key> - <integer>218</integer> - </dict> - <dict> - <key>CF$UID</key> - <integer>219</integer> - </dict> - <dict> - <key>CF$UID</key> <integer>220</integer> </dict> <dict> @@ -3523,52 +3594,82 @@ <key>CF$UID</key> <integer>253</integer> </dict> + <dict> + <key>CF$UID</key> + <integer>254</integer> + </dict> + <dict> + <key>CF$UID</key> + <integer>255</integer> + </dict> + <dict> + <key>CF$UID</key> + <integer>256</integer> + </dict> + <dict> + <key>CF$UID</key> + <integer>257</integer> + </dict> + <dict> + <key>CF$UID</key> + <integer>258</integer> + </dict> + <dict> + <key>CF$UID</key> + <integer>259</integer> + </dict> + <dict> + <key>CF$UID</key> + <integer>260</integer> + </dict> </array> </dict> - <integer>1</integer> + <integer>2577</integer> + <integer>2595</integer> + <integer>2541</integer> <integer>2568</integer> <integer>2576</integer> - <integer>2560</integer> <integer>2584</integer> - <integer>2586</integer> - <integer>2553</integer> - <integer>2572</integer> - <integer>2535</integer> - <integer>2564</integer> + <integer>2511</integer> + <integer>2579</integer> + <integer>2515</integer> + <integer>2547</integer> + <integer>2588</integer> <integer>2561</integer> - <integer>2538</integer> <integer>2559</integer> - <integer>2519</integer> - <integer>2542</integer> - <integer>2583</integer> - <integer>2517</integer> - <integer>2570</integer> + <integer>2580</integer> + <integer>2553</integer> <integer>2571</integer> - <integer>2539</integer> + <integer>1</integer> + <integer>2564</integer> + <integer>2583</integer> <integer>2569</integer> - <integer>2567</integer> - <integer>2579</integer> - <integer>2543</integer> + <integer>2572</integer> + <integer>2563</integer> + <integer>2570</integer> <integer>2581</integer> - <integer>2562</integer> - <integer>2578</integer> - <integer>2541</integer> - <integer>2580</integer> + <integer>2523</integer> + <integer>2543</integer> <integer>2522</integer> - <integer>2511</integer> - <integer>2515</integer> + <integer>2578</integer> + <integer>2539</integer> + <integer>2517</integer> + <integer>2586</integer> <integer>2565</integer> - <integer>2577</integer> - <integer>2563</integer> - <integer>2523</integer> - <integer>2547</integer> + <integer>2587</integer> + <integer>2589</integer> + <integer>2560</integer> + <integer>2519</integer> <integer>2518</integer> - <integer>2566</integer> + <integer>2567</integer> + <integer>2538</integer> + <integer>2562</integer> + <integer>2535</integer> <dict> <key>$class</key> <dict> <key>CF$UID</key> - <integer>71</integer> + <integer>67</integer> </dict> <key>NS.objects</key> <array/> @@ -3577,7 +3678,7 @@ <key>$class</key> <dict> <key>CF$UID</key> - <integer>195</integer> + <integer>200</integer> </dict> <key>NS.objects</key> <array/> @@ -3586,7 +3687,7 @@ <key>$class</key> <dict> <key>CF$UID</key> - <integer>195</integer> + <integer>200</integer> </dict> <key>NS.objects</key> <array/> diff --git a/macosx/HBQueueController.h b/macosx/HBQueueController.h index 4f7cd3fc1..7ee030eec 100644 --- a/macosx/HBQueueController.h +++ b/macosx/HBQueueController.h @@ -14,6 +14,8 @@ hb_handle_t *fHandle; NSViewAnimation *fAnimation; BOOL fCurrentJobHidden; // YES when fCurrentJobPane has been shifted out of view (see showCurrentJobPane) + BOOL fShowsJobsAsGroups; + BOOL fShowsDetail; // +---------------fQueueWindow----------------+ // |+-------------fCurrentJobPane-------------+| @@ -36,15 +38,16 @@ // fCurrentJobPane - visible only when processing a job IBOutlet NSView *fCurrentJobPane; + IBOutlet NSImageView *fJobIconView; IBOutlet NSTextField *fJobDescTextField; IBOutlet NSProgressIndicator *fProgressBar; - IBOutlet NSTextField *fProgressStatus; - IBOutlet NSTextField *fProgressTimeRemaining; + IBOutlet NSTextField *fProgressTextField; // 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; @@ -53,10 +56,14 @@ - (void)setHandle: (hb_handle_t *)handle; - (void)updateQueueUI; - (void)updateCurrentJobUI; + +- (IBAction)showQueueWindow: (id)sender; - (IBAction)removeSelectedJob: (id)sender; - (IBAction)cancelCurrentJob: (id)sender; - (IBAction)detailChanged: (id)sender; -- (IBAction)showQueueWindow: (id)sender; +- (IBAction)jobGroupsChanged: (id)sender; +- (IBAction)toggleShowsDetail: (id)sender; +- (IBAction)toggleShowsJobsAsGroups: (id)sender; - (IBAction)toggleStartPause: (id)sender; @end diff --git a/macosx/HBQueueController.mm b/macosx/HBQueueController.mm index c4dfd5e38..320a75a57 100644 --- a/macosx/HBQueueController.mm +++ b/macosx/HBQueueController.mm @@ -6,7 +6,6 @@ #include "HBQueueController.h" -#if JOB_GROUPS /** * Returns the number of jobs groups in the queue. * @param h Handle to hb_handle_t. @@ -91,7 +90,14 @@ static hb_job_t * hb_next_job( hb_handle_t * h, hb_job_t * job ) return NULL; } -#endif // JOB_GROUPS +#pragma mark - + +// Toolbar identifiers +static NSString* HBQueueToolbar = @"HBQueueToolbar"; +static NSString* HBStartPauseResumeToolbarIdentifier = @"HBStartPauseResumeToolbarIdentifier"; +static NSString* HBShowDetailToolbarIdentifier = @"HBShowDetailToolbarIdentifier"; +static NSString* HBShowGroupsToolbarIdentifier = @"HBShowGroupsToolbarIdentifier"; + @implementation HBQueueController @@ -106,7 +112,12 @@ static hb_job_t * hb_next_job( hb_handle_t * h, hb_job_t * job ) [[NSUserDefaults standardUserDefaults] registerDefaults:[NSDictionary dictionaryWithObjectsAndKeys: @"NO", @"QueueWindowIsOpen", @"NO", @"QueueShowsDetail", + @"YES", @"QueueShowsJobsAsGroups", nil]]; + + fShowsDetail = [[NSUserDefaults standardUserDefaults] boolForKey:@"QueueShowsDetail"]; + fShowsJobsAsGroups = [[NSUserDefaults standardUserDefaults] boolForKey:@"QueueShowsJobsAsGroups"]; + } return self; } @@ -202,12 +213,35 @@ static hb_job_t * hb_next_job( hb_handle_t * h, hb_job_t * job ) //------------------------------------------------------------------------------------ // Enables or disables the display of detail information for each job. //------------------------------------------------------------------------------------ -- (void)showDetail: (BOOL)showDetail +- (void)setShowsDetail: (BOOL)showsDetail +{ + fShowsDetail = showsDetail; + + [[NSUserDefaults standardUserDefaults] setBool:showsDetail forKey:@"QueueShowsDetail"]; + [[NSUserDefaults standardUserDefaults] synchronize]; + + // clumsy - have to update UI + [fDetailCheckbox setState:showsDetail ? NSOnState : NSOffState]; + + [fTaskView setRowHeight:showsDetail ? 110.0 : 17.0]; + if ([fTaskView selectedRow] != -1) + [fTaskView scrollRowToVisible:[fTaskView selectedRow]]; +} + +//------------------------------------------------------------------------------------ +// Enables or disables the grouping of job passes into one item in the UI. +//------------------------------------------------------------------------------------ +- (void)setShowsJobsAsGroups: (BOOL)showsGroups { + fShowsJobsAsGroups = showsGroups; + + [[NSUserDefaults standardUserDefaults] setBool:showsGroups forKey:@"QueueShowsJobsAsGroups"]; + [[NSUserDefaults standardUserDefaults] synchronize]; + // clumsy - have to update UI - [fDetailCheckbox setState:showDetail ? NSOnState : NSOffState]; + [fJobGroupsCheckbox setState:showsGroups ? NSOnState : NSOffState]; - [fTaskView setRowHeight:showDetail ? 110.0 : 17.0]; + [self updateQueueUI]; if ([fTaskView selectedRow] != -1) [fTaskView scrollRowToVisible:[fTaskView selectedRow]]; } @@ -257,11 +291,11 @@ static hb_job_t * hb_next_job( hb_handle_t * h, hb_job_t * job ) // Other info in plain aMutableString = [NSMutableString stringWithCapacity:200]; + BOOL jobGroups = [[NSUserDefaults standardUserDefaults] boolForKey:@"QueueShowsJobsAsGroups"]; -#if JOB_GROUPS // 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 (job->pass == -1) + if (jobGroups && 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. @@ -273,7 +307,6 @@ static hb_job_t * hb_next_job( hb_handle_t * h, hb_job_t * job ) if (nextjob) // Overly cautious in case there is no next job! job = nextjob; } -#endif NSString * chapterString = (job->chapter_start == job->chapter_end) ? [NSString stringWithFormat:@"Chapter %d", job->chapter_start] : @@ -289,15 +322,15 @@ static hb_job_t * hb_next_job( hb_handle_t * h, hb_job_t * job ) // Normal pass else { -#if JOB_GROUPS - [aMutableString appendString:[NSString stringWithFormat: - @"\nTitle %d, %@, %d-Pass", - title->index, chapterString, MIN( 2, job->pass + 1 )]]; -#else - [aMutableString appendString:[NSString stringWithFormat: - @"\nTitle %d, %@, Pass %d of %d", - title->index, chapterString, MAX( 1, job->pass ), MIN( 2, job->pass + 1 )]]; -#endif + if (jobGroups) + [aMutableString appendString:[NSString stringWithFormat: + @"\nTitle %d, %@, %d-Pass", + title->index, chapterString, MIN( 2, job->pass + 1 )]]; + else + [aMutableString appendString:[NSString stringWithFormat: + @"\nTitle %d, %@, Pass %d of %d", + title->index, chapterString, MAX( 1, job->pass ), MIN( 2, job->pass + 1 )]]; + NSString * jobFormat; NSString * jobPictureDetail; @@ -460,25 +493,35 @@ static hb_job_t * hb_next_job( hb_handle_t * h, hb_job_t * job ) { if (s->state == HB_STATE_WORKING) { + NSString * msg; if (job->pass == -1) - return NSLocalizedString( @"Analyzing subtitles", nil ); - if (job->pass == 1) - return NSLocalizedString( @"Analyzing video", nil ); + msg = NSLocalizedString( @"Analyzing subtitles", nil ); + else if (job->pass == 1) + msg = NSLocalizedString( @"Analyzing video", nil ); else if ((job->pass == 0) || (job->pass == 2)) - return NSLocalizedString( @"Encoding movie", nil ); + msg = NSLocalizedString( @"Encoding movie", nil ); + else + return @""; // unknown condition! + + if( s->param.working.seconds > -1 ) + { + return [NSString stringWithFormat: + NSLocalizedString( @"%@ (%.2f fps, avg %.2f fps)", nil ), + msg, s->param.working.rate_cur, s->param.working.rate_avg]; + } + else + return msg; + } + else if (s->state == HB_STATE_MUXING) - { return NSLocalizedString( @"Muxing", nil ); - } + else if (s->state == HB_STATE_PAUSED) - { return NSLocalizedString( @"Paused", nil ); - } + else if (s->state == HB_STATE_WORKDONE) - { return NSLocalizedString( @"Done", nil ); - } return @""; } @@ -491,6 +534,41 @@ static hb_job_t * hb_next_job( hb_handle_t * h, hb_job_t * job ) if (s->state == HB_STATE_WORKING) { #define p s->param.working + if (p.seconds < 0) + return @""; + + // Minutes always needed + NSString * minutes; + if (p.minutes > 1) + minutes = [NSString stringWithFormat:NSLocalizedString( @"%d minutes ", nil ), p.minutes]; + else if (p.minutes == 1) + minutes = NSLocalizedString( @"1 minute ", nil ); + else + minutes = @""; + + if (p.hours >= 1) + { + NSString * hours; + if (p.hours > 1) + hours = [NSString stringWithFormat:NSLocalizedString( @"%d hours ", nil ), p.hours]; + else + hours = NSLocalizedString( @"1 hour ", nil ); + + return [NSString stringWithFormat:NSLocalizedString( @"%@%@remaining", nil ), hours, minutes]; + } + + else + { + NSString * seconds; + if (p.seconds > 1) + seconds = [NSString stringWithFormat:NSLocalizedString( @"%d seconds ", nil ), p.seconds]; + else + seconds = NSLocalizedString( @"1 second ", nil ); + + return [NSString stringWithFormat:NSLocalizedString( @"%@%@remaining", nil ), minutes, seconds]; + } + +/* here is code that does it more like the Finder if( p.seconds > -1 ) { float estHours = (p.hours + (p.minutes / 60.0)); @@ -513,6 +591,7 @@ static hb_job_t * hb_next_job( hb_handle_t * h, hb_job_t * job ) } else return NSLocalizedString( @"Time remaining: Calculating...", nil ); +*/ #undef p } @@ -528,11 +607,12 @@ static hb_job_t * hb_next_job( hb_handle_t * h, hb_job_t * job ) { #define p s->param.working [fProgressBar setIndeterminate:NO]; -#if JOB_GROUPS - float progress_total = 100.0 * ( p.progress + p.job_cur - 1 ) / p.job_count; -#else - float progress_total = 100.0 * p.progress; -#endif + + BOOL jobGroups = [[NSUserDefaults standardUserDefaults] boolForKey:@"QueueShowsJobsAsGroups"]; + float progress_total = jobGroups ? + 100.0 * ( p.progress + p.job_cur - 1 ) / p.job_count : + 100.0 * p.progress; + [fProgressBar setDoubleValue:progress_total]; #undef p } @@ -557,6 +637,8 @@ static hb_job_t * hb_next_job( hb_handle_t * h, hb_job_t * job ) //------------------------------------------------------------------------------------ - (void) updateStartPauseButton { + +// ************* THIS METHOD CAN DISAPPEAR. THE BUTTON IS NOW HIDDEN AND CAN BE DELETED if (!fHandle) return; hb_state_t s; @@ -597,15 +679,27 @@ static hb_job_t * hb_next_job( hb_handle_t * h, hb_job_t * job ) - (void)updateQueueCountField { NSString * msg; -#if JOB_GROUPS - int jobCount = fHandle ? hb_group_count(fHandle) : 0; -#else - int jobCount = fHandle ? hb_count(fHandle) : 0; -#endif - if (jobCount == 1) - msg = NSLocalizedString(@"1 pending job", nil); + int jobCount; + BOOL jobGroups = [[NSUserDefaults standardUserDefaults] boolForKey:@"QueueShowsJobsAsGroups"]; + + if (jobGroups) + { + jobCount = fHandle ? hb_group_count(fHandle) : 0; + if (jobCount == 1) + msg = NSLocalizedString(@"1 pending encode", nil); + else + msg = [NSString stringWithFormat:NSLocalizedString(@"%d pending encodes", nil), jobCount]; + } else - msg = [NSString stringWithFormat:NSLocalizedString(@"%d pending jobs", nil), jobCount]; + { + jobCount = fHandle ? hb_count(fHandle) : 0; + if (jobCount == 1) + msg = NSLocalizedString(@"1 pending pass", nil); + else + msg = [NSString stringWithFormat:NSLocalizedString(@"%d pending passes", nil), jobCount]; + + } + [fQueueCountField setStringValue:msg]; } @@ -625,12 +719,17 @@ static hb_job_t * hb_next_job( hb_handle_t * h, hb_job_t * job ) } if (job) - { + { [fJobDescTextField setAttributedStringValue:[self attributedDescriptionForJob:job withDetail:YES withHighlighting:NO]]; [self showCurrentJobPane:YES]; - [fProgressStatus setStringValue:[self progressStatusStringForJob:job state:&s]]; - [fProgressTimeRemaining setStringValue:[self progressTimeRemainingStringForJob:job state:&s]]; + [fJobIconView setImage: fShowsJobsAsGroups ? [NSImage imageNamed:@"JobLarge"] : [NSImage imageNamed:@"JobPassLarge"] ]; + + NSString * statusMsg = [self progressStatusStringForJob:job state:&s]; + NSString * timeMsg = [self progressTimeRemainingStringForJob:job state:&s]; + if ([timeMsg length] > 0) + statusMsg = [NSString stringWithFormat:@"%@ - %@", statusMsg, timeMsg]; + [fProgressTextField setStringValue:statusMsg]; [self updateProgressBarWithState:&s]; } else @@ -640,6 +739,10 @@ static hb_job_t * hb_next_job( hb_handle_t * h, hb_job_t * job ) [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]; } //------------------------------------------------------------------------------------ @@ -665,11 +768,11 @@ static hb_job_t * hb_next_job( hb_handle_t * h, hb_job_t * job ) int row = [sender selectedRow]; if (row != -1) { -#if JOB_GROUPS - hb_rem_group( fHandle, hb_group( fHandle, row ) ); -#else - hb_rem( fHandle, hb_job( fHandle, row ) ); -#endif + BOOL jobGroups = [[NSUserDefaults standardUserDefaults] boolForKey:@"QueueShowsJobsAsGroups"]; + if (jobGroups) + hb_rem_group( fHandle, hb_group( fHandle, row ) ); + else + hb_rem( fHandle, hb_job( fHandle, row ) ); [self updateQueueUI]; } } @@ -713,18 +816,65 @@ static hb_job_t * hb_next_job( hb_handle_t * h, hb_job_t * job ) //------------------------------------------------------------------------------------ // Enables or disables the display of detail information for each job based on the -// current value of the fDetailCheckbox control. +// state of the sender. //------------------------------------------------------------------------------------ - (IBAction)detailChanged: (id)sender { - BOOL detail = [fDetailCheckbox state] == NSOnState; - [[NSUserDefaults standardUserDefaults] setBool:detail forKey:@"QueueShowsDetail"]; + if ([sender isMemberOfClass:[NSButton class]]) + { + BOOL detail = [sender state] == NSOnState; + [[NSUserDefaults standardUserDefaults] setBool:detail forKey:@"QueueShowsDetail"]; + + [self setShowsDetail:detail]; + } +} + +//------------------------------------------------------------------------------------ +// Enables or disables the display of job groups based on the state of the sender. +//------------------------------------------------------------------------------------ +- (IBAction)jobGroupsChanged: (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 showDetail:detail]; + [self setShowsJobsAsGroups:groups]; + } + else if ([sender isMemberOfClass:[NSMatrix class]]) + { + BOOL groups = [sender selectedColumn] == 0; + [[NSUserDefaults standardUserDefaults] setBool:groups forKey:@"QueueShowsJobsAsGroups"]; + + [self setShowsJobsAsGroups:groups]; + } +} + +//------------------------------------------------------------------------------------ +// Toggles the Shows Detail setting. +//------------------------------------------------------------------------------------ +- (IBAction)toggleShowsDetail: (id)sender +{ + [self setShowsDetail:!fShowsDetail]; +} + +//------------------------------------------------------------------------------------ +// Toggles the Shows Jobs As Groups setting. +//------------------------------------------------------------------------------------ +- (IBAction)toggleShowsJobsAsGroups: (id)sender +{ + [self setShowsJobsAsGroups:!fShowsJobsAsGroups]; } //------------------------------------------------------------------------------------ -// Toggles the processing of jobs on or off epending on the current state +// Toggles the processing of jobs on or off depending on the current state //------------------------------------------------------------------------------------ - (IBAction)toggleStartPause: (id)sender { @@ -737,25 +887,308 @@ static hb_job_t * hb_next_job( hb_handle_t * h, hb_job_t * job ) hb_resume (fHandle); else if ((s.state == HB_STATE_WORKING) || (s.state == HB_STATE_MUXING)) hb_pause (fHandle); -#if JOB_GROUPS - else if (hb_group_count(fHandle) > 0) -#else - else if (hb_count(fHandle) > 0) -#endif - hb_start (fHandle); + else + { + BOOL jobGroups = [[NSUserDefaults standardUserDefaults] boolForKey:@"QueueShowsJobsAsGroups"]; + if (jobGroups) + { + if (hb_group_count(fHandle) > 0) + hb_start (fHandle); + } + else if (hb_count(fHandle) > 0) + hb_start (fHandle); + } +} + +#pragma mark - +#pragma mark Toolbar + +//------------------------------------------------------------------------------------ +// setupToolbar +//------------------------------------------------------------------------------------ +- (void)setupToolbar +{ + // Create a new toolbar instance, and attach it to our window + NSToolbar *toolbar = [[[NSToolbar alloc] initWithIdentifier: HBQueueToolbar] autorelease]; + + // Set up toolbar properties: Allow customization, give a default display mode, and remember state in user defaults + [toolbar setAllowsUserCustomization: YES]; + [toolbar setAutosavesConfiguration: YES]; + [toolbar setDisplayMode: NSToolbarDisplayModeIconAndLabel]; + + // We are the delegate + [toolbar setDelegate: self]; + + // Attach the toolbar to our window + [fQueueWindow setToolbar: toolbar]; } //------------------------------------------------------------------------------------ +// toolbar:itemForItemIdentifier:willBeInsertedIntoToolbar: +//------------------------------------------------------------------------------------ +- (NSToolbarItem *)toolbar:(NSToolbar *)toolbar + itemForItemIdentifier:(NSString *)itemIdentifier + willBeInsertedIntoToolbar:(BOOL)flag +{ + // Required delegate method: Given an item identifier, this method returns an item. + // The toolbar will use this method to obtain toolbar items that can be displayed + // in the customization sheet, or in the toolbar itself. + + NSToolbarItem *toolbarItem = nil; + + if ([itemIdentifier isEqual: HBStartPauseResumeToolbarIdentifier]) + { + toolbarItem = [[[NSToolbarItem alloc] initWithItemIdentifier: itemIdentifier] autorelease]; + + // Set the text label to be displayed in the toolbar and customization palette + [toolbarItem setLabel: @"Start"]; + [toolbarItem setPaletteLabel: @"Start/Pause"]; + + // Set up a reasonable tooltip, and image + [toolbarItem setToolTip: @"Start Encoding"]; + [toolbarItem setImage: [NSImage imageNamed: @"Play"]]; + + // Tell the item what message to send when it is clicked + [toolbarItem setTarget: self]; + [toolbarItem setAction: @selector(toggleStartPause:)]; + } + + else if ([itemIdentifier isEqual: HBShowDetailToolbarIdentifier]) + { + 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"]; + + // Set up a reasonable tooltip, and image + [toolbarItem setToolTip: @"Show Detail"]; + [toolbarItem setImage: [NSImage imageNamed: @"Info"]]; + + // Tell the item what message to send when it is clicked + [toolbarItem setTarget: self]; + [toolbarItem setAction: @selector(toggleShowsDetail:)]; + } + + 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"]; + + // Set up a reasonable tooltip, and image + [toolbarItem setToolTip: @"View"]; +// [toolbarItem setImage: [NSImage imageNamed: @"Disc"]]; + + + NSButtonCell * buttonCell = [[[NSButtonCell alloc] initImageCell:nil] autorelease]; + [buttonCell setBezelStyle:NSShadowlessSquareBezelStyle];//NSShadowlessSquareBezelStyle + [buttonCell setButtonType:NSToggleButton]; + [buttonCell setBordered:NO]; + [buttonCell setImagePosition:NSImageOnly]; + + NSMatrix * matrix = [[[NSMatrix alloc] initWithFrame:NSMakeRect(0,0,54,25) + mode:NSRadioModeMatrix + prototype:buttonCell + numberOfRows:1 + numberOfColumns:2] autorelease]; + [matrix setCellSize:NSMakeSize(27, 25)]; + [matrix setIntercellSpacing:NSMakeSize(0, 0)]; + [matrix selectCellAtRow:0 column:(fShowsJobsAsGroups ? 0 : 1)]; + + buttonCell = [matrix cellAtRow:0 column:0]; + [buttonCell setTitle:@""]; + [buttonCell setImage:[NSImage imageNamed: @"Encodes"]]; + [buttonCell setAlternateImage:[NSImage imageNamed: @"EncodesPressed"]]; + buttonCell = [matrix cellAtRow:0 column:1]; + [buttonCell setTitle:@""]; + [buttonCell setImage:[NSImage imageNamed: @"Passes"]]; + [buttonCell setAlternateImage:[NSImage imageNamed: @"PassesPressed"]]; + [toolbarItem setMinSize: [matrix frame].size]; + [toolbarItem setMaxSize: [matrix frame].size]; + [toolbarItem setView: matrix]; + +/* + NSSegmentedControl * segControl = [[[NSSegmentedControl alloc] initWithFrame:NSMakeRect(0,0,20,20)] autorelease]; + [[segControl cell] setControlSize:NSSmallControlSize]; + [segControl setSegmentCount:2]; + [segControl setLabel:@"Encodes" forSegment:0]; + [segControl setLabel:@"Passes" forSegment:1]; + [segControl setImage:[NSImage imageNamed:@"Delete"] forSegment:0]; + [segControl setImage:[NSImage imageNamed:@"Delete"] forSegment:1]; + [segControl setSelectedSegment: (fShowsJobsAsGroups ? 0 : 1)]; + [segControl sizeToFit]; + [toolbarItem setMinSize: [segControl frame].size]; + [toolbarItem setMaxSize: [segControl frame].size]; + [toolbarItem setView: segControl]; +*/ + +/* + NSButton * button = [[[NSButton alloc] initWithFrame:NSMakeRect(0,0,20,20)] 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; +} + +//------------------------------------------------------------------------------------ +// toolbarDefaultItemIdentifiers: +//------------------------------------------------------------------------------------ +- (NSArray *) toolbarDefaultItemIdentifiers: (NSToolbar *) toolbar +{ + // Required delegate method: Returns the ordered list of items to be shown in the + // toolbar by default. + + return [NSArray arrayWithObjects: + HBStartPauseResumeToolbarIdentifier, + NSToolbarSeparatorItemIdentifier, + HBShowGroupsToolbarIdentifier, + HBShowDetailToolbarIdentifier, + nil]; +} + +//------------------------------------------------------------------------------------ +// toolbarAllowedItemIdentifiers: +//------------------------------------------------------------------------------------ +- (NSArray *) toolbarAllowedItemIdentifiers: (NSToolbar *) toolbar +{ + // Required delegate method: Returns the list of all allowed items by identifier. + // By default, the toolbar does not assume any items are allowed, even the + // separator. So, every allowed item must be explicitly listed. + + return [NSArray arrayWithObjects: + HBStartPauseResumeToolbarIdentifier, + HBShowGroupsToolbarIdentifier, + HBShowDetailToolbarIdentifier, + NSToolbarCustomizeToolbarItemIdentifier, + NSToolbarFlexibleSpaceItemIdentifier, + NSToolbarSpaceItemIdentifier, + NSToolbarSeparatorItemIdentifier, + nil]; +} + +//------------------------------------------------------------------------------------ +// validateToolbarItem: +//------------------------------------------------------------------------------------ +- (BOOL) validateToolbarItem: (NSToolbarItem *) toolbarItem +{ + // Optional method: This message is sent to us since we are the target of some + // toolbar item actions. + + if (!fHandle) return NO; + + BOOL enable = NO; + + hb_state_t s; + hb_get_state2 (fHandle, &s); + + if ([[toolbarItem itemIdentifier] isEqual: HBStartPauseResumeToolbarIdentifier]) + { + if (s.state == HB_STATE_PAUSED) + { + enable = YES; + [toolbarItem setImage:[NSImage imageNamed: @"Play"]]; + [toolbarItem setLabel: @"Resume"]; + [toolbarItem setPaletteLabel: @"Resume"]; + [toolbarItem setToolTip: @"Resume Encoding"]; + } + + else if ((s.state == HB_STATE_WORKING) || (s.state == HB_STATE_MUXING)) + { + enable = YES; + [toolbarItem setImage:[NSImage imageNamed: @"Pause"]]; + [toolbarItem setLabel: @"Pause"]; + [toolbarItem setPaletteLabel: @"Pause"]; + [toolbarItem setToolTip: @"Pause Encoding"]; + } + + else if (hb_count(fHandle) > 0) + { + enable = YES; + [toolbarItem setImage:[NSImage imageNamed: @"Play"]]; + [toolbarItem setLabel: @"Start"]; + [toolbarItem setPaletteLabel: @"Start"]; + [toolbarItem setToolTip: @"Start Encoding"]; + } + + else + { + enable = NO; + [toolbarItem setImage:[NSImage imageNamed: @"Play"]]; + [toolbarItem setLabel: @"Start"]; + [toolbarItem setPaletteLabel: @"Start"]; + [toolbarItem setToolTip: @"Start Encoding"]; + } + } + +/* not used because HBShowGroupsToolbarIdentifier is now a custom view + else if ([[toolbarItem itemIdentifier] isEqual: HBShowGroupsToolbarIdentifier]) + { + enable = hb_count(fHandle) > 0; + if (fShowsJobsAsGroups) + { + [toolbarItem setLabel: @"View Passes"]; + [toolbarItem setPaletteLabel: @"View Passes"]; + [toolbarItem setToolTip: @"Displays items in the queue as individual passes"]; + } + else + { + [toolbarItem setLabel: @"View Encodes"]; + [toolbarItem setPaletteLabel: @"View Encodes"]; + [toolbarItem setToolTip: @"Displays items in the queue as encodes"]; + } + } +*/ + + else if ([[toolbarItem itemIdentifier] isEqual: HBShowDetailToolbarIdentifier]) + { + enable = hb_count(fHandle) > 0; + if (fShowsDetail) + { + [toolbarItem setLabel: @"Hide Detail"]; + [toolbarItem setPaletteLabel: @"Hide Detail"]; + [toolbarItem setToolTip: @"Displays detailed information in the queue"]; + } + else + { + [toolbarItem setLabel: @"Show Detail"]; + [toolbarItem setPaletteLabel: @"Show Detail"]; + [toolbarItem setToolTip: @"Displays detailed information in the queue"]; + } + } + + return enable; +} + +#pragma mark - + +//------------------------------------------------------------------------------------ // awakeFromNib //------------------------------------------------------------------------------------ - (void)awakeFromNib { + [self setupToolbar]; + if (![fQueueWindow setFrameUsingName:@"Queue"]) [fQueueWindow center]; [fQueueWindow setFrameAutosaveName: @"Queue"]; - + [fQueueWindow setExcludedFromWindowsMenu:YES]; + // Show/hide UI elements - [self showDetail:[[NSUserDefaults standardUserDefaults] boolForKey:@"QueueShowsDetail"]]; + [self setShowsDetail:fShowsDetail]; + [self setShowsJobsAsGroups:fShowsJobsAsGroups]; [self showCurrentJobPane:NO]; } @@ -768,16 +1201,19 @@ static hb_job_t * hb_next_job( hb_handle_t * h, hb_job_t * job ) [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"QueueWindowIsOpen"]; } +#pragma mark - +#pragma mark NSTableView delegate + //------------------------------------------------------------------------------------ // NSTableView delegate //------------------------------------------------------------------------------------ - (int)numberOfRowsInTableView: (NSTableView *)aTableView { -#if JOB_GROUPS - return fHandle ? hb_group_count(fHandle) : 0; -#else - return fHandle ? hb_count(fHandle) : 0; -#endif + BOOL jobGroups = [[NSUserDefaults standardUserDefaults] boolForKey:@"QueueShowsJobsAsGroups"]; + if (jobGroups) + return hb_group_count(fHandle); + else + return hb_count(fHandle); } //------------------------------------------------------------------------------------ @@ -791,26 +1227,27 @@ static hb_job_t * hb_next_job( hb_handle_t * h, hb_job_t * job ) return @""; // fatal error! hb_job_t * job; -#if JOB_GROUPS - job = hb_group(fHandle, rowIndex); -#else - job = hb_job(fHandle, rowIndex); -#endif + + BOOL jobGroups = [[NSUserDefaults standardUserDefaults] boolForKey:@"QueueShowsJobsAsGroups"]; + if (jobGroups) + job = hb_group(fHandle, rowIndex); + else + job = hb_job(fHandle, rowIndex); + if (!job) return @""; // fatal error! if ([[aTableColumn identifier] isEqualToString:@"desc"]) { BOOL highlighted = [aTableView isRowSelected:rowIndex] && [[aTableView window] isKeyWindow] && ([[aTableView window] firstResponder] == aTableView); - BOOL showDetail = [fDetailCheckbox state] == NSOnState; - return [self attributedDescriptionForJob:job withDetail:showDetail withHighlighting:highlighted]; + return [self attributedDescriptionForJob:job withDetail:fShowsDetail withHighlighting:highlighted]; } else if ([[aTableColumn identifier] isEqualToString:@"delete"]) return @""; else if ([[aTableColumn identifier] isEqualToString:@"icon"]) - return [NSImage imageNamed:@"JobSmall"]; + return fShowsJobsAsGroups ? [NSImage imageNamed:@"JobSmall"] : [NSImage imageNamed:@"JobPassSmall"]; return @""; } diff --git a/macosx/HandBrake.xcodeproj/project.pbxproj b/macosx/HandBrake.xcodeproj/project.pbxproj index 06cf508a1..01e8ddaee 100644 --- a/macosx/HandBrake.xcodeproj/project.pbxproj +++ b/macosx/HandBrake.xcodeproj/project.pbxproj @@ -128,6 +128,13 @@ D4D49FED0C83355600F01215 /* lang.c in Sources */ = {isa = PBXBuildFile; fileRef = B48359A70C82960500E04440 /* lang.c */; }; E3003C7F0C88505D0072F2A8 /* DeleteHighlightPressed.png in Resources */ = {isa = PBXBuildFile; fileRef = E3003C7E0C88505D0072F2A8 /* DeleteHighlightPressed.png */; }; E3003CB50C8852B70072F2A8 /* DeletePressed.png in Resources */ = {isa = PBXBuildFile; fileRef = E3003CB40C8852B70072F2A8 /* DeletePressed.png */; }; + E30EC7730C90BDD0004B9545 /* Encodes.png in Resources */ = {isa = PBXBuildFile; fileRef = E30EC76F0C90BDD0004B9545 /* Encodes.png */; }; + 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 */; }; 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 */; }; @@ -276,6 +283,13 @@ B48359A70C82960500E04440 /* lang.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = lang.c; path = ../libhb/lang.c; sourceTree = SOURCE_ROOT; }; E3003C7E0C88505D0072F2A8 /* DeleteHighlightPressed.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = DeleteHighlightPressed.png; sourceTree = "<group>"; }; E3003CB40C8852B70072F2A8 /* DeletePressed.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = DeletePressed.png; sourceTree = "<group>"; }; + E30EC76F0C90BDD0004B9545 /* Encodes.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Encodes.png; sourceTree = "<group>"; }; + 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>"; }; 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>"; }; @@ -516,6 +530,13 @@ 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 */, ); path = icons; sourceTree = "<group>"; @@ -704,6 +725,13 @@ E37C894F0C8398CF00C1B919 /* Queue.nib in Resources */, E3003C7F0C88505D0072F2A8 /* DeleteHighlightPressed.png in Resources */, E3003CB50C8852B70072F2A8 /* DeletePressed.png in Resources */, + E30EC7730C90BDD0004B9545 /* Encodes.png in Resources */, + 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 */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1850,7 +1878,6 @@ GCC_DEBUGGING_SYMBOLS = default; GCC_ENABLE_FIX_AND_CONTINUE = YES; GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = "JOB_GROUPS=1"; MACOSX_DEPLOYMENT_TARGET = 10.3; PREBINDING = NO; SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; diff --git a/macosx/icons/Encodes.png b/macosx/icons/Encodes.png Binary files differnew file mode 100644 index 000000000..9470ab896 --- /dev/null +++ b/macosx/icons/Encodes.png diff --git a/macosx/icons/EncodesPressed.png b/macosx/icons/EncodesPressed.png Binary files differnew file mode 100644 index 000000000..e20e0ae59 --- /dev/null +++ b/macosx/icons/EncodesPressed.png diff --git a/macosx/icons/Info.png b/macosx/icons/Info.png Binary files differnew file mode 100644 index 000000000..29e97438e --- /dev/null +++ b/macosx/icons/Info.png diff --git a/macosx/icons/JobPassLarge.png b/macosx/icons/JobPassLarge.png Binary files differnew file mode 100644 index 000000000..73ffdad50 --- /dev/null +++ b/macosx/icons/JobPassLarge.png diff --git a/macosx/icons/JobPassSmall.png b/macosx/icons/JobPassSmall.png Binary files differnew file mode 100644 index 000000000..9defc5e46 --- /dev/null +++ b/macosx/icons/JobPassSmall.png diff --git a/macosx/icons/Passes.png b/macosx/icons/Passes.png Binary files differnew file mode 100644 index 000000000..991c4de75 --- /dev/null +++ b/macosx/icons/Passes.png diff --git a/macosx/icons/PassesPressed.png b/macosx/icons/PassesPressed.png Binary files differnew file mode 100644 index 000000000..ef9f6b5fa --- /dev/null +++ b/macosx/icons/PassesPressed.png |