Add project files.
This commit is contained in:
870
DatEmAll-GUI/FrmDatEmAll.cs
Normal file
870
DatEmAll-GUI/FrmDatEmAll.cs
Normal file
@@ -0,0 +1,870 @@
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.IO;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using Serilog;
|
||||
|
||||
namespace DatEmAll_GUI
|
||||
{
|
||||
/// <summary>
|
||||
/// The DatEmAll GUI Class which interacts with the Main Program Class.
|
||||
/// </summary>
|
||||
public partial class FrmDatEmAll : Form
|
||||
{
|
||||
#region Constructors
|
||||
|
||||
DatEmAll.DatEmAll DEA = new DatEmAll.DatEmAll();
|
||||
|
||||
/// <summary>
|
||||
/// Constructor
|
||||
/// </summary>
|
||||
public FrmDatEmAll()
|
||||
{
|
||||
// Initialize the form.
|
||||
InitializeComponent();
|
||||
|
||||
// Print the version.
|
||||
DEA.PrintVersion();
|
||||
|
||||
// Load the default options passed from the default options file.
|
||||
DEA.LoadOptionsFromFile();
|
||||
|
||||
// Load the default options passed from the command line arguments.
|
||||
DEA.LoadOptionsFromCLI(Environment.GetCommandLineArgs());
|
||||
|
||||
// Add data bindings.
|
||||
chkIncludeCRC32Hash.DataBindings.Add("Checked", DEA, "IncludeCRC32Hash");
|
||||
chkIncludeMD5Hash.DataBindings.Add("Checked", DEA, "IncludeMD5Hash");
|
||||
chkIncludeSHA1Hash.DataBindings.Add("Checked", DEA, "IncludeSHA1Hash");
|
||||
chkIncludeFileSize.DataBindings.Add("Checked", DEA, "IncludeFileSize");
|
||||
chkAppendGameCountToFilename.DataBindings.Add("Checked", DEA, "AppendGameCountToFilename");
|
||||
chkAppendGameCountToDescription.DataBindings.Add("Checked", DEA, "AppendGameCountToDescription");
|
||||
chkAppendVersionToFilename.DataBindings.Add("Checked", DEA, "AppendVersionToFilename");
|
||||
chkAppendVersionToDescription.DataBindings.Add("Checked", DEA, "AppendVersionToDescription");
|
||||
chkIncludeROMDirRootFiles.DataBindings.Add("Checked", DEA, "IncludeROMDirRootFiles");
|
||||
txtDatFilename.DataBindings.Add("Text", DEA, "DatFilename");
|
||||
cbXMLEncoding.DataBindings.Add("SelectedItem", DEA, "XMLEncoding");
|
||||
cbXMLDOCTYPE.DataBindings.Add("SelectedItem", DEA, "XMLDOCTYPE");
|
||||
chkIncludeDefaultHeaderName.DataBindings.Add("Checked", DEA, "IncludeDefaultHeaderName");
|
||||
chkIncludeDefaultHeaderDescription.DataBindings.Add("Checked", DEA, "IncludeDefaultHeaderDescription");
|
||||
chkIncludeDefaultHeaderVersion.DataBindings.Add("Checked", DEA, "IncludeDefaultHeaderVersion");
|
||||
chkIncludeDefaultHeaderDate.DataBindings.Add("Checked", DEA, "IncludeDefaultHeaderDate");
|
||||
chkIncludeDefaultHeaderAuthor.DataBindings.Add("Checked", DEA, "IncludeDefaultHeaderAuthor");
|
||||
chkIncludeDefaultHeaderEmail.DataBindings.Add("Checked", DEA, "IncludeDefaultHeaderEmail");
|
||||
chkIncludeDefaultHeaderHomepage.DataBindings.Add("Checked", DEA, "IncludeDefaultHeaderHomepage");
|
||||
chkIncludeDefaultHeaderURL.DataBindings.Add("Checked", DEA, "IncludeDefaultHeaderURL");
|
||||
chkIncludeDefaultHeaderComment.DataBindings.Add("Checked", DEA, "IncludeDefaultHeaderComment");
|
||||
chkIncludeDefaultHeaderCategory.DataBindings.Add("Checked", DEA, "IncludeDefaultHeaderCategory");
|
||||
chkIncludeDefaultHeaderCMPForceUnzip.DataBindings.Add("Checked", DEA, "IncludeDefaultHeaderCMPForceUnzip");
|
||||
txtOverrideHeaderName.DataBindings.Add("Text", DEA, "OverrideHeaderName");
|
||||
txtOverrideHeaderDescription.DataBindings.Add("Text", DEA, "OverrideHeaderDescription");
|
||||
txtOverrideHeaderVersion.DataBindings.Add("Text", DEA, "OverrideHeaderVersion");
|
||||
txtOverrideHeaderDate.DataBindings.Add("Text", DEA, "OverrideHeaderDate");
|
||||
txtOverrideHeaderAuthor.DataBindings.Add("Text", DEA, "OverrideHeaderAuthor");
|
||||
txtOverrideHeaderEmail.DataBindings.Add("Text", DEA, "OverrideHeaderEmail");
|
||||
txtOverrideHeaderHomepage.DataBindings.Add("Text", DEA, "OverrideHeaderHomepage");
|
||||
txtOverrideHeaderURL.DataBindings.Add("Text", DEA, "OverrideHeaderURL");
|
||||
txtOverrideHeaderComment.DataBindings.Add("Text", DEA, "OverrideHeaderComment");
|
||||
txtOverrideHeaderCategory.DataBindings.Add("Text", DEA, "OverrideHeaderCategory");
|
||||
chkCheckForLatestVersion.DataBindings.Add("Checked", DEA, "CheckForLatestVersion");
|
||||
chkCheckSSLCertificates.DataBindings.Add("Checked", DEA, "CheckSSLCertificates");
|
||||
chkSendErrorReports.DataBindings.Add("Checked", DEA, "SendErrorReports");
|
||||
cbLanguageLocality.DataBindings.Add("SelectedItem", DEA, "LanguageLocality");
|
||||
cbLogLevel.DataBindings.Add("SelectedItem", DEA, "LogLevel");
|
||||
txtPathDatsDir.DataBindings.Add("Text", DEA, "PathDatsDir");
|
||||
txtPathROMsDir.DataBindings.Add("Text", DEA, "PathROMsDir");
|
||||
txtRegisterAppUsername.DataBindings.Add("Text", DEA, "RegisterAppUsername");
|
||||
txtRegisterAppEmailAddress.DataBindings.Add("Text", DEA, "RegisterAppEmailAddress");
|
||||
txtRegisterAppPassword.DataBindings.Add("Text", DEA, "RegisterAppPassword");
|
||||
|
||||
// Hide some tabs.
|
||||
tcMain.TabPages.Remove(tabHelp);
|
||||
tcMain.TabPages.Remove(tabLicense);
|
||||
tcMain.TabPages.Remove(tabDonations);
|
||||
tcMain.TabPages.Remove(tabRegistration);
|
||||
|
||||
// Set the title.
|
||||
UpdateTitle();
|
||||
|
||||
// Load the GUI RichTextBoxes from resources.
|
||||
rtbHelp.Text = DatEmAll.Properties.Resources.DatEmAll_HELP;
|
||||
rtbLicense.Text = DatEmAll.Properties.Resources.DatEmAll_LICENSE;
|
||||
rtbDonations.Text = DatEmAll.Properties.Resources.DatEmAll_DONATIONS;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Getters/Setters Public Accessors
|
||||
|
||||
/// LogLines
|
||||
public string[] LogLines
|
||||
{
|
||||
get { return rtblLog.Lines; }
|
||||
set { rtblLog.Lines = value; }
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Log
|
||||
|
||||
/// <summary>
|
||||
/// Saves the log to a text file.
|
||||
/// </summary>
|
||||
/// <param name="strPath"></param>
|
||||
/// <returns></returns>
|
||||
public bool SaveLogToFile(string strPath = null)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (strPath != null)
|
||||
{
|
||||
DEA.PathLogFile = strPath;
|
||||
}
|
||||
|
||||
// Determine if the user selected a log filename.
|
||||
if (DEA.PathLogFile.Length == 0)
|
||||
{
|
||||
// Return a bool value.
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Print to screen
|
||||
Log.Information("Saving log file ...");
|
||||
|
||||
// Create log file directory if it doesn't exist.
|
||||
if (Directory.Exists(Path.GetDirectoryName(DEA.PathLogFile)) == false) Directory.CreateDirectory(Path.GetDirectoryName(DEA.PathLogFile));
|
||||
|
||||
// Save the contents of the log to a text file.
|
||||
File.WriteAllLines(DEA.PathLogFile, LogLines);
|
||||
|
||||
// Print to screen
|
||||
Log.Information("Log file saved (" + DEA.PathLogFile + ")");
|
||||
|
||||
// Return a bool value.
|
||||
return true;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
// Print to screen
|
||||
Log.Error("Saving log file failed");
|
||||
Log.Error(ex.Message);
|
||||
|
||||
// Return a bool value.
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Startup Tasks
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void StartupTasks_DoWork(object sender, DoWorkEventArgs e)
|
||||
{
|
||||
// Run startup tasks.
|
||||
DEA.StartupTasks();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void StartupTasks_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
|
||||
{
|
||||
if (e.Cancelled)
|
||||
{
|
||||
// Print to screen
|
||||
Log.Information("Startup tasks canceled");
|
||||
}
|
||||
else if (e.Error != null)
|
||||
{
|
||||
// Print to screen
|
||||
Log.Error("Startup tasks failed");
|
||||
Log.Error(e.Error.Message);
|
||||
}
|
||||
else
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
// Print to screen
|
||||
Log.Information("Ready");
|
||||
|
||||
// Update the status message label.
|
||||
UpdateStatusMessageLabel("Ready");
|
||||
|
||||
// Enable all of the buttons.
|
||||
Invoke(new EnableAllButtonsDelegate(EnableAllButtons));
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region GUI Methods
|
||||
|
||||
/// <summary>
|
||||
/// Cancels the current backgroundworker.
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void Cancel_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (bgwBuildDat.WorkerSupportsCancellation == true)
|
||||
{
|
||||
// Print to screen
|
||||
Log.Information("Cancellation pending after current operation ...");
|
||||
|
||||
// Disable the cancel button.
|
||||
tssbCancel.Enabled = false;
|
||||
|
||||
// Cancel the asynchronous operation.
|
||||
bgwBuildDat.CancelAsync();
|
||||
|
||||
// Update the status message label.
|
||||
UpdateStatusMessageLabel("Cancellation Pending ...");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Updates/Sets the application title.
|
||||
/// </summary>
|
||||
/// <param name="strTitle"></param>
|
||||
/// <returns></returns>
|
||||
public bool UpdateTitle(string strTitle = "")
|
||||
{
|
||||
try
|
||||
{
|
||||
if (this.InvokeRequired && !this.IsDisposed)
|
||||
{
|
||||
Invoke(new MethodInvoker(delegate ()
|
||||
{
|
||||
// Update the application title.
|
||||
this.Text = DEA.AppName + " v" + DEA.AppVersion + strTitle;
|
||||
}));
|
||||
}
|
||||
else if (!this.IsDisposed)
|
||||
{
|
||||
// Update the application title.
|
||||
this.Text = DEA.AppName + " v" + DEA.AppVersion + strTitle;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Updates the progress status message label.
|
||||
/// </summary>
|
||||
/// <param name="strMsg"></param>
|
||||
private void UpdateStatusMessageLabel(string strMsg)
|
||||
{
|
||||
// Update the progress status message label.
|
||||
tsslStatusMessage.Text = strMsg;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// After the form is shown, run the startup tasks.
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void Form_Shown(object sender, EventArgs e)
|
||||
{
|
||||
// Perform the application startup tasks.
|
||||
bgwStartupTasks.RunWorkerAsync();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Exits the WinForm app.
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void ExitApp_Click(object sender, EventArgs e)
|
||||
{
|
||||
Application.Exit();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Exits the Forms application.
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void Form_FormClosing(object sender, FormClosingEventArgs e)
|
||||
{
|
||||
if (bgwBuildDat.IsBusy == true)
|
||||
{
|
||||
if (MessageBox.Show("The dat builder is currently running. Are you sure you want to exit now? Exiting now may cause corrupt or incomplete files!", "Confirm Exit", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) != DialogResult.OK)
|
||||
{
|
||||
e.Cancel = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Changes the path to the Dats directory.
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void PathDatsDir_Click(object sender, EventArgs e)
|
||||
{
|
||||
// Disable all buttons.
|
||||
DisableAllButtons();
|
||||
|
||||
if (txtPathDatsDir.Text == "") { txtPathDatsDir.Text = "Dats"; }
|
||||
|
||||
// Create and initialize a FolderBrowserDialog for the Dats directory.
|
||||
FolderBrowserDialog fbdSelectDir = new FolderBrowserDialog
|
||||
{
|
||||
ShowNewFolderButton = true,
|
||||
Description = "Please enter a path to the Dats directory: ",
|
||||
SelectedPath = Path.GetFullPath(Path.Combine(txtPathDatsDir.Text))
|
||||
};
|
||||
|
||||
// Determine if the user selected OK from the FolderBrowserDialog.
|
||||
if (fbdSelectDir.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
// Set both variables for compatibility for Windows .Net and Mono.
|
||||
this.DEA.PathDatsDir = fbdSelectDir.SelectedPath;
|
||||
txtPathDatsDir.Text = fbdSelectDir.SelectedPath;
|
||||
}
|
||||
|
||||
// Enable all buttons.
|
||||
EnableAllButtons();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Changes the path to the ROMs directory.
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void PathROMsDir_Click(object sender, EventArgs e)
|
||||
{
|
||||
// Disable all buttons.
|
||||
DisableAllButtons();
|
||||
|
||||
if (txtPathROMsDir.Text == "") { txtPathROMsDir.Text = "ROMs"; }
|
||||
|
||||
// Create and initialize a FolderBrowserDialog for the ROMs directory.
|
||||
FolderBrowserDialog fbdSelectDir = new FolderBrowserDialog
|
||||
{
|
||||
ShowNewFolderButton = true,
|
||||
Description = "Please enter a path to the ROMs directory: ",
|
||||
SelectedPath = Path.GetFullPath(Path.Combine(txtPathROMsDir.Text))
|
||||
};
|
||||
|
||||
// Determine if the user selected OK from the FolderBrowserDialog.
|
||||
if (fbdSelectDir.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
// Set both variables for compatibility for Windows .NET and Mono.
|
||||
this.DEA.PathROMsDir = fbdSelectDir.SelectedPath;
|
||||
txtPathROMsDir.Text = fbdSelectDir.SelectedPath;
|
||||
}
|
||||
|
||||
// Enable all buttons.
|
||||
EnableAllButtons();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Builds a dat.
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void BuildDat_Click(object sender, EventArgs e)
|
||||
{
|
||||
// Select the Log tab.
|
||||
if (tcMain.TabPages.Contains(tabLog)) { tcMain.SelectTab(tabLog); }
|
||||
|
||||
// Disable all buttons.
|
||||
DisableAllButtons();
|
||||
|
||||
// Enable the cancel button.
|
||||
tssbCancel.Enabled = true;
|
||||
|
||||
// Update the status message label.
|
||||
UpdateStatusMessageLabel("Building Dat ...");
|
||||
|
||||
// Update the DateTimeFormatted variable.
|
||||
DEA.DateTimeFormatted = DateTime.Now.ToString("yyyyMMdd_HHmmss");
|
||||
|
||||
// Build a dat.
|
||||
bgwBuildDat.RunWorkerAsync();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Loads an options file.
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void LoadOptions_Click(object sender, EventArgs e)
|
||||
{
|
||||
// Disable all buttons.
|
||||
DisableAllButtons();
|
||||
|
||||
// Create and initialize an OpenFileDialog for the options file.
|
||||
OpenFileDialog ofdOptions = new OpenFileDialog
|
||||
{
|
||||
DefaultExt = "*.xml",
|
||||
Filter = "XML Files|*.xml",
|
||||
Title = "Please enter a path to the options file: ",
|
||||
InitialDirectory = Path.Combine(Application.StartupPath, "Options")
|
||||
};
|
||||
|
||||
// Determine if the user selected a file name from the OpenFileDialog.
|
||||
if (ofdOptions.ShowDialog() == DialogResult.OK && ofdOptions.FileName.Length > 0)
|
||||
{
|
||||
// Set the options file path.
|
||||
DEA.PathOptionsFile = ofdOptions.FileName;
|
||||
|
||||
// Select the Log tab.
|
||||
if (tcMain.TabPages.Contains(tabLog)) { tcMain.SelectTab(tabLog); }
|
||||
|
||||
// Load the options.
|
||||
DEA.LoadOptionsFromFile();
|
||||
|
||||
// Print to screen
|
||||
Log.Information("Ready");
|
||||
}
|
||||
|
||||
// Dispose of the OpenFileDialog.
|
||||
ofdOptions.Dispose();
|
||||
|
||||
// Enable all buttons.
|
||||
EnableAllButtons();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Saves an options file.
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void SaveOptions_Click(object sender, EventArgs e)
|
||||
{
|
||||
// Disable all buttons.
|
||||
DisableAllButtons();
|
||||
|
||||
// Create and initialize a SaveFileDialog for the options file.
|
||||
SaveFileDialog sfdOptions = new SaveFileDialog
|
||||
{
|
||||
DefaultExt = "*.xml",
|
||||
Filter = "XML Files|*.xml",
|
||||
FileName = "DatEmAll-Options.xml",
|
||||
Title = "Please enter a path to the options file: ",
|
||||
InitialDirectory = Path.Combine(Application.StartupPath, "Options")
|
||||
};
|
||||
|
||||
// Determine if the user selected a file name from the SaveFileDialog.
|
||||
if (sfdOptions.ShowDialog() == DialogResult.OK && sfdOptions.FileName.Length > 0)
|
||||
{
|
||||
// Set the options file path.
|
||||
DEA.PathOptionsFile = sfdOptions.FileName;
|
||||
|
||||
// Select the Log tab.
|
||||
if (tcMain.TabPages.Contains(tabLog)) { tcMain.SelectTab(tabLog); }
|
||||
|
||||
// Save the options.
|
||||
DEA.SaveOptionsToFile();
|
||||
|
||||
// Print to screen
|
||||
Log.Information("Ready");
|
||||
}
|
||||
|
||||
// Dispose of the SaveFileDialog.
|
||||
sfdOptions.Dispose();
|
||||
|
||||
// Enable all buttons.
|
||||
EnableAllButtons();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Saves the log to a text file.
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void SaveLog_Click(object sender, EventArgs e)
|
||||
{
|
||||
// Disable all buttons.
|
||||
DisableAllButtons();
|
||||
|
||||
// Create and initialize a SaveFileDialog for the log file.
|
||||
SaveFileDialog sfdLog = new SaveFileDialog
|
||||
{
|
||||
DefaultExt = "*.txt",
|
||||
Filter = "TXT Files|*.txt",
|
||||
FileName = "DatEmAll-Log-" + DateTime.Now.ToString("yyyyMMdd_HHmmss") + ".txt",
|
||||
Title = "Please enter a path to the log file: ",
|
||||
InitialDirectory = Path.Combine(Application.StartupPath, "Logs")
|
||||
};
|
||||
|
||||
// Determine if the user selected a log filename.
|
||||
if (sfdLog.ShowDialog() == DialogResult.OK && sfdLog.FileName.Length > 0)
|
||||
{
|
||||
// Set the log file path.
|
||||
DEA.PathLogFile = sfdLog.FileName;
|
||||
|
||||
// Select the Log tab.
|
||||
if (tcMain.TabPages.Contains(tabLog)) { tcMain.SelectTab(tabLog); }
|
||||
|
||||
// Save the log.
|
||||
SaveLogToFile(DEA.PathLogFile);
|
||||
|
||||
// Print to screen
|
||||
Log.Information("Ready");
|
||||
}
|
||||
|
||||
// Dispose of the SaveFileDialog.
|
||||
sfdLog.Dispose();
|
||||
|
||||
// Enable all buttons.
|
||||
EnableAllButtons();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Toggles the visibility of the log.
|
||||
/// </summary>
|
||||
private void ViewLog_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (tsmiLog.Checked)
|
||||
{
|
||||
tsmiLog.Checked = false;
|
||||
tsmiLog.CheckState = CheckState.Unchecked;
|
||||
tcMain.TabPages.Remove(tabLog);
|
||||
}
|
||||
else
|
||||
{
|
||||
tsmiLog.Checked = true;
|
||||
tsmiLog.CheckState = CheckState.Checked;
|
||||
tcMain.TabPages.Add(tabLog);
|
||||
tcMain.SelectTab(tabLog);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Toggles the visibility of the options.
|
||||
/// </summary>
|
||||
private void ViewOptions_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (tsmiOptions.Checked)
|
||||
{
|
||||
tsmiOptions.Checked = false;
|
||||
tsmiOptions.CheckState = CheckState.Unchecked;
|
||||
tcMain.TabPages.Remove(tabOptions);
|
||||
}
|
||||
else
|
||||
{
|
||||
tsmiOptions.Checked = true;
|
||||
tsmiOptions.CheckState = CheckState.Checked;
|
||||
tcMain.TabPages.Add(tabOptions);
|
||||
tcMain.SelectTab(tabOptions);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Toggles the visibility of the help.
|
||||
/// </summary>
|
||||
private void ViewHelp_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (tsmiHelp.Checked)
|
||||
{
|
||||
tsmiHelp.Checked = false;
|
||||
tsmiHelp.CheckState = CheckState.Unchecked;
|
||||
tcMain.TabPages.Remove(tabHelp);
|
||||
}
|
||||
else
|
||||
{
|
||||
tsmiHelp.Checked = true;
|
||||
tsmiHelp.CheckState = CheckState.Checked;
|
||||
tcMain.TabPages.Add(tabHelp);
|
||||
tcMain.SelectTab(tabHelp);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Toggles the visibility of the license.
|
||||
/// </summary>
|
||||
private void ViewLicense_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (tsmiLicense.Checked)
|
||||
{
|
||||
tsmiLicense.Checked = false;
|
||||
tsmiLicense.CheckState = CheckState.Unchecked;
|
||||
tcMain.TabPages.Remove(tabLicense);
|
||||
}
|
||||
else
|
||||
{
|
||||
tsmiLicense.Checked = true;
|
||||
tsmiLicense.CheckState = CheckState.Checked;
|
||||
tcMain.TabPages.Add(tabLicense);
|
||||
tcMain.SelectTab(tabLicense);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Toggles the visibility of the registration.
|
||||
/// </summary>
|
||||
private void ViewRegistration_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (tsmiRegistration.Checked)
|
||||
{
|
||||
tsmiRegistration.Checked = false;
|
||||
tsmiRegistration.CheckState = CheckState.Unchecked;
|
||||
tcMain.TabPages.Remove(tabRegistration);
|
||||
}
|
||||
else
|
||||
{
|
||||
tsmiRegistration.Checked = true;
|
||||
tsmiRegistration.CheckState = CheckState.Checked;
|
||||
tcMain.TabPages.Add(tabRegistration);
|
||||
tcMain.SelectTab(tabRegistration);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Toggles the visibility of the Donations.
|
||||
/// </summary>
|
||||
private void ViewDonations_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (tsmiDonations.Checked)
|
||||
{
|
||||
tsmiDonations.Checked = false;
|
||||
tsmiDonations.CheckState = CheckState.Unchecked;
|
||||
tcMain.TabPages.Remove(tabDonations);
|
||||
}
|
||||
else
|
||||
{
|
||||
tsmiDonations.Checked = true;
|
||||
tsmiDonations.CheckState = CheckState.Checked;
|
||||
tcMain.TabPages.Add(tabDonations);
|
||||
tcMain.SelectTab(tabDonations);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Toggles the visibility of the toolbar.
|
||||
/// </summary>
|
||||
private void ViewToolbar_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (tsMain.Visible)
|
||||
{
|
||||
tsMain.Visible = false;
|
||||
tsmiToolbar.Checked = false;
|
||||
tsmiToolbar.CheckState = CheckState.Unchecked;
|
||||
}
|
||||
else
|
||||
{
|
||||
tsMain.Visible = true;
|
||||
tsmiToolbar.Checked = true;
|
||||
tsmiToolbar.CheckState = CheckState.Checked;
|
||||
}
|
||||
}
|
||||
|
||||
private delegate void EnableAllButtonsDelegate();
|
||||
|
||||
/// <summary>
|
||||
/// Enables all of the buttons.
|
||||
/// </summary>
|
||||
private void EnableAllButtons()
|
||||
{
|
||||
// Enable all Menu Item buttons.
|
||||
tsmiCommands.Enabled = true;
|
||||
tsmiBuildDat.Enabled = true;
|
||||
tsmiLoadOptions.Enabled = true;
|
||||
tsmiSaveOptions.Enabled = true;
|
||||
tsmiSaveLog.Enabled = true;
|
||||
tsmiExit.Enabled = true;
|
||||
|
||||
// Enable all Toolbar buttons.
|
||||
tsbBuildDat.Enabled = true;
|
||||
tsbLoadOptions.Enabled = true;
|
||||
tsbSaveOptions.Enabled = true;
|
||||
tsbSaveLog.Enabled = true;
|
||||
|
||||
// Enable all Options checkboxes and textboxes and comboboxes.
|
||||
chkIncludeCRC32Hash.Enabled = true;
|
||||
chkIncludeFileSize.Enabled = true;
|
||||
chkIncludeMD5Hash.Enabled = true;
|
||||
chkIncludeSHA1Hash.Enabled = true;
|
||||
chkIncludeFileSize.Enabled = true;
|
||||
chkAppendGameCountToFilename.Enabled = true;
|
||||
chkAppendGameCountToDescription.Enabled = true;
|
||||
chkAppendVersionToFilename.Enabled = true;
|
||||
chkAppendVersionToDescription.Enabled = true;
|
||||
chkIncludeROMDirRootFiles.Enabled = true;
|
||||
txtDatFilename.Enabled = true;
|
||||
cbXMLEncoding.Enabled = true;
|
||||
cbXMLDOCTYPE.Enabled = true;
|
||||
chkIncludeDefaultHeaderName.Enabled = true;
|
||||
chkIncludeDefaultHeaderDescription.Enabled = true;
|
||||
chkIncludeDefaultHeaderVersion.Enabled = true;
|
||||
chkIncludeDefaultHeaderDate.Enabled = true;
|
||||
chkIncludeDefaultHeaderAuthor.Enabled = true;
|
||||
chkIncludeDefaultHeaderEmail.Enabled = true;
|
||||
chkIncludeDefaultHeaderHomepage.Enabled = true;
|
||||
chkIncludeDefaultHeaderURL.Enabled = true;
|
||||
chkIncludeDefaultHeaderComment.Enabled = true;
|
||||
chkIncludeDefaultHeaderCategory.Enabled = true;
|
||||
chkIncludeDefaultHeaderCMPForceUnzip.Enabled = true;
|
||||
txtOverrideHeaderName.Enabled = true;
|
||||
txtOverrideHeaderDescription.Enabled = true;
|
||||
txtOverrideHeaderVersion.Enabled = true;
|
||||
txtOverrideHeaderDate.Enabled = true;
|
||||
txtOverrideHeaderAuthor.Enabled = true;
|
||||
txtOverrideHeaderEmail.Enabled = true;
|
||||
txtOverrideHeaderHomepage.Enabled = true;
|
||||
txtOverrideHeaderURL.Enabled = true;
|
||||
txtOverrideHeaderComment.Enabled = true;
|
||||
txtOverrideHeaderCategory.Enabled = true;
|
||||
txtDownloadEmAllUsername.Enabled = true;
|
||||
txtDownloadEmAllPassword.Enabled = true;
|
||||
txtPathDatsDir.Enabled = true;
|
||||
txtPathROMsDir.Enabled = true;
|
||||
chkCheckForLatestVersion.Enabled = true;
|
||||
chkCheckSSLCertificates.Enabled = true;
|
||||
chkSendErrorReports.Enabled = true;
|
||||
cbLanguageLocality.Enabled = true;
|
||||
cbLogLevel.Enabled = true;
|
||||
}
|
||||
|
||||
private delegate void DisableAllButtonsDelegate();
|
||||
|
||||
/// <summary>
|
||||
/// Disables all of the buttons.
|
||||
/// </summary>
|
||||
private void DisableAllButtons()
|
||||
{
|
||||
// Disable all Menu Item buttons.
|
||||
tsmiCommands.Enabled = false;
|
||||
tsmiBuildDat.Enabled = false;
|
||||
tsmiLoadOptions.Enabled = false;
|
||||
tsmiSaveOptions.Enabled = false;
|
||||
tsmiSaveLog.Enabled = false;
|
||||
tsmiExit.Enabled = false;
|
||||
|
||||
// Disable all Toolbar buttons.
|
||||
tsbBuildDat.Enabled = false;
|
||||
tsbLoadOptions.Enabled = false;
|
||||
tsbSaveOptions.Enabled = false;
|
||||
tsbSaveLog.Enabled = false;
|
||||
|
||||
// Disable all Options checkboxes and textboxes and comboboxes.
|
||||
chkIncludeCRC32Hash.Enabled = false;
|
||||
chkIncludeFileSize.Enabled = false;
|
||||
chkIncludeMD5Hash.Enabled = false;
|
||||
chkIncludeSHA1Hash.Enabled = false;
|
||||
chkIncludeFileSize.Enabled = false;
|
||||
chkAppendGameCountToFilename.Enabled = false;
|
||||
chkAppendGameCountToDescription.Enabled = false;
|
||||
chkAppendVersionToFilename.Enabled = false;
|
||||
chkAppendVersionToDescription.Enabled = false;
|
||||
chkIncludeROMDirRootFiles.Enabled = false;
|
||||
txtDatFilename.Enabled = false;
|
||||
cbXMLEncoding.Enabled = false;
|
||||
cbXMLDOCTYPE.Enabled = false;
|
||||
chkIncludeDefaultHeaderName.Enabled = false;
|
||||
chkIncludeDefaultHeaderDescription.Enabled = false;
|
||||
chkIncludeDefaultHeaderVersion.Enabled = false;
|
||||
chkIncludeDefaultHeaderDate.Enabled = false;
|
||||
chkIncludeDefaultHeaderAuthor.Enabled = false;
|
||||
chkIncludeDefaultHeaderEmail.Enabled = false;
|
||||
chkIncludeDefaultHeaderHomepage.Enabled = false;
|
||||
chkIncludeDefaultHeaderURL.Enabled = false;
|
||||
chkIncludeDefaultHeaderComment.Enabled = false;
|
||||
chkIncludeDefaultHeaderCategory.Enabled = false;
|
||||
chkIncludeDefaultHeaderCMPForceUnzip.Enabled = false;
|
||||
txtOverrideHeaderName.Enabled = false;
|
||||
txtOverrideHeaderDescription.Enabled = false;
|
||||
txtOverrideHeaderVersion.Enabled = false;
|
||||
txtOverrideHeaderDate.Enabled = false;
|
||||
txtOverrideHeaderAuthor.Enabled = false;
|
||||
txtOverrideHeaderEmail.Enabled = false;
|
||||
txtOverrideHeaderHomepage.Enabled = false;
|
||||
txtOverrideHeaderURL.Enabled = false;
|
||||
txtOverrideHeaderComment.Enabled = false;
|
||||
txtOverrideHeaderCategory.Enabled = false;
|
||||
txtDownloadEmAllUsername.Enabled = false;
|
||||
txtDownloadEmAllPassword.Enabled = false;
|
||||
txtPathDatsDir.Enabled = false;
|
||||
txtPathROMsDir.Enabled = false;
|
||||
chkCheckForLatestVersion.Enabled = false;
|
||||
chkCheckSSLCertificates.Enabled = false;
|
||||
chkSendErrorReports.Enabled = false;
|
||||
cbLanguageLocality.Enabled = false;
|
||||
cbLogLevel.Enabled = false;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Builders
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void BuildDat_DoWork(object sender, DoWorkEventArgs e)
|
||||
{
|
||||
// Run dat builder.
|
||||
DEA.BuildADat(sender, e);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void BuildDat_ProgressChanged(object sender, ProgressChangedEventArgs e)
|
||||
{
|
||||
// Display the changed progress status.
|
||||
// UpdateStatusBuildProgress(e.ProgressPercentage);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void BuildDat_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
|
||||
{
|
||||
if (e.Cancelled)
|
||||
{
|
||||
// Print to screen
|
||||
Log.Information("Dat builder canceled");
|
||||
}
|
||||
else if (e.Error != null)
|
||||
{
|
||||
// Print to screen
|
||||
Log.Error("Dat builder failed");
|
||||
Log.Error(e.Error.Message);
|
||||
}
|
||||
else
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
// Reset the progress status.
|
||||
// UpdateStatusBuildProgress(0);
|
||||
|
||||
// Disable the cancel button.
|
||||
tssbCancel.Enabled = false;
|
||||
|
||||
// Print to screen
|
||||
Log.Information("Ready");
|
||||
|
||||
// Update the status message label.
|
||||
UpdateStatusMessageLabel("Ready");
|
||||
|
||||
// Enable all buttons.
|
||||
Invoke(new EnableAllButtonsDelegate(EnableAllButtons));
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user