Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
        public void LoadMissingShortcutsTest()
        {
            _settings.Clear();
            ShortcutItems items = _settings.GetObject <ShortcutItems>("RandomCrap", "InvalidKey");

            Assert.AreEqual(items, null);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
        }