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); }
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); }