Exemplo n.º 1
0
        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);
                        }
                    }
                }
            }
        }
Exemplo n.º 2
0
            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");
                }
            }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
 public CustomPresetEntry(bool enabled, [CanBeNull] string filename, PresetsCategory presetsCategory) : base(enabled, filename)
 {
     _presetsCategory = presetsCategory;
 }
Exemplo n.º 6
0
 public static bool LoadBuiltInPreset([NotNull] string key, [NotNull] PresetsCategory category, [NotNull] string presetName)
 {
     return(LoadPreset(key, PresetsManager.Instance.GetPresetFilename(category, presetName)));
 }
Exemplo n.º 7
0
 public HierarchicalItemsView Create(PresetsCategory category, Action <ISavedPresetEntry> action, string displayName = "")
 {
     return(new HierarchicalItemsView((o, g) => {
         action((ISavedPresetEntry)o);
     }, CreateGroup(category, displayName), false));
 }