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             // Preset update notification\r
116             if (Properties.Settings.Default.presetNotification)\r
117                 check_disablePresetNotification.CheckState = CheckState.Checked;\r
118 \r
119             // Experimental In-GUI encode status indicator.\r
120             if (Properties.Settings.Default.enocdeStatusInGui)\r
121                 check_inGuiStatus.CheckState = CheckState.Checked;\r
122 \r
123             // Days between update checks\r
124             switch (Properties.Settings.Default.daysBetweenUpdateCheck)\r
125             {\r
126                 case 1:\r
127                     drop_updateCheckDays.SelectedIndex = 0;\r
128                     break;\r
129                 case 7:\r
130                     drop_updateCheckDays.SelectedIndex = 1;\r
131                     break;\r
132                 case 30:\r
133                     drop_updateCheckDays.SelectedIndex = 2;\r
134                     break;\r
135             }\r
136 \r
137             // x264 step\r
138             CultureInfo culture = CultureInfo.CreateSpecificCulture("en-US");\r
139             drop_x264step.SelectedItem = Properties.Settings.Default.x264cqstep.ToString(culture);\r
140 \r
141             // Use Experimental dvdnav\r
142             if (Properties.Settings.Default.dvdnav)\r
143                 check_dvdnav.CheckState = CheckState.Checked;\r
144         }\r
145 \r
146         #region General\r
147         private void check_updateCheck_CheckedChanged(object sender, EventArgs e)\r
148         {\r
149             Properties.Settings.Default.updateStatus = check_updateCheck.Checked;\r
150         }\r
151 \r
152         private void check_userDefaultSettings_CheckedChanged(object sender, EventArgs e)\r
153         {\r
154             Properties.Settings.Default.defaultSettings = check_userDefaultSettings.Checked;\r
155         }\r
156 \r
157         private void check_tooltip_CheckedChanged(object sender, EventArgs e)\r
158         {\r
159             Properties.Settings.Default.tooltipEnable = check_tooltip.Checked;\r
160         }\r
161         private void drp_completeOption_SelectedIndexChanged(object sender, EventArgs e)\r
162         {\r
163             Properties.Settings.Default.CompletionOption = drp_completeOption.Text;\r
164         }\r
165 \r
166         private void check_autoNaming_CheckedChanged(object sender, EventArgs e)\r
167         {\r
168             Properties.Settings.Default.autoNaming = check_autoNaming.Checked;\r
169         }\r
170 \r
171         private void txt_autoNameFormat_TextChanged(object sender, EventArgs e)\r
172         {\r
173             Properties.Settings.Default.autoNameFormat = txt_autoNameFormat.Text;\r
174         }\r
175 \r
176         private void btn_browse_Click(object sender, EventArgs e)\r
177         {\r
178             pathFinder.ShowDialog();\r
179             text_an_path.Text = pathFinder.SelectedPath;\r
180         }\r
181 \r
182         private void text_an_path_TextChanged(object sender, EventArgs e)\r
183         {\r
184             if (text_an_path.Text == string.Empty)\r
185             {\r
186                 Properties.Settings.Default.autoNamePath = "";\r
187                 text_an_path.Text = "Click 'Browse' to set the default location";\r
188             }\r
189             else\r
190                 Properties.Settings.Default.autoNamePath = text_an_path.Text;\r
191         }\r
192 \r
193         private void check_m4v_CheckedChanged(object sender, EventArgs e)\r
194         {\r
195             Properties.Settings.Default.useM4v = check_m4v.Checked;\r
196         }\r
197         #endregion\r
198 \r
199         #region Picture\r
200         private void btn_vlcPath_Click(object sender, EventArgs e)\r
201         {\r
202             openFile_vlc.ShowDialog();\r
203             if (openFile_vlc.FileName != string.Empty)\r
204                 txt_vlcPath.Text = openFile_vlc.FileName;\r
205         }\r
206         private void txt_vlcPath_TextChanged(object sender, EventArgs e)\r
207         {\r
208             Properties.Settings.Default.VLC_Path = txt_vlcPath.Text;\r
209         }\r
210         #endregion\r
211 \r
212         #region CLI\r
213         private void check_cli_minimized_CheckedChanged(object sender, EventArgs e)\r
214         {\r
215             Properties.Settings.Default.cli_minimized = check_cli_minimized.Checked;\r
216         }\r
217 \r
218         private void drp_processors_SelectedIndexChanged(object sender, EventArgs e)\r
219         {\r
220             Properties.Settings.Default.Processors = drp_processors.Text;\r
221         }\r
222 \r
223         private void drp_Priority_SelectedIndexChanged(object sender, EventArgs e)\r
224         {\r
225             Properties.Settings.Default.processPriority = drp_Priority.Text;\r
226         }\r
227 \r
228         private void cb_logVerboseLvl_SelectedIndexChanged(object sender, EventArgs e)\r
229         {\r
230             Properties.Settings.Default.verboseLevel = cb_logVerboseLvl.SelectedIndex;\r
231         }\r
232 \r
233         private void check_saveLogWithVideo_CheckedChanged(object sender, EventArgs e)\r
234         {\r
235             Properties.Settings.Default.saveLogWithVideo = check_saveLogWithVideo.Checked;\r
236         }\r
237 \r
238         private void check_logsInSpecifiedLocation_CheckedChanged(object sender, EventArgs e)\r
239         {\r
240             Properties.Settings.Default.saveLogToSpecifiedPath = check_logsInSpecifiedLocation.Checked;\r
241         }\r
242 \r
243         private void btn_saveLog_Click(object sender, EventArgs e)\r
244         {\r
245             pathFinder.SelectedPath = String.Empty;\r
246             pathFinder.ShowDialog();\r
247             if (pathFinder.SelectedPath != string.Empty)\r
248                 text_logPath.Text = pathFinder.SelectedPath;\r
249         }\r
250 \r
251         private void text_logPath_TextChanged(object sender, EventArgs e)\r
252         {\r
253             Properties.Settings.Default.saveLogPath = text_logPath.Text;\r
254         }\r
255 \r
256         private void btn_viewLogs_Click(object sender, EventArgs e)\r
257         {\r
258             string logDir = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\HandBrake\\logs";\r
259             string windir = Environment.GetEnvironmentVariable("WINDIR");\r
260             System.Diagnostics.Process prc = new System.Diagnostics.Process();\r
261             prc.StartInfo.FileName = windir + @"\explorer.exe";\r
262             prc.StartInfo.Arguments = logDir;\r
263             prc.Start();\r
264         }\r
265 \r
266         private void btn_clearLogs_Click(object sender, EventArgs e)\r
267         {\r
268             DialogResult result = MessageBox.Show("Are you sure you wish to clear the log file directory?", "Clear Logs", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);\r
269             if (result == DialogResult.Yes)\r
270             {\r
271                 Main.clearLogs();\r
272                 MessageBox.Show(this, "HandBrake's Log file directory has been cleared!", "Notice", MessageBoxButtons.OK,\r
273                                 MessageBoxIcon.Information);\r
274             }\r
275         }\r
276         #endregion\r
277 \r
278         #region Advanced\r
279         private void btn_drive_detect_CheckedChanged(object sender, EventArgs e)\r
280         {\r
281             Properties.Settings.Default.drive_detection = btn_drive_detect.Checked;\r
282         }\r
283 \r
284         private void check_mainMinimize_CheckedChanged(object sender, EventArgs e)\r
285         {\r
286             Properties.Settings.Default.MainWindowMinimize = check_mainMinimize.Checked;\r
287         }\r
288 \r
289         private void check_trayStatusAlerts_CheckedChanged(object sender, EventArgs e)\r
290         {\r
291             Properties.Settings.Default.trayIconAlerts = check_trayStatusAlerts.Checked;\r
292         }\r
293 \r
294         private void check_queryEditorTab_CheckedChanged(object sender, EventArgs e)\r
295         {\r
296             Properties.Settings.Default.QueryEditorTab = check_queryEditorTab.Checked;\r
297         }\r
298 \r
299         private void check_disablePresetNotification_CheckedChanged(object sender, EventArgs e)\r
300         {\r
301             Properties.Settings.Default.presetNotification = check_disablePresetNotification.Checked;\r
302         }\r
303 \r
304         private void check_inGuiStatus_CheckedChanged(object sender, EventArgs e)\r
305         {\r
306             Properties.Settings.Default.enocdeStatusInGui = check_inGuiStatus.Checked;\r
307         }\r
308 \r
309         private void drop_updateCheckDays_SelectedIndexChanged(object sender, EventArgs e)\r
310         {\r
311             switch (drop_updateCheckDays.SelectedIndex)\r
312             {\r
313                 case 0:\r
314                     Properties.Settings.Default.daysBetweenUpdateCheck = 1;\r
315                     break;\r
316                 case 1:\r
317                     Properties.Settings.Default.daysBetweenUpdateCheck = 7;\r
318                     break;\r
319                 case 2:\r
320                     Properties.Settings.Default.daysBetweenUpdateCheck = 30;\r
321                     break;\r
322             }\r
323         }\r
324 \r
325         private void x264step_SelectedIndexChanged(object sender, EventArgs e)\r
326         {\r
327             switch (drop_x264step.SelectedIndex)\r
328             {\r
329                 case 0:\r
330                     Properties.Settings.Default.x264cqstep = 1.0;\r
331                     break;\r
332                 case 1:\r
333                     Properties.Settings.Default.x264cqstep = 0.50;\r
334                     break;\r
335                 case 2:\r
336                     Properties.Settings.Default.x264cqstep = 0.25;\r
337                     break;\r
338                 case 3:\r
339                     Properties.Settings.Default.x264cqstep = 0.20;\r
340                     break;\r
341             }\r
342         }\r
343 \r
344         private void check_dvdnav_CheckedChanged(object sender, EventArgs e)\r
345         {\r
346             Properties.Settings.Default.dvdnav = check_dvdnav.Checked;\r
347         }\r
348         #endregion\r
349 \r
350         private void btn_close_Click(object sender, EventArgs e)\r
351         {\r
352             Properties.Settings.Default.Save(); // Small hack for Vista. Seems to work fine on XP without this\r
353             this.Close();\r
354         }\r
355 \r
356         \r
357 \r
358     }\r
359 }