diff --git a/CHANGELIST.md b/CHANGELIST.md
index 1ef386a2..9336e48b 100644
--- a/CHANGELIST.md
+++ b/CHANGELIST.md
@@ -32,6 +32,7 @@
- Split info window code a bit more
- Clarify build instructions in README (Deterous)
- Split options window code a bit more
+- Use binding for more disc info textboxes
### 2.6.6 (2023-10-04)
diff --git a/MPF.UI.Core/ViewModels/DiscInformationViewModel.cs b/MPF.UI.Core/ViewModels/DiscInformationViewModel.cs
index 2f30042a..7a2b6ce7 100644
--- a/MPF.UI.Core/ViewModels/DiscInformationViewModel.cs
+++ b/MPF.UI.Core/ViewModels/DiscInformationViewModel.cs
@@ -212,156 +212,21 @@ namespace MPF.UI.Core.ViewModels
if (SubmissionInfo.CommonDiscInfo.LanguageSelection != null)
LanguageSelections.ForEach(ls => ls.IsChecked = SubmissionInfo.CommonDiscInfo.LanguageSelection.Contains(ls));
- // TODO: Figure out if this can be automatically mapped instead
-
// Comment Fields
if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields != null)
{
// Additional Information
- if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.AlternativeTitle))
- parent.AlternativeTitleTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.AlternativeTitle];
- if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.AlternativeForeignTitle))
- parent.AlternativeForeignTitleTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.AlternativeForeignTitle];
- if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.Genre))
- parent.GenreTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.Genre];
if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.PostgapType))
parent.PostgapTypeCheckBox.IsChecked = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.PostgapType] != null;
- if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.Series))
- parent.SeriesTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.Series];
if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.VCD))
parent.VCDCheckBox.IsChecked = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.VCD] != null;
-
- // Physical Identifiers
- if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.BBFCRegistrationNumber))
- parent.BBFCRegistrationNumberTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.BBFCRegistrationNumber];
- if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.CDProjektID))
- parent.CDProjektIDTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.CDProjektID];
- if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.DiscHologramID))
- parent.DiscHologramIDTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.DiscHologramID];
- if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.DNASDiscID))
- parent.DNASDiscIDTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.DNASDiscID];
- if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.ISBN))
- parent.ISBNTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.ISBN];
- if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.ISSN))
- parent.ISSNTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.ISSN];
- if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.PPN))
- parent.PPNTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.PPN];
- if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.VFCCode))
- parent.VFCCodeTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.VFCCode];
-
- // Publisher Identifiers
- if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.AcclaimID))
- parent.AcclaimIDTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.AcclaimID];
- if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.ActivisionID))
- parent.ActivisionIDTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.ActivisionID];
- if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.BandaiID))
- parent.BandaiIDTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.BandaiID];
- if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.ElectronicArtsID))
- parent.ElectronicArtsIDTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.ElectronicArtsID];
- if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.FoxInteractiveID))
- parent.FoxInteractiveIDTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.FoxInteractiveID];
- if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.GTInteractiveID))
- parent.GTInteractiveIDTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.GTInteractiveID];
- if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.JASRACID))
- parent.JASRACIDTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.JASRACID];
- if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.KingRecordsID))
- parent.KingRecordsIDTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.KingRecordsID];
- if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.KoeiID))
- parent.KoeiIDTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.KoeiID];
- if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.KonamiID))
- parent.KonamiIDTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.KonamiID];
- if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.LucasArtsID))
- parent.LucasArtsIDTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.LucasArtsID];
- if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.MicrosoftID))
- parent.MicrosoftIDTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.MicrosoftID];
- if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.NaganoID))
- parent.NaganoIDTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.NaganoID];
- if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.NamcoID))
- parent.NamcoIDTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.NamcoID];
- if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.NipponIchiSoftwareID))
- parent.NipponIchiSoftwareIDTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.NipponIchiSoftwareID];
- if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.OriginID))
- parent.OriginIDTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.OriginID];
- if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.PonyCanyonID))
- parent.PonyCanyonIDTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.PonyCanyonID];
- if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.SegaID))
- parent.SegaIDTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.SegaID];
- if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.SelenID))
- parent.SelenIDTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.SelenID];
- if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.SierraID))
- parent.SierraIDTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.SierraID];
- if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.TaitoID))
- parent.TaitoIDTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.TaitoID];
- if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.UbisoftID))
- parent.UbisoftIDTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.UbisoftID];
- if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.ValveID))
- parent.ValveIDTextBox.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.ValveID];
-
- // Read-Only Information
- if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.DMIHash))
- parent.DMIHash.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.DMIHash];
- if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.Filename))
- parent.Filename.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.Filename];
- if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.InternalName))
- parent.InternalName.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.InternalName];
- if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.InternalSerialName))
- parent.InternalSerialName.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.InternalSerialName];
- if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.Multisession))
- parent.Multisession.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.Multisession];
- if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.PFIHash))
- parent.PFIHash.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.PFIHash];
- if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.RingNonZeroDataStart))
- parent.RingNonZeroDataStart.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.RingNonZeroDataStart];
- if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.SSHash))
- parent.SSHash.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.SSHash];
- if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.SSVersion))
- parent.SSVersion.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.SSVersion];
- if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.UniversalHash))
- parent.UniversalHash.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.UniversalHash];
- if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.VolumeLabel))
- parent.VolumeLabel.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.VolumeLabel];
- if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.XeMID))
- parent.XeMID.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.XeMID];
- if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.XMID))
- parent.XMID.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.XMID];
- }
-
- // Content Fields
- if (SubmissionInfo.CommonDiscInfo.ContentsSpecialFields != null)
- {
- // Games
- if (SubmissionInfo.CommonDiscInfo.ContentsSpecialFields.ContainsKey(SiteCode.Games))
- parent.GamesTextBox.Text = SubmissionInfo.CommonDiscInfo.ContentsSpecialFields[SiteCode.Games];
- if (SubmissionInfo.CommonDiscInfo.ContentsSpecialFields.ContainsKey(SiteCode.NetYarozeGames))
- parent.NetYarozeGamesTextBox.Text = SubmissionInfo.CommonDiscInfo.ContentsSpecialFields[SiteCode.NetYarozeGames];
-
- // Demos
- if (SubmissionInfo.CommonDiscInfo.ContentsSpecialFields.ContainsKey(SiteCode.PlayableDemos))
- parent.PlayableDemosTextBox.Text = SubmissionInfo.CommonDiscInfo.ContentsSpecialFields[SiteCode.PlayableDemos];
- if (SubmissionInfo.CommonDiscInfo.ContentsSpecialFields.ContainsKey(SiteCode.RollingDemos))
- parent.RollingDemosTextBox.Text = SubmissionInfo.CommonDiscInfo.ContentsSpecialFields[SiteCode.RollingDemos];
- if (SubmissionInfo.CommonDiscInfo.ContentsSpecialFields.ContainsKey(SiteCode.TechDemos))
- parent.TechDemosTextBox.Text = SubmissionInfo.CommonDiscInfo.ContentsSpecialFields[SiteCode.TechDemos];
-
- // Video
- if (SubmissionInfo.CommonDiscInfo.ContentsSpecialFields.ContainsKey(SiteCode.GameFootage))
- parent.GameFootageTextBox.Text = SubmissionInfo.CommonDiscInfo.ContentsSpecialFields[SiteCode.GameFootage];
- if (SubmissionInfo.CommonDiscInfo.ContentsSpecialFields.ContainsKey(SiteCode.Videos))
- parent.VideosTextBox.Text = SubmissionInfo.CommonDiscInfo.ContentsSpecialFields[SiteCode.Videos];
-
- // Miscellaneous
- if (SubmissionInfo.CommonDiscInfo.ContentsSpecialFields.ContainsKey(SiteCode.Patches))
- parent.PatchesTextBox.Text = SubmissionInfo.CommonDiscInfo.ContentsSpecialFields[SiteCode.Patches];
- if (SubmissionInfo.CommonDiscInfo.ContentsSpecialFields.ContainsKey(SiteCode.Savegames))
- parent.SavegamesTextBox.Text = SubmissionInfo.CommonDiscInfo.ContentsSpecialFields[SiteCode.Savegames];
- if (SubmissionInfo.CommonDiscInfo.ContentsSpecialFields.ContainsKey(SiteCode.Extras))
- parent.ExtrasTextBox.Text = SubmissionInfo.CommonDiscInfo.ContentsSpecialFields[SiteCode.Extras];
}
}
///
/// Save the current contents of the UI to the base SubmissionInfo
///
+ /// TODO: Convert selected list item to binding
internal void Save(DiscInformationWindow parent)
{
SubmissionInfo.CommonDiscInfo.Category = (parent.CategoryComboBox.SelectedItem as Element)?.Value ?? DiscCategory.Games;
@@ -371,8 +236,6 @@ namespace MPF.UI.Core.ViewModels
SubmissionInfo.CommonDiscInfo.Languages = new Language?[] { null };
SubmissionInfo.CommonDiscInfo.LanguageSelection = LanguageSelections.Where(ls => ls.IsChecked).Select(ls => ls?.Value).ToArray();
- // TODO: Figure out if this can be automatically mapped instead
-
// Initialize the dictionaries, if needed
if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields == null)
#if NET48
@@ -390,85 +253,9 @@ namespace MPF.UI.Core.ViewModels
#region Comment Fields
// Additional Information
- SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.AlternativeTitle] = parent.AlternativeTitleTextBox.Text;
- SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.AlternativeForeignTitle] = parent.AlternativeForeignTitleTextBox.Text;
- SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.Genre] = parent.GenreTextBox.Text;
SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.PostgapType] = parent.PostgapTypeCheckBox.IsChecked?.ToString();
- SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.Series] = parent.SeriesTextBox.Text;
SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.VCD] = parent.VCDCheckBox.IsChecked?.ToString();
- // Physical Identifiers
- SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.BBFCRegistrationNumber] = parent.BBFCRegistrationNumberTextBox.Text;
- SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.CDProjektID] = parent.CDProjektIDTextBox.Text;
- SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.DiscHologramID] = parent.DiscHologramIDTextBox.Text;
- SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.DNASDiscID] = parent.DNASDiscIDTextBox.Text;
- SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.ISBN] = parent.ISBNTextBox.Text;
- SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.ISSN] = parent.ISSNTextBox.Text;
- SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.PPN] = parent.PPNTextBox.Text;
- SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.VFCCode] = parent.VFCCodeTextBox.Text;
-
- // Publisher Identifiers
- SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.AcclaimID] = parent.AcclaimIDTextBox.Text;
- SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.ActivisionID] = parent.ActivisionIDTextBox.Text;
- SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.BandaiID] = parent.BandaiIDTextBox.Text;
- SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.ElectronicArtsID] = parent.ElectronicArtsIDTextBox.Text;
- SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.FoxInteractiveID] = parent.FoxInteractiveIDTextBox.Text;
- SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.GTInteractiveID] = parent.GTInteractiveIDTextBox.Text;
- SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.JASRACID] = parent.JASRACIDTextBox.Text;
- SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.KingRecordsID] = parent.KingRecordsIDTextBox.Text;
- SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.KoeiID] = parent.KoeiIDTextBox.Text;
- SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.KonamiID] = parent.KonamiIDTextBox.Text;
- SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.LucasArtsID] = parent.LucasArtsIDTextBox.Text;
- SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.MicrosoftID] = parent.MicrosoftIDTextBox.Text;
- SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.NaganoID] = parent.NaganoIDTextBox.Text;
- SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.NamcoID] = parent.NamcoIDTextBox.Text;
- SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.NipponIchiSoftwareID] = parent.NipponIchiSoftwareIDTextBox.Text;
- SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.OriginID] = parent.OriginIDTextBox.Text;
- SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.PonyCanyonID] = parent.PonyCanyonIDTextBox.Text;
- SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.SegaID] = parent.SegaIDTextBox.Text;
- SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.SelenID] = parent.SelenIDTextBox.Text;
- SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.SierraID] = parent.SierraIDTextBox.Text;
- SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.TaitoID] = parent.TaitoIDTextBox.Text;
- SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.UbisoftID] = parent.UbisoftIDTextBox.Text;
- SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.ValveID] = parent.ValveIDTextBox.Text;
-
- // Read-Only Information
- SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.DMIHash] = parent.DMIHash.Text;
- SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.Filename] = parent.Filename.Text;
- SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.InternalName] = parent.InternalName.Text;
- SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.InternalSerialName] = parent.InternalSerialName.Text;
- SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.Multisession] = parent.Multisession.Text;
- SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.PFIHash] = parent.PFIHash.Text;
- SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.RingNonZeroDataStart] = parent.RingNonZeroDataStart.Text;
- SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.SSHash] = parent.SSHash.Text;
- SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.SSVersion] = parent.SSVersion.Text;
- SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.UniversalHash] = parent.UniversalHash.Text;
- SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.VolumeLabel] = parent.VolumeLabel.Text;
- SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.XeMID] = parent.XeMID.Text;
- SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.XMID] = parent.XMID.Text;
-
- #endregion
-
- #region Content Fields
-
- // Games
- SubmissionInfo.CommonDiscInfo.ContentsSpecialFields[SiteCode.Games] = parent.GamesTextBox.Text;
- SubmissionInfo.CommonDiscInfo.ContentsSpecialFields[SiteCode.NetYarozeGames] = parent.NetYarozeGamesTextBox.Text;
-
- // Demos
- SubmissionInfo.CommonDiscInfo.ContentsSpecialFields[SiteCode.PlayableDemos] = parent.PlayableDemosTextBox.Text;
- SubmissionInfo.CommonDiscInfo.ContentsSpecialFields[SiteCode.RollingDemos] = parent.RollingDemosTextBox.Text;
- SubmissionInfo.CommonDiscInfo.ContentsSpecialFields[SiteCode.TechDemos] = parent.TechDemosTextBox.Text;
-
- // Video
- SubmissionInfo.CommonDiscInfo.ContentsSpecialFields[SiteCode.GameFootage] = parent.GameFootageTextBox.Text;
- SubmissionInfo.CommonDiscInfo.ContentsSpecialFields[SiteCode.Videos] = parent.VideosTextBox.Text;
-
- // Miscellaneous
- SubmissionInfo.CommonDiscInfo.ContentsSpecialFields[SiteCode.Patches] = parent.PatchesTextBox.Text;
- SubmissionInfo.CommonDiscInfo.ContentsSpecialFields[SiteCode.Savegames] = parent.SavegamesTextBox.Text;
- SubmissionInfo.CommonDiscInfo.ContentsSpecialFields[SiteCode.Extras] = parent.ExtrasTextBox.Text;
-
#endregion
}
diff --git a/MPF.UI.Core/Windows/DiscInformationWindow.xaml b/MPF.UI.Core/Windows/DiscInformationWindow.xaml
index b14b1562..5239dff3 100644
--- a/MPF.UI.Core/Windows/DiscInformationWindow.xaml
+++ b/MPF.UI.Core/Windows/DiscInformationWindow.xaml
@@ -4,6 +4,7 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:controls="clr-namespace:MPF.UI.Core.UserControls"
+ xmlns:redump="clr-namespace:SabreTools.RedumpLib.Data;assembly=SabreTools.RedumpLib"
xmlns:windows="clr-namespace:MPF.UI.Core.Windows"
mc:Ignorable="d"
Title="Disc Information" Width="515" WindowStyle="None"
@@ -74,10 +75,12 @@
-
+
-
+
+ Style="{DynamicResource CustomComboBoxStyle}" />
@@ -164,7 +167,8 @@
-
+
@@ -177,7 +181,8 @@
-
+
@@ -193,43 +198,74 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -245,31 +281,41 @@
+ Enter="True" TextWrapping="Wrap" VerticalContentAlignmentValue="Top"
+ Text="{Binding Path=SubmissionInfo.CommonDiscInfo.ContentsSpecialFields[(redump:SiteCode)Games], Mode=TwoWay}"/>
+ Enter="True" TextWrapping="Wrap" VerticalContentAlignmentValue="Top"
+ Text="{Binding Path=SubmissionInfo.CommonDiscInfo.ContentsSpecialFields[(redump:SiteCode)NetYarozeGames], Mode=TwoWay}"/>
+ Enter="True" TextWrapping="Wrap" VerticalContentAlignmentValue="Top"
+ Text="{Binding Path=SubmissionInfo.CommonDiscInfo.ContentsSpecialFields[(redump:SiteCode)PlayableDemos], Mode=TwoWay}"/>
+ Enter="True" TextWrapping="Wrap" VerticalContentAlignmentValue="Top"
+ Text="{Binding Path=SubmissionInfo.CommonDiscInfo.ContentsSpecialFields[(redump:SiteCode)RollingDemos], Mode=TwoWay}"/>
+ Enter="True" TextWrapping="Wrap" VerticalContentAlignmentValue="Top"
+ Text="{Binding Path=SubmissionInfo.CommonDiscInfo.ContentsSpecialFields[(redump:SiteCode)TechDemos], Mode=TwoWay}"/>
+ Enter="True" TextWrapping="Wrap" VerticalContentAlignmentValue="Top"
+ Text="{Binding Path=SubmissionInfo.CommonDiscInfo.ContentsSpecialFields[(redump:SiteCode)GameFootage], Mode=TwoWay}"/>
+ Enter="True" TextWrapping="Wrap" VerticalContentAlignmentValue="Top"
+ Text="{Binding Path=SubmissionInfo.CommonDiscInfo.ContentsSpecialFields[(redump:SiteCode)Videos], Mode=TwoWay}"/>
+ Enter="True" TextWrapping="Wrap" VerticalContentAlignmentValue="Top"
+ Text="{Binding Path=SubmissionInfo.CommonDiscInfo.ContentsSpecialFields[(redump:SiteCode)Patches], Mode=TwoWay}"/>
+ Enter="True" TextWrapping="Wrap" VerticalContentAlignmentValue="Top"
+ Text="{Binding Path=SubmissionInfo.CommonDiscInfo.ContentsSpecialFields[(redump:SiteCode)Savegames], Mode=TwoWay}"/>
+ Enter="True" TextWrapping="Wrap" VerticalContentAlignmentValue="Top"
+ Text="{Binding Path=SubmissionInfo.CommonDiscInfo.ContentsSpecialFields[(redump:SiteCode)Extras], Mode=TwoWay}"/>
@@ -339,50 +385,68 @@
-
+
-
-
-
-
+
+
+
+
+ VerticalContentAlignmentValue="Top" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto"
+ Text="{Binding Path=SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[(redump:SiteCode)Filename], Mode=TwoWay}"/>
-
-
+
+
-
+ VerticalContentAlignmentValue="Top" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto"
+ Text="{Binding Path=SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[(redump:SiteCode)Multisession], Mode=TwoWay}"/>
+
-
+
-
+
-
+
-
-
-
-
-
+
+
+
+
+
diff --git a/MPF.UI.Core/Windows/DiscInformationWindow.xaml.cs b/MPF.UI.Core/Windows/DiscInformationWindow.xaml.cs
index 57aa1ab3..d2b6d6ab 100644
--- a/MPF.UI.Core/Windows/DiscInformationWindow.xaml.cs
+++ b/MPF.UI.Core/Windows/DiscInformationWindow.xaml.cs
@@ -66,6 +66,7 @@ namespace MPF.UI.Core.Windows
///
/// Enable tab entry on supported fields
///
+ /// TODO: See if these can be done by binding
private void EnableTabsInInputFields()
{
// Additional Information
@@ -112,30 +113,24 @@ namespace MPF.UI.Core.Windows
///
/// Hide any optional, read-only fields if they don't have a value
///
+ /// TODO: Figure out how to bind the PartiallyMatchedIDs array to a text box
+ /// TODO: Convert visibility to a binding
private void HideReadOnlyFields(SubmissionInfo submissionInfo)
{
if (submissionInfo?.FullyMatchedID == null)
FullyMatchedID.Visibility = Visibility.Collapsed;
- else
- FullyMatchedID.Text = submissionInfo.FullyMatchedID.ToString();
if (submissionInfo?.PartiallyMatchedIDs == null)
PartiallyMatchedIDs.Visibility = Visibility.Collapsed;
else
PartiallyMatchedIDs.Text = string.Join(", ", submissionInfo.PartiallyMatchedIDs);
if (submissionInfo?.CopyProtection?.AntiModchip == null)
AntiModchip.Visibility = Visibility.Collapsed;
- else
- AntiModchip.Text = submissionInfo.CopyProtection.AntiModchip.LongName();
if (submissionInfo?.TracksAndWriteOffsets?.OtherWriteOffsets == null)
DiscOffset.Visibility = Visibility.Collapsed;
- else
- DiscOffset.Text = submissionInfo.TracksAndWriteOffsets.OtherWriteOffsets;
if (submissionInfo?.CommonDiscInfo?.CommentsSpecialFields.Keys.Contains(SiteCode.DMIHash) != true)
DMIHash.Visibility = Visibility.Collapsed;
if (submissionInfo?.EDC?.EDC == null)
EDC.Visibility = Visibility.Collapsed;
- else
- EDC.Text = submissionInfo.EDC.EDC.LongName();
if (string.IsNullOrWhiteSpace(submissionInfo?.CommonDiscInfo?.ErrorsCount))
ErrorsCount.Visibility = Visibility.Collapsed;
if (string.IsNullOrWhiteSpace(submissionInfo?.CommonDiscInfo?.EXEDateBuildDate))
@@ -152,8 +147,6 @@ namespace MPF.UI.Core.Windows
Multisession.Visibility = Visibility.Collapsed;
if (submissionInfo?.CopyProtection?.LibCrypt == null)
LibCrypt.Visibility = Visibility.Collapsed;
- else
- LibCrypt.Text = submissionInfo.CopyProtection.LibCrypt.LongName();
if (string.IsNullOrWhiteSpace(submissionInfo?.CopyProtection?.LibCryptData))
LibCryptData.Visibility = Visibility.Collapsed;
if (submissionInfo?.CommonDiscInfo?.CommentsSpecialFields.Keys.Contains(SiteCode.PFIHash) != true)
@@ -185,6 +178,7 @@ namespace MPF.UI.Core.Windows
///
/// Update visible fields and sections based on the media type
///
+ /// TODO: See if these can be done by binding
private void UpdateFromDiscType(SubmissionInfo submissionInfo)
{
// Sony-printed discs have layers in the opposite order
@@ -331,6 +325,7 @@ namespace MPF.UI.Core.Windows
///
/// Update visible fields and sections based on the system type
///
+ /// TODO: See if these can be done by binding
private void UpdateFromSystemType(SubmissionInfo submissionInfo)
{
var system = submissionInfo?.CommonDiscInfo?.System;