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