From 69b22fc7364a36b3c95a7848d53b809a0263f042 Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Thu, 30 Dec 2021 17:27:08 -0800 Subject: [PATCH] Show most read-only fields in new tab (fixes #301) --- CHANGELIST.md | 1 + MPF/ViewModels/DiscInformationViewModel.cs | 36 ++++++++++++++++++++++ MPF/Windows/DiscInformationWindow.xaml | 26 ++++++++++++++-- 3 files changed, 61 insertions(+), 2 deletions(-) diff --git a/CHANGELIST.md b/CHANGELIST.md index 88fa4b83..ed9b5f2c 100644 --- a/CHANGELIST.md +++ b/CHANGELIST.md @@ -5,6 +5,7 @@ - Clean up default handling of fields - Try to handle multi-line fields during parsing - Fix CSSKey log handling +- Show most read-only fields in new tab ### 2.2 (2021-12-30) - Fix Saturn header finding diff --git a/MPF/ViewModels/DiscInformationViewModel.cs b/MPF/ViewModels/DiscInformationViewModel.cs index ae163905..ddd74a38 100644 --- a/MPF/ViewModels/DiscInformationViewModel.cs +++ b/MPF/ViewModels/DiscInformationViewModel.cs @@ -76,6 +76,42 @@ namespace MPF.GUI.ViewModels var system = SubmissionInfo?.CommonDiscInfo?.System; bool reverseOrder = system.HasReversedRingcodes(); + // Hide read-only fields that don't have values set + if (SubmissionInfo?.MatchedIDs == null) + Parent.MatchedIDs.Visibility = Visibility.Collapsed; + else + Parent.MatchedIDs.Text = string.Join(", ", SubmissionInfo.MatchedIDs); + if (SubmissionInfo?.CopyProtection?.AntiModchip == null) + Parent.AntiModchip.Visibility = Visibility.Collapsed; + else + Parent.AntiModchip.Text = SubmissionInfo.CopyProtection.AntiModchip.LongName(); + if (string.IsNullOrWhiteSpace(SubmissionInfo?.CommonDiscInfo?.ErrorsCount)) + Parent.ErrorsCount.Visibility = Visibility.Collapsed; + if (string.IsNullOrWhiteSpace(SubmissionInfo?.CommonDiscInfo?.EXEDateBuildDate)) + Parent.EXEDateBuildDate.Visibility = Visibility.Collapsed; + if (SubmissionInfo?.EDC?.EDC == null) + Parent.EDC.Visibility = Visibility.Collapsed; + else + Parent.EDC.Text = SubmissionInfo.EDC.EDC.LongName(); + if (string.IsNullOrWhiteSpace(SubmissionInfo?.Extras?.Header)) + Parent.Header.Visibility = Visibility.Collapsed; + if (SubmissionInfo?.CopyProtection?.LibCrypt == null) + Parent.LibCrypt.Visibility = Visibility.Collapsed; + else + Parent.LibCrypt.Text = SubmissionInfo.CopyProtection.LibCrypt.LongName(); + if (string.IsNullOrWhiteSpace(SubmissionInfo?.CopyProtection?.LibCryptData)) + Parent.LibCryptData.Visibility = Visibility.Collapsed; + if (string.IsNullOrWhiteSpace(SubmissionInfo?.Extras?.PIC)) + Parent.PIC.Visibility = Visibility.Collapsed; + if (string.IsNullOrWhiteSpace(SubmissionInfo?.CopyProtection?.Protection)) + Parent.Protection.Visibility = Visibility.Collapsed; + if (string.IsNullOrWhiteSpace(SubmissionInfo?.Extras?.PVD)) + Parent.PVD.Visibility = Visibility.Collapsed; + if (string.IsNullOrWhiteSpace(SubmissionInfo?.CopyProtection?.SecuROMData)) + Parent.SecuROMData.Visibility = Visibility.Collapsed; + if (string.IsNullOrWhiteSpace(SubmissionInfo?.Extras?.SecuritySectorRanges)) + Parent.SecuritySectorRanges.Visibility = Visibility.Collapsed; + // Different media types mean different fields available switch (SubmissionInfo?.CommonDiscInfo?.Media) { diff --git a/MPF/Windows/DiscInformationWindow.xaml b/MPF/Windows/DiscInformationWindow.xaml index 97ab93ee..a1456457 100644 --- a/MPF/Windows/DiscInformationWindow.xaml +++ b/MPF/Windows/DiscInformationWindow.xaml @@ -149,10 +149,8 @@ - - @@ -244,6 +242,30 @@ + + + + + + + + + + + + + + + + + + + + + + + +