Add project files.

This commit is contained in:
2025-07-29 08:31:00 -06:00
commit 296738f5ed
58 changed files with 7095 additions and 0 deletions

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/>
</startup>
</configuration>

View File

@@ -0,0 +1,118 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{73055FFB-47A7-4332-BB2B-410AAE263774}</ProjectGuid>
<OutputType>WinExe</OutputType>
<RootNamespace>Files2Folders2Files_GUI</RootNamespace>
<AssemblyName>Files2Folders2Files-GUI</AssemblyName>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>true</Deterministic>
<IsWebBootstrapper>false</IsWebBootstrapper>
<TargetFrameworkProfile />
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<DocumentationFile>bin\Debug\Files2Folders2Files-GUI.xml</DocumentationFile>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>none</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup />
<ItemGroup>
<Reference Include="Serilog, Version=2.0.0.0, Culture=neutral, PublicKeyToken=24c2f752a8e58a10, processorArchitecture=MSIL">
<HintPath>..\packages\Serilog.2.12.0\lib\net47\Serilog.dll</HintPath>
</Reference>
<Reference Include="Serilog.Sinks.LogEmAll, Version=0.0.6.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Serilog.Sinks.LogEmAll.0.0.7\lib\net461\Serilog.Sinks.LogEmAll.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="FrmFiles2Folders2Files.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="FrmFiles2Folders2Files.Designer.cs">
<DependentUpon>FrmFiles2Folders2Files.cs</DependentUpon>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<EmbeddedResource Include="FrmFiles2Folders2Files.resx">
<DependentUpon>FrmFiles2Folders2Files.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
<DesignTime>True</DesignTime>
</Compile>
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include=".NETFramework,Version=v4.6.1">
<Visible>False</Visible>
<ProductName>Microsoft .NET Framework 4.6.1 %28x86 and x64%29</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>false</Install>
</BootstrapperPackage>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Files2Folders2Files\Files2Folders2Files.csproj">
<Project>{cbad4d51-b8d5-4f07-8c71-b152f284fdf2}</Project>
<Name>Files2Folders2Files</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Folder Include="Resources\Images\" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

