From cf7759313c550bb64e4d570ba75582098170637d Mon Sep 17 00:00:00 2001 From: JohnAFernandez Date: Wed, 5 Mar 2025 23:27:29 -0500 Subject: [PATCH] Add Proper Display names for filters --- Knossos.NET/Classes/Knossos.cs | 15 +++++++++++++++ Knossos.NET/ViewModels/ModListViewModel.cs | 15 ++++++++++++--- Knossos.NET/ViewModels/NebulaModListViewModel.cs | 15 ++++++++++++--- Knossos.NET/Views/ModListView.axaml.cs | 12 ++++++++++-- Knossos.NET/Views/NebulaModListView.axaml.cs | 10 +++++++++- 5 files changed, 58 insertions(+), 9 deletions(-) diff --git a/Knossos.NET/Classes/Knossos.cs b/Knossos.NET/Classes/Knossos.cs index 62aa3169..83be14b8 100644 --- a/Knossos.NET/Classes/Knossos.cs +++ b/Knossos.NET/Classes/Knossos.cs @@ -33,6 +33,21 @@ public static class Knossos public static bool isKnDataFolderReadOnly { get; private set; } = false; public static bool inSingleTCMode { get; private set; } = false; public static bool initIsComplete { get; private set; } = false; + public static IDictionary filterDisplayStrings { get; private set;} = new Dictionary + { + ["total_conversion"] = "Standalone Game", + ["retail_fs2"] = "Retail Freespace 2", + ["fs2_mod"] = "Freespace 2 Mod", + ["fs1_mod"] = "Freespace 1 Mod", + ["tc_mod"] = "Standalone Game Mod", + ["utility"] = "Utilities and Misc", + ["dependency"] = "Dependency", + ["asset_pack"] = "Asset Pack", + ["demo"] = "Demo Mod", + ["multiplayer"] = "Multiplayer Enabled", + ["vr_mod"] = "VR", + ["test"] = "For Testing", + }; /// /// Static constructor diff --git a/Knossos.NET/ViewModels/ModListViewModel.cs b/Knossos.NET/ViewModels/ModListViewModel.cs index b07b3f61..8f5d86fa 100644 --- a/Knossos.NET/ViewModels/ModListViewModel.cs +++ b/Knossos.NET/ViewModels/ModListViewModel.cs @@ -151,13 +151,22 @@ private void BuildFilterString(){ break; // easiest case, this handles a filter list of one and the start of all other cases } else if (count == 0){ - FilterString += myTI.ToTitleCase(filter.Replace("_", " ")); + if (Knossos.filterDisplayStrings.ContainsKey(filter.ToLower())) + FilterString += Knossos.filterDisplayStrings[filter.ToLower()]; + else + FilterString += myTI.ToTitleCase(filter.Replace("_", " ")); // Last case except for 0 will always have an and } else if (count == externalCount - 1){ - FilterString += " and " + myTI.ToTitleCase(filter.Replace("_", " "));; // No Oxford commas here! + if (Knossos.filterDisplayStrings.ContainsKey(filter.ToLower())) + FilterString += " and " + Knossos.filterDisplayStrings[filter.ToLower()]; + else + FilterString += " and " + myTI.ToTitleCase(filter.Replace("_", " "));; // No Oxford commas here! // Other cases will always have a comma } else { - FilterString += ", " + myTI.ToTitleCase(filter.Replace("_", " "));; + if (Knossos.filterDisplayStrings.ContainsKey(filter.ToLower())) + FilterString += ", " + Knossos.filterDisplayStrings[filter.ToLower()]; + else + FilterString += ", " + myTI.ToTitleCase(filter.Replace("_", " ")); } FiltersEnabled = true; diff --git a/Knossos.NET/ViewModels/NebulaModListViewModel.cs b/Knossos.NET/ViewModels/NebulaModListViewModel.cs index 74dd4f53..33fdd865 100644 --- a/Knossos.NET/ViewModels/NebulaModListViewModel.cs +++ b/Knossos.NET/ViewModels/NebulaModListViewModel.cs @@ -174,13 +174,22 @@ private void BuildFilterString(){ break; // easiest case, this handles a filter list of one and the start of all other cases } else if (count == 0){ - FilterString += myTI.ToTitleCase(filter.Replace("_", " ")); + if (Knossos.filterDisplayStrings.ContainsKey(filter.ToLower())) + FilterString += Knossos.filterDisplayStrings[filter.ToLower()]; + else + FilterString += myTI.ToTitleCase(filter.Replace("_", " ")); // Last case except for 0 will always have an and } else if (count == externalCount - 1){ - FilterString += " and " + myTI.ToTitleCase(filter.Replace("_", " "));; // No Oxford commas here! + if (Knossos.filterDisplayStrings.ContainsKey(filter.ToLower())) + FilterString += " and " + Knossos.filterDisplayStrings[filter.ToLower()]; + else + FilterString += " and " + myTI.ToTitleCase(filter.Replace("_", " "));; // No Oxford commas here! // Other cases will always have a comma } else { - FilterString += ", " + myTI.ToTitleCase(filter.Replace("_", " "));; + if (Knossos.filterDisplayStrings.ContainsKey(filter.ToLower())) + FilterString += ", " + Knossos.filterDisplayStrings[filter.ToLower()]; + else + FilterString += ", " + myTI.ToTitleCase(filter.Replace("_", " ")); } FiltersEnabled = true; diff --git a/Knossos.NET/Views/ModListView.axaml.cs b/Knossos.NET/Views/ModListView.axaml.cs index df51e215..0f89d28f 100644 --- a/Knossos.NET/Views/ModListView.axaml.cs +++ b/Knossos.NET/Views/ModListView.axaml.cs @@ -146,8 +146,16 @@ public void GenerateFilterButtons() foreach (var tag in tags.Select((x, i) => new { Value = x, Index = i })) { TextInfo myTI = new CultureInfo("en-US", false).TextInfo; - var displayName = myTI.ToTitleCase(tag.Value.Replace("_", " ")); - var button = new Button { Content = displayName, Tag = tag.Index, Width = 150, Margin = new Thickness(2) }; + var displayName = String.Empty; + + if (Knossos.filterDisplayStrings.ContainsKey(tag.Value.ToLower())) + { + displayName = Knossos.filterDisplayStrings[tag.Value.ToLower()]; + } else { + displayName = myTI.ToTitleCase(tag.Value.Replace("_", " ")); + } + + var button = new Button { Content = displayName, Tag = tag.Index, Width = 150, Margin = new Thickness(2), FontSize = 12 }; button.Click += (_, __) => { //This code runs when the button is clicked diff --git a/Knossos.NET/Views/NebulaModListView.axaml.cs b/Knossos.NET/Views/NebulaModListView.axaml.cs index 6a67ecaf..72bf6fca 100644 --- a/Knossos.NET/Views/NebulaModListView.axaml.cs +++ b/Knossos.NET/Views/NebulaModListView.axaml.cs @@ -144,7 +144,15 @@ public void GenerateFilterButtons() foreach (var tag in tags.Select((x, i) => new { Value = x, Index = i })) { TextInfo myTI = new CultureInfo("en-US", false).TextInfo; - var displayName = myTI.ToTitleCase(tag.Value.Replace("_", " ")); + var displayName = String.Empty; + + if (Knossos.filterDisplayStrings.ContainsKey(tag.Value.ToLower())) + { + displayName = Knossos.filterDisplayStrings[tag.Value.ToLower()]; + } else { + displayName = myTI.ToTitleCase(tag.Value.Replace("_", " ")); + } + var button = new Button { Content = displayName, Tag = tag.Index, Width = 150, Margin = new Thickness(2) }; button.Click += (_, __) => {