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"
+ />
+
+