@@ -0,0 +1,966 @@
namespace Files2Folders2Files_GUI
{
partial class FrmFiles2Folders2Files
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmFiles2Folders2Files));
this.msMain = new System.Windows.Forms.MenuStrip();
this.tsmiFiles2Folders2Files = new System.Windows.Forms.ToolStripMenuItem();
this.tsmiFiles2Folders = new System.Windows.Forms.ToolStripMenuItem();
this.tsmiFolders2Files = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
this.loadOptionsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.saveOptionsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator5 = new System.Windows.Forms.ToolStripSeparator();
this.saveLogToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator6 = new System.Windows.Forms.ToolStripSeparator();
this.tsmiExit = new System.Windows.Forms.ToolStripMenuItem();
this.tsmiView = new System.Windows.Forms.ToolStripMenuItem();
this.tsmiLog = new System.Windows.Forms.ToolStripMenuItem();
this.tsmiOptions = new System.Windows.Forms.ToolStripMenuItem();
this.tsmiHelp = new System.Windows.Forms.ToolStripMenuItem();
this.tsmiLicense = new System.Windows.Forms.ToolStripMenuItem();
this.tsmiDonations = new System.Windows.Forms.ToolStripMenuItem();
this.tsmiRegistration = new System.Windows.Forms.ToolStripMenuItem();
this.tsmiToolbar = new System.Windows.Forms.ToolStripMenuItem();
this.tsMain = new System.Windows.Forms.ToolStrip();
this.tsbFiles2Folders = new System.Windows.Forms.ToolStripButton();
this.tsbFolders2Files = new System.Windows.Forms.ToolStripButton();
this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
this.tsbLoadOptions = new System.Windows.Forms.ToolStripButton();
this.tsbSaveOptions = new System.Windows.Forms.ToolStripButton();
this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
this.tsbSaveLog = new System.Windows.Forms.ToolStripButton();
this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator();
this.tsbViewHelp = new System.Windows.Forms.ToolStripButton();
this.tsbViewLicense = new System.Windows.Forms.ToolStripButton();
this.tsbViewDonations = new System.Windows.Forms.ToolStripButton();
this.tsbViewRegistration = new System.Windows.Forms.ToolStripButton();
this.tsbViewToolbar = new System.Windows.Forms.ToolStripButton();
this.ssMain = new System.Windows.Forms.StatusStrip();
this.tsbCancel = new System.Windows.Forms.ToolStripDropDownButton();
this.tspbOverallProgress = new System.Windows.Forms.ToolStripProgressBar();
this.tsslStatus = new System.Windows.Forms.ToolStripStatusLabel();
this.tsslSnap = new System.Windows.Forms.ToolStripStatusLabel();
this.bgwFiles2Folders = new System.ComponentModel.BackgroundWorker();
this.bgwFolders2Files = new System.ComponentModel.BackgroundWorker();
this.tcMain = new System.Windows.Forms.TabControl();
this.tabLog = new System.Windows.Forms.TabPage();
this.rtblLog = new Serilog.Sinks.LogEmAll.RichTextBoxLog();
this.tabOptions = new System.Windows.Forms.TabPage();
this.gbOptionsInfo = new System.Windows.Forms.GroupBox();
this.lblOptionsInfo1 = new System.Windows.Forms.Label();
this.tlpOptions = new System.Windows.Forms.TableLayoutPanel();
this.gbOutputOptions = new System.Windows.Forms.GroupBox();
this.chkDeleteEmptyFolders = new System.Windows.Forms.CheckBox();
this.gbDirectoryPath = new System.Windows.Forms.GroupBox();
this.txtDirectoryPath = new System.Windows.Forms.TextBox();
this.tabHelp = new System.Windows.Forms.TabPage();
this.rtbHelp = new System.Windows.Forms.RichTextBox();
this.tabLicense = new System.Windows.Forms.TabPage();
this.rtbLicense = new System.Windows.Forms.RichTextBox();
this.tabDonations = new System.Windows.Forms.TabPage();
this.rtbDonations = new System.Windows.Forms.RichTextBox();
this.tabRegistration = new System.Windows.Forms.TabPage();
this.gbRegisterApp = new System.Windows.Forms.GroupBox();
this.bgwStartupTasks = new System.ComponentModel.BackgroundWorker();
this.txtRegisterAppUsername = new System.Windows.Forms.TextBox();
this.txtRegisterAppEmailAddress = new System.Windows.Forms.TextBox();
this.txtRegisterAppPassword = new System.Windows.Forms.TextBox();
this.btnRegisterApp = new System.Windows.Forms.Button();
this.lblRegisterAppUsername = new System.Windows.Forms.Label();
this.lblRegisterAppEmailAddress = new System.Windows.Forms.Label();
this.lblRegisterAppPassword = new System.Windows.Forms.Label();
this.lblRegistrationStatus = new System.Windows.Forms.Label();
this.lblRegistrationKey = new System.Windows.Forms.Label();
this.lblRegistrationStatusLabel = new System.Windows.Forms.Label();
this.lblRegistrationKeyLabel = new System.Windows.Forms.Label();
this.gbRegistration = new System.Windows.Forms.GroupBox();
this.tlpRegistration = new System.Windows.Forms.TableLayoutPanel();
this.msMain.SuspendLayout();
this.tsMain.SuspendLayout();
this.ssMain.SuspendLayout();
this.tcMain.SuspendLayout();
this.tabLog.SuspendLayout();
this.tabOptions.SuspendLayout();
this.gbOptionsInfo.SuspendLayout();
this.tlpOptions.SuspendLayout();
this.gbOutputOptions.SuspendLayout();
this.gbDirectoryPath.SuspendLayout();
this.tabHelp.SuspendLayout();
this.tabLicense.SuspendLayout();
this.tabDonations.SuspendLayout();
this.tabRegistration.SuspendLayout();
this.gbRegisterApp.SuspendLayout();
this.gbRegistration.SuspendLayout();
this.tlpRegistration.SuspendLayout();
this.SuspendLayout();
//
// msMain
//
this.msMain.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.tsmiFiles2Folders2Files,
this.tsmiView});
this.msMain.Location = new System.Drawing.Point(0, 0);
this.msMain.Name = "msMain";
this.msMain.Size = new System.Drawing.Size(784, 24);
this.msMain.TabIndex = 0;
this.msMain.Text = "msMain";
//
// tsmiFiles2Folders2Files
//
this.tsmiFiles2Folders2Files.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.tsmiFiles2Folders,
this.tsmiFolders2Files,
this.toolStripSeparator1,
this.loadOptionsToolStripMenuItem,
this.saveOptionsToolStripMenuItem,
this.toolStripSeparator5,
this.saveLogToolStripMenuItem,
this.toolStripSeparator6,
this.tsmiExit});
this.tsmiFiles2Folders2Files.Name = "tsmiFiles2Folders2Files";
this.tsmiFiles2Folders2Files.Size = new System.Drawing.Size(127, 20);
this.tsmiFiles2Folders2Files.Text = "Files 2 Folders 2 Files";
//
// tsmiFiles2Folders
//
this.tsmiFiles2Folders.Name = "tsmiFiles2Folders";
this.tsmiFiles2Folders.Size = new System.Drawing.Size(147, 22);
this.tsmiFiles2Folders.Text = "Files 2 Folders";
this.tsmiFiles2Folders.Click += new System.EventHandler(this.Files2Folders_Click);
//
// tsmiFolders2Files
//
this.tsmiFolders2Files.Name = "tsmiFolders2Files";
this.tsmiFolders2Files.Size = new System.Drawing.Size(147, 22);
this.tsmiFolders2Files.Text = "Folders 2 Files";
this.tsmiFolders2Files.Click += new System.EventHandler(this.Folders2Files_Click);
//
// toolStripSeparator1
//
this.toolStripSeparator1.Name = "toolStripSeparator1";
this.toolStripSeparator1.Size = new System.Drawing.Size(144, 6);
//
// loadOptionsToolStripMenuItem
//
this.loadOptionsToolStripMenuItem.Name = "loadOptionsToolStripMenuItem";
this.loadOptionsToolStripMenuItem.Size = new System.Drawing.Size(147, 22);
this.loadOptionsToolStripMenuItem.Text = "Load Options";
this.loadOptionsToolStripMenuItem.Click += new System.EventHandler(this.LoadOptions_Click);
//
// saveOptionsToolStripMenuItem
//
this.saveOptionsToolStripMenuItem.Name = "saveOptionsToolStripMenuItem";
this.saveOptionsToolStripMenuItem.Size = new System.Drawing.Size(147, 22);
this.saveOptionsToolStripMenuItem.Text = "Save Options";
this.saveOptionsToolStripMenuItem.Click += new System.EventHandler(this.SaveOptions_Click);
//
// toolStripSeparator5
//
this.toolStripSeparator5.Name = "toolStripSeparator5";
this.toolStripSeparator5.Size = new System.Drawing.Size(144, 6);
//
// saveLogToolStripMenuItem
//
this.saveLogToolStripMenuItem.Name = "saveLogToolStripMenuItem";
this.saveLogToolStripMenuItem.Size = new System.Drawing.Size(147, 22);
this.saveLogToolStripMenuItem.Text = "Save Log";
this.saveLogToolStripMenuItem.Click += new System.EventHandler(this.SaveLog_Click);
//
// toolStripSeparator6
//
this.toolStripSeparator6.Name = "toolStripSeparator6";
this.toolStripSeparator6.Size = new System.Drawing.Size(144, 6);
//
// tsmiExit
//
this.tsmiExit.Name = "tsmiExit";
this.tsmiExit.Size = new System.Drawing.Size(147, 22);
this.tsmiExit.Text = "Exit";
this.tsmiExit.Click += new System.EventHandler(this.Exit_Click);
//
// tsmiView
//
this.tsmiView.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.tsmiLog,
this.tsmiOptions,
this.tsmiHelp,
this.tsmiLicense,
this.tsmiDonations,
this.tsmiRegistration,
this.tsmiToolbar});
this.tsmiView.Name = "tsmiView";
this.tsmiView.Size = new System.Drawing.Size(44, 20);
this.tsmiView.Text = "View";
//
// tsmiLog
//
this.tsmiLog.Checked = true;
this.tsmiLog.CheckState = System.Windows.Forms.CheckState.Checked;
this.tsmiLog.Name = "tsmiLog";
this.tsmiLog.Size = new System.Drawing.Size(137, 22);
this.tsmiLog.Text = "Log";
this.tsmiLog.Click += new System.EventHandler(this.ViewLog_Click);
//
// tsmiOptions
//
this.tsmiOptions.Checked = true;
this.tsmiOptions.CheckState = System.Windows.Forms.CheckState.Checked;
this.tsmiOptions.Name = "tsmiOptions";
this.tsmiOptions.Size = new System.Drawing.Size(137, 22);
this.tsmiOptions.Text = "Options";
this.tsmiOptions.Click += new System.EventHandler(this.ViewOptions_Click);
//
// tsmiHelp
//
this.tsmiHelp.Name = "tsmiHelp";
this.tsmiHelp.Size = new System.Drawing.Size(137, 22);
this.tsmiHelp.Text = "Help";
this.tsmiHelp.Click += new System.EventHandler(this.ViewHelp_Click);
//
// tsmiLicense
//
this.tsmiLicense.Name = "tsmiLicense";
this.tsmiLicense.Size = new System.Drawing.Size(137, 22);
this.tsmiLicense.Text = "License";
this.tsmiLicense.Click += new System.EventHandler(this.ViewLicense_Click);
//
// tsmiDonations
//
this.tsmiDonations.Name = "tsmiDonations";
this.tsmiDonations.Size = new System.Drawing.Size(137, 22);
this.tsmiDonations.Text = "Donations";
this.tsmiDonations.Click += new System.EventHandler(this.ViewDonations_Click);
//
// tsmiRegistration
//
this.tsmiRegistration.Name = "tsmiRegistration";
this.tsmiRegistration.Size = new System.Drawing.Size(137, 22);
this.tsmiRegistration.Text = "Registration";
this.tsmiRegistration.Click += new System.EventHandler(this.ViewRegistration_Click);
//
// tsmiToolbar
//
this.tsmiToolbar.Name = "tsmiToolbar";
this.tsmiToolbar.Size = new System.Drawing.Size(137, 22);
this.tsmiToolbar.Text = "Toolbar";
this.tsmiToolbar.Click += new System.EventHandler(this.ViewToolbar_Click);
//
// tsMain
//
this.tsMain.ImageScalingSize = new System.Drawing.Size(32, 32);
this.tsMain.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.tsbFiles2Folders,
this.tsbFolders2Files,
this.toolStripSeparator2,
this.tsbLoadOptions,
this.tsbSaveOptions,
this.toolStripSeparator3,
this.tsbSaveLog,
this.toolStripSeparator4,
this.tsbViewHelp,
this.tsbViewLicense,
this.tsbViewDonations,
this.tsbViewRegistration,
this.tsbViewToolbar});
this.tsMain.Location = new System.Drawing.Point(0, 24);
this.tsMain.Name = "tsMain";
this.tsMain.Size = new System.Drawing.Size(784, 39);
this.tsMain.TabIndex = 1;
this.tsMain.Text = "tsMain";
//
// tsbFiles2Folders
//
this.tsbFiles2Folders.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.tsbFiles2Folders.Image = ((System.Drawing.Image)(resources.GetObject("tsbFiles2Folders.Image")));
this.tsbFiles2Folders.ImageTransparentColor = System.Drawing.Color.Magenta;
this.tsbFiles2Folders.Name = "tsbFiles2Folders";
this.tsbFiles2Folders.Size = new System.Drawing.Size(36, 36);
this.tsbFiles2Folders.Text = "Files 2 Folders";
this.tsbFiles2Folders.Click += new System.EventHandler(this.Files2Folders_Click);
//
// tsbFolders2Files
//
this.tsbFolders2Files.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.tsbFolders2Files.Image = ((System.Drawing.Image)(resources.GetObject("tsbFolders2Files.Image")));
this.tsbFolders2Files.ImageTransparentColor = System.Drawing.Color.Magenta;
this.tsbFolders2Files.Name = "tsbFolders2Files";
this.tsbFolders2Files.Size = new System.Drawing.Size(36, 36);
this.tsbFolders2Files.Text = "Folders 2 Files";
this.tsbFolders2Files.Click += new System.EventHandler(this.Folders2Files_Click);
//
// toolStripSeparator2
//
this.toolStripSeparator2.Name = "toolStripSeparator2";
this.toolStripSeparator2.Size = new System.Drawing.Size(6, 39);
//
// tsbLoadOptions
//
this.tsbLoadOptions.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.tsbLoadOptions.Image = ((System.Drawing.Image)(resources.GetObject("tsbLoadOptions.Image")));
this.tsbLoadOptions.ImageTransparentColor = System.Drawing.Color.Magenta;
this.tsbLoadOptions.Name = "tsbLoadOptions";
this.tsbLoadOptions.Size = new System.Drawing.Size(36, 36);
this.tsbLoadOptions.Text = "Load Options";
this.tsbLoadOptions.Click += new System.EventHandler(this.LoadOptions_Click);
//
// tsbSaveOptions
//
this.tsbSaveOptions.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.tsbSaveOptions.Image = ((System.Drawing.Image)(resources.GetObject("tsbSaveOptions.Image")));
this.tsbSaveOptions.ImageTransparentColor = System.Drawing.Color.Magenta;
this.tsbSaveOptions.Name = "tsbSaveOptions";
this.tsbSaveOptions.Size = new System.Drawing.Size(36, 36);
this.tsbSaveOptions.Text = "Save Options";
this.tsbSaveOptions.Click += new System.EventHandler(this.SaveOptions_Click);
//
// toolStripSeparator3
//
this.toolStripSeparator3.Name = "toolStripSeparator3";
this.toolStripSeparator3.Size = new System.Drawing.Size(6, 39);
//
// tsbSaveLog
//
this.tsbSaveLog.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.tsbSaveLog.Image = ((System.Drawing.Image)(resources.GetObject("tsbSaveLog.Image")));
this.tsbSaveLog.ImageTransparentColor = System.Drawing.Color.Magenta;
this.tsbSaveLog.Name = "tsbSaveLog";
this.tsbSaveLog.Size = new System.Drawing.Size(36, 36);
this.tsbSaveLog.Text = "Save Log";
this.tsbSaveLog.Click += new System.EventHandler(this.SaveLog_Click);
//
// toolStripSeparator4
//
this.toolStripSeparator4.Name = "toolStripSeparator4";
this.toolStripSeparator4.Size = new System.Drawing.Size(6, 39);
//
// tsbViewHelp
//
this.tsbViewHelp.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.tsbViewHelp.Image = ((System.Drawing.Image)(resources.GetObject("tsbViewHelp.Image")));
this.tsbViewHelp.ImageTransparentColor = System.Drawing.Color.Magenta;
this.tsbViewHelp.Name = "tsbViewHelp";
this.tsbViewHelp.Size = new System.Drawing.Size(36, 36);
this.tsbViewHelp.Text = "View Help";
this.tsbViewHelp.Click += new System.EventHandler(this.ViewHelp_Click);
//
// tsbViewLicense
//
this.tsbViewLicense.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.tsbViewLicense.Image = ((System.Drawing.Image)(resources.GetObject("tsbViewLicense.Image")));
this.tsbViewLicense.ImageTransparentColor = System.Drawing.Color.Magenta;
this.tsbViewLicense.Name = "tsbViewLicense";
this.tsbViewLicense.Size = new System.Drawing.Size(36, 36);
this.tsbViewLicense.Text = "View License";
this.tsbViewLicense.Click += new System.EventHandler(this.ViewLicense_Click);
//
// tsbViewDonations
//
this.tsbViewDonations.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.tsbViewDonations.Image = ((System.Drawing.Image)(resources.GetObject("tsbViewDonations.Image")));
this.tsbViewDonations.ImageTransparentColor = System.Drawing.Color.Magenta;
this.tsbViewDonations.Name = "tsbViewDonations";
this.tsbViewDonations.Size = new System.Drawing.Size(36, 36);
this.tsbViewDonations.Text = "View Donations";
this.tsbViewDonations.Click += new System.EventHandler(this.ViewDonations_Click);
//
// tsbViewRegistration
//
this.tsbViewRegistration.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.tsbViewRegistration.Image = ((System.Drawing.Image)(resources.GetObject("tsbViewRegistration.Image")));
this.tsbViewRegistration.ImageTransparentColor = System.Drawing.Color.Magenta;
this.tsbViewRegistration.Name = "tsbViewRegistration";
this.tsbViewRegistration.Size = new System.Drawing.Size(36, 36);
this.tsbViewRegistration.Text = "View Registration";
this.tsbViewRegistration.Click += new System.EventHandler(this.ViewRegistration_Click);
//
// tsbViewToolbar
//
this.tsbViewToolbar.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.tsbViewToolbar.Image = ((System.Drawing.Image)(resources.GetObject("tsbViewToolbar.Image")));
this.tsbViewToolbar.ImageTransparentColor = System.Drawing.Color.Magenta;
this.tsbViewToolbar.Name = "tsbViewToolbar";
this.tsbViewToolbar.Size = new System.Drawing.Size(36, 36);
this.tsbViewToolbar.Text = "View Toolbar";
this.tsbViewToolbar.Click += new System.EventHandler(this.ViewToolbar_Click);
//
// ssMain
//
this.ssMain.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.tsbCancel,
this.tspbOverallProgress,
this.tsslStatus,
this.tsslSnap});
this.ssMain.Location = new System.Drawing.Point(0, 359);
this.ssMain.Name = "ssMain";
this.ssMain.Size = new System.Drawing.Size(784, 22);
this.ssMain.TabIndex = 2;
this.ssMain.Text = "ssMain";
//
// tsbCancel
//
this.tsbCancel.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.tsbCancel.Enabled = false;
this.tsbCancel.Image = ((System.Drawing.Image)(resources.GetObject("tsbCancel.Image")));
this.tsbCancel.ImageTransparentColor = System.Drawing.Color.Magenta;
this.tsbCancel.Name = "tsbCancel";
this.tsbCancel.ShowDropDownArrow = false;
this.tsbCancel.Size = new System.Drawing.Size(20, 20);
this.tsbCancel.Text = "Cancel";
this.tsbCancel.Click += new System.EventHandler(this.Cancel_Click);
//
// tspbOverallProgress
//
this.tspbOverallProgress.MarqueeAnimationSpeed = 10;
this.tspbOverallProgress.Name = "tspbOverallProgress";
this.tspbOverallProgress.Size = new System.Drawing.Size(200, 16);
this.tspbOverallProgress.Step = 1;
//
// tsslStatus
//
this.tsslStatus.Name = "tsslStatus";
this.tsslStatus.Size = new System.Drawing.Size(39, 17);
this.tsslStatus.Text = "Ready";
//
// tsslSnap
//
this.tsslSnap.Name = "tsslSnap";
this.tsslSnap.Size = new System.Drawing.Size(508, 17);
this.tsslSnap.Spring = true;
//
// bgwFiles2Folders
//
this.bgwFiles2Folders.WorkerReportsProgress = true;
this.bgwFiles2Folders.WorkerSupportsCancellation = true;
this.bgwFiles2Folders.DoWork += new System.ComponentModel.DoWorkEventHandler(this.Files2Folders_DoWork);
this.bgwFiles2Folders.ProgressChanged += new System.ComponentModel.ProgressChangedEventHandler(this.Files2Folders_ProgressChanged);
this.bgwFiles2Folders.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(this.Files2Folders_RunWorkerCompleted);
//
// bgwFolders2Files
//
this.bgwFolders2Files.WorkerReportsProgress = true;
this.bgwFolders2Files.WorkerSupportsCancellation = true;
this.bgwFolders2Files.DoWork += new System.ComponentModel.DoWorkEventHandler(this.Folders2Files_DoWork);
this.bgwFolders2Files.ProgressChanged += new System.ComponentModel.ProgressChangedEventHandler(this.Folders2Files_ProgressChanged);
this.bgwFolders2Files.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(this.Folders2Files_RunWorkerCompleted);
//
// tcMain
//
this.tcMain.Controls.Add(this.tabLog);
this.tcMain.Controls.Add(this.tabOptions);
this.tcMain.Controls.Add(this.tabHelp);
this.tcMain.Controls.Add(this.tabLicense);
this.tcMain.Controls.Add(this.tabDonations);
this.tcMain.Controls.Add(this.tabRegistration);
this.tcMain.Dock = System.Windows.Forms.DockStyle.Fill;
this.tcMain.Location = new System.Drawing.Point(0, 63);
this.tcMain.Name = "tcMain";
this.tcMain.SelectedIndex = 0;
this.tcMain.Size = new System.Drawing.Size(784, 296);
this.tcMain.TabIndex = 3;
//
// tabLog
//
this.tabLog.Controls.Add(this.rtblLog);
this.tabLog.Location = new System.Drawing.Point(4, 22);
this.tabLog.Name = "tabLog";
this.tabLog.Padding = new System.Windows.Forms.Padding(3);
this.tabLog.Size = new System.Drawing.Size(776, 270);
this.tabLog.TabIndex = 0;
this.tabLog.Text = " Log ";
this.tabLog.UseVisualStyleBackColor = true;
//
// rtblLog
//
this.rtblLog.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.rtblLog.Location = new System.Drawing.Point(6, 6);
this.rtblLog.Name = "rtblLog";
this.rtblLog.ReadOnly = true;
this.rtblLog.Size = new System.Drawing.Size(764, 258);
this.rtblLog.TabIndex = 1;
this.rtblLog.Text = "";
//
// tabOptions
//
this.tabOptions.Controls.Add(this.gbOptionsInfo);
this.tabOptions.Controls.Add(this.tlpOptions);
this.tabOptions.Location = new System.Drawing.Point(4, 22);
this.tabOptions.Name = "tabOptions";
this.tabOptions.Padding = new System.Windows.Forms.Padding(3);
this.tabOptions.Size = new System.Drawing.Size(776, 270);
this.tabOptions.TabIndex = 1;
this.tabOptions.Text = " Options ";
this.tabOptions.UseVisualStyleBackColor = true;
//
// gbOptionsInfo
//
this.gbOptionsInfo.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.gbOptionsInfo.Controls.Add(this.lblOptionsInfo1);
this.gbOptionsInfo.Location = new System.Drawing.Point(6, 111);
this.gbOptionsInfo.Name = "gbOptionsInfo";
this.gbOptionsInfo.Size = new System.Drawing.Size(764, 35);
this.gbOptionsInfo.TabIndex = 2;
this.gbOptionsInfo.TabStop = false;
this.gbOptionsInfo.Text = "Options Info";
//
// lblOptionsInfo1
//
this.lblOptionsInfo1.AutoSize = true;
this.lblOptionsInfo1.Location = new System.Drawing.Point(9, 16);
this.lblOptionsInfo1.Name = "lblOptionsInfo1";
this.lblOptionsInfo1.Size = new System.Drawing.Size(148, 13);
this.lblOptionsInfo1.TabIndex = 0;
this.lblOptionsInfo1.Text = "Use these options as needed.";
//
// tlpOptions
//
this.tlpOptions.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.tlpOptions.ColumnCount = 1;
this.tlpOptions.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tlpOptions.Controls.Add(this.gbOutputOptions, 0, 1);
this.tlpOptions.Controls.Add(this.gbDirectoryPath, 0, 0);
this.tlpOptions.Location = new System.Drawing.Point(6, 6);
this.tlpOptions.Name = "tlpOptions";
this.tlpOptions.RowCount = 2;
this.tlpOptions.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 51F));
this.tlpOptions.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 48F));
this.tlpOptions.Size = new System.Drawing.Size(764, 99);
this.tlpOptions.TabIndex = 0;
//
// gbOutputOptions
//
this.gbOutputOptions.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.gbOutputOptions.Controls.Add(this.chkDeleteEmptyFolders);
this.gbOutputOptions.Location = new System.Drawing.Point(3, 54);
this.gbOutputOptions.Name = "gbOutputOptions";
this.gbOutputOptions.Size = new System.Drawing.Size(758, 42);
this.gbOutputOptions.TabIndex = 1;
this.gbOutputOptions.TabStop = false;
this.gbOutputOptions.Text = "Output Options";
//
// chkDeleteEmptyFolders
//
this.chkDeleteEmptyFolders.AutoSize = true;
this.chkDeleteEmptyFolders.Location = new System.Drawing.Point(6, 19);
this.chkDeleteEmptyFolders.Name = "chkDeleteEmptyFolders";
this.chkDeleteEmptyFolders.Size = new System.Drawing.Size(126, 17);
this.chkDeleteEmptyFolders.TabIndex = 0;
this.chkDeleteEmptyFolders.Text = "Delete Empty Folders";
this.chkDeleteEmptyFolders.UseVisualStyleBackColor = true;
//
// gbDirectoryPath
//
this.gbDirectoryPath.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.gbDirectoryPath.Controls.Add(this.txtDirectoryPath);
this.gbDirectoryPath.Location = new System.Drawing.Point(3, 3);
this.gbDirectoryPath.Name = "gbDirectoryPath";
this.gbDirectoryPath.Size = new System.Drawing.Size(758, 45);
this.gbDirectoryPath.TabIndex = 0;
this.gbDirectoryPath.TabStop = false;
this.gbDirectoryPath.Text = "Directory Path";
//
// txtDirectoryPath
//
this.txtDirectoryPath.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.txtDirectoryPath.Location = new System.Drawing.Point(6, 19);
this.txtDirectoryPath.Name = "txtDirectoryPath";
this.txtDirectoryPath.ReadOnly = true;
this.txtDirectoryPath.Size = new System.Drawing.Size(746, 20);
this.txtDirectoryPath.TabIndex = 0;
this.txtDirectoryPath.Click += new System.EventHandler(this.DirectoryPath_Click);
//
// tabHelp
//
this.tabHelp.Controls.Add(this.rtbHelp);
this.tabHelp.Location = new System.Drawing.Point(4, 22);
this.tabHelp.Name = "tabHelp";
this.tabHelp.Padding = new System.Windows.Forms.Padding(3);
this.tabHelp.Size = new System.Drawing.Size(776, 270);
this.tabHelp.TabIndex = 2;
this.tabHelp.Text = " Help ";
this.tabHelp.UseVisualStyleBackColor = true;
//
// rtbHelp
//
this.rtbHelp.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.rtbHelp.Location = new System.Drawing.Point(6, 6);
this.rtbHelp.Name = "rtbHelp";
this.rtbHelp.ReadOnly = true;
this.rtbHelp.Size = new System.Drawing.Size(764, 258);
this.rtbHelp.TabIndex = 0;
this.rtbHelp.Text = "";
//
// tabLicense
//
this.tabLicense.Controls.Add(this.rtbLicense);
this.tabLicense.Location = new System.Drawing.Point(4, 22);
this.tabLicense.Name = "tabLicense";
this.tabLicense.Padding = new System.Windows.Forms.Padding(3);
this.tabLicense.Size = new System.Drawing.Size(776, 270);
this.tabLicense.TabIndex = 3;
this.tabLicense.Text = " License ";
this.tabLicense.UseVisualStyleBackColor = true;
//
// rtbLicense
//
this.rtbLicense.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.rtbLicense.Location = new System.Drawing.Point(6, 6);
this.rtbLicense.Name = "rtbLicense";
this.rtbLicense.ReadOnly = true;
this.rtbLicense.Size = new System.Drawing.Size(764, 258);
this.rtbLicense.TabIndex = 0;
this.rtbLicense.Text = "";
//
// tabDonations
//
this.tabDonations.Controls.Add(this.rtbDonations);
this.tabDonations.Location = new System.Drawing.Point(4, 22);
this.tabDonations.Name = "tabDonations";
this.tabDonations.Padding = new System.Windows.Forms.Padding(3);
this.tabDonations.Size = new System.Drawing.Size(776, 270);
this.tabDonations.TabIndex = 4;
this.tabDonations.Text = " Donations ";
this.tabDonations.UseVisualStyleBackColor = true;
//
// rtbDonations
//
this.rtbDonations.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.rtbDonations.Location = new System.Drawing.Point(6, 6);
this.rtbDonations.Name = "rtbDonations";
this.rtbDonations.ReadOnly = true;
this.rtbDonations.Size = new System.Drawing.Size(764, 258);
this.rtbDonations.TabIndex = 0;
this.rtbDonations.Text = "";
//
// tabRegistration
//
this.tabRegistration.Controls.Add(this.tlpRegistration);
this.tabRegistration.Location = new System.Drawing.Point(4, 22);
this.tabRegistration.Name = "tabRegistration";
this.tabRegistration.Padding = new System.Windows.Forms.Padding(3);
this.tabRegistration.Size = new System.Drawing.Size(776, 270);
this.tabRegistration.TabIndex = 5;
this.tabRegistration.Text = " Registration ";
this.tabRegistration.UseVisualStyleBackColor = true;
//
// gbRegisterApp
//
this.gbRegisterApp.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.gbRegisterApp.Controls.Add(this.lblRegisterAppPassword);
this.gbRegisterApp.Controls.Add(this.lblRegisterAppEmailAddress);
this.gbRegisterApp.Controls.Add(this.lblRegisterAppUsername);
this.gbRegisterApp.Controls.Add(this.btnRegisterApp);
this.gbRegisterApp.Controls.Add(this.txtRegisterAppPassword);
this.gbRegisterApp.Controls.Add(this.txtRegisterAppEmailAddress);
this.gbRegisterApp.Controls.Add(this.txtRegisterAppUsername);
this.gbRegisterApp.Location = new System.Drawing.Point(3, 3);
this.gbRegisterApp.Name = "gbRegisterApp";
this.gbRegisterApp.Size = new System.Drawing.Size(376, 126);
this.gbRegisterApp.TabIndex = 0;
this.gbRegisterApp.TabStop = false;
this.gbRegisterApp.Text = "Register App";
//
// bgwStartupTasks
//
this.bgwStartupTasks.WorkerReportsProgress = true;
this.bgwStartupTasks.DoWork += new System.ComponentModel.DoWorkEventHandler(this.StartupTasks_DoWork);
this.bgwStartupTasks.ProgressChanged += new System.ComponentModel.ProgressChangedEventHandler(this.StartupTasks_ProgressChanged);
this.bgwStartupTasks.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(this.StartupTasks_RunWorkerCompleted);
//
// txtRegisterAppUsername
//
this.txtRegisterAppUsername.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.txtRegisterAppUsername.Enabled = false;
this.txtRegisterAppUsername.Location = new System.Drawing.Point(92, 19);
this.txtRegisterAppUsername.Name = "txtRegisterAppUsername";
this.txtRegisterAppUsername.Size = new System.Drawing.Size(278, 20);
this.txtRegisterAppUsername.TabIndex = 0;
//
// txtRegisterAppEmailAddress
//
this.txtRegisterAppEmailAddress.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.txtRegisterAppEmailAddress.Enabled = false;
this.txtRegisterAppEmailAddress.Location = new System.Drawing.Point(92, 45);
this.txtRegisterAppEmailAddress.Name = "txtRegisterAppEmailAddress";
this.txtRegisterAppEmailAddress.Size = new System.Drawing.Size(278, 20);
this.txtRegisterAppEmailAddress.TabIndex = 1;
//
// txtRegisterAppPassword
//
this.txtRegisterAppPassword.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.txtRegisterAppPassword.Enabled = false;
this.txtRegisterAppPassword.Location = new System.Drawing.Point(92, 71);
this.txtRegisterAppPassword.Name = "txtRegisterAppPassword";
this.txtRegisterAppPassword.Size = new System.Drawing.Size(278, 20);
this.txtRegisterAppPassword.TabIndex = 2;
//
// btnRegisterApp
//
this.btnRegisterApp.Enabled = false;
this.btnRegisterApp.Location = new System.Drawing.Point(92, 97);
this.btnRegisterApp.Name = "btnRegisterApp";
this.btnRegisterApp.Size = new System.Drawing.Size(80, 23);
this.btnRegisterApp.TabIndex = 3;
this.btnRegisterApp.Text = "Register App";
this.btnRegisterApp.UseVisualStyleBackColor = true;
//
// lblRegisterAppUsername
//
this.lblRegisterAppUsername.AutoSize = true;
this.lblRegisterAppUsername.Location = new System.Drawing.Point(6, 22);
this.lblRegisterAppUsername.Name = "lblRegisterAppUsername";
this.lblRegisterAppUsername.Size = new System.Drawing.Size(61, 13);
this.lblRegisterAppUsername.TabIndex = 4;
this.lblRegisterAppUsername.Text = "Username: ";
//
// lblRegisterAppEmailAddress
//
this.lblRegisterAppEmailAddress.AutoSize = true;
this.lblRegisterAppEmailAddress.Location = new System.Drawing.Point(6, 48);
this.lblRegisterAppEmailAddress.Name = "lblRegisterAppEmailAddress";
this.lblRegisterAppEmailAddress.Size = new System.Drawing.Size(79, 13);
this.lblRegisterAppEmailAddress.TabIndex = 5;
this.lblRegisterAppEmailAddress.Text = "Email Address: ";
//
// lblRegisterAppPassword
//
this.lblRegisterAppPassword.AutoSize = true;
this.lblRegisterAppPassword.Location = new System.Drawing.Point(6, 74);
this.lblRegisterAppPassword.Name = "lblRegisterAppPassword";
this.lblRegisterAppPassword.Size = new System.Drawing.Size(59, 13);
this.lblRegisterAppPassword.TabIndex = 6;
this.lblRegisterAppPassword.Text = "Password: ";
//
// lblRegistrationStatus
//
this.lblRegistrationStatus.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.lblRegistrationStatus.Location = new System.Drawing.Point(55, 22);
this.lblRegistrationStatus.Name = "lblRegistrationStatus";
this.lblRegistrationStatus.Size = new System.Drawing.Size(315, 13);
this.lblRegistrationStatus.TabIndex = 0;
this.lblRegistrationStatus.Text = "unregistered";
//
// lblRegistrationKey
//
this.lblRegistrationKey.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.lblRegistrationKey.Location = new System.Drawing.Point(55, 48);
this.lblRegistrationKey.Name = "lblRegistrationKey";
this.lblRegistrationKey.Size = new System.Drawing.Size(315, 13);
this.lblRegistrationKey.TabIndex = 1;
//
// lblRegistrationStatusLabel
//
this.lblRegistrationStatusLabel.AutoSize = true;
this.lblRegistrationStatusLabel.Location = new System.Drawing.Point(6, 22);
this.lblRegistrationStatusLabel.Name = "lblRegistrationStatusLabel";
this.lblRegistrationStatusLabel.Size = new System.Drawing.Size(43, 13);
this.lblRegistrationStatusLabel.TabIndex = 2;
this.lblRegistrationStatusLabel.Text = "Status: ";
//
// lblRegistrationKeyLabel
//
this.lblRegistrationKeyLabel.AutoSize = true;
this.lblRegistrationKeyLabel.Location = new System.Drawing.Point(6, 48);
this.lblRegistrationKeyLabel.Name = "lblRegistrationKeyLabel";
this.lblRegistrationKeyLabel.Size = new System.Drawing.Size(31, 13);
this.lblRegistrationKeyLabel.TabIndex = 3;
this.lblRegistrationKeyLabel.Text = "Key: ";
//
// gbRegistration
//
this.gbRegistration.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.gbRegistration.Controls.Add(this.lblRegistrationKey);
this.gbRegistration.Controls.Add(this.lblRegistrationKeyLabel);
this.gbRegistration.Controls.Add(this.lblRegistrationStatus);
this.gbRegistration.Controls.Add(this.lblRegistrationStatusLabel);
this.gbRegistration.Location = new System.Drawing.Point(385, 3);
this.gbRegistration.Name = "gbRegistration";
this.gbRegistration.Size = new System.Drawing.Size(376, 126);
this.gbRegistration.TabIndex = 1;
this.gbRegistration.TabStop = false;
this.gbRegistration.Text = "Registration";
//
// tlpRegistration
//
this.tlpRegistration.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.tlpRegistration.ColumnCount = 2;
this.tlpRegistration.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tlpRegistration.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tlpRegistration.Controls.Add(this.gbRegistration, 1, 0);
this.tlpRegistration.Controls.Add(this.gbRegisterApp, 0, 0);
this.tlpRegistration.Location = new System.Drawing.Point(6, 6);
this.tlpRegistration.Name = "tlpRegistration";
this.tlpRegistration.RowCount = 1;
this.tlpRegistration.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tlpRegistration.Size = new System.Drawing.Size(764, 132);
this.tlpRegistration.TabIndex = 2;
//
// FrmFiles2Folders2Files
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(784, 381);
this.Controls.Add(this.tcMain);
this.Controls.Add(this.ssMain);
this.Controls.Add(this.tsMain);
this.Controls.Add(this.msMain);
this.MainMenuStrip = this.msMain;
this.Name = "FrmFiles2Folders2Files";
this.Text = "Files 2 Folders 2 Files";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Files2Folders2Files_FormClosing);
this.Shown += new System.EventHandler(this.Form_Shown);
this.msMain.ResumeLayout(false);
this.msMain.PerformLayout();
this.tsMain.ResumeLayout(false);
this.tsMain.PerformLayout();
this.ssMain.ResumeLayout(false);
this.ssMain.PerformLayout();
this.tcMain.ResumeLayout(false);
this.tabLog.ResumeLayout(false);
this.tabOptions.ResumeLayout(false);
this.gbOptionsInfo.ResumeLayout(false);
this.gbOptionsInfo.PerformLayout();
this.tlpOptions.ResumeLayout(false);
this.gbOutputOptions.ResumeLayout(false);
this.gbOutputOptions.PerformLayout();
this.gbDirectoryPath.ResumeLayout(false);
this.gbDirectoryPath.PerformLayout();
this.tabHelp.ResumeLayout(false);
this.tabLicense.ResumeLayout(false);
this.tabDonations.ResumeLayout(false);
this.tabRegistration.ResumeLayout(false);
this.gbRegisterApp.ResumeLayout(false);
this.gbRegisterApp.PerformLayout();
this.gbRegistration.ResumeLayout(false);
this.gbRegistration.PerformLayout();
this.tlpRegistration.ResumeLayout(false);
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.MenuStrip msMain;
private System.Windows.Forms.ToolStripMenuItem tsmiFiles2Folders2Files;
private System.Windows.Forms.ToolStripMenuItem tsmiFiles2Folders;
private System.Windows.Forms.ToolStripMenuItem tsmiFolders2Files;
private System.Windows.Forms.ToolStripMenuItem tsmiExit;
private System.Windows.Forms.ToolStrip tsMain;
private System.Windows.Forms.ToolStripButton tsbFiles2Folders;
private System.Windows.Forms.ToolStripButton tsbFolders2Files;
private System.Windows.Forms.StatusStrip ssMain;
private System.Windows.Forms.ToolStripStatusLabel tsslSnap;
private System.Windows.Forms.ToolStripStatusLabel tsslStatus;
private System.Windows.Forms.ToolStripDropDownButton tsbCancel;
private System.ComponentModel.BackgroundWorker bgwFiles2Folders;
private System.ComponentModel.BackgroundWorker bgwFolders2Files;
private System.Windows.Forms.TabControl tcMain;
private System.Windows.Forms.TabPage tabLog;
private System.Windows.Forms.TabPage tabOptions;
private System.Windows.Forms.TableLayoutPanel tlpOptions;
private System.Windows.Forms.GroupBox gbDirectoryPath;
private System.Windows.Forms.TextBox txtDirectoryPath;
private System.Windows.Forms.GroupBox gbOutputOptions;
private System.Windows.Forms.CheckBox chkDeleteEmptyFolders;
private System.Windows.Forms.ToolStripProgressBar tspbOverallProgress;
private System.ComponentModel.BackgroundWorker bgwStartupTasks;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
private System.Windows.Forms.ToolStripMenuItem tsmiView;
private System.Windows.Forms.ToolStripMenuItem tsmiLog;
private System.Windows.Forms.ToolStripMenuItem tsmiOptions;
private System.Windows.Forms.ToolStripMenuItem tsmiHelp;
private System.Windows.Forms.ToolStripMenuItem tsmiLicense;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
private System.Windows.Forms.ToolStripButton tsbViewHelp;
private System.Windows.Forms.ToolStripButton tsbViewLicense;
private System.Windows.Forms.TabPage tabHelp;
private System.Windows.Forms.TabPage tabLicense;
private System.Windows.Forms.RichTextBox rtbHelp;
private System.Windows.Forms.RichTextBox rtbLicense;
private System.Windows.Forms.ToolStripMenuItem tsmiToolbar;
private System.Windows.Forms.ToolStripButton tsbViewToolbar;
private System.Windows.Forms.TabPage tabDonations;
private System.Windows.Forms.TabPage tabRegistration;
private System.Windows.Forms.ToolStripMenuItem tsmiDonations;
private System.Windows.Forms.ToolStripMenuItem tsmiRegistration;
private System.Windows.Forms.ToolStripButton tsbViewDonations;
private System.Windows.Forms.ToolStripButton tsbViewRegistration;
private System.Windows.Forms.GroupBox gbOptionsInfo;
private System.Windows.Forms.Label lblOptionsInfo1;
private System.Windows.Forms.RichTextBox rtbDonations;
private Serilog.Sinks.LogEmAll.RichTextBoxLog rtblLog;
private System.Windows.Forms.ToolStripMenuItem loadOptionsToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem saveOptionsToolStripMenuItem;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator5;
private System.Windows.Forms.ToolStripMenuItem saveLogToolStripMenuItem;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator6;
private System.Windows.Forms.ToolStripButton tsbLoadOptions;
private System.Windows.Forms.ToolStripButton tsbSaveOptions;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator3;
private System.Windows.Forms.ToolStripButton tsbSaveLog;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator4;
private System.Windows.Forms.GroupBox gbRegisterApp;
private System.Windows.Forms.Label lblRegistrationStatus;
private System.Windows.Forms.Label lblRegisterAppPassword;
private System.Windows.Forms.Label lblRegisterAppEmailAddress;
private System.Windows.Forms.Label lblRegisterAppUsername;
private System.Windows.Forms.Button btnRegisterApp;
private System.Windows.Forms.TextBox txtRegisterAppPassword;
private System.Windows.Forms.TextBox txtRegisterAppEmailAddress;
private System.Windows.Forms.TextBox txtRegisterAppUsername;
private System.Windows.Forms.Label lblRegistrationKeyLabel;
private System.Windows.Forms.Label lblRegistrationStatusLabel;
private System.Windows.Forms.Label lblRegistrationKey;
private System.Windows.Forms.GroupBox gbRegistration;
private System.Windows.Forms.TableLayoutPanel tlpRegistration;
}
}

