mirror of
https://github.com/SabreTools/SabreTools.Serialization.git
synced 2026-04-05 22:01:33 +00:00
Size filters should be AND not OR to allow for ranges
This commit is contained in:
@@ -80,9 +80,22 @@ namespace SabreTools.Metadata.Filter
|
|||||||
else if (filter.Key.ItemName == MetadataFile.MachineKey && filter.Key.FieldName == Machine.IsMechanicalKey)
|
else if (filter.Key.ItemName == MetadataFile.MachineKey && filter.Key.FieldName == Machine.IsMechanicalKey)
|
||||||
key = $"{MetadataFile.MachineKey}.COMBINEDTYPE";
|
key = $"{MetadataFile.MachineKey}.COMBINEDTYPE";
|
||||||
|
|
||||||
|
// Set the expected group type
|
||||||
|
GroupType groupType = GroupType.OR;
|
||||||
|
|
||||||
|
// Special case for size
|
||||||
|
if (filter.Key.ItemName == "item" && filter.Key.FieldName == DataArea.SizeKey)
|
||||||
|
groupType = GroupType.AND;
|
||||||
|
else if (filter.Key.ItemName == "item" && filter.Key.FieldName == Rom.SizeKey)
|
||||||
|
groupType = GroupType.AND;
|
||||||
|
if (filter.Key.ItemName == "dataarea" && filter.Key.FieldName == DataArea.SizeKey)
|
||||||
|
groupType = GroupType.AND;
|
||||||
|
else if (filter.Key.ItemName == "rom" && filter.Key.FieldName == Rom.SizeKey)
|
||||||
|
groupType = GroupType.AND;
|
||||||
|
|
||||||
// Ensure the key exists
|
// Ensure the key exists
|
||||||
if (!Filters.ContainsKey(key))
|
if (!Filters.ContainsKey(key))
|
||||||
Filters[key] = new FilterGroup(GroupType.OR);
|
Filters[key] = new FilterGroup(groupType);
|
||||||
|
|
||||||
// Add the filter to the set
|
// Add the filter to the set
|
||||||
Filters[key].AddFilter(filter);
|
Filters[key].AddFilter(filter);
|
||||||
|
|||||||
Reference in New Issue
Block a user