diff --git a/SabreTools.Filtering/DatItemFilter.cs b/SabreTools.Filtering/DatItemFilter.cs index 7560b78b..f416779c 100644 --- a/SabreTools.Filtering/DatItemFilter.cs +++ b/SabreTools.Filtering/DatItemFilter.cs @@ -193,6 +193,11 @@ namespace SabreTools.Filtering #endregion #endregion // Item-Specific + + /// + /// Determines if any filters have been set + /// + public bool HasFilters { get; set; } = false; #endregion // Fields diff --git a/SabreTools.Filtering/Filter.cs b/SabreTools.Filtering/Filter.cs index c650da08..a5ff27e9 100644 --- a/SabreTools.Filtering/Filter.cs +++ b/SabreTools.Filtering/Filter.cs @@ -56,11 +56,6 @@ namespace SabreTools.Filtering /// Filter for Machine fields /// public MachineFilter MachineFilter { get; set; } - - /// - /// Determines if any filters have been set - /// - public bool HasFilters { get; private set; } = false; #endregion @@ -116,7 +111,7 @@ namespace SabreTools.Filtering if (machineField != MachineField.NULL) { MachineFilter.SetFilter(machineField, value, negate); - HasFilters = true; + MachineFilter.HasFilters = true; continue; } @@ -125,7 +120,7 @@ namespace SabreTools.Filtering if (datItemField != DatItemField.NULL) { DatItemFilter.SetFilter(datItemField, value, negate); - HasFilters = true; + DatItemFilter.HasFilters = true; continue; } @@ -384,7 +379,7 @@ namespace SabreTools.Filtering return false; // If no filters were set, return true - if (HasFilters) + if (!MachineFilter.HasFilters && !DatItemFilter.HasFilters) return true; InternalStopwatch watch = new InternalStopwatch("Applying filters to DAT"); @@ -464,9 +459,13 @@ namespace SabreTools.Filtering return false; // Filter on Machine fields - if (!MachineFilter.PassesFilters(datItem.Machine)) + if (MachineFilter.HasFilters && !MachineFilter.PassesFilters(datItem.Machine)) return false; + // If we have no DatItemFilters set, just return true + if (!DatItemFilter.HasFilters) + return true; + // Filter on DatItem fields return DatItemFilter.PassesFilters(datItem); } diff --git a/SabreTools.Filtering/MachineFilter.cs b/SabreTools.Filtering/MachineFilter.cs index c71f27f5..ab124188 100644 --- a/SabreTools.Filtering/MachineFilter.cs +++ b/SabreTools.Filtering/MachineFilter.cs @@ -95,6 +95,11 @@ namespace SabreTools.Filtering /// Include romof and cloneof when filtering machine names /// public bool IncludeOfInGame { get; set; } + + /// + /// Determines if any filters have been set + /// + public bool HasFilters { get; set; } = false; #endregion