OSDN Git Service

MacGui: Debug Window to read libhb output like cli in inspector window
[handbrake-jp/handbrake-jp-git.git] / macosx / PrefsController.m
1 #import "PrefsController.h"
2
3 @implementation PrefsController
4
5 - (void) awakeFromNib
6 {
7     NSUserDefaults * defaults;
8     NSDictionary   * appDefaults;
9     
10     /* Unless the user specified otherwise, default is to check
11        for update  DefAdvancedx264Flags*/
12     defaults    = [NSUserDefaults standardUserDefaults];
13
14         NSString *defDestDirectory =  @"~/Desktop";
15         defDestDirectory = [defDestDirectory stringByExpandingTildeInPath];
16         
17         NSString *defSrcDirectory =  @"~/Desktop";
18         defSrcDirectory = [defSrcDirectory stringByExpandingTildeInPath];
19
20     appDefaults = [NSDictionary dictionaryWithObjectsAndKeys:
21         @"YES",             @"CheckForUpdates",
22         @"English",         @"DefaultLanguage",
23         @"NO",              @"DefaultMpegName",
24         @"YES",             @"DefaultCrf",
25         @"NO",              @"DefaultDeinterlaceOn",
26         @"YES",             @"DefaultPicSizeAutoiPod",
27         @"NO",              @"PixelRatio",
28         @"NO",              @"DefAdvancedx264FlagsShow",
29         @"",                @"DefAdvancedx264Flags",
30         @"YES",             @"DefaultPresetsDrawerShow",
31         defDestDirectory,   @"LastDestinationDirectory",
32         defSrcDirectory,    @"LastSourceDirectory",
33         @"NO",              @"DefaultAutoNaming",
34         @"NO",              @"DefaultChapterMarkers",
35         @"NO",              @"ShowVerboseOutput",
36         nil];
37     
38         [defaults registerDefaults: appDefaults];
39
40         /* fUpdateCheck Check or uncheck according to the preferences */
41     [fUpdateCheck setState: [defaults boolForKey:@"CheckForUpdates"] ?
42         NSOnState : NSOffState];
43
44         // Fill the languages combobox
45     [fdefaultlanguage removeAllItems];
46         [fdefaultlanguage addItemWithObjectValue: @"Afar"];
47         [fdefaultlanguage addItemWithObjectValue: @"Abkhazian"];
48         [fdefaultlanguage addItemWithObjectValue: @"Afrikaans"];
49         [fdefaultlanguage addItemWithObjectValue: @"Albanian"];
50         [fdefaultlanguage addItemWithObjectValue: @"Amharic"];
51         [fdefaultlanguage addItemWithObjectValue: @"Arabic"];
52         [fdefaultlanguage addItemWithObjectValue: @"Armenian"];
53         [fdefaultlanguage addItemWithObjectValue: @"Assamese"];
54         [fdefaultlanguage addItemWithObjectValue: @"Avestan"];
55         [fdefaultlanguage addItemWithObjectValue: @"Aymara"];
56         [fdefaultlanguage addItemWithObjectValue: @"Azerbaijani"];
57         [fdefaultlanguage addItemWithObjectValue: @"Bashkir"];
58         [fdefaultlanguage addItemWithObjectValue: @"Basque"];
59         [fdefaultlanguage addItemWithObjectValue: @"Belarusian"];
60         [fdefaultlanguage addItemWithObjectValue: @"Bengali"];
61         [fdefaultlanguage addItemWithObjectValue: @"Bihari"];
62         [fdefaultlanguage addItemWithObjectValue: @"Bislama"];
63         [fdefaultlanguage addItemWithObjectValue: @"Bosnian"];
64         [fdefaultlanguage addItemWithObjectValue: @"Breton"];
65         [fdefaultlanguage addItemWithObjectValue: @"Bulgarian"];
66         [fdefaultlanguage addItemWithObjectValue: @"Burmese"];
67         [fdefaultlanguage addItemWithObjectValue: @"Catalan"];
68         [fdefaultlanguage addItemWithObjectValue: @"Chamorro"];
69         [fdefaultlanguage addItemWithObjectValue: @"Chechen"];
70         [fdefaultlanguage addItemWithObjectValue: @"Chichewa; Nyanja"];
71         [fdefaultlanguage addItemWithObjectValue: @"Chinese"];
72         [fdefaultlanguage addItemWithObjectValue: @"Church Slavic"];
73         [fdefaultlanguage addItemWithObjectValue: @"Chuvash"];
74         [fdefaultlanguage addItemWithObjectValue: @"Cornish"];
75         [fdefaultlanguage addItemWithObjectValue: @"Corsican"];
76         [fdefaultlanguage addItemWithObjectValue: @"Croatian"];
77         [fdefaultlanguage addItemWithObjectValue: @"Czech"];
78         [fdefaultlanguage addItemWithObjectValue: @"Dansk"];
79         [fdefaultlanguage addItemWithObjectValue: @"Deutsch"];
80         [fdefaultlanguage addItemWithObjectValue: @"Dzongkha"];
81         [fdefaultlanguage addItemWithObjectValue: @"English"];
82         [fdefaultlanguage addItemWithObjectValue: @"Espanol"];
83         [fdefaultlanguage addItemWithObjectValue: @"Esperanto"];
84         [fdefaultlanguage addItemWithObjectValue: @"Estonian"];
85         [fdefaultlanguage addItemWithObjectValue: @"Faroese"];
86         [fdefaultlanguage addItemWithObjectValue: @"Fijian"];
87         [fdefaultlanguage addItemWithObjectValue: @"Francais"];
88         [fdefaultlanguage addItemWithObjectValue: @"Frisian"];
89         [fdefaultlanguage addItemWithObjectValue: @"Georgian"];
90         [fdefaultlanguage addItemWithObjectValue: @"Gaelic (Scots)"];
91         [fdefaultlanguage addItemWithObjectValue: @"Gallegan"];
92         [fdefaultlanguage addItemWithObjectValue: @"Greek, Modern ()"];
93         [fdefaultlanguage addItemWithObjectValue: @"Guarani"];
94         [fdefaultlanguage addItemWithObjectValue: @"Gujarati"];
95         [fdefaultlanguage addItemWithObjectValue: @"Hebrew"];
96         [fdefaultlanguage addItemWithObjectValue: @"Herero"];
97         [fdefaultlanguage addItemWithObjectValue: @"Hindi"];
98         [fdefaultlanguage addItemWithObjectValue: @"Hiri Motu"];
99         [fdefaultlanguage addItemWithObjectValue: @"Inuktitut"];
100         [fdefaultlanguage addItemWithObjectValue: @"Interlingue"];
101         [fdefaultlanguage addItemWithObjectValue: @"Interlingua"];
102         [fdefaultlanguage addItemWithObjectValue: @"Indonesian"];
103         [fdefaultlanguage addItemWithObjectValue: @"Inupiaq"];
104         [fdefaultlanguage addItemWithObjectValue: @"Irish"];
105         [fdefaultlanguage addItemWithObjectValue: @"Islenska"];
106         [fdefaultlanguage addItemWithObjectValue: @"Italian"];
107         [fdefaultlanguage addItemWithObjectValue: @"Javanese"];
108         [fdefaultlanguage addItemWithObjectValue: @"Japanese"];
109         [fdefaultlanguage addItemWithObjectValue: @"Kalaallisut (Greenlandic)"];
110         [fdefaultlanguage addItemWithObjectValue: @"Kannada"];
111         [fdefaultlanguage addItemWithObjectValue: @"Kashmiri"];
112         [fdefaultlanguage addItemWithObjectValue: @"Kazakh"];
113         [fdefaultlanguage addItemWithObjectValue: @"Khmer"];
114         [fdefaultlanguage addItemWithObjectValue: @"Kikuyu"];
115         [fdefaultlanguage addItemWithObjectValue: @"Kinyarwanda"];
116         [fdefaultlanguage addItemWithObjectValue: @"Kirghiz"];
117         [fdefaultlanguage addItemWithObjectValue: @"Komi"];
118         [fdefaultlanguage addItemWithObjectValue: @"Korean"];
119         [fdefaultlanguage addItemWithObjectValue: @"Kuanyama"];
120         [fdefaultlanguage addItemWithObjectValue: @"Kurdish"];
121         [fdefaultlanguage addItemWithObjectValue: @"Lao"];
122         [fdefaultlanguage addItemWithObjectValue: @"Latin"];
123         [fdefaultlanguage addItemWithObjectValue: @"Latvian"];
124         [fdefaultlanguage addItemWithObjectValue: @"Lingala"];
125         [fdefaultlanguage addItemWithObjectValue: @"Lithuanian"];
126         [fdefaultlanguage addItemWithObjectValue: @"Letzeburgesch"];
127         [fdefaultlanguage addItemWithObjectValue: @"Macedonian"];
128         [fdefaultlanguage addItemWithObjectValue: @"Magyar"];
129         [fdefaultlanguage addItemWithObjectValue: @"Malay"];
130         [fdefaultlanguage addItemWithObjectValue: @"Malayalam"];
131         [fdefaultlanguage addItemWithObjectValue: @"Malagasy"];
132         [fdefaultlanguage addItemWithObjectValue: @"Maltese"];
133         [fdefaultlanguage addItemWithObjectValue: @"Manx"];
134         [fdefaultlanguage addItemWithObjectValue: @"Maori"];
135         [fdefaultlanguage addItemWithObjectValue: @"Marathi"];
136         [fdefaultlanguage addItemWithObjectValue: @"Marshall"];
137         [fdefaultlanguage addItemWithObjectValue: @"Moldavian"];
138         [fdefaultlanguage addItemWithObjectValue: @"Mongolian"];
139         [fdefaultlanguage addItemWithObjectValue: @"Nauru"];
140         [fdefaultlanguage addItemWithObjectValue: @"Navajo"];
141         [fdefaultlanguage addItemWithObjectValue: @"Ndebele, South"];
142         [fdefaultlanguage addItemWithObjectValue: @"Ndebele, North"];
143         [fdefaultlanguage addItemWithObjectValue: @"Ndonga"];
144         [fdefaultlanguage addItemWithObjectValue: @"Nederlands"];
145         [fdefaultlanguage addItemWithObjectValue: @"Nepali"];
146         [fdefaultlanguage addItemWithObjectValue: @"Northern Sami"];
147         [fdefaultlanguage addItemWithObjectValue: @"Norwegian"];
148         [fdefaultlanguage addItemWithObjectValue: @"Norwegian Bokmal"];
149         [fdefaultlanguage addItemWithObjectValue: @"Norwegian Nynorsk"];
150         [fdefaultlanguage addItemWithObjectValue: @"Occitan (post 1500); Provencal"];
151         [fdefaultlanguage addItemWithObjectValue: @"Oriya"];
152         [fdefaultlanguage addItemWithObjectValue: @"Oromo"];
153         [fdefaultlanguage addItemWithObjectValue: @"Ossetian; Ossetic"];
154         [fdefaultlanguage addItemWithObjectValue: @"Panjabi"];
155         [fdefaultlanguage addItemWithObjectValue: @"Persian"];
156         [fdefaultlanguage addItemWithObjectValue: @"Pali"];
157         [fdefaultlanguage addItemWithObjectValue: @"Polish"];
158         [fdefaultlanguage addItemWithObjectValue: @"Portugues"];
159         [fdefaultlanguage addItemWithObjectValue: @"Pushto"];
160         [fdefaultlanguage addItemWithObjectValue: @"Quechua"];
161         [fdefaultlanguage addItemWithObjectValue: @"Raeto-Romance"];
162         [fdefaultlanguage addItemWithObjectValue: @"Romanian"];
163         [fdefaultlanguage addItemWithObjectValue: @"Rundi"];
164         [fdefaultlanguage addItemWithObjectValue: @"Russian"];
165         [fdefaultlanguage addItemWithObjectValue: @"Sango"];
166         [fdefaultlanguage addItemWithObjectValue: @"Sanskrit"];
167         [fdefaultlanguage addItemWithObjectValue: @"Sardinian"];
168         [fdefaultlanguage addItemWithObjectValue: @"Serbian"];
169         [fdefaultlanguage addItemWithObjectValue: @"Sinhalese"];
170         [fdefaultlanguage addItemWithObjectValue: @"Slovak"];
171         [fdefaultlanguage addItemWithObjectValue: @"Slovenian"];
172         [fdefaultlanguage addItemWithObjectValue: @"Samoan"];
173         [fdefaultlanguage addItemWithObjectValue: @"Shona"];
174         [fdefaultlanguage addItemWithObjectValue: @"Sindhi"];
175         [fdefaultlanguage addItemWithObjectValue: @"Somali"];
176         [fdefaultlanguage addItemWithObjectValue: @"Sotho, Southern"];
177         [fdefaultlanguage addItemWithObjectValue: @"Sundanese"];
178         [fdefaultlanguage addItemWithObjectValue: @"Suomi"];
179         [fdefaultlanguage addItemWithObjectValue: @"Svenska"];
180         [fdefaultlanguage addItemWithObjectValue: @"Swahili"];
181         [fdefaultlanguage addItemWithObjectValue: @"Swati"];
182         [fdefaultlanguage addItemWithObjectValue: @"Tahitian"];
183         [fdefaultlanguage addItemWithObjectValue: @"Tamil"];
184         [fdefaultlanguage addItemWithObjectValue: @"Tatar"];
185         [fdefaultlanguage addItemWithObjectValue: @"Telugu"];
186         [fdefaultlanguage addItemWithObjectValue: @"Tajik"];
187         [fdefaultlanguage addItemWithObjectValue: @"Tagalog"];
188         [fdefaultlanguage addItemWithObjectValue: @"Thai"];
189         [fdefaultlanguage addItemWithObjectValue: @"Tibetan"];
190         [fdefaultlanguage addItemWithObjectValue: @"Tigrinya"];
191         [fdefaultlanguage addItemWithObjectValue: @"Tonga (Tonga Islands)"];
192         [fdefaultlanguage addItemWithObjectValue: @"Tswana"];
193         [fdefaultlanguage addItemWithObjectValue: @"Tsonga"];
194         [fdefaultlanguage addItemWithObjectValue: @"Turkish"];
195         [fdefaultlanguage addItemWithObjectValue: @"Turkmen"];
196         [fdefaultlanguage addItemWithObjectValue: @"Twi"];
197         [fdefaultlanguage addItemWithObjectValue: @"Uighur"];
198         [fdefaultlanguage addItemWithObjectValue: @"Ukrainian"];
199         [fdefaultlanguage addItemWithObjectValue: @"Urdu"];
200         [fdefaultlanguage addItemWithObjectValue: @"Uzbek"];
201         [fdefaultlanguage addItemWithObjectValue: @"Vietnamese"];
202         [fdefaultlanguage addItemWithObjectValue: @"Volapk"];
203         [fdefaultlanguage addItemWithObjectValue: @"Welsh"];
204         [fdefaultlanguage addItemWithObjectValue: @"Wolof"];
205         [fdefaultlanguage addItemWithObjectValue: @"Xhosa"];
206         [fdefaultlanguage addItemWithObjectValue: @"Yiddish"];
207         [fdefaultlanguage addItemWithObjectValue: @"Yoruba"];
208         [fdefaultlanguage addItemWithObjectValue: @"Zhuang"];
209         [fdefaultlanguage addItemWithObjectValue: @"Zulu"];
210         [fdefaultlanguage setStringValue:@"English"];
211         
212         /* If a Default Language is selected then write it otherwise let English as default */
213         
214         if ([defaults stringForKey:@"DefaultLanguage"]!=NULL)
215         {
216                 [fdefaultlanguage setStringValue:[defaults stringForKey:@"DefaultLanguage"]];
217     }
218         [fdefaultlanguage selectItemWithObjectValue:[defaults stringForKey:@"DefaultLanguage"]];
219
220     
221
222
223         /* fFileExtItunes Check or uncheck according to the preferences */
224     [fFileExtItunes setState: [defaults boolForKey:@"DefaultMpegName"] ?
225                                   NSOnState : NSOffState];
226         
227         /* fDefCrf Check or uncheck according to the preferences*/
228     [fDefCrf setState: [defaults boolForKey:@"DefaultCrf"] ?
229                    NSOnState : NSOffState];
230         
231         /* fDefDeinterlace Check or uncheck according to the preferences*/
232     [fDefDeinterlace setState: [defaults boolForKey:@"DefaultDeinterlaceOn"] ?
233                                    NSOnState : NSOffState];
234         
235         /* fDefPicSizeAutoSetipod Check or uncheck according to the preferences*/
236     [fDefPicSizeAutoSetipod setState: [defaults boolForKey:@"DefaultPicSizeAutoiPod"] ?
237                                                   NSOnState : NSOffState];
238         /* fDefPixelRatio */
239     [fDefPixelRatio setState: [defaults boolForKey:@"PixelRatio"] ?
240                                   NSOnState : NSOffState];
241         
242         /* fDefAdvancedx264FlagsShow */
243     [fDefAdvancedx264FlagsShow setState: [defaults boolForKey:@"DefAdvancedx264FlagsShow"] ?
244                                   NSOnState : NSOffState];
245         /* Insert default DefAdvanced x264 Flag here */
246         if ([defaults stringForKey:@"DefAdvancedx264Flags"]!=NULL)
247         {
248         [fDefAdvancedx264FlagsView setStringValue:[defaults stringForKey:@"DefAdvancedx264Flags"]];
249         }
250         
251         /* fDefPresetDrawerShow Check or uncheck according to the preferences*/
252     [fDefPresetDrawerShow setState: [defaults boolForKey:@"DefaultPresetsDrawerShow"] ?
253                    NSOnState : NSOffState];
254         /* fDefAutoNaming Check or uncheck according to the preferences*/
255     [fDefAutoNaming setState: [defaults boolForKey:@"DefaultAutoNaming"] ?
256                    NSOnState : NSOffState];
257         /* fDefChapterMarkers Check or uncheck according to the preferences*/
258     [fDefChapterMarkers setState: [defaults boolForKey:@"DefaultChapterMarkers"] ?
259                    NSOnState : NSOffState];
260 }
261
262
263 - (IBAction) OpenPanel: (id) sender;
264 {
265     [NSApp runModalForWindow: fPanel];
266 }
267
268 - (IBAction) ClosePanel: (id) sender;
269 {
270     [self CheckChanged: sender]; 
271     [NSApp stopModal];
272     [fPanel orderOut: sender];
273 }
274
275 - (IBAction) CheckChanged: (id) sender
276 {
277     NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults];
278     
279     /* Check Update CheckForUpdates Set */
280         if( [fUpdateCheck state] == NSOnState )
281     {
282         [defaults setObject:@"YES" forKey:@"CheckForUpdates"];
283     }
284     else
285     {
286         [defaults setObject:@"NO" forKey:@"CheckForUpdates"];
287     }
288         
289         /* Preferred Language Combobox Set */
290
291         [defaults setObject:[fdefaultlanguage objectValueOfSelectedItem]  forKey:@"DefaultLanguage"];
292
293
294         /* File Extension Itunes Set */
295         
296         if( [fFileExtItunes state] == NSOnState )
297     {
298         [defaults setObject:@"YES" forKey:@"DefaultMpegName"];
299     }
300     else
301     {
302         [defaults setObject:@"NO" forKey:@"DefaultMpegName"];
303     }
304         
305         /* Use CRF for constant mode */
306         
307         if( [fDefCrf state] == NSOnState )
308     {
309         [defaults setObject:@"YES" forKey:@"DefaultCrf"];
310     }
311     else
312     {
313         [defaults setObject:@"NO" forKey:@"DefaultCrf"];
314     }
315
316   /* Use Deinterlace on as a default*/
317         
318         if( [fDefDeinterlace state] == NSOnState )
319     {
320         [defaults setObject:@"YES" forKey:@"DefaultDeinterlaceOn"];
321     }
322     else
323     {
324         [defaults setObject:@"NO" forKey:@"DefaultDeinterlaceOn"];
325     }
326         
327           /* Use Picture size set to 640 upon x264 (iPod) Selection as a default*/
328         
329         if( [fDefPicSizeAutoSetipod state] == NSOnState )
330     {
331         [defaults setObject:@"YES" forKey:@"DefaultPicSizeAutoiPod"];
332     }
333     else
334     {
335         [defaults setObject:@"NO" forKey:@"DefaultPicSizeAutoiPod"];
336     }
337         
338           /* Use Pixel Ratio*/
339         
340         if( [fDefPixelRatio state] == NSOnState )
341     {
342         [defaults setObject:@"YES" forKey:@"PixelRatio"];
343     }
344     else
345     {
346         [defaults setObject:@"NO" forKey:@"PixelRatio"];
347     }
348  /* Show Chosen Advanced Flags to be used in main window*/
349  if( [fDefAdvancedx264FlagsShow state] == NSOnState )
350     {
351         [defaults setObject:@"YES" forKey:@"DefAdvancedx264FlagsShow"];
352     }
353     else
354     {
355         [defaults setObject:@"NO" forKey:@"DefAdvancedx264FlagsShow"];
356     }
357                 
358         /*Advanced x264 Flag string into */
359       [defaults setObject:[fDefAdvancedx264FlagsView stringValue]  forKey:@"DefAdvancedx264Flags"];     
360           
361             /* Show Presets Drawer upon launch*/
362         
363         if( [fDefPresetDrawerShow state] == NSOnState )
364     {
365         [defaults setObject:@"YES" forKey:@"DefaultPresetsDrawerShow"];
366     }
367     else
368     {
369         [defaults setObject:@"NO" forKey:@"DefaultPresetsDrawerShow"];
370     }
371
372     /* Use Auto Naming */
373         
374         if( [fDefAutoNaming state] == NSOnState )
375     {
376         [defaults setObject:@"YES" forKey:@"DefaultAutoNaming"];
377     }
378     else
379     {
380         [defaults setObject:@"NO" forKey:@"DefaultAutoNaming"];
381     }
382         /* Chapter Markers */
383         if( [fDefChapterMarkers state] == NSOnState )
384     {
385         [defaults setObject:@"YES" forKey:@"DefaultChapterMarkers"];
386     }
387     else
388     {
389         [defaults setObject:@"NO" forKey:@"DefaultChapterMarkers"];
390     }
391
392 }
393
394 @end