diff --git a/ModpackUpdater.Apps.Manager/Ui/MainForm.Designer.cs b/ModpackUpdater.Apps.Manager/Ui/MainForm.Designer.cs index 5e6536b..86fa83e 100644 --- a/ModpackUpdater.Apps.Manager/Ui/MainForm.Designer.cs +++ b/ModpackUpdater.Apps.Manager/Ui/MainForm.Designer.cs @@ -42,10 +42,7 @@ partial class MainForm radMenuItem_WorkspacePreferences = new Telerik.WinControls.UI.RadMenuItem(); radMenuItem_SaveWorkspace = new Telerik.WinControls.UI.RadMenuItem(); radMenuSeparatorItem1 = new Telerik.WinControls.UI.RadMenuSeparatorItem(); - radMenuItem_OpenNewWorkspace = new Telerik.WinControls.UI.RadMenuItem(); - radMenuItem_RecentWorkspaces = new Telerik.WinControls.UI.RadMenuItem(); radMenuItem_Tools = new Telerik.WinControls.UI.RadMenuItem(); - radMenu1 = new Telerik.WinControls.UI.RadMenu(); radMenuItem_Updates = new Telerik.WinControls.UI.RadMenuItem(); radMenuItem_EditUpdate = new Telerik.WinControls.UI.RadMenuItem(); radMenuSeparatorItem2 = new Telerik.WinControls.UI.RadMenuSeparatorItem(); @@ -55,6 +52,10 @@ partial class MainForm dotsRingWaitingBarIndicatorElement1 = new Telerik.WinControls.UI.DotsRingWaitingBarIndicatorElement(); radWaitingBar_Actions = new Telerik.WinControls.UI.RadWaitingBar(); dotsRingWaitingBarIndicatorElement2 = new Telerik.WinControls.UI.DotsRingWaitingBarIndicatorElement(); + radMenuHeaderItem_NewWorkspace = new Telerik.WinControls.UI.RadMenuHeaderItem(); + radMenuHeaderItem_RecentWorkspaces = new Telerik.WinControls.UI.RadMenuHeaderItem(); + radMenuSeparatorItem3 = new Telerik.WinControls.UI.RadMenuSeparatorItem(); + radMenu1 = new Telerik.WinControls.UI.RadMenu(); ((System.ComponentModel.ISupportInitialize)radSplitContainer1).BeginInit(); radSplitContainer1.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)splitPanel1).BeginInit(); @@ -66,10 +67,10 @@ partial class MainForm tableLayoutPanel1.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)radGridView_Actions).BeginInit(); ((System.ComponentModel.ISupportInitialize)radGridView_Actions.MasterTemplate).BeginInit(); - ((System.ComponentModel.ISupportInitialize)radMenu1).BeginInit(); ((System.ComponentModel.ISupportInitialize)radWaitingBar_Updates).BeginInit(); ((System.ComponentModel.ISupportInitialize)radWaitingBar_Actions).BeginInit(); ((System.ComponentModel.ISupportInitialize)this).BeginInit(); + ((System.ComponentModel.ISupportInitialize)radMenu1).BeginInit(); SuspendLayout(); // // radSplitContainer1 @@ -79,10 +80,6 @@ partial class MainForm radSplitContainer1.Dock = DockStyle.Fill; radSplitContainer1.Location = new Point(0, 28); radSplitContainer1.Name = "radSplitContainer1"; - // - // - // - radSplitContainer1.RootElement.MinSize = new Size(25, 25); radSplitContainer1.Size = new Size(800, 422); radSplitContainer1.TabIndex = 0; radSplitContainer1.TabStop = false; @@ -92,10 +89,6 @@ partial class MainForm splitPanel1.Controls.Add(tableLayoutPanel2); splitPanel1.Location = new Point(0, 0); splitPanel1.Name = "splitPanel1"; - // - // - // - splitPanel1.RootElement.MinSize = new Size(25, 25); splitPanel1.Size = new Size(200, 422); splitPanel1.SizeInfo.AutoSizeScale = new SizeF(-0.190954775F, 0F); splitPanel1.SizeInfo.SizeMode = Telerik.WinControls.UI.Docking.SplitPanelSizeMode.Absolute; @@ -131,10 +124,6 @@ partial class MainForm splitPanel2.Controls.Add(tableLayoutPanel1); splitPanel2.Location = new Point(204, 0); splitPanel2.Name = "splitPanel2"; - // - // - // - splitPanel2.RootElement.MinSize = new Size(25, 25); splitPanel2.Size = new Size(596, 422); splitPanel2.SizeInfo.AutoSizeScale = new SizeF(0.190954745F, 0F); splitPanel2.SizeInfo.SplitterCorrection = new Size(152, 0); @@ -179,7 +168,7 @@ partial class MainForm // // radMenuItem_Workspace // - radMenuItem_Workspace.Items.AddRange(new Telerik.WinControls.RadItem[] { radMenuItem_WorkspacePreferences, radMenuItem_SaveWorkspace, radMenuSeparatorItem1, radMenuItem_OpenNewWorkspace, radMenuItem_RecentWorkspaces }); + radMenuItem_Workspace.Items.AddRange(new Telerik.WinControls.RadItem[] { radMenuItem_WorkspacePreferences, radMenuItem_SaveWorkspace, radMenuSeparatorItem1, radMenuHeaderItem_NewWorkspace, radMenuSeparatorItem3, radMenuHeaderItem_RecentWorkspaces }); radMenuItem_Workspace.Name = "radMenuItem_Workspace"; radMenuItem_Workspace.Text = "Workspace"; // @@ -201,29 +190,11 @@ partial class MainForm radMenuSeparatorItem1.Text = "radMenuSeparatorItem1"; radMenuSeparatorItem1.TextAlignment = ContentAlignment.MiddleLeft; // - // radMenuItem_OpenNewWorkspace - // - radMenuItem_OpenNewWorkspace.Name = "radMenuItem_OpenNewWorkspace"; - radMenuItem_OpenNewWorkspace.Text = "Open new workspace"; - // - // radMenuItem_RecentWorkspaces - // - radMenuItem_RecentWorkspaces.Name = "radMenuItem_RecentWorkspaces"; - radMenuItem_RecentWorkspaces.Text = "Recent workspaces"; - // // radMenuItem_Tools // radMenuItem_Tools.Name = "radMenuItem_Tools"; radMenuItem_Tools.Text = "Tools"; // - // radMenu1 - // - radMenu1.Items.AddRange(new Telerik.WinControls.RadItem[] { radMenuItem_Workspace, radMenuItem_Updates, radMenuItem_Tools }); - radMenu1.Location = new Point(0, 0); - radMenu1.Name = "radMenu1"; - radMenu1.Size = new Size(800, 28); - radMenu1.TabIndex = 1; - // // radMenuItem_Updates // radMenuItem_Updates.Items.AddRange(new Telerik.WinControls.RadItem[] { radMenuItem_EditUpdate, radMenuSeparatorItem2, radMenuItem_CreateUpdate, radMenuItem_RemoveUpdate }); @@ -289,12 +260,36 @@ partial class MainForm // dotsRingWaitingBarIndicatorElement2.Name = "dotsRingWaitingBarIndicatorElement2"; // + // radMenuHeaderItem_NewWorkspace + // + radMenuHeaderItem_NewWorkspace.Name = "radMenuHeaderItem_NewWorkspace"; + radMenuHeaderItem_NewWorkspace.Text = "New workspace"; + // + // radMenuHeaderItem_RecentWorkspaces + // + radMenuHeaderItem_RecentWorkspaces.Name = "radMenuHeaderItem_RecentWorkspaces"; + radMenuHeaderItem_RecentWorkspaces.Text = "Recent workspaces"; + // + // radMenuSeparatorItem3 + // + radMenuSeparatorItem3.Name = "radMenuSeparatorItem3"; + radMenuSeparatorItem3.Text = "radMenuSeparatorItem3"; + radMenuSeparatorItem3.TextAlignment = ContentAlignment.MiddleLeft; + // // MainForm // AutoScaleBaseSize = new Size(7, 15); AutoScaleDimensions = new SizeF(7F, 15F); AutoScaleMode = AutoScaleMode.Font; ClientSize = new Size(800, 450); + // + // radMenu1 + // + radMenu1.Items.AddRange(new Telerik.WinControls.RadItem[] { radMenuItem_Workspace, radMenuItem_Updates, radMenuItem_Tools }); + radMenu1.Location = new Point(0, 0); + radMenu1.Name = "radMenu1"; + radMenu1.Size = new Size(800, 28); + radMenu1.TabIndex = 1; Controls.Add(radWaitingBar_Actions); Controls.Add(radWaitingBar_Updates); Controls.Add(radSplitContainer1); @@ -316,9 +311,9 @@ partial class MainForm tableLayoutPanel1.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)radGridView_Actions.MasterTemplate).EndInit(); ((System.ComponentModel.ISupportInitialize)radGridView_Actions).EndInit(); - ((System.ComponentModel.ISupportInitialize)radMenu1).EndInit(); ((System.ComponentModel.ISupportInitialize)radWaitingBar_Updates).EndInit(); ((System.ComponentModel.ISupportInitialize)radWaitingBar_Actions).EndInit(); + ((System.ComponentModel.ISupportInitialize)radMenu1).EndInit(); ((System.ComponentModel.ISupportInitialize)this).EndInit(); ResumeLayout(false); PerformLayout(); @@ -337,8 +332,6 @@ partial class MainForm private TableLayoutPanel tableLayoutPanel1; private Telerik.WinControls.UI.RadGridView radGridView_Actions; private Telerik.WinControls.UI.RadMenuSeparatorItem radMenuSeparatorItem1; - private Telerik.WinControls.UI.RadMenuItem radMenuItem_OpenNewWorkspace; - private Telerik.WinControls.UI.RadMenuItem radMenuItem_RecentWorkspaces; private Telerik.WinControls.UI.RadMenuItem radMenuItem_SaveWorkspace; private Telerik.WinControls.UI.RadWaitingBar radWaitingBar_Updates; private Telerik.WinControls.UI.DotsRingWaitingBarIndicatorElement dotsRingWaitingBarIndicatorElement1; @@ -350,4 +343,7 @@ partial class MainForm private Telerik.WinControls.UI.RadMenuSeparatorItem radMenuSeparatorItem2; private Telerik.WinControls.UI.RadMenuItem radMenuItem_CreateUpdate; private Telerik.WinControls.UI.RadMenuItem radMenuItem_RemoveUpdate; + private Telerik.WinControls.UI.RadMenuHeaderItem radMenuHeaderItem_NewWorkspace; + private Telerik.WinControls.UI.RadMenuSeparatorItem radMenuSeparatorItem3; + private Telerik.WinControls.UI.RadMenuHeaderItem radMenuHeaderItem_RecentWorkspaces; } diff --git a/ModpackUpdater.Apps.Manager/Ui/MainForm.cs b/ModpackUpdater.Apps.Manager/Ui/MainForm.cs index 135e32b..8d6e88c 100644 --- a/ModpackUpdater.Apps.Manager/Ui/MainForm.cs +++ b/ModpackUpdater.Apps.Manager/Ui/MainForm.cs @@ -34,8 +34,8 @@ public partial class MainForm : RadForm, IMainApi radMenuItem_Workspace.SvgImage = Program.Symbols.GetSvgImage(AppSymbols.workspace, SymbolSize.Small); radMenuItem_WorkspacePreferences.SvgImage = Program.Symbols.GetSvgImage(AppSymbols.settings, SymbolSize.Small); radMenuItem_SaveWorkspace.SvgImage = Program.Symbols.GetSvgImage(AppSymbols.save, SymbolSize.Small); - radMenuItem_OpenNewWorkspace.SvgImage = Program.Symbols.GetSvgImage(AppSymbols.new_window, SymbolSize.Small); - radMenuItem_RecentWorkspaces.SvgImage = Program.Symbols.GetSvgImage(AppSymbols.time_machine, SymbolSize.Small); + //radMenuItem_OpenNewWorkspace.SvgImage = Program.Symbols.GetSvgImage(AppSymbols.new_window, SymbolSize.Small); + //radMenuItem_RecentWorkspaces.SvgImage = Program.Symbols.GetSvgImage(AppSymbols.time_machine, SymbolSize.Small); radMenuItem_Updates.SvgImage = Program.Symbols.GetSvgImage(AppSymbols.update_done, SymbolSize.Small); radMenuItem_EditUpdate.SvgImage = Program.Symbols.GetSvgImage(AppSymbols.edit, SymbolSize.Small); radMenuItem_CreateUpdate.SvgImage = Program.Symbols.GetSvgImage(AppSymbols.add, SymbolSize.Small); @@ -44,23 +44,27 @@ public partial class MainForm : RadForm, IMainApi radMenuItem_SaveWorkspace.Shortcuts.Add(new(Keys.Control, Keys.S)); - PluginFeatureController.Instance.Features.Get(FeatureTypes.Workspace).InsertItemsTo(radMenuItem_OpenNewWorkspace.Items, customClickHandler: RadMenuItem_OpenNewWorkspace_Click, insertPrioSplitters: true); - PluginFeatureController.Instance.Functions.Get(FeatureTypes.Tools).InsertItemsTo(radMenuItem_Tools.Items, customClickHandler: RadMenuItem_ToolsItem_Click, insertPrioSplitters: true); + PluginFeatureController.Instance.Features.Get(FeatureTypes.Workspace).InsertItemsTo(radMenuItem_Workspace.Items, + customClickHandler: RadMenuItem_OpenNewWorkspace_Click, + insertPrioSplitters: true, + customDefault: radMenuItem_Workspace.Items.IndexOf(radMenuHeaderItem_NewWorkspace) + 1); + PluginFeatureController.Instance.Functions.Get(FeatureTypes.Tools).InsertItemsTo(radMenuItem_Tools.Items, + customClickHandler: RadMenuItem_ToolsItem_Click, + insertPrioSplitters: true); } private void LoadRecentWorkspaces() { var settings = Program.Settings.Get(); + var startIndex = radMenuItem_Workspace.Items.IndexOf(radMenuHeaderItem_RecentWorkspaces) + 1; - radMenuItem_RecentWorkspaces.Items.Clear(); + foreach (var item in radMenuItem_Workspace.Items.Where(n => n.Tag is RecentFilesItemTag).ToArray()) + radMenuItem_Workspace.Items.Remove(item); - foreach (var config in settings.Workspaces.ToArray()) + foreach (var config in settings.Workspaces) { if (PluginFeatureController.Instance.Features.Get(FeatureTypes.Workspace).OfType().FirstOrDefault(n => n.Identifier == config.ProviderId) is not WorkspaceFeature feature) - { - settings.Workspaces.Remove(config); continue; - } var item = new RadMenuItem { @@ -71,13 +75,8 @@ public partial class MainForm : RadForm, IMainApi item.Click += RadMenuItem_OpenRecentWorkspace_Click; - radMenuItem_RecentWorkspaces.Items.Add(item); + radMenuItem_Workspace.Items.Insert(startIndex++, item); } - - if (radMenuItem_RecentWorkspaces.Items.Any()) - radMenuItem_RecentWorkspaces.Visibility = ElementVisibility.Visible; - else - radMenuItem_RecentWorkspaces.Visibility = ElementVisibility.Collapsed; } private void AddToRecentFiles(IWorkspace workspace)