diff --git a/Glamourer/Gui/Tabs/DesignTab/DesignFileSystemSelector.cs b/Glamourer/Gui/Tabs/DesignTab/DesignFileSystemSelector.cs index e9d182a..b323b63 100644 --- a/Glamourer/Gui/Tabs/DesignTab/DesignFileSystemSelector.cs +++ b/Glamourer/Gui/Tabs/DesignTab/DesignFileSystemSelector.cs @@ -18,12 +18,12 @@ namespace Glamourer.Gui.Tabs.DesignTab; public sealed class DesignFileSystemSelector : FileSystemSelector { - private readonly DesignManager _designManager; - private readonly DesignChanged _event; - private readonly Configuration _config; - private readonly DesignConverter _converter; - private readonly TabSelected _selectionEvent; - private readonly DesignColors _designColors; + private readonly DesignManager _designManager; + private readonly DesignChanged _event; + private readonly Configuration _config; + private readonly DesignConverter _converter; + private readonly TabSelected _selectionEvent; + private readonly DesignColors _designColors; private string? _clipboardText; private Design? _cloneDesign; @@ -49,12 +49,12 @@ public sealed class DesignFileSystemSelector : FileSystemSelector Appropriately identify and set the string filter and its type. @@ -228,10 +229,10 @@ public sealed class DesignFileSystemSelector : FileSystemSelector filterValue.Length == 2 ? (LowerString.Empty, -1) : (new LowerString(filterValue[2..]), 1), 'N' => filterValue.Length == 2 ? (LowerString.Empty, -1) : (new LowerString(filterValue[2..]), 1), - 'm' => filterValue.Length == 2 ? (LowerString.Empty, -1) : (new LowerString(filterValue[2..]), 2), - 'M' => filterValue.Length == 2 ? (LowerString.Empty, -1) : (new LowerString(filterValue[2..]), 2), - 't' => filterValue.Length == 2 ? (LowerString.Empty, -1) : (new LowerString(filterValue[2..]), 3), - 'T' => filterValue.Length == 2 ? (LowerString.Empty, -1) : (new LowerString(filterValue[2..]), 3), + 'm' => filterValue.Length == 2 ? (LowerString.Empty, -1) : ParseFilter(filterValue, 2), + 'M' => filterValue.Length == 2 ? (LowerString.Empty, -1) : ParseFilter(filterValue, 2), + 't' => filterValue.Length == 2 ? (LowerString.Empty, -1) : ParseFilter(filterValue, 3), + 'T' => filterValue.Length == 2 ? (LowerString.Empty, -1) : ParseFilter(filterValue, 3), 'i' => filterValue.Length == 2 ? (LowerString.Empty, -1) : (new LowerString(filterValue[2..]), 4), 'I' => filterValue.Length == 2 ? (LowerString.Empty, -1) : (new LowerString(filterValue[2..]), 4), 'c' => filterValue.Length == 2 ? (LowerString.Empty, -1) : (new LowerString(filterValue[2..]), 5), @@ -244,6 +245,15 @@ public sealed class DesignFileSystemSelector : FileSystemSelector /// The overwritten filter method also computes the state. /// Folders have default state and are filtered out on the direct string instead of the other options. @@ -266,14 +276,16 @@ public sealed class DesignFileSystemSelector : FileSystemSelector false, - 0 => !(_designFilter.IsContained(leaf.FullName()) || design.Name.Contains(_designFilter)), - 1 => !design.Name.Contains(_designFilter), - 2 => !design.AssociatedMods.Any(kvp => _designFilter.IsContained(kvp.Key.Name)), - 3 => !design.Tags.Any(_designFilter.IsContained), - 4 => !design.DesignData.ContainsName(_designFilter), - 5 => !_designFilter.IsContained(design.Color.Length == 0 ? DesignColors.AutomaticName : design.Color), - _ => false, // Should never happen + -1 => false, + 0 => !(_designFilter.IsContained(leaf.FullName()) || design.Name.Contains(_designFilter)), + 1 => !design.Name.Contains(_designFilter), + 2 => !design.AssociatedMods.Any(kvp => _designFilter.IsContained(kvp.Key.Name)), + 3 => !design.Tags.Any(_designFilter.IsContained), + 4 => !design.DesignData.ContainsName(_designFilter), + 5 => !_designFilter.IsContained(design.Color.Length == 0 ? DesignColors.AutomaticName : design.Color), + 2 + EmptyOffset => design.AssociatedMods.Count > 0, + 3 + EmptyOffset => design.Tags.Length > 0, + _ => false, // Should never happen }; }