コード例 #1
0
        private void UpdateProcessList()
        {
            CompileProcessesListBox.BeginAnimation(OpacityProperty, new DoubleAnimation(0, 1, new Duration(TimeSpan.FromMilliseconds(50))));


            int currentIndex = CompileProcessesListBox.SelectedIndex;

            CompileProcessesSubList.Clear();

            CompileProcessesListBox.Items.SortDescriptions.Add(new SortDescription("Ordering", ListSortDirection.Ascending));

            foreach (CompileProcess p in ConfigurationManager.CompileProcesses)
            {
                if (ConfigurationManager.CurrentPreset != null)
                {
                    if (p.PresetDictionary.ContainsKey(ConfigurationManager.CurrentPreset))
                    {
                        CompileProcessesSubList.Add(p);
                    }
                }
            }

            if (currentIndex < CompileProcessesListBox.Items.Count && currentIndex >= 0)
            {
                CompileProcessesListBox.SelectedIndex = currentIndex;
            }
        }
コード例 #2
0
        private void UpdateProcessList()
        {
            CompileProcessesListBox.BeginAnimation(OpacityProperty, new DoubleAnimation(0, 1, new Duration(TimeSpan.FromMilliseconds(50))));


            int currentIndex = CompileProcessesListBox.SelectedIndex;

            if (!string.IsNullOrWhiteSpace(ConfigurationManager.CurrentPresetMap) && CompileProcessesSubList.Keys.Any(x => x == ConfigurationManager.CurrentPresetMap))
            {
                CompileProcessesSubList[ConfigurationManager.CurrentPresetMap].Clear();
            }

            CompileProcessesListBox.Items.SortDescriptions.Add(new SortDescription("Ordering", ListSortDirection.Ascending));

            if (!CompileProcessesSubList.Keys.Any(x => x == ConfigurationManager.CurrentPresetMap))
            {
                CompileProcessesSubList.Add(ConfigurationManager.CurrentPresetMap, new ObservableCollection <CompileProcess>());
            }

            var compileProcessesList = !string.IsNullOrWhiteSpace(ConfigurationManager.CurrentPresetMap) && ConfigurationManager.CompileProcesses.Any() && ConfigurationManager.CompileProcesses.Keys.Any(x => x == ConfigurationManager.CurrentPresetMap)
                                            ? ConfigurationManager.CompileProcesses[ConfigurationManager.CurrentPresetMap]
                                            : new ObservableCollection <CompileProcess>();

            foreach (CompileProcess p in compileProcessesList)
            {
                if (!string.IsNullOrWhiteSpace(ConfigurationManager.CurrentPresetMap))
                {
                    if (ConfigurationManager.PresetMapDictionary.Keys.Any(x => x == ConfigurationManager.CurrentPresetMap) && ConfigurationManager.PresetMapDictionary[ConfigurationManager.CurrentPresetMap].Keys.Any(x => x == p.Name))
                    {
                        CompileProcessesSubList[ConfigurationManager.CurrentPresetMap].Add(p);
                    }
                }
            }

            if (currentIndex < CompileProcessesListBox.Items.Count && currentIndex >= 0)
            {
                CompileProcessesListBox.SelectedIndex = currentIndex;
            }

            // CompilePalMulti v003.1 changes brought differences to the mapfiles.json file. We need to automatically update that file for PresetsMaps created on previous versions
            if (!string.IsNullOrWhiteSpace(ConfigurationManager.CurrentPresetMap) && CompilingManager.MapFiles[ConfigurationManager.CurrentPresetMap] != null)
            {
                if (CompilingManager.MapFiles[ConfigurationManager.CurrentPresetMap].Processes == null)
                {
                    CompilingManager.MapFiles[ConfigurationManager.CurrentPresetMap].Processes = new Dictionary <string, MapProcess>();
                }

                foreach (var process in CompileProcessesSubList[ConfigurationManager.CurrentPresetMap])
                {
                    if (!CompilingManager.MapFiles[ConfigurationManager.CurrentPresetMap].Processes.Any(x => x.Key == process.Name))
                    {
                        CompilingManager.MapFiles[ConfigurationManager.CurrentPresetMap].Processes.Add(process.Name, new MapProcess());
                    }
                }

                PersistenceManager.ForceMapFilesWrite();
            }
            //
        }