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