/// <summary> /// Load a workspace selected by the last recently used menu /// </summary> private void WorkspaceLoadLruMenuItem(object sender, EventArgs e) { string name = (sender as ToolStripMenuItem).Tag as string; // Save existing workspace before trying to load a new one if (ClassWorkspace.Save(null)) { if (ClassWorkspace.Load(name)) { App.DoRefresh(); } else { if (MessageBox.Show("The specified workspace file cannot be loaded, or the loading was cancelled." + Environment.NewLine + "Do you want to remove it from the list of recently used workspaces?", "Load Workspace", MessageBoxButtons.YesNo, MessageBoxIcon.Error) != DialogResult.Yes) { return; } // Remove the workspace file from the LRU list var lru = ClassWorkspace.GetLRU(); lru.Remove(name); ClassWorkspace.SetLRU(lru); } } }
public void BuildFileMenu() { menuMainFile.DropDownItems.Clear(); menuMainFile.DropDownItems.AddRange(PanelView.GetContextMenu(menuMainFile.DropDown)); // Add the workspace menu items ToolStripMenuItem mWkCreate = new ToolStripMenuItem("Create Workspace", null, WorkspaceCreateMenuItem); ToolStripMenuItem mWkClear = new ToolStripMenuItem("Clear Workspace", null, WorkspaceClearMenuItem); ToolStripMenuItem mWkImport = new ToolStripMenuItem("Import Workspace...", null, WorkspaceImportMenuItem); ToolStripMenuItem mWkLoad = new ToolStripMenuItem("Load Workspace...", null, WorkspaceLoadMenuItem); ToolStripMenuItem mWkSave = new ToolStripMenuItem("Save Workspace As...", null, WorkspaceSaveMenuItem); ToolStripMenuItem mWkLru = new ToolStripMenuItem("Recent Workspaces", null, WorkspaceLoadLruMenuItem); ToolStripMenuItem mExit = new ToolStripMenuItem("Exit", null, MenuExit, Keys.Alt | Keys.F4); // Fill in the last recently used workspace list of items List <string> lru = ClassWorkspace.GetLRU(); foreach (var file in lru) { mWkLru.DropDownItems.Add(new ToolStripMenuItem(file, null, WorkspaceLoadLruMenuItem) { Tag = file }); } mWkLru.Enabled = lru.Count > 0; mWkSave.Enabled = App.Repos.Current != null; menuMainFile.DropDownItems.AddRange(new ToolStripItem[] { new ToolStripSeparator(), mWkCreate, mWkClear, mWkImport, mWkLoad, mWkSave, mWkLru, new ToolStripSeparator(), mExit }); }