+ }\r
+\r
+ /// <summary>\r
+ /// Clear the contents of the log window\r
+ /// </summary>\r
+ private void ClearWindowText()\r
+ {\r
+ try\r
+ {\r
+ if (IsHandleCreated)\r
+ {\r
+ if (rtf_actLog.InvokeRequired)\r
+ {\r
+ IAsyncResult invoked = BeginInvoke(new SetTextClearCallback(ClearWindowText));\r
+ EndInvoke(invoked);\r
+ }\r
+ else\r
+ lock (rtf_actLog)\r
+ rtf_actLog.Clear();\r
+ }\r
+ }\r
+ catch (Exception)\r
+ {\r
+ return;\r
+ }\r
+ }\r
+\r
+ /// <summary>\r
+ /// Reset Everything\r
+ /// </summary>\r
+ private void Reset()\r
+ {\r
+ if (windowTimer != null)\r
+ windowTimer.Dispose();\r
+ position = 0;\r
+ ClearWindowText();\r
+ windowTimer = new Timer(new TimerCallback(LogMonitor), null, 1000, 1000);\r
+ }\r
+\r
+ /* Menus and Buttons */\r
+\r
+ /// <summary>\r
+ /// Copy log to clipboard\r
+ /// </summary>\r
+ /// <param name="sender">\r
+ /// The sender.\r
+ /// </param>\r
+ /// <param name="e">\r
+ /// The e.\r
+ /// </param>\r
+ private void MnuCopyLogClick(object sender, EventArgs e)\r
+ {\r
+ Clipboard.SetDataObject(rtf_actLog.SelectedText != string.Empty ? rtf_actLog.SelectedText : rtf_actLog.Text, true);\r
+ }\r
+\r
+ /// <summary>\r
+ /// Open the log folder\r
+ /// </summary>\r
+ /// <param name="sender">\r
+ /// The sender.\r
+ /// </param>\r
+ /// <param name="e">\r
+ /// The e.\r
+ /// </param>\r
+ private void MnuOpenLogFolderClick(object sender, EventArgs e)\r
+ {\r
+ string logDir = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\HandBrake\\logs";\r
+ string windir = Environment.GetEnvironmentVariable("WINDIR");\r
+ Process prc = new Process\r
+ {\r
+ StartInfo =\r
+ {\r
+ FileName = windir + @"\explorer.exe",\r
+ Arguments = logDir\r
+ }\r
+ };\r
+ prc.Start();\r
+ }\r
+\r
+ /// <summary>\r
+ /// Copy the log\r
+ /// </summary>\r
+ /// <param name="sender">\r
+ /// The sender.\r
+ /// </param>\r
+ /// <param name="e">\r
+ /// The e.\r
+ /// </param>\r
+ private void BtnCopyClick(object sender, EventArgs e)\r
+ {\r
+ Clipboard.SetDataObject(rtf_actLog.SelectedText != string.Empty ? rtf_actLog.SelectedText : rtf_actLog.Text, true);\r
+ }\r
+\r
+ /// <summary>\r
+ /// Change the Log file in the viewer\r
+ /// </summary>\r
+ /// <param name="sender">The Sender </param>\r
+ /// <param name="e">The EventArgs</param>\r
+ private void LogSelectorClick(object sender, EventArgs e)\r
+ {\r
+ this.SetMode((string)this.logSelector.SelectedItem == "Scan Log" ? ActivityLogMode.Scan : ActivityLogMode.Encode);\r
+ }\r
+\r
+ /* Overrides */\r
+\r
+ /// <summary>\r
+ /// override onclosing\r
+ /// </summary>\r
+ /// <param name="e">\r
+ /// The e.\r
+ /// </param>\r
+ protected override void OnClosing(CancelEventArgs e)\r
+ {\r
+ scan.ScanStared -= scan_ScanStared;\r
+ encode.EncodeStarted -= encode_EncodeStarted;\r
+\r
+ scan.ScanCompleted -= stopWindowRefresh;\r
+ encode.EncodeEnded -= stopWindowRefresh;\r