From 633b13316ff77190936ebdace8eb7ad6278c4f67 Mon Sep 17 00:00:00 2001 From: Thorsten Sommer Date: Tue, 7 Jun 2022 20:46:39 +0200 Subject: [PATCH] Refactoring --- .../UI WinForms/Components/LoaderStart.cs | 36 +++++++++++-------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/I18N Commander/UI WinForms/Components/LoaderStart.cs b/I18N Commander/UI WinForms/Components/LoaderStart.cs index ae7ba08..026c6e7 100644 --- a/I18N Commander/UI WinForms/Components/LoaderStart.cs +++ b/I18N Commander/UI WinForms/Components/LoaderStart.cs @@ -11,13 +11,18 @@ public partial class LoaderStart : UserControl this.InitializeComponent(); } - private RegistryKey I18NCommanderKey => Registry.CurrentUser.OpenSubKey("Software", RegistryKeyPermissionCheck.ReadWriteSubTree)!.CreateSubKey("I18N Commander", RegistryKeyPermissionCheck.ReadWriteSubTree); + private static RegistryKey I18NCommanderKey => Registry.CurrentUser.OpenSubKey("Software", RegistryKeyPermissionCheck.ReadWriteSubTree)!.CreateSubKey("I18N Commander", RegistryKeyPermissionCheck.ReadWriteSubTree); - private List RecentProjects + #region Recent Projects + + /// + /// Gets or sets the list of recent projects without any extras e.g. it does not prune the list of projects. + /// + private static List RecentProjects { get { - using var regKey = this.I18NCommanderKey; + using var regKey = LoaderStart.I18NCommanderKey; var recentProjectsValue = regKey.GetValue("recentProjects"); return recentProjectsValue switch { @@ -28,7 +33,7 @@ public partial class LoaderStart : UserControl set { - using var regKey = this.I18NCommanderKey; + using var regKey = LoaderStart.I18NCommanderKey; regKey.SetValue("recentProjects", value, RegistryValueKind.MultiString); } } @@ -54,13 +59,13 @@ public partial class LoaderStart : UserControl return; } - var recentProjects = this.RecentProjects; + var recentProjects = LoaderStart.RecentProjects; this.contextMenuRecentProjects.Items.Clear(); - this.contextMenuRecentProjects.Items.Add("Browse for project...", Resources.Icons.icons8_browse_folder_512, (innerSender, args) => this.browseForProject()); + this.contextMenuRecentProjects.Items.Add("Browse for project...", Resources.Icons.icons8_browse_folder_512, (innerSender, args) => this.BrowseForProject()); foreach (var recentProject in recentProjects) { var fileInfo = new FileInfo(recentProject); - var item = this.contextMenuRecentProjects.Items.Add($"{fileInfo.Directory.GetDirectories().Last()}/{fileInfo.Name}", Resources.Icons.icons8_document_512, (innerSender, args) => this.openRecentProject(innerSender)); + var item = this.contextMenuRecentProjects.Items.Add($"{fileInfo.Directory.GetDirectories().Last()}/{fileInfo.Name}", Resources.Icons.icons8_document_512, (innerSender, args) => this.OpenRecentProject(innerSender)); item.Tag = recentProject; } @@ -78,24 +83,27 @@ public partial class LoaderStart : UserControl // TODO: Open the project } + + private void BrowseForProject() + { + // TODO: Browse for project // TODO: Handle cancel event // TODO: Apply chosen project's path LoaderStart.UpdateRecentProjectsWithPruning(string.Empty); + + // TODO: Open the project } - private void openRecentProject(object? sender) + private void OpenRecentProject(object? sender) { - if(sender is null) + if (sender is not ToolStripItem item) return; - if (sender is ToolStripItem item) - { - var path = (item.Tag as string)!; + var path = (item.Tag as string)!; LoaderStart.UpdateRecentProjectsWithPruning(path); - // TODO: Open the project - } + // TODO: Open the project } private void contextMenuRecentProjects_Closing(object sender, ToolStripDropDownClosingEventArgs e)