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