OSDN Git Service

translation Controls and EncodeQueue
[handbrake-jp/handbrake-jp.git] / win / C# / frmOptions.cs
1 /*  frmOptions.cs $\r
2         \r
3            This file is part of the HandBrake source code.\r
4            Homepage: <http://handbrake.fr>.\r
5            It may be used under the terms of the GNU General Public License. */\r
6 \r
7 using System;\r
8 using System.Collections.Generic;\r
9 using System.Globalization;\r
10 using System.Windows.Forms;\r
11 using Handbrake.Functions;\r
12 \r
13 namespace Handbrake\r
14 {\r
15     public partial class frmOptions : Form\r
16     {\r
17         private frmMain mainWindow;\r
18 \r
19         public frmOptions(frmMain mw)\r
20         {\r
21             InitializeComponent();\r
22             mainWindow = mw;\r
23 \r
24             IDictionary<string, string> langList = Main.mapLanguages();\r
25             foreach (string item in langList.Keys)\r
26                 drop_preferredLang.Items.Add(item);\r
27 \r
28             // #############################\r
29             // General\r
30             // #############################\r
31 \r
32             // Enable Tooltips.\r
33             if (Properties.Settings.Default.tooltipEnable)\r
34             {\r
35                 check_tooltip.CheckState = CheckState.Checked;\r
36                 ToolTip.Active = true;\r
37             }\r
38 \r
39             // Setup Widgets to match settings.\r
40             if (Properties.Settings.Default.updateStatus)\r
41                 check_updateCheck.CheckState = CheckState.Checked;\r
42 \r
43             // On Encode Completeion Action\r
44             // drp_completeOption.Text = Properties.Settings.Default.CompletionOption;\r
45             switch (Properties.Settings.Default.CompletionOption)\r
46             {\r
47                 case "Do nothing":\r
48                     drp_completeOption.Text = "\89½\82à\82µ\82È\82¢";\r
49                 case "Shutdown":\r
50                     drp_completeOption.Text = "PC\82Ì\93d\8c¹\82ð\90Ø\82é";\r
51                 case "Suspend":\r
52                     drp_completeOption.Text = "PC\82ð\83T\83X\83y\83\93\83h";\r
53                 case "Hibernate":\r
54                     drp_completeOption.Text = "PC\82ð\83n\83C\83o\83l\81[\83V\83\87\83\93";\r
55                 case "Lock system":\r
56                     drp_completeOption.Text = "PC\82ð\83\8d\83b\83N";\r
57                 case "Log off":\r
58                     drp_completeOption.Text = "\83\8d\83O\83I\83t";\r
59                 case "Quit HandBrake":\r
60                     drp_completeOption.Text = "HandBrake\82ð\8fI\97¹";\r
61                 default:\r
62                     drp_completeOption.Text = "\89½\82à\82µ\82È\82¢";\r
63             }\r
64 \r
65             // Growl.\r
66             if (Properties.Settings.Default.growlEncode)\r
67                 check_growlEncode.CheckState = CheckState.Checked;\r
68 \r
69             if (Properties.Settings.Default.growlQueue)\r
70                 check_GrowlQueue.CheckState = CheckState.Checked;\r
71 \r
72             // Enable auto naming feature.\r
73             if (Properties.Settings.Default.autoNaming)\r
74                 check_autoNaming.CheckState = CheckState.Checked;\r
75 \r
76             // Store the auto name path\r
77             text_an_path.Text = Properties.Settings.Default.autoNamePath;\r
78             if (text_an_path.Text == string.Empty)\r
79                 text_an_path.Text = "\81u\83u\83\89\83E\83Y\81v\83{\83^\83\93\82ð\83N\83\8a\83b\83N\82µ\82Ä\91I\91ð...";\r
80 \r
81             // Store auto name format\r
82             txt_autoNameFormat.Text = Properties.Settings.Default.autoNameFormat;\r
83 \r
84             // Use iPod/iTunes friendly .m4v extension for MP4 files.\r
85             if (Properties.Settings.Default.useM4v)\r
86                 check_m4v.CheckState = CheckState.Checked;\r
87 \r
88             // #############################\r
89             // Picture Tab\r
90             // #############################\r
91 \r
92             // VLC Path\r
93             txt_vlcPath.Text = Properties.Settings.Default.VLC_Path;\r
94 \r
95             // #############################\r
96             // Audio and Subtitles Tab\r
97             // #############################\r
98 \r
99             if (Properties.Settings.Default.NativeLanguage == "Japanese")\r
100                 drop_preferredLang.SelectedItem = "\93ú\96{\8cê";\r
101             else \r
102                 drop_preferredLang.SelectedItem = Properties.Settings.Default.NativeLanguage;\r
103 \r
104             if (Properties.Settings.Default.DubAudio)\r
105                 radio_dub.Checked = true;\r
106             else\r
107                 radio_foreignAndSubs.Checked = true;\r
108 \r
109 \r
110             // #############################\r
111             // CLI\r
112             // #############################\r
113 \r
114             // Enable Start CLI minimized\r
115             if (Properties.Settings.Default.cli_minimized)\r
116                 check_cli_minimized.CheckState = CheckState.Checked;\r
117 \r
118             // Number of processor cores\r
119             if (Properties.Settings.Default.Processors == "Automatic")\r
120                 drp_processors.Text = "\8e©\93®";\r
121             else\r
122                 drp_processors.Text = Properties.Settings.Default.Processors;\r
123 \r
124             // Priority level for encodes\r
125             // drp_Priority.Text = Properties.Settings.Default.processPriority;\r
126             switch (Properties.Settings.Default.processPriority) {\r
127                 case "Realtime":\r
128                     drp_Priority.Text = "\8dÅ\8d\82";\r
129                 case "High":\r
130                     drp_Priority.Text = "\8d\82";\r
131                 case "Above Normal":\r
132                     drp_Priority.Text = "\8d\82\82ß";\r
133                 case "Normal":\r
134                     drp_Priority.Text = "\95\81\92Ê";\r
135                 case "Below Normal":\r
136                     drp_Priority.Text = "\92á\82ß";\r
137                 case "Low":\r
138                     drp_Priority.Text = "\92á";\r
139                 default:\r
140                     drp_Priority.Text = "\95\81\92Ê";\r
141 \r
142             // Log Verbosity Level\r
143             cb_logVerboseLvl.SelectedIndex = Properties.Settings.Default.verboseLevel;\r
144 \r
145 \r
146             // Save logs in the same directory as encoded files\r
147             if (Properties.Settings.Default.saveLogWithVideo)\r
148                 check_saveLogWithVideo.CheckState = CheckState.Checked;\r
149 \r
150             // Save Logs in a specified path\r
151             if (Properties.Settings.Default.saveLogToSpecifiedPath)\r
152                 check_logsInSpecifiedLocation.CheckState = CheckState.Checked;\r
153 \r
154             // The saved log path\r
155             text_logPath.Text = Properties.Settings.Default.saveLogPath;\r
156 \r
157 \r
158             // #############################\r
159             // Advanced\r
160             // #############################\r
161 \r
162             // Minimise to Tray\r
163             if (Properties.Settings.Default.trayIconAlerts)\r
164                 check_trayStatusAlerts.CheckState = CheckState.Checked;\r
165 \r
166             // Tray Balloon popups\r
167             if (Properties.Settings.Default.MainWindowMinimize)\r
168                 check_mainMinimize.CheckState = CheckState.Checked;\r
169 \r
170             // Enable / Disable Query editor tab\r
171             if (Properties.Settings.Default.QueryEditorTab)\r
172                 check_queryEditorTab.CheckState = CheckState.Checked;\r
173 \r
174             // Prompt on inconsistant queries\r
175             check_promptOnUnmatchingQueries.Checked = Properties.Settings.Default.PromptOnUnmatchingQueries;\r
176 \r
177             // Preset update notification\r
178             if (Properties.Settings.Default.presetNotification)\r
179                 check_disablePresetNotification.CheckState = CheckState.Checked;\r
180 \r
181             // Experimental In-GUI encode status indicator.\r
182             if (Properties.Settings.Default.enocdeStatusInGui)\r
183                 check_inGuiStatus.CheckState = CheckState.Checked;\r
184 \r
185             // Days between update checks\r
186             switch (Properties.Settings.Default.daysBetweenUpdateCheck)\r
187             {\r
188                 case 1:\r
189                     drop_updateCheckDays.SelectedIndex = 0;\r
190                     break;\r
191                 case 7:\r
192                     drop_updateCheckDays.SelectedIndex = 1;\r
193                     break;\r
194                 case 30:\r
195                     drop_updateCheckDays.SelectedIndex = 2;\r
196                     break;\r
197             }\r
198 \r
199             // x264 step\r
200             string step = Properties.Settings.Default.x264cqstep.ToString(new CultureInfo("en-US"));\r
201             switch (step)\r
202             {\r
203                 case "1":\r
204                     drop_x264step.SelectedIndex = 0;\r
205                     break;\r
206                 case "0.5":\r
207                     drop_x264step.SelectedIndex = 1;\r
208                     break;\r
209                 case "0.25":\r
210                     drop_x264step.SelectedIndex = 2;\r
211                     break;\r
212                 case "0.2":\r
213                     drop_x264step.SelectedIndex = 3;\r
214                     break;\r
215             }\r
216 \r
217             // Use Experimental dvdnav\r
218             if (Properties.Settings.Default.noDvdNav)\r
219                 check_dvdnav.CheckState = CheckState.Checked;\r
220 \r
221             // #############################\r
222             // Debug\r
223             // #############################\r
224             if (Properties.Settings.Default.disableResCalc)\r
225                 check_disableResCalc.Checked = true;\r
226         }\r
227 \r
228         #region General\r
229         private void check_updateCheck_CheckedChanged(object sender, EventArgs e)\r
230         {\r
231             Properties.Settings.Default.updateStatus = check_updateCheck.Checked;\r
232         }\r
233 \r
234         private void check_tooltip_CheckedChanged(object sender, EventArgs e)\r
235         {\r
236             Properties.Settings.Default.tooltipEnable = check_tooltip.Checked;\r
237         }\r
238 \r
239         private void drp_completeOption_SelectedIndexChanged(object sender, EventArgs e)\r
240         {\r
241             // Properties.Settings.Default.CompletionOption = drp_completeOption.Text;\r
242             switch (drp_completeOption.Text)\r
243             {\r
244                 case "\89½\82à\82µ\82È\82¢":\r
245                     Properties.Settings.Default.CompletionOption = "Do nothing";\r
246 \r
247                 case "PC\82Ì\93d\8c¹\82ð\90Ø\82é":\r
248                     Properties.Settings.Default.CompletionOption = "Shutdown";\r
249                 \r
250                 case "PC\82ð\83T\83X\83y\83\93\83h":\r
251                     Properties.Settings.Default.CompletionOption = "Suspend";\r
252                 \r
253                 case "PC\82ð\83n\83C\83o\83l\81[\83V\83\87\83\93":\r
254                     Properties.Settings.Default.CompletionOption = "Hibernate";\r
255 \r
256                 case "PC\82ð\83\8d\83b\83N":\r
257                     Properties.Settings.Default.CompletionOption = "Lock system";\r
258 \r
259                 case "\83\8d\83O\83I\83t":\r
260                     Properties.Settings.Default.CompletionOption = "Log off";\r
261 \r
262                 case "HandBrake\82ð\8fI\97¹":\r
263                     Properties.Settings.Default.CompletionOption = "Quit HandBrake";\r
264 \r
265                 default:\r
266                     Properties.Settings.Default.CompletionOption = "Do nothing";\r
267             }\r
268         }\r
269 \r
270         private void check_GrowlQueue_CheckedChanged(object sender, EventArgs e)\r
271         {\r
272             Properties.Settings.Default.growlQueue = check_GrowlQueue.Checked;\r
273         }\r
274 \r
275         private void check_growlEncode_CheckedChanged(object sender, EventArgs e)\r
276         {\r
277             Properties.Settings.Default.growlEncode = check_growlEncode.Checked;\r
278         }\r
279 \r
280         private void check_autoNaming_CheckedChanged(object sender, EventArgs e)\r
281         {\r
282             Properties.Settings.Default.autoNaming = check_autoNaming.Checked;\r
283         }\r
284 \r
285         private void txt_autoNameFormat_TextChanged(object sender, EventArgs e)\r
286         {\r
287             Properties.Settings.Default.autoNameFormat = txt_autoNameFormat.Text;\r
288         }\r
289 \r
290         private void btn_browse_Click(object sender, EventArgs e)\r
291         {\r
292             pathFinder.ShowDialog();\r
293             text_an_path.Text = pathFinder.SelectedPath;\r
294         }\r
295 \r
296         private void text_an_path_TextChanged(object sender, EventArgs e)\r
297         {\r
298             if (text_an_path.Text == string.Empty)\r
299             {\r
300                 Properties.Settings.Default.autoNamePath = "";\r
301                 text_an_path.Text = "\81u\83u\83\89\83E\83Y\81v\83{\83^\83\93\82ð\83N\83\8a\83b\83N\82µ\82Ä\91I\91ð...";\r
302             }\r
303             else\r
304                 Properties.Settings.Default.autoNamePath = text_an_path.Text;\r
305         }\r
306 \r
307         private void check_m4v_CheckedChanged(object sender, EventArgs e)\r
308         {\r
309             Properties.Settings.Default.useM4v = check_m4v.Checked;\r
310         }\r
311         #endregion\r
312 \r
313         #region Picture\r
314         private void btn_vlcPath_Click(object sender, EventArgs e)\r
315         {\r
316             openFile_vlc.ShowDialog();\r
317             if (openFile_vlc.FileName != string.Empty)\r
318                 txt_vlcPath.Text = openFile_vlc.FileName;\r
319         }\r
320         private void txt_vlcPath_TextChanged(object sender, EventArgs e)\r
321         {\r
322             Properties.Settings.Default.VLC_Path = txt_vlcPath.Text;\r
323         }\r
324         #endregion\r
325 \r
326         #region Audio and Subtitles\r
327         private void drop_preferredLang_SelectedIndexChanged(object sender, EventArgs e)\r
328         {\r
329             if (drop_preferredLang.SelectedItem.ToString() == "\93ú\96{\8cê")\r
330                 Properties.Settings.Default.NativeLanguage = "Japanese";\r
331             else\r
332                 Properties.Settings.Default.NativeLanguage = drop_preferredLang.SelectedItem.ToString();\r
333         }\r
334         private void radio_dub_CheckedChanged(object sender, EventArgs e)\r
335         {\r
336             if (radio_dub.Checked)\r
337                 Properties.Settings.Default.DubAudio = true;\r
338         }\r
339         private void radio_foreignAndSubs_CheckedChanged(object sender, EventArgs e)\r
340         {\r
341             if (radio_foreignAndSubs.Checked)\r
342                 Properties.Settings.Default.DubAudio = false;\r
343         }       \r
344         #endregion\r
345 \r
346         #region CLI\r
347         private void check_cli_minimized_CheckedChanged(object sender, EventArgs e)\r
348         {\r
349             Properties.Settings.Default.cli_minimized = check_cli_minimized.Checked;\r
350         }\r
351 \r
352         private void drp_processors_SelectedIndexChanged(object sender, EventArgs e)\r
353         {\r
354             if (drp_processors.Text == "\8e©\93®")\r
355                 Properties.Settings.Default.Processors = "Automatic";\r
356             else\r
357                 Properties.Settings.Default.Processors = drp_processors.Text;\r
358         }\r
359 \r
360         private void drp_Priority_SelectedIndexChanged(object sender, EventArgs e)\r
361         {\r
362             // Properties.Settings.Default.processPriority = drp_Priority.Text;\r
363             switch (drp_Priority.Text) {\r
364                 case "\8dÅ\8d\82":\r
365                     Properties.Settings.Default.processPriority = "Realtime";\r
366 \r
367                 case "\8d\82":\r
368                     Properties.Settings.Default.processPriority = "High";\r
369 \r
370                 case "\8d\82\82ß":\r
371                     Properties.Settings.Default.processPriority = "Above Normal";\r
372 \r
373                 case "\95\81\92Ê":\r
374                     Properties.Settings.Default.processPriority = "Normal";\r
375 \r
376                 case "\92á\82ß":\r
377                     Properties.Settings.Default.processPriority = "Below Normal";\r
378 \r
379                 case "\92á":\r
380                     Properties.Settings.Default.processPriority = "Low";\r
381 \r
382                 default:\r
383                     Properties.Settings.Default.processPriority = "Normal";\r
384             }\r
385         }\r
386 \r
387         private void cb_logVerboseLvl_SelectedIndexChanged(object sender, EventArgs e)\r
388         {\r
389             Properties.Settings.Default.verboseLevel = cb_logVerboseLvl.SelectedIndex;\r
390         }\r
391 \r
392         private void check_saveLogWithVideo_CheckedChanged(object sender, EventArgs e)\r
393         {\r
394             Properties.Settings.Default.saveLogWithVideo = check_saveLogWithVideo.Checked;\r
395         }\r
396 \r
397         private void check_logsInSpecifiedLocation_CheckedChanged(object sender, EventArgs e)\r
398         {\r
399             Properties.Settings.Default.saveLogToSpecifiedPath = check_logsInSpecifiedLocation.Checked;\r
400         }\r
401 \r
402         private void btn_saveLog_Click(object sender, EventArgs e)\r
403         {\r
404             pathFinder.SelectedPath = String.Empty;\r
405             pathFinder.ShowDialog();\r
406             if (pathFinder.SelectedPath != string.Empty)\r
407                 text_logPath.Text = pathFinder.SelectedPath;\r
408         }\r
409 \r
410         private void text_logPath_TextChanged(object sender, EventArgs e)\r
411         {\r
412             Properties.Settings.Default.saveLogPath = text_logPath.Text;\r
413         }\r
414 \r
415         private void btn_viewLogs_Click(object sender, EventArgs e)\r
416         {\r
417             string logDir = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\HandBrake\\logs";\r
418             string windir = Environment.GetEnvironmentVariable("WINDIR");\r
419             System.Diagnostics.Process prc = new System.Diagnostics.Process();\r
420             prc.StartInfo.FileName = windir + @"\explorer.exe";\r
421             prc.StartInfo.Arguments = logDir;\r
422             prc.Start();\r
423         }\r
424 \r
425         private void btn_clearLogs_Click(object sender, EventArgs e)\r
426         {\r
427             DialogResult result = MessageBox.Show("HandBrake\82Ì\83\8d\83O\83t\83H\83\8b\83_\82ð\8bó\82É\82µ\82Ü\82·\82©\81H", "Clear Logs", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);\r
428             if (result == DialogResult.Yes)\r
429             {\r
430                 Main.clearLogs();\r
431                 MessageBox.Show(this, "\83\8d\83O\83t\83H\83\8b\83_\82ð\8bó\82É\82µ\82Ü\82µ\82½\81I", "Notice", MessageBoxButtons.OK,\r
432                                 MessageBoxIcon.Information);\r
433             }\r
434         }\r
435         #endregion\r
436 \r
437         #region Advanced\r
438 \r
439         private void check_mainMinimize_CheckedChanged(object sender, EventArgs e)\r
440         {\r
441             Properties.Settings.Default.MainWindowMinimize = check_mainMinimize.Checked;\r
442             check_trayStatusAlerts.Enabled = check_mainMinimize.Checked;\r
443         }\r
444 \r
445         private void check_trayStatusAlerts_CheckedChanged(object sender, EventArgs e)\r
446         {\r
447             Properties.Settings.Default.trayIconAlerts = check_trayStatusAlerts.Checked;\r
448         }\r
449 \r
450         private void check_queryEditorTab_CheckedChanged(object sender, EventArgs e)\r
451         {\r
452             Properties.Settings.Default.QueryEditorTab = check_queryEditorTab.Checked;\r
453             check_promptOnUnmatchingQueries.Enabled = check_queryEditorTab.Checked;\r
454         }\r
455 \r
456         private void check_promptOnUnmatchingQueries_CheckedChanged(object sender, EventArgs e)\r
457         {\r
458             Properties.Settings.Default.PromptOnUnmatchingQueries = check_promptOnUnmatchingQueries.Checked;\r
459         }\r
460 \r
461         private void check_disablePresetNotification_CheckedChanged(object sender, EventArgs e)\r
462         {\r
463             Properties.Settings.Default.presetNotification = check_disablePresetNotification.Checked;\r
464         }\r
465 \r
466         private void check_inGuiStatus_CheckedChanged(object sender, EventArgs e)\r
467         {\r
468             Properties.Settings.Default.enocdeStatusInGui = check_inGuiStatus.Checked;\r
469         }\r
470 \r
471         private void drop_updateCheckDays_SelectedIndexChanged(object sender, EventArgs e)\r
472         {\r
473             switch (drop_updateCheckDays.SelectedIndex)\r
474             {\r
475                 case 0:\r
476                     Properties.Settings.Default.daysBetweenUpdateCheck = 1;\r
477                     break;\r
478                 case 1:\r
479                     Properties.Settings.Default.daysBetweenUpdateCheck = 7;\r
480                     break;\r
481                 case 2:\r
482                     Properties.Settings.Default.daysBetweenUpdateCheck = 30;\r
483                     break;\r
484             }\r
485         }\r
486 \r
487         private void x264step_SelectedIndexChanged(object sender, EventArgs e)\r
488         {\r
489             switch (drop_x264step.SelectedIndex)\r
490             {\r
491                 case 0:\r
492                     Properties.Settings.Default.x264cqstep = 1.0;\r
493                     break;\r
494                 case 1:\r
495                     Properties.Settings.Default.x264cqstep = 0.50;\r
496                     break;\r
497                 case 2:\r
498                     Properties.Settings.Default.x264cqstep = 0.25;\r
499                     break;\r
500                 case 3:\r
501                     Properties.Settings.Default.x264cqstep = 0.20;\r
502                     break;\r
503             }\r
504             mainWindow.setQualityFromSlider();\r
505         }\r
506 \r
507         private void check_dvdnav_CheckedChanged(object sender, EventArgs e)\r
508         {\r
509             Properties.Settings.Default.noDvdNav = check_dvdnav.Checked;\r
510         }\r
511         #endregion\r
512 \r
513         #region Debug\r
514         private void check_disableResCalc_CheckedChanged(object sender, EventArgs e)\r
515         {\r
516             Properties.Settings.Default.disableResCalc = check_disableResCalc.Checked;\r
517         }\r
518         #endregion\r
519 \r
520         private void btn_close_Click(object sender, EventArgs e)\r
521         {\r
522             Properties.Settings.Default.Save(); // Small hack for Vista. Seems to work fine on XP without this\r
523             this.Close();\r
524         }\r
525     }\r
526 }