OSDN Git Service

WinGui:
[handbrake-jp/handbrake-jp-git.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.Globalization;\r
9 using System.Windows.Forms;\r
10 using Handbrake.Functions;\r
11 \r
12 namespace Handbrake\r
13 {\r
14     public partial class frmOptions : Form\r
15     {\r
16         public frmOptions()\r
17         {\r
18             InitializeComponent();\r
19 \r
20             // #############################\r
21             // General\r
22             // #############################\r
23 \r
24             // Enable Tooltips.\r
25             if (Properties.Settings.Default.tooltipEnable)\r
26             {\r
27                 check_tooltip.CheckState = CheckState.Checked;\r
28                 ToolTip.Active = true;\r
29             }\r
30 \r
31             // Setup Widgets to match settings.\r
32             if (Properties.Settings.Default.updateStatus)\r
33                 check_updateCheck.CheckState = CheckState.Checked;\r
34 \r
35             // enable loading of default user settings.\r
36             if (Properties.Settings.Default.defaultSettings)\r
37                 check_userDefaultSettings.CheckState = CheckState.Checked;\r
38 \r
39             // On Encode Completeion Action\r
40             drp_completeOption.Text = Properties.Settings.Default.CompletionOption;\r
41 \r
42             // Enable auto naming feature.\r
43             if (Properties.Settings.Default.autoNaming)\r
44                 check_autoNaming.CheckState = CheckState.Checked;\r
45 \r
46             // Store the auto name path\r
47             text_an_path.Text = Properties.Settings.Default.autoNamePath;\r
48             if (text_an_path.Text == string.Empty)\r
49                 text_an_path.Text = "Click 'Browse' to set the default location";\r
50 \r
51             // Store auto name format\r
52             txt_autoNameFormat.Text = Properties.Settings.Default.autoNameFormat;\r
53 \r
54             // Use iPod/iTunes friendly .m4v extension for MP4 files.\r
55             if (Properties.Settings.Default.useM4v)\r
56                 check_m4v.CheckState = CheckState.Checked;\r
57 \r
58             // #############################\r
59             // Picture Tab\r
60             // #############################\r
61 \r
62             // VLC Path\r
63             txt_vlcPath.Text = Properties.Settings.Default.VLC_Path;\r
64 \r
65             // #############################\r
66             // CLI\r
67             // #############################\r
68 \r
69             // Enable Start CLI minimized\r
70             if (Properties.Settings.Default.cli_minimized)\r
71                 check_cli_minimized.CheckState = CheckState.Checked;\r
72 \r
73             // Number of processor cores\r
74             drp_processors.Text = Properties.Settings.Default.Processors;\r
75 \r
76             // Priority level for encodes\r
77             drp_Priority.Text = Properties.Settings.Default.processPriority;\r
78 \r
79             // Log Verbosity Level\r
80             cb_logVerboseLvl.SelectedIndex = Properties.Settings.Default.verboseLevel;\r
81 \r
82 \r
83             // Save logs in the same directory as encoded files\r
84             if (Properties.Settings.Default.saveLogWithVideo)\r
85                 check_saveLogWithVideo.CheckState = CheckState.Checked;\r
86 \r
87             // Save Logs in a specified path\r
88             if (Properties.Settings.Default.saveLogToSpecifiedPath)\r
89                 check_logsInSpecifiedLocation.CheckState = CheckState.Checked;\r
90 \r
91             // The saved log path\r
92             text_logPath.Text = Properties.Settings.Default.saveLogPath;\r
93 \r
94 \r
95             // #############################\r
96             // Advanced\r
97             // #############################\r
98 \r
99             // Enable GUI DVD Drive detection code\r
100             if (Properties.Settings.Default.drive_detection)\r
101                 btn_drive_detect.CheckState = CheckState.Checked;\r
102 \r
103             // Minimise to Tray\r
104             if (Properties.Settings.Default.trayIconAlerts)\r
105                 check_trayStatusAlerts.CheckState = CheckState.Checked;\r
106 \r
107             // Tray Balloon popups\r
108             if (Properties.Settings.Default.MainWindowMinimize)\r
109                 check_mainMinimize.CheckState = CheckState.Checked;\r
110 \r
111             // Enable / Disable Query editor tab\r
112             if (Properties.Settings.Default.QueryEditorTab)\r
113                 check_queryEditorTab.CheckState = CheckState.Checked;\r
114 \r
115             // Prompt on inconsistant queries\r
116             check_promptOnUnmatchingQueries.Checked = Properties.Settings.Default.PromptOnUnmatchingQueries;\r
117 \r
118             // Preset update notification\r
119             if (Properties.Settings.Default.presetNotification)\r
120                 check_disablePresetNotification.CheckState = CheckState.Checked;\r
121 \r
122             // Experimental In-GUI encode status indicator.\r
123             if (Properties.Settings.Default.enocdeStatusInGui)\r
124                 check_inGuiStatus.CheckState = CheckState.Checked;\r
125 \r
126             // Days between update checks\r
127             switch (Properties.Settings.Default.daysBetweenUpdateCheck)\r
128             {\r
129                 case 1:\r
130                     drop_updateCheckDays.SelectedIndex = 0;\r
131                     break;\r
132                 case 7:\r
133                     drop_updateCheckDays.SelectedIndex = 1;\r
134                     break;\r
135                 case 30:\r
136                     drop_updateCheckDays.SelectedIndex = 2;\r
137                     break;\r
138             }\r
139 \r
140             // x264 step\r
141             CultureInfo culture = CultureInfo.CreateSpecificCulture("en-US");\r
142             drop_x264step.SelectedItem = Properties.Settings.Default.x264cqstep.ToString(culture);\r
143 \r
144             // Use Experimental dvdnav\r
145             if (Properties.Settings.Default.dvdnav)\r
146                 check_dvdnav.CheckState = CheckState.Checked;\r
147         }\r
148 \r
149         #region General\r
150         private void check_updateCheck_CheckedChanged(object sender, EventArgs e)\r
151         {\r
152             Properties.Settings.Default.updateStatus = check_updateCheck.Checked;\r
153         }\r
154 \r
155         private void check_userDefaultSettings_CheckedChanged(object sender, EventArgs e)\r
156         {\r
157             Properties.Settings.Default.defaultSettings = check_userDefaultSettings.Checked;\r
158         }\r
159 \r
160         private void check_tooltip_CheckedChanged(object sender, EventArgs e)\r
161         {\r
162             Properties.Settings.Default.tooltipEnable = check_tooltip.Checked;\r
163         }\r
164         private void drp_completeOption_SelectedIndexChanged(object sender, EventArgs e)\r
165         {\r
166             Properties.Settings.Default.CompletionOption = drp_completeOption.Text;\r
167         }\r
168 \r
169         private void check_autoNaming_CheckedChanged(object sender, EventArgs e)\r
170         {\r
171             Properties.Settings.Default.autoNaming = check_autoNaming.Checked;\r
172         }\r
173 \r
174         private void txt_autoNameFormat_TextChanged(object sender, EventArgs e)\r
175         {\r
176             Properties.Settings.Default.autoNameFormat = txt_autoNameFormat.Text;\r
177         }\r
178 \r
179         private void btn_browse_Click(object sender, EventArgs e)\r
180         {\r
181             pathFinder.ShowDialog();\r
182             text_an_path.Text = pathFinder.SelectedPath;\r
183         }\r
184 \r
185         private void text_an_path_TextChanged(object sender, EventArgs e)\r
186         {\r
187             if (text_an_path.Text == string.Empty)\r
188             {\r
189                 Properties.Settings.Default.autoNamePath = "";\r
190                 text_an_path.Text = "Click 'Browse' to set the default location";\r
191             }\r
192             else\r
193                 Properties.Settings.Default.autoNamePath = text_an_path.Text;\r
194         }\r
195 \r
196         private void check_m4v_CheckedChanged(object sender, EventArgs e)\r
197         {\r
198             Properties.Settings.Default.useM4v = check_m4v.Checked;\r
199         }\r
200         #endregion\r
201 \r
202         #region Picture\r
203         private void btn_vlcPath_Click(object sender, EventArgs e)\r
204         {\r
205             openFile_vlc.ShowDialog();\r
206             if (openFile_vlc.FileName != string.Empty)\r
207                 txt_vlcPath.Text = openFile_vlc.FileName;\r
208         }\r
209         private void txt_vlcPath_TextChanged(object sender, EventArgs e)\r
210         {\r
211             Properties.Settings.Default.VLC_Path = txt_vlcPath.Text;\r
212         }\r
213         #endregion\r
214 \r
215         #region CLI\r
216         private void check_cli_minimized_CheckedChanged(object sender, EventArgs e)\r
217         {\r
218             Properties.Settings.Default.cli_minimized = check_cli_minimized.Checked;\r
219         }\r
220 \r
221         private void drp_processors_SelectedIndexChanged(object sender, EventArgs e)\r
222         {\r
223             Properties.Settings.Default.Processors = drp_processors.Text;\r
224         }\r
225 \r
226         private void drp_Priority_SelectedIndexChanged(object sender, EventArgs e)\r
227         {\r
228             Properties.Settings.Default.processPriority = drp_Priority.Text;\r
229         }\r
230 \r
231         private void cb_logVerboseLvl_SelectedIndexChanged(object sender, EventArgs e)\r
232         {\r
233             Properties.Settings.Default.verboseLevel = cb_logVerboseLvl.SelectedIndex;\r
234         }\r
235 \r
236         private void check_saveLogWithVideo_CheckedChanged(object sender, EventArgs e)\r
237         {\r
238             Properties.Settings.Default.saveLogWithVideo = check_saveLogWithVideo.Checked;\r
239         }\r
240 \r
241         private void check_logsInSpecifiedLocation_CheckedChanged(object sender, EventArgs e)\r
242         {\r
243             Properties.Settings.Default.saveLogToSpecifiedPath = check_logsInSpecifiedLocation.Checked;\r
244         }\r
245 \r
246         private void btn_saveLog_Click(object sender, EventArgs e)\r
247         {\r
248             pathFinder.SelectedPath = String.Empty;\r
249             pathFinder.ShowDialog();\r
250             if (pathFinder.SelectedPath != string.Empty)\r
251                 text_logPath.Text = pathFinder.SelectedPath;\r
252         }\r
253 \r
254         private void text_logPath_TextChanged(object sender, EventArgs e)\r
255         {\r
256             Properties.Settings.Default.saveLogPath = text_logPath.Text;\r
257         }\r
258 \r
259         private void btn_viewLogs_Click(object sender, EventArgs e)\r
260         {\r
261             string logDir = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\HandBrake\\logs";\r
262             string windir = Environment.GetEnvironmentVariable("WINDIR");\r
263             System.Diagnostics.Process prc = new System.Diagnostics.Process();\r
264             prc.StartInfo.FileName = windir + @"\explorer.exe";\r
265             prc.StartInfo.Arguments = logDir;\r
266             prc.Start();\r
267         }\r
268 \r
269         private void btn_clearLogs_Click(object sender, EventArgs e)\r
270         {\r
271             DialogResult result = MessageBox.Show("Are you sure you wish to clear the log file directory?", "Clear Logs", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);\r
272             if (result == DialogResult.Yes)\r
273             {\r
274                 Main.clearLogs();\r
275                 MessageBox.Show(this, "HandBrake's Log file directory has been cleared!", "Notice", MessageBoxButtons.OK,\r
276                                 MessageBoxIcon.Information);\r
277             }\r
278         }\r
279         #endregion\r
280 \r
281         #region Advanced\r
282         private void btn_drive_detect_CheckedChanged(object sender, EventArgs e)\r
283         {\r
284             Properties.Settings.Default.drive_detection = btn_drive_detect.Checked;\r
285         }\r
286 \r
287         private void check_mainMinimize_CheckedChanged(object sender, EventArgs e)\r
288         {\r
289             Properties.Settings.Default.MainWindowMinimize = check_mainMinimize.Checked;\r
290             check_trayStatusAlerts.Enabled = check_mainMinimize.Checked;\r
291         }\r
292 \r
293         private void check_trayStatusAlerts_CheckedChanged(object sender, EventArgs e)\r
294         {\r
295             Properties.Settings.Default.trayIconAlerts = check_trayStatusAlerts.Checked;\r
296         }\r
297 \r
298         private void check_queryEditorTab_CheckedChanged(object sender, EventArgs e)\r
299         {\r
300             Properties.Settings.Default.QueryEditorTab = check_queryEditorTab.Checked;\r
301             check_promptOnUnmatchingQueries.Enabled = check_queryEditorTab.Checked;\r
302         }\r
303 \r
304         private void check_promptOnUnmatchingQueries_CheckedChanged(object sender, EventArgs e)\r
305         {\r
306             Properties.Settings.Default.PromptOnUnmatchingQueries = check_promptOnUnmatchingQueries.Checked;\r
307         }\r
308 \r
309         private void check_disablePresetNotification_CheckedChanged(object sender, EventArgs e)\r
310         {\r
311             Properties.Settings.Default.presetNotification = check_disablePresetNotification.Checked;\r
312         }\r
313 \r
314         private void check_inGuiStatus_CheckedChanged(object sender, EventArgs e)\r
315         {\r
316             Properties.Settings.Default.enocdeStatusInGui = check_inGuiStatus.Checked;\r
317         }\r
318 \r
319         private void drop_updateCheckDays_SelectedIndexChanged(object sender, EventArgs e)\r
320         {\r
321             switch (drop_updateCheckDays.SelectedIndex)\r
322             {\r
323                 case 0:\r
324                     Properties.Settings.Default.daysBetweenUpdateCheck = 1;\r
325                     break;\r
326                 case 1:\r
327                     Properties.Settings.Default.daysBetweenUpdateCheck = 7;\r
328                     break;\r
329                 case 2:\r
330                     Properties.Settings.Default.daysBetweenUpdateCheck = 30;\r
331                     break;\r
332             }\r
333         }\r
334 \r
335         private void x264step_SelectedIndexChanged(object sender, EventArgs e)\r
336         {\r
337             switch (drop_x264step.SelectedIndex)\r
338             {\r
339                 case 0:\r
340                     Properties.Settings.Default.x264cqstep = 1.0;\r
341                     break;\r
342                 case 1:\r
343                     Properties.Settings.Default.x264cqstep = 0.50;\r
344                     break;\r
345                 case 2:\r
346                     Properties.Settings.Default.x264cqstep = 0.25;\r
347                     break;\r
348                 case 3:\r
349                     Properties.Settings.Default.x264cqstep = 0.20;\r
350                     break;\r
351             }\r
352         }\r
353 \r
354         private void check_dvdnav_CheckedChanged(object sender, EventArgs e)\r
355         {\r
356             Properties.Settings.Default.dvdnav = check_dvdnav.Checked;\r
357         }\r
358         #endregion\r
359 \r
360         private void btn_close_Click(object sender, EventArgs e)\r
361         {\r
362             Properties.Settings.Default.Save(); // Small hack for Vista. Seems to work fine on XP without this\r
363             this.Close();\r
364         }\r
365     }\r
366 }