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;