View File

@@ -0,0 +1,787 @@
using Serilog;
using System;
using System.ComponentModel;
using System.IO;
using System.Windows.Forms;
namespace Files2Folders2Files_GUI
{
/// <summary>
/// FrmFiles2Folders2Files Form Class.
/// </summary>
public partial class FrmFiles2Folders2Files : Form
{
#region Constructors
Files2Folders2Files.Files2Folders2Files f2f2f = new Files2Folders2Files.Files2Folders2Files();
/// <summary>
/// FrmFiles2Folders2Files-GUI Constructor
/// </summary>
public FrmFiles2Folders2Files()
{
// Initialize the form.
InitializeComponent();
// Print the version.
f2f2f.PrintVersion();
// Load the default options passed from the default options file.
f2f2f.LoadOptionsFromFile();
// Load the default options passed from the command line arguments.
f2f2f.LoadOptionsFromCLI(Environment.GetCommandLineArgs());
// Add data bindings.
chkDeleteEmptyFolders.DataBindings.Add("Checked", f2f2f, "DeleteEmptyFolders");
txtDirectoryPath.DataBindings.Add("Text", f2f2f, "DirectoryPath");
lblRegistrationKey.DataBindings.Add("Text", f2f2f, "RegistrationKey");
lblRegistrationStatus.DataBindings.Add("Text", f2f2f, "RegistrationStatus");
txtRegisterAppUsername.DataBindings.Add("Text", f2f2f, "RegisterAppUsername");
txtRegisterAppEmailAddress.DataBindings.Add("Text", f2f2f, "RegisterAppEmailAddress");
txtRegisterAppPassword.DataBindings.Add("Text", f2f2f, "RegisterAppPassword");
// Hide some tabs.
tcMain.TabPages.Remove(tabHelp);
tcMain.TabPages.Remove(tabLicense);
tcMain.TabPages.Remove(tabDonations);
tcMain.TabPages.Remove(tabRegistration);
// Update the title.
UpdateTitle();
// Load the GUI RichTextBoxes from resources.
rtbHelp.Text = Files2Folders2Files.Properties.Resources.Files2Folders2Files_HELP;
rtbLicense.Text = Files2Folders2Files.Properties.Resources.Files2Folders2Files_LICENSE;
rtbDonations.Text = Files2Folders2Files.Properties.Resources.Files2Folders2Files_DONATIONS;
}
#endregion
#region 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)
{
f2f2f.PathLogFile = strPath;
}
// Determine if the user selected a log filename.
if (f2f2f.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(f2f2f.PathLogFile)) == false) Directory.CreateDirectory(Path.GetDirectoryName(f2f2f.PathLogFile));
// Save the contents of the log to a text file.
File.WriteAllLines(f2f2f.PathLogFile, LogLines);
// Print to screen
Log.Information("Log file saved (" + f2f2f.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>
/// Performs the startup tasks.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void StartupTasks_DoWork(object sender, DoWorkEventArgs e)
{
// Stub
}
/// <summary>
/// StartupTasks Progress Changed.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void StartupTasks_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
// Stub
}
/// <summary>
/// StartupTasks RunWorker Completed.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void StartupTasks_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
// Print to screen
Log.Information("Ready");
}
#endregion
#region GUI Methods
/// <summary>
/// Sets the application title.
/// </summary>
/// <param name="strTitle"></param>
private void UpdateTitle(string strTitle = "")
{
if (this.InvokeRequired && !this.IsDisposed)
{
Invoke(new MethodInvoker(delegate ()
{
// Update the application title.
this.Text = f2f2f.AppName + " v" + f2f2f.AppVersion + strTitle;
}));
}
else if (!this.IsDisposed)
{
// Update the application title.
this.Text = f2f2f.AppName + " v" + f2f2f.AppVersion + strTitle;
}
}
/// <summary>
/// Updates the status message label.
/// </summary>
/// <param name="strMsg"></param>
private void UpdateStatusMessageLabel(string strMsg)
{
if (this.InvokeRequired && !this.IsDisposed)
{
Invoke(new MethodInvoker(delegate ()
{
// Update the progress status message label.
this.tsslStatus.Text = strMsg;
}));
}
else if (!this.IsDisposed)
{
// Update the progress status message label.
this.tsslStatus.Text = strMsg;
}
}
private delegate void DisableAllButtonsDelegate();
/// <summary>
/// Disables all the buttons and textboxes and checkboxes.
/// </summary>
private void DisableAllButtons()
{
// Disable the toolstrip buttons.
tsbFiles2Folders.Enabled = false;
tsbFolders2Files.Enabled = false;
// Disable the menustrip buttons.
tsmiFiles2Folders.Enabled = false;
tsmiFolders2Files.Enabled = false;
// Disable the textboxes.
txtDirectoryPath.Enabled = false;
// Disable the checkboxes.
chkDeleteEmptyFolders.Enabled = false;
}
private delegate void EnableAllButtonsDelegate();
/// <summary>
/// Enables all the buttons and textboxes and checkboxes.
/// </summary>
private void EnableAllButtons()
{
// Enable the toolstrip buttons.
tsbFiles2Folders.Enabled = true;
tsbFolders2Files.Enabled = true;
// Disable the menustrip buttons.
tsmiFiles2Folders.Enabled = true;
tsmiFolders2Files.Enabled = true;
// Enable the textboxes.
txtDirectoryPath.Enabled = true;
// Enable the checkboxes.
chkDeleteEmptyFolders.Enabled = true;
}
#endregion
#region GUI Events
/// <summary>
/// Builds files to folders.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Files2Folders_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.
tsbCancel.Enabled = true;
// Update the status message label.
UpdateStatusMessageLabel("Building Files 2 Folders ...");
// Build Files 2 Folders.
bgwFiles2Folders.RunWorkerAsync();
}
/// <summary>
/// Builds folders to files.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Folders2Files_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.
tsbCancel.Enabled = true;
// Update the status message label.
UpdateStatusMessageLabel("Building Folders 2 Files ...");
// Build Folders 2 Files.
bgwFolders2Files.RunWorkerAsync();
}
/// <summary>
/// Updates the directory path.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void DirectoryPath_Click(object sender, EventArgs e)
{
// Disable all buttons.
DisableAllButtons();
if (txtDirectoryPath.Text == "") { txtDirectoryPath.Text = "."; }
// Create and initialize a FolderBrowserDialog for the directory path.
FolderBrowserDialog fbdSelectDir = new FolderBrowserDialog
{
ShowNewFolderButton = true,
Description = "Please enter a directory path: ",
SelectedPath = Path.GetFullPath(Path.Combine(txtDirectoryPath.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.f2f2f.DirectoryPath = fbdSelectDir.SelectedPath;
txtDirectoryPath.Text = fbdSelectDir.SelectedPath;
}
// Enable all buttons.
EnableAllButtons();
}
/// <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.
f2f2f.PathOptionsFile = ofdOptions.FileName;
// Select the Log tab.
if (tcMain.TabPages.Contains(tabLog)) { tcMain.SelectTab(tabLog); }
// Load the options.
f2f2f.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 = "Files2Folders2Files-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.
f2f2f.PathOptionsFile = sfdOptions.FileName;
// Select the Log tab.
if (tcMain.TabPages.Contains(tabLog)) { tcMain.SelectTab(tabLog); }
// Save the options.
f2f2f.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 = "Files2Folders2Files-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.
f2f2f.PathLogFile = sfdLog.FileName;
// Select the Log tab.
if (tcMain.TabPages.Contains(tabLog)) { tcMain.SelectTab(tabLog); }
// Save the log.
SaveLogToFile(f2f2f.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;
}
}
/// <summary>
/// Cancels the build.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Cancel_Click(object sender, EventArgs e)
{
if (bgwFiles2Folders.IsBusy == true || bgwFolders2Files.IsBusy == true)
{
// Print to screen
Log.Information("Info: Cancellation pending after current operation ...");
// Disable the cancel button.
tsbCancel.Enabled = false;
// Cancel the asynchronous operation.
if (bgwFiles2Folders.IsBusy == true) { bgwFiles2Folders.CancelAsync(); }
if (bgwFolders2Files.IsBusy == true) { bgwFolders2Files.CancelAsync(); }
// Update the status message label.
UpdateStatusMessageLabel("Cancellation Pending ...");
}
}
/// <summary>
/// Exits the WinForms app.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Exit_Click(object sender, EventArgs e)
{
Application.Exit();
}
/// <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>
/// Checks things to make sure it is safe, before closing the form.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Files2Folders2Files_FormClosing(object sender, FormClosingEventArgs e)
{
if (bgwFiles2Folders.IsBusy == true || bgwFolders2Files.IsBusy == true)
{
if (MessageBox.Show("The builder is currently running. Exiting now may cause corrupt or incomplete files! Are you sure you want to exit now?", "Confirm Exit", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) != DialogResult.OK)
{
e.Cancel = true;
}
}
}
#endregion
#region Builders
/// <summary>
/// Moves all pf the files from a single directory into folders of matching names.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Files2Folders_DoWork(object sender, DoWorkEventArgs e)
{
// Run Files2Folders builder.
f2f2f.BuildFiles2Folders(sender, e);
}
/// <summary>
/// Changes the progress of the Files 2 Folders background worker.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Files2Folders_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
// Update the overall progress bar.
tspbOverallProgress.Value = e.ProgressPercentage;
}
/// <summary>
/// Completes the Files 2 Folders background worker.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Files2Folders_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
if (e.Cancelled)
{
// Print to screen
Log.Information("Info: Files 2 Folders cancelled");
}
else if (e.Error != null)
{
// Print to screen
Log.Information("Error: Files 2 Folders failed");
Log.Information("Error: " + e.Error.Message);
}
else
{
//
}
// Reset the overall progress bar.
tspbOverallProgress.Value = 0;
// Disable the cancel button.
tsbCancel.Enabled = false;
// Print to screen
Log.Information("Info: Ready");
// Update the status message label.
UpdateStatusMessageLabel("Ready");
// Enable all buttons.
Invoke(new EnableAllButtonsDelegate(EnableAllButtons));
}
/// <summary>
/// Moves all of the files from all of the folders into a single directory.
/// Optionally deletes all of the empty folders.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Folders2Files_DoWork(object sender, DoWorkEventArgs e)
{
// Run Files2Folders builder.
f2f2f.BuildFolders2Files(sender, e);
}
/// <summary>
/// Changes the progress of the Folders 2 Files background worker.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Folders2Files_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
// Update the overall progress bar.
tspbOverallProgress.Value = e.ProgressPercentage;
}
/// <summary>
/// Completes the Folders 2 Files background worker.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Folders2Files_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
if (e.Cancelled)
{
// Print to screen
Log.Information("Info: Folders 2 Files cancelled");
}
else if (e.Error != null)
{
// Print to screen
Log.Information("Error: Folders 2 Files failed");
Log.Information("Error: " + e.Error.Message);
}
else
{
//
}
// Reset the overall progress bar.
tspbOverallProgress.Value = 0;
// Disable the cancel button.
tsbCancel.Enabled = false;
// Update the status message label.
UpdateStatusMessageLabel("Ready");
// Print to screen
Log.Information("Info: Ready");
// Enable all buttons.
Invoke(new EnableAllButtonsDelegate(EnableAllButtons));
}
#endregion
}
}

