Esempio n. 1
0
        private List <Favorite> LoadFavorites()
        {
            var list = new List <Favorite>();
            var root = new FavoritesProvider(ribbon).LoadFavoritesMenu();
            var ns   = root.Name.Namespace;

            // filter out the add/manage/shortcuts buttons
            var elements = root.Elements(ns + "button")
                           .Where(e => e.Attribute("onAction")?.Value == FavoritesProvider.GotoFavoriteCmd);

            int index = 0;

            foreach (var element in elements)
            {
                list.Add(new Favorite
                {
                    Index    = index++,
                    Root     = element,
                    Name     = element.Attribute("label").Value,
                    Location = element.Attribute("screentip").Value
                });
            }

            return(list);
        }
Esempio n. 2
0
        public override bool CollectSettings()
        {
            var settings = provider.GetCollection(Name);

            settings.Add("kbdshorts", shortcutsBox.Checked);

            provider.SetCollection(settings);

            // the actual favorites are stored in a separate file...

            // if nothing was deleted then check if they reordered
            if (!updated)
            {
                for (int i = 0; i < favorites.Count; i++)
                {
                    if (favorites[i].Index != i)
                    {
                        updated = true;
                        break;
                    }
                }
            }

            if (updated)
            {
                var root = FavoritesProvider.MakeMenuRoot();
                foreach (var favorite in favorites)
                {
                    root.Add(favorite.Root);
                }

                new FavoritesProvider(ribbon).SaveFavorites(root);
            }
            else if (shortcuts != shortcutsBox.Checked)
            {
                ribbon.InvalidateControl("ribFavoritesMenu");
            }

            return(false);
        }