public static void RescanCategory([NotNull] PresetsCategory category, bool reloadPresets) { foreach (var c in Instances.Values.SelectMany(x => x)) { if (c != null && Equals(c._presetable?.PresetableCategory, category)) { c.UpdateSavedPresets(); if (reloadPresets && c._selectedPresetFilename != null) { var entry = c.SavedPresets.FirstOrDefault(x => FileUtils.ArePathsEqual(x.VirtualFilename, c._selectedPresetFilename)); if (entry == null) { Logging.Warning($@"Can’t set preset to “{c._selectedPresetFilename}”, entry not found"); } else if (!ReferenceEquals(c.CurrentUserPreset, entry)) { c.CurrentUserPreset = entry; } else { c.SelectionChanged(entry); } } } } }
public ViewModel([CanBeNull] GenericModsEnabler enabler, IFilter <string> filter) { _enabler = enabler; _filter = filter; if (enabler != null) { Disabled = new BetterListCollectionView(enabler.Mods) { Filter = CreateFilter(false) }; Enabled = new BetterListCollectionView(enabler.Mods) { Filter = CreateFilter(true) }; Prepare(Enabled, "enabled"); Prepare(Disabled, "disabled"); enabler.Mods.ItemPropertyChanged += OnItemPropertyChanged; enabler.Mods.CollectionChanged += OnCollectionChanged; PresetableCategory = new PresetsCategory(enabler.ModsDirectory, ".mep"); } else { PresetableCategory = new PresetsCategory(SettingsHolder.GenericMods.GetModsDirectory(), ".mep"); } }
public HierarchicalGroup CreateGroup(PresetsCategory category, string displayName = "", string prependWithDefault = null) { IEnumerable <object> Presets() { var result = UserPresetsControl.GroupPresets(category); if (prependWithDefault != null) { var menuItem = new HierarchicalItem { Header = new TextBlock { Text = prependWithDefault, FontStyle = FontStyles.Italic } }; HierarchicalItemsView.SetValue(menuItem, null); result = result.Prepend(menuItem); } return(result); } var group = new HierarchicalGroup(displayName, Presets()); var handler = new EventHandler((sender, e) => { group.ReplaceEverythingBy(Presets()); }); PresetsManager.Instance.Watcher(category).Update += handler; _presetsHandlersToRemove.Add(new PresetsHandlerToRemove { Key = category, Handler = handler }); return(group); }
public static IEnumerable <object> GroupPresets(PresetsCategory category, [CanBeNull] Action <ISavedPresetEntry> action) { var group = new HierarchicalGroup("", UserPresetsControl.GroupPresets(category)); var result = new HierarchicalItemsView((o, g) => { action?.Invoke((ISavedPresetEntry)o); }, group, false); return(result); }
public CustomPresetEntry(bool enabled, [CanBeNull] string filename, PresetsCategory presetsCategory) : base(enabled, filename) { _presetsCategory = presetsCategory; }
public static bool LoadBuiltInPreset([NotNull] string key, [NotNull] PresetsCategory category, [NotNull] string presetName) { return(LoadPreset(key, PresetsManager.Instance.GetPresetFilename(category, presetName))); }
public HierarchicalItemsView Create(PresetsCategory category, Action <ISavedPresetEntry> action, string displayName = "") { return(new HierarchicalItemsView((o, g) => { action((ISavedPresetEntry)o); }, CreateGroup(category, displayName), false)); }