diff --git a/FileManager/Configuration.cs b/FileManager/Configuration.cs index 3e0cb752..91f3f0a5 100644 --- a/FileManager/Configuration.cs +++ b/FileManager/Configuration.cs @@ -65,19 +65,19 @@ namespace FileManager { None = 0, - [Description("In my Users folder")] + [Description("My Users folder")] UserProfile = 1, - [Description("In the same folder that Libation is running from")] + [Description("The same folder that Libation is running from")] AppDir = 2, - [Description("In your Windows temporary folder")] + [Description("Windows temporary folder")] WinTemp = 3, - [Description("In My Documents")] + [Description("My Documents")] MyDocs = 4, - [Description("In your settings folder (aka: Libation Files)")] + [Description("Your settings folder (aka: Libation Files)")] LibationFiles = 5 } // use func calls so we always get the latest value of LibationFiles diff --git a/LibationLauncher/LibationLauncher.csproj b/LibationLauncher/LibationLauncher.csproj index 126b5369..15767c49 100644 --- a/LibationLauncher/LibationLauncher.csproj +++ b/LibationLauncher/LibationLauncher.csproj @@ -13,7 +13,7 @@ win-x64 - 5.1.9.8 + 5.1.9.13 diff --git a/LibationWinForms/Dialogs/DirectoryOrCustomSelectControl.cs b/LibationWinForms/Dialogs/DirectoryOrCustomSelectControl.cs index 4783db0e..222b9130 100644 --- a/LibationWinForms/Dialogs/DirectoryOrCustomSelectControl.cs +++ b/LibationWinForms/Dialogs/DirectoryOrCustomSelectControl.cs @@ -28,7 +28,7 @@ namespace LibationWinForms.Dialogs public void SetDirectoryItems(List knownDirectories, Configuration.KnownDirectories? defaultDirectory = Configuration.KnownDirectories.UserProfile) => this.directorySelectControl.SetDirectoryItems(knownDirectories, defaultDirectory); - /// select, set default, or rehydrate + /// set selection /// public void SelectDirectory(Configuration.KnownDirectories directory) { @@ -37,7 +37,7 @@ namespace LibationWinForms.Dialogs selectDir(directory, null); } - /// select, set default, or rehydrate + /// set selection public void SelectDirectory(string directory) { directory = directory?.Trim() ?? ""; @@ -46,11 +46,14 @@ namespace LibationWinForms.Dialogs private void selectDir(Configuration.KnownDirectories knownDir, string customDir) { - var unknown = knownDir == Configuration.KnownDirectories.None; - customDirectoryRb.Checked = unknown; - knownDirectoryRb.Checked = !unknown; - this.directorySelectControl.SelectDirectory(knownDir); - this.customTb.Text = unknown ? customDir : ""; + var isKnown + = knownDir != Configuration.KnownDirectories.None + // this could be a well known dir which isn't an option in this particular dropdown. This will always be true of LibationFiles + && this.directorySelectControl.SelectDirectory(knownDir); + + customDirectoryRb.Checked = !isKnown; + knownDirectoryRb.Checked = isKnown; + this.customTb.Text = isKnown ? "" : customDir; } private string dirSearchTitle; diff --git a/LibationWinForms/Dialogs/DirectorySelectControl.cs b/LibationWinForms/Dialogs/DirectorySelectControl.cs index d2497ac9..362712f6 100644 --- a/LibationWinForms/Dialogs/DirectorySelectControl.cs +++ b/LibationWinForms/Dialogs/DirectorySelectControl.cs @@ -36,7 +36,7 @@ namespace LibationWinForms.Dialogs /// Set items for combobox /// List rather than IEnumerable so that client can determine display order /// Optional default item to select - public void SetDirectoryItems(List knownDirectories, Configuration.KnownDirectories? defaultDirectory = Configuration.KnownDirectories.UserProfile) + public void SetDirectoryItems(List knownDirectories, Configuration.KnownDirectories? defaultDirectory = null) { this.directoryComboBox.Items.Clear(); @@ -46,29 +46,23 @@ namespace LibationWinForms.Dialogs SelectDirectory(defaultDirectory); } - /// select, set default, or rehydrate + /// set selection /// /// True is there was a matching entry public bool SelectDirectory(string directory) => SelectDirectory(Configuration.GetKnownDirectory(directory)); - /// select, set default, or rehydrate + /// set selection /// /// True is there was a matching entry public bool SelectDirectory(Configuration.KnownDirectories? directory) { if (directory is null || directory == Configuration.KnownDirectories.None) - { - this.directoryComboBox.SelectedIndex = 0; return false; - } // set default var item = this.directoryComboBox.Items.Cast().SingleOrDefault(item => item.Value == directory.Value); if (item is null) - { - this.directoryComboBox.SelectedIndex = 0; return false; - } this.directoryComboBox.SelectedItem = item; return true; diff --git a/LibationWinForms/Dialogs/LibationFilesDialog.Designer.cs b/LibationWinForms/Dialogs/LibationFilesDialog.Designer.cs index ea0a8dc6..64a0b8fb 100644 --- a/LibationWinForms/Dialogs/LibationFilesDialog.Designer.cs +++ b/LibationWinForms/Dialogs/LibationFilesDialog.Designer.cs @@ -29,85 +29,29 @@ private void InitializeComponent() { this.libationFilesDescLbl = new System.Windows.Forms.Label(); - this.libationFilesCustomBtn = new System.Windows.Forms.Button(); - this.libationFilesCustomTb = new System.Windows.Forms.TextBox(); - this.libationFilesCustomRb = new System.Windows.Forms.RadioButton(); - this.libationFilesMyDocsRb = new System.Windows.Forms.RadioButton(); - this.libationFilesRootRb = new System.Windows.Forms.RadioButton(); this.cancelBtn = new System.Windows.Forms.Button(); this.saveBtn = new System.Windows.Forms.Button(); + this.directoryOrCustomSelectControl = new LibationWinForms.Dialogs.DirectoryOrCustomSelectControl(); this.SuspendLayout(); // // libationFilesDescLbl // this.libationFilesDescLbl.AutoSize = true; - this.libationFilesDescLbl.Location = new System.Drawing.Point(12, 9); + this.libationFilesDescLbl.Location = new System.Drawing.Point(14, 10); + this.libationFilesDescLbl.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.libationFilesDescLbl.Name = "libationFilesDescLbl"; - this.libationFilesDescLbl.Size = new System.Drawing.Size(36, 13); + this.libationFilesDescLbl.Size = new System.Drawing.Size(39, 15); this.libationFilesDescLbl.TabIndex = 0; this.libationFilesDescLbl.Text = "[desc]"; // - // libationFilesCustomBtn - // - this.libationFilesCustomBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.libationFilesCustomBtn.Location = new System.Drawing.Point(753, 95); - this.libationFilesCustomBtn.Name = "libationFilesCustomBtn"; - this.libationFilesCustomBtn.Size = new System.Drawing.Size(35, 23); - this.libationFilesCustomBtn.TabIndex = 5; - this.libationFilesCustomBtn.Text = "..."; - this.libationFilesCustomBtn.UseVisualStyleBackColor = true; - this.libationFilesCustomBtn.Click += new System.EventHandler(this.libationFilesCustomBtn_Click); - // - // libationFilesCustomTb - // - this.libationFilesCustomTb.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.libationFilesCustomTb.Location = new System.Drawing.Point(35, 97); - this.libationFilesCustomTb.Name = "libationFilesCustomTb"; - this.libationFilesCustomTb.Size = new System.Drawing.Size(712, 20); - this.libationFilesCustomTb.TabIndex = 4; - // - // libationFilesCustomRb - // - this.libationFilesCustomRb.AutoSize = true; - this.libationFilesCustomRb.Location = new System.Drawing.Point(15, 100); - this.libationFilesCustomRb.Name = "libationFilesCustomRb"; - this.libationFilesCustomRb.Size = new System.Drawing.Size(14, 13); - this.libationFilesCustomRb.TabIndex = 3; - this.libationFilesCustomRb.TabStop = true; - this.libationFilesCustomRb.UseVisualStyleBackColor = true; - // - // libationFilesMyDocsRb - // - this.libationFilesMyDocsRb.AutoSize = true; - this.libationFilesMyDocsRb.CheckAlign = System.Drawing.ContentAlignment.TopLeft; - this.libationFilesMyDocsRb.Location = new System.Drawing.Point(15, 61); - this.libationFilesMyDocsRb.Name = "libationFilesMyDocsRb"; - this.libationFilesMyDocsRb.Size = new System.Drawing.Size(111, 30); - this.libationFilesMyDocsRb.TabIndex = 2; - this.libationFilesMyDocsRb.TabStop = true; - this.libationFilesMyDocsRb.Text = "[desc]\r\n[myDocs\\Libation]"; - this.libationFilesMyDocsRb.UseVisualStyleBackColor = true; - // - // libationFilesRootRb - // - this.libationFilesRootRb.AutoSize = true; - this.libationFilesRootRb.CheckAlign = System.Drawing.ContentAlignment.TopLeft; - this.libationFilesRootRb.Location = new System.Drawing.Point(15, 25); - this.libationFilesRootRb.Name = "libationFilesRootRb"; - this.libationFilesRootRb.Size = new System.Drawing.Size(113, 30); - this.libationFilesRootRb.TabIndex = 1; - this.libationFilesRootRb.TabStop = true; - this.libationFilesRootRb.Text = "[desc]\r\n[appDir\\Libation]"; - this.libationFilesRootRb.UseVisualStyleBackColor = true; - // // cancelBtn // this.cancelBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.cancelBtn.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.cancelBtn.Location = new System.Drawing.Point(713, 124); + this.cancelBtn.Location = new System.Drawing.Point(832, 118); + this.cancelBtn.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.cancelBtn.Name = "cancelBtn"; - this.cancelBtn.Size = new System.Drawing.Size(75, 23); + this.cancelBtn.Size = new System.Drawing.Size(88, 27); this.cancelBtn.TabIndex = 10; this.cancelBtn.Text = "Cancel"; this.cancelBtn.UseVisualStyleBackColor = true; @@ -116,28 +60,35 @@ // saveBtn // this.saveBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.saveBtn.Location = new System.Drawing.Point(612, 124); + this.saveBtn.Location = new System.Drawing.Point(714, 118); + this.saveBtn.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.saveBtn.Name = "saveBtn"; - this.saveBtn.Size = new System.Drawing.Size(75, 23); + this.saveBtn.Size = new System.Drawing.Size(88, 27); this.saveBtn.TabIndex = 9; this.saveBtn.Text = "Save"; this.saveBtn.UseVisualStyleBackColor = true; this.saveBtn.Click += new System.EventHandler(this.saveBtn_Click); // + // directoryOrCustomSelectControl + // + this.directoryOrCustomSelectControl.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.directoryOrCustomSelectControl.Location = new System.Drawing.Point(14, 28); + this.directoryOrCustomSelectControl.Name = "directoryOrCustomSelectControl"; + this.directoryOrCustomSelectControl.Size = new System.Drawing.Size(909, 81); + this.directoryOrCustomSelectControl.TabIndex = 11; + // // LibationFilesDialog // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(800, 159); + this.ClientSize = new System.Drawing.Size(933, 158); + this.Controls.Add(this.directoryOrCustomSelectControl); this.Controls.Add(this.cancelBtn); this.Controls.Add(this.saveBtn); this.Controls.Add(this.libationFilesDescLbl); - this.Controls.Add(this.libationFilesCustomBtn); - this.Controls.Add(this.libationFilesCustomTb); - this.Controls.Add(this.libationFilesRootRb); - this.Controls.Add(this.libationFilesCustomRb); - this.Controls.Add(this.libationFilesMyDocsRb); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; + this.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.Name = "LibationFilesDialog"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; this.Text = "Libation Files location"; @@ -150,12 +101,8 @@ #endregion private System.Windows.Forms.Label libationFilesDescLbl; - private System.Windows.Forms.Button libationFilesCustomBtn; - private System.Windows.Forms.TextBox libationFilesCustomTb; - private System.Windows.Forms.RadioButton libationFilesCustomRb; - private System.Windows.Forms.RadioButton libationFilesMyDocsRb; - private System.Windows.Forms.RadioButton libationFilesRootRb; private System.Windows.Forms.Button cancelBtn; private System.Windows.Forms.Button saveBtn; + private DirectoryOrCustomSelectControl directoryOrCustomSelectControl; } } \ No newline at end of file diff --git a/LibationWinForms/Dialogs/LibationFilesDialog.cs b/LibationWinForms/Dialogs/LibationFilesDialog.cs index 3b2799a1..4fa7757c 100644 --- a/LibationWinForms/Dialogs/LibationFilesDialog.cs +++ b/LibationWinForms/Dialogs/LibationFilesDialog.cs @@ -6,19 +6,10 @@ namespace LibationWinForms.Dialogs { public partial class LibationFilesDialog : Form { - Configuration config { get; } = Configuration.Instance; - Func desc { get; } = Configuration.GetDescription; + private Configuration config { get; } = Configuration.Instance; + private Func desc { get; } = Configuration.GetDescription; - public LibationFilesDialog() - { - InitializeComponent(); - - this.libationFilesCustomTb.TextChanged += (_, __) => - { - if (!string.IsNullOrWhiteSpace(libationFilesCustomTb.Text)) - this.libationFilesCustomRb.Checked = true; - }; - } + public LibationFilesDialog() => InitializeComponent(); private void LibationFilesDialog_Load(object sender, EventArgs e) { @@ -26,35 +17,20 @@ namespace LibationWinForms.Dialogs return; libationFilesDescLbl.Text = desc(nameof(config.LibationFiles)); - this.libationFilesRootRb.Text = "In the same folder that Libation is running from\r\n" + Configuration.AppDir_Relative; - this.libationFilesMyDocsRb.Text = "In My Documents\r\n" + Configuration.MyDocs; - if (config.LibationFiles == Configuration.AppDir_Relative) - libationFilesRootRb.Checked = true; - else if (config.LibationFiles == Configuration.MyDocs) - libationFilesMyDocsRb.Checked = true; - else + + directoryOrCustomSelectControl.SetSearchTitle("Libation Files"); + directoryOrCustomSelectControl.SetDirectoryItems(new() { - libationFilesCustomRb.Checked = true; - libationFilesCustomTb.Text = config.LibationFiles; - } - } - - private void libationFilesCustomBtn_Click(object sender, EventArgs e) => selectFolder("Search for Libation Files location", this.libationFilesCustomTb); - - private static void selectFolder(string desc, TextBox textbox) - { - using var dialog = new FolderBrowserDialog { Description = desc, SelectedPath = "" }; - dialog.ShowDialog(); - if (!string.IsNullOrWhiteSpace(dialog.SelectedPath)) - textbox.Text = dialog.SelectedPath; + Configuration.KnownDirectories.UserProfile, + Configuration.KnownDirectories.AppDir, + Configuration.KnownDirectories.MyDocs + }, Configuration.KnownDirectories.UserProfile); + directoryOrCustomSelectControl.SelectDirectory(config.LibationFiles); } private void saveBtn_Click(object sender, EventArgs e) { - var libationDir - = libationFilesRootRb.Checked ? Configuration.AppDir_Relative - : libationFilesMyDocsRb.Checked ? Configuration.MyDocs - : libationFilesCustomTb.Text; + var libationDir = directoryOrCustomSelectControl.SelectedDirectory; if (!config.TrySetLibationFiles(libationDir)) { MessageBox.Show("Not saving change to Libation Files location. This folder does not exist:\r\n" + libationDir); diff --git a/LibationWinForms/Dialogs/LibationFilesDialog.resx b/LibationWinForms/Dialogs/LibationFilesDialog.resx index 1af7de15..f298a7be 100644 --- a/LibationWinForms/Dialogs/LibationFilesDialog.resx +++ b/LibationWinForms/Dialogs/LibationFilesDialog.resx @@ -1,64 +1,4 @@ - - - + diff --git a/LibationWinForms/Dialogs/TEMP_TestNewControls.cs b/LibationWinForms/Dialogs/TEMP_TestNewControls.cs index 61890d92..cc8e8702 100644 --- a/LibationWinForms/Dialogs/TEMP_TestNewControls.cs +++ b/LibationWinForms/Dialogs/TEMP_TestNewControls.cs @@ -40,23 +40,23 @@ namespace LibationWinForms.Dialogs ); } - { - var dirOrCustCtrl = this.directoryOrCustomSelectControl1; - dirOrCustCtrl.SetSearchTitle("Libation Files"); - dirOrCustCtrl.SetDirectoryItems(new() - { - FileManager.Configuration.KnownDirectories.AppDir, - FileManager.Configuration.KnownDirectories.MyDocs, - FileManager.Configuration.KnownDirectories.LibationFiles, - FileManager.Configuration.KnownDirectories.MyDocs, - FileManager.Configuration.KnownDirectories.None, - FileManager.Configuration.KnownDirectories.WinTemp, - FileManager.Configuration.KnownDirectories.UserProfile - } - , - FileManager.Configuration.KnownDirectories.MyDocs - ); - } + //{ + // var dirOrCustCtrl = this.directoryOrCustomSelectControl1; + // dirOrCustCtrl.SetSearchTitle("Libation Files"); + // dirOrCustCtrl.SetDirectoryItems(new() + // { + // FileManager.Configuration.KnownDirectories.AppDir, + // FileManager.Configuration.KnownDirectories.MyDocs, + // FileManager.Configuration.KnownDirectories.LibationFiles, + // FileManager.Configuration.KnownDirectories.MyDocs, + // FileManager.Configuration.KnownDirectories.None, + // FileManager.Configuration.KnownDirectories.WinTemp, + // FileManager.Configuration.KnownDirectories.UserProfile + // } + // , + // FileManager.Configuration.KnownDirectories.MyDocs + // ); + //} } @@ -64,13 +64,12 @@ namespace LibationWinForms.Dialogs private void button1_Click(object sender, EventArgs e) { var dirCtrl = this.directorySelectControl1; - var dirOrCustCtrl = this.directoryOrCustomSelectControl1; - var x = dirCtrl.SelectedDirectory; - var y = dirOrCustCtrl.SelectedDirectory; - dirCtrl.SelectDirectory(FileManager.Configuration.KnownDirectories.UserProfile); - dirOrCustCtrl.SelectDirectory(FileManager.Configuration.KnownDirectories.UserProfile); + + //var dirOrCustCtrl = this.directoryOrCustomSelectControl1; + //var y = dirOrCustCtrl.SelectedDirectory; + //dirOrCustCtrl.SelectDirectory(FileManager.Configuration.KnownDirectories.UserProfile); } } } \ No newline at end of file