コード例 #1
0
 public static void OpenSelectedModFolder(ModViewerItem mod)
 {
     Process.Start(mod.Source.FolderPath);
 }
コード例 #2
0
        public static void UpdateNewModsListItems()
        {
            Management.ProgramPaths.ValidateSettingsAndActiveMods(ref S3AIRActiveMods, ref Management.MainDataModel.S3AIRSettings);

            Instance.ModViewer.Clear();

            UpdateActiveAndInactiveModLists();


            foreach (ModViewerItem mod in ModsList)
            {
                Instance.ModViewer.View.Items.Add(mod);
            }

            foreach (ModViewerItem mod in ActiveModsList)
            {
                Instance.ModViewer.ActiveView.Items.Add(mod);
            }

            string CurrentFolderPath = Management.ProgramPaths.Sonic3AIRModsFolder;

            if (Instance.ModViewer.FolderView.SelectedItem != null)
            {
                CurrentFolderPath = (Instance.ModViewer.FolderView.SelectedItem as SubDirectoryItem).FilePath;
            }

            if (Instance.ModViewer.FolderView.SelectedIndex == 1)
            {
                UpdateViewerModsShowAll();
            }
            else
            {
                UpdateViewerMods();
            }

            Instance.ModViewer.Refresh();

            void UpdateViewerModsShowAll()
            {
                foreach (var item in Instance.ModViewer.View.Items)
                {
                    ModViewerItem mod = (ModViewerItem)item;
                    mod.Visibility = Visibility.Visible;
                }
            }

            void UpdateViewerMods()
            {
                foreach (var item in Instance.ModViewer.View.Items)
                {
                    ModViewerItem mod = (ModViewerItem)item;
                    if (CurrentFolderPath != null && (Instance.ModViewer.FolderView.SelectedIndex == 0 || Instance.ModViewer.FolderView.SelectedIndex == -1) && mod.IsInRootFolder)
                    {
                        mod.Visibility = Visibility.Visible;
                    }
                    else if (!(Instance.ModViewer.FolderView.SelectedIndex == 0 || Instance.ModViewer.FolderView.SelectedIndex == -1))
                    {
                        if (CurrentFolderPath != null && mod.Source.FileLocation.Contains(CurrentFolderPath))
                        {
                            mod.Visibility = Visibility.Visible;
                        }
                        else
                        {
                            mod.Visibility = Visibility.Collapsed;
                        }
                    }
                    else
                    {
                        mod.Visibility = Visibility.Collapsed;
                    }
                }
            }
        }