/// <summary>Load shortcuts into systray from config file</summary> /// <returns>Menu item</returns> public List <MenuItem> LoadAsMenuItems() { List <MenuItem> shortcutItems = new List <MenuItem>(); ShortcutItems shortcuts = Program.Settings.GetObject <ShortcutItems>(ShortcutsAddinId, ShortcutItemsKey); if (shortcuts == null) { Log.Debug($"No shortcuts found. Loading default"); var item = new ExtensionModel.SystemTray.TrayItem("Create test JSON...", "", true, OnGenerateSampleShortcuts); MenuItem menu = new MenuItem("Shortcuts"); menu.MenuItems.Add(0, item); shortcutItems.Add(menu); } else { // TODO: Let the user decide if they want a parent-menu item or not; fornow, make one MenuItem menu = new MenuItem("Shortcuts"); List <MenuItem> items = new List <MenuItem>(); int ndx = 0; foreach (ShortcutItem shortcut in shortcuts) { var subItem = new ExtensionModel.SystemTray.TrayItem(shortcut.Title, shortcut.Target, true, OnExecuteShortcut); menu.MenuItems.Add(ndx, subItem); ndx++; } shortcutItems.Add(menu); } return(shortcutItems); }
public void LoadMissingShortcutsTest() { _settings.Clear(); ShortcutItems items = _settings.GetObject <ShortcutItems>("RandomCrap", "InvalidKey"); Assert.AreEqual(items, null); }
public void SaveJsonInJsonTest() { _settings.Clear(); _settings.SetValue("MyTitle", "MyKey", "MyValue"); string testValue = _settings.GetValue("MyTitle", "MyKey", string.Empty); Assert.AreEqual(testValue, "MyValue"); _settings.SaveFile(); // Strap-on a new JSON element var items = new ShortcutItems { new ShortcutItem { Title = "FolderA", Target = @"C:\Test1" }, new ShortcutItem { Title = "FolderB", Target = @"C:\Test2\Sub1" }, new ShortcutItem { Title = "FolderC", Target = @"C:\Test3\Sub1\Sub2" }, new ShortcutItem { Title = "Web1", Target = @"https://www.xenoinc.com/" }, new ShortcutItem { Title = "-", Target = string.Empty }, new ShortcutItem { Title = "Manage Shortcuts", Target = "SomePath" }, }; string json = JsonConvert.SerializeObject(items, Formatting.None); _settings.SetValue("MyJsonTest", "TestShortcuts", json); _settings.SaveFile(); string storedJson = _settings.GetValue("MyJsonTest", "TestShortcuts", string.Empty); Assert.AreEqual(json, storedJson); // Log.Debug(storedJson); Log.Debug("BEFORE:" + System.Environment.NewLine + _settings.ToString); // Clean the slate and re-load _settings.SaveFile(); _settings.Clear(); _settings.LoadFile(); ShortcutItems items2 = _settings.GetObject <ShortcutItems>("MyJsonTest", "TestShortcuts"); Log.Debug(_settings.ToString); Assert.IsNotNull(items2); Assert.AreEqual(items2.Count, 6); }
public int OnGenerateSampleShortcuts(string target) { // TODO: 1. Open dialog to create custom shorts // TODO: 2. Force SysTray to refresh itself Log.Debug($"Generating a sample ShortcutItems"); var items = new ShortcutItems { new ShortcutItem { Title = "C-Drive", Target = @"C:\" }, new ShortcutItem { Title = "D-Drive", Target = @"D:\" }, }; ShortcutItems = items; Save(); // TODO: MessageSender to refresh SysTray - Managers.SystemTray.SystemTrayManager.Refresh(); return(0); }