View File

@@ -0,0 +1,307 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="msMain.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="tsMain.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>112, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="tsbFiles2Folders.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
</value>
</data>
<data name="tsbFolders2Files.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
</value>
</data>
<data name="tsbLoadOptions.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
</value>
</data>
<data name="tsbSaveOptions.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
</value>
</data>
<data name="tsbSaveLog.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
</value>
</data>
<data name="tsbViewHelp.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
</value>
</data>
<data name="tsbViewLicense.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
</value>
</data>
<data name="tsbViewDonations.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
</value>
</data>
<data name="tsbViewRegistration.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
</value>
</data>
<data name="tsbViewToolbar.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
</value>
</data>
<metadata name="ssMain.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>200, 17</value>
</metadata>
<data name="tsbCancel.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
</value>
</data>
<metadata name="bgwFiles2Folders.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>289, 17</value>
</metadata>
<metadata name="bgwFolders2Files.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>434, 17</value>
</metadata>
<metadata name="bgwStartupTasks.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>579, 17</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>63</value>
</metadata>
</root>

View File

@@ -0,0 +1,34 @@
using Serilog;
using Serilog.Formatting.Display;
using Serilog.Sinks.LogEmAll;
using System;
using System.Windows.Forms;
namespace Files2Folders2Files_GUI
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
ConfigureSerilog();
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new FrmFiles2Folders2Files());
}
/// <summary>
/// Configure the logger.
/// </summary>
public static void ConfigureSerilog()
{
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Information()
.WriteToRichTextBox(new MessageTemplateTextFormatter("{Level:u4}: {Message:lj}{NewLine}{Exception}"))
.CreateLogger();
}
}
}

View File

@@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("Files 2 Folders 2 Files")]
[assembly: AssemblyDescription("The Original Automated Files 2 Folders 2 Files")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Files 2 Folders 2 Files")]
[assembly: AssemblyProduct("Files 2 Folders 2 Files-GUI")]
[assembly: AssemblyCopyright("Copyright (c) 2016-2025 Files 2 Folders 2 Files - All Rights Reserved")]
[assembly: AssemblyTrademark("Files 2 Folders 2 Files - The Original Automated Files 2 Folders 2 Files")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("73055ffb-47a7-4332-bb2b-410aae263774")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("0.1.2")]
[assembly: AssemblyFileVersion("0.1.2")]

View File

@@ -0,0 +1,63 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace Files2Folders2Files_GUI.Properties {
using System;
/// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary>
// This class was auto-generated by the StronglyTypedResourceBuilder
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources() {
}
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Files2Folders2Files_GUI.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
}
}

View File

@@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Serilog" version="2.12.0" targetFramework="net48" />
<package id="Serilog.Sinks.LogEmAll" version="0.0.7" targetFramework="net48" />
</packages>