diff --git a/CHANGELIST.md b/CHANGELIST.md index f0ddccff..af5cb7f2 100644 --- a/CHANGELIST.md +++ b/CHANGELIST.md @@ -5,6 +5,7 @@ - Make FillFromRedump private again - Fix DVD layer finding corner case - Fix failing module tests +- Add option to limit region and language selections ### 2.3 (2022-02-05) - Start overhauling Redump information pulling, again diff --git a/MPF.Core/Data/Options.cs b/MPF.Core/Data/Options.cs index 350753fa..872f4f06 100644 --- a/MPF.Core/Data/Options.cs +++ b/MPF.Core/Data/Options.cs @@ -306,6 +306,15 @@ namespace MPF.Core.Data set { _settings["EnableTabsInInputFields"] = value.ToString(); } } + /// + /// Limit language and region selections to Redump-supported only + /// + public bool EnableRedumpCompatibility + { + get { return GetBooleanSetting(_settings, "EnableRedumpCompatibility", true); } + set { _settings["EnableRedumpCompatibility"] = value.ToString(); } + } + /// /// Show disc eject reminder before the disc information window is shown /// diff --git a/MPF/ViewModels/DiscInformationViewModel.cs b/MPF/ViewModels/DiscInformationViewModel.cs index 173b9143..ba5d3b1e 100644 --- a/MPF/ViewModels/DiscInformationViewModel.cs +++ b/MPF/ViewModels/DiscInformationViewModel.cs @@ -35,11 +35,152 @@ namespace MPF.GUI.ViewModels /// public List> Regions { get; private set; } = Element.GenerateElements().ToList(); + /// + /// List of Redump-supported Regions + /// + private static readonly List RedumpRegions = new List + { + Region.Argentina, + Region.Asia, + Region.AsiaEurope, + Region.AsiaUSA, + Region.Australia, + Region.AustraliaGermany, + Region.AustraliaNewZealand, + Region.Austria, + Region.AustriaSwitzerland, + Region.Belarus, + Region.Belgium, + Region.BelgiumNetherlands, + Region.Brazil, + Region.Bulgaria, + Region.Canada, + Region.China, + Region.Croatia, + Region.Czechia, + Region.Denmark, + Region.Estonia, + Region.Europe, + Region.EuropeAsia, + Region.EuropeAustralia, + Region.EuropeCanada, + Region.EuropeGermany, + Region.Export, + Region.Finland, + Region.France, + Region.FranceSpain, + Region.Germany, + Region.GreaterChina, + Region.Greece, + Region.Hungary, + Region.Iceland, + Region.India, + Region.Ireland, + Region.Israel, + Region.Italy, + Region.Japan, + Region.JapanAsia, + Region.JapanEurope, + Region.JapanKorea, + Region.JapanUSA, + Region.SouthKorea, + Region.LatinAmerica, + Region.Lithuania, + Region.Netherlands, + Region.NewZealand, + Region.Norway, + Region.Poland, + Region.Portugal, + Region.Romania, + Region.RussianFederation, + Region.Scandinavia, + Region.Serbia, + Region.Singapore, + Region.Slovakia, + Region.SouthAfrica, + Region.Spain, + Region.SpainPortugal, + Region.Sweden, + Region.Switzerland, + Region.Taiwan, + Region.Thailand, + Region.Turkey, + Region.UnitedArabEmirates, + Region.UnitedKingdom, + Region.UKAustralia, + Region.Ukraine, + Region.UnitedStatesOfAmerica, + Region.USAAsia, + Region.USAAustralia, + Region.USABrazil, + Region.USACanada, + Region.USAEurope, + Region.USAGermany, + Region.USAJapan, + Region.USAKorea, + Region.World, + }; + /// /// List of available languages /// public List> Languages { get; private set; } = Element.GenerateElements().ToList(); + /// + /// List of Redump-supported Languages + /// + private static readonly List RedumpLanguages = new List + { + Language.Afrikaans, + Language.Albanian, + Language.Arabic, + Language.Armenian, + Language.Basque, + Language.Belarusian, + Language.Bulgarian, + Language.Catalan, + Language.Chinese, + Language.Croatian, + Language.Czech, + Language.Danish, + Language.Dutch, + Language.English, + Language.Estonian, + Language.Finnish, + Language.French, + Language.Gaelic, + Language.German, + Language.Greek, + Language.Hebrew, + Language.Hindi, + Language.Hungarian, + Language.Icelandic, + Language.Indonesian, + Language.Italian, + Language.Japanese, + Language.Korean, + Language.Latin, + Language.Latvian, + Language.Lithuanian, + Language.Macedonian, + Language.Norwegian, + Language.Polish, + Language.Portuguese, + Language.Panjabi, + Language.Romanian, + Language.Russian, + Language.Serbian, + Language.Slovak, + Language.Slovenian, + Language.Spanish, + Language.Swedish, + Language.Tamil, + Language.Thai, + Language.Turkish, + Language.Ukrainian, + Language.Vietnamese, + }; + /// /// List of available languages /// @@ -55,6 +196,13 @@ namespace MPF.GUI.ViewModels Parent = parent; SubmissionInfo = submissionInfo.Clone() as SubmissionInfo ?? new SubmissionInfo(); + // Limit lists, if necessary + if (App.Options.EnableRedumpCompatibility) + { + SetRedumpRegions(); + SetRedumpLanguages(); + } + // Add handlers Parent.AcceptButton.Click += OnAcceptClick; Parent.CancelButton.Click += OnCancelClick; @@ -431,6 +579,22 @@ namespace MPF.GUI.ViewModels #endregion } + /// + /// Repopulate the list of Languages based on Redump support + /// + private void SetRedumpLanguages() + { + this.Languages = RedumpLanguages.Select(l => new Element(l)).ToList(); + } + + /// + /// Repopulate the list of Regions based on Redump support + /// + private void SetRedumpRegions() + { + this.Regions = RedumpRegions.Select(r => new Element(r)).ToList(); + } + /// /// Update visible fields and sections based on the media type /// diff --git a/MPF/Windows/OptionsWindow.xaml b/MPF/Windows/OptionsWindow.xaml index 42ea2e40..4ea9729e 100644 --- a/MPF/Windows/OptionsWindow.xaml +++ b/MPF/Windows/OptionsWindow.xaml @@ -173,9 +173,14 @@ /> + IsChecked="{Binding Options.EnableTabsInInputFields}" + ToolTip="Enable entering tabs in supported input fields instead of tab navigation" Margin="0,4" + /> + +