示例#1
0
        public ModderToolsViewModel()
        {
            // Enable Collection Synchronization on all ObservableCollection objects
            BindingOperations.EnableCollectionSynchronization(ModFiles, _lockModFiles);
            BindingOperations.EnableCollectionSynchronization(ModTags, _lockModTags);
            BindingOperations.EnableCollectionSynchronization(ExtractableFolders, _lockExtractableFolders);

            DisplayName                    = Strings.ModderToolsViewModel_DisplayName;
            _ModFilesView.Source           = ModFiles;
            _ModTagsView.Source            = ModTags;
            _ExtractableFoldersView.Source = ExtractableFolders;

            // Load mod tags
            foreach (var tag in JsonConvert.DeserializeObject <List <ModTagViewModel> >(Resources.ModTags))
            {
                ModTags.Add(tag);
            }

            _ModTagsView.IsLiveGroupingRequested = true;
            ModTagsView.GroupDescriptions.Add(new PropertyGroupDescription("Category"));

            ModTagsView.SortDescriptions.Clear();
            ModTagsView.SortDescriptions.Add(new SortDescription("Category", ListSortDirection.Descending));
            ModTagsView.SortDescriptions.Add(new SortDescription("Title", ListSortDirection.Ascending));
        }
示例#2
0
        private void LoadYaml(string yamlPath)
        {
            try
            {
                log.InfoFormat("Loading YAML file: {0}", yamlPath);

                string yamlContents = File.ReadAllText(yamlPath);
                var    details      = ModDetails.LoadFromYaml(yamlContents);

                Clear();
                ModAuthor  = details.Author;
                ModTitle   = details.Title;
                ModNotes   = details.Notes;
                ModPreview = details.PreviewPath;
                string preview = TroveMod.GetOverridePath(details.PreviewPath, PrimaryLocationPath);
                if (!string.IsNullOrWhiteSpace(preview) && File.Exists(preview) && (preview.EndsWith(".png", StringComparison.OrdinalIgnoreCase) || preview.EndsWith(".jpg", StringComparison.OrdinalIgnoreCase)))
                {
                    PreviewImage = preview;
                }

                foreach (string file in details.Files)
                {
                    ModFiles.Add(file);
                }

                foreach (string tag in details.Tags)
                {
                    var modTag = ModTags.FirstOrDefault(t => t.Title.Equals(tag, StringComparison.OrdinalIgnoreCase));
                    if (modTag != null)
                    {
                        modTag.Selected = true;
                    }
                    else
                    {
                        AdditionalTags = string.IsNullOrWhiteSpace(AdditionalTags) ? tag : string.Format("{0}, {1}", AdditionalTags, tag);
                    }
                }
            }
            catch (Exception ex) { log.Error(string.Format("Error loading YAML file {0}", yamlPath), ex); }
        }