mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
Update SoftwareList with new fields
This commit is contained in:
@@ -726,6 +726,7 @@ namespace SabreTools.DatFiles.Formats
|
||||
case "softwarelist":
|
||||
datItems.Add(new DatItems.Formats.SoftwareList
|
||||
{
|
||||
Tag = reader.GetAttribute("tag"),
|
||||
Name = reader.GetAttribute("name"),
|
||||
Status = reader.GetAttribute("status").AsSoftwareListStatus(),
|
||||
Filter = reader.GetAttribute("filter"),
|
||||
@@ -1862,6 +1863,7 @@ namespace SabreTools.DatFiles.Formats
|
||||
case ItemType.SoftwareList:
|
||||
var softwareList = datItem as DatItems.Formats.SoftwareList;
|
||||
xtw.WriteStartElement("softwarelist");
|
||||
xtw.WriteRequiredAttributeString("tag", softwareList.Tag);
|
||||
xtw.WriteRequiredAttributeString("name", softwareList.Name);
|
||||
xtw.WriteRequiredAttributeString("status", softwareList.Status.FromSoftwareListStatus());
|
||||
xtw.WriteOptionalAttributeString("filter", softwareList.Filter);
|
||||
|
||||
@@ -1233,6 +1233,9 @@ namespace SabreTools.DatFiles
|
||||
/// <param name="softwareList">SoftwareList to remove replace fields in</param>
|
||||
private void SetFields(SoftwareList softwareList)
|
||||
{
|
||||
if (DatItemMappings.Keys.Contains(DatItemField.Tag))
|
||||
softwareList.Tag = DatItemMappings[DatItemField.Tag];
|
||||
|
||||
if (DatItemMappings.Keys.Contains(DatItemField.SoftwareListStatus))
|
||||
softwareList.Status = DatItemMappings[DatItemField.SoftwareListStatus].AsSoftwareListStatus();
|
||||
|
||||
|
||||
@@ -14,6 +14,13 @@ namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
#region Fields
|
||||
|
||||
/// <summary>
|
||||
/// Tag for the software list
|
||||
/// </summary>
|
||||
[JsonProperty("tag", DefaultValueHandling = DefaultValueHandling.Ignore)]
|
||||
[XmlElement("tag")]
|
||||
public string Tag { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Name of the item
|
||||
/// </summary>
|
||||
@@ -77,6 +84,7 @@ namespace SabreTools.DatItems.Formats
|
||||
Source = this.Source.Clone() as Source,
|
||||
Remove = this.Remove,
|
||||
|
||||
Tag = this.Tag,
|
||||
Name = this.Name,
|
||||
Status = this.Status,
|
||||
Filter = this.Filter,
|
||||
@@ -97,7 +105,8 @@ namespace SabreTools.DatItems.Formats
|
||||
SoftwareList newOther = other as SoftwareList;
|
||||
|
||||
// If the SoftwareList information matches
|
||||
return (Name == newOther.Name
|
||||
return (Tag == newOther.Tag
|
||||
&& Name == newOther.Name
|
||||
&& Status == newOther.Status
|
||||
&& Filter == newOther.Filter);
|
||||
}
|
||||
|
||||
@@ -952,7 +952,7 @@ namespace SabreTools.Filtering
|
||||
/// <returns>True if the item passed the filter, false otherwise</returns>
|
||||
private bool PassesFilters(Chip chip)
|
||||
{
|
||||
// DatItem_Tag
|
||||
// Filter on tag
|
||||
if (!PassStringFilter(Tag, chip.Tag))
|
||||
return false;
|
||||
|
||||
@@ -2007,6 +2007,10 @@ namespace SabreTools.Filtering
|
||||
/// <returns>True if the item passed the filter, false otherwise</returns>
|
||||
private bool PassesFilters(SoftwareList softwareList)
|
||||
{
|
||||
// Filter on tag
|
||||
if (!PassStringFilter(Tag, softwareList.Tag))
|
||||
return false;
|
||||
|
||||
// Filter on status
|
||||
if (SoftwareListStatus.MatchesPositive(Core.SoftwareListStatus.NULL, softwareList.Status) == false)
|
||||
return false;
|
||||
|
||||
@@ -1069,6 +1069,9 @@ namespace SabreTools.Filtering
|
||||
/// <param name="softwareList">SoftwareList to remove fields from</param>
|
||||
private void RemoveFields(SoftwareList softwareList)
|
||||
{
|
||||
if (DatItemFields.Contains(DatItemField.Tag))
|
||||
softwareList.Tag = null;
|
||||
|
||||
if (DatItemFields.Contains(DatItemField.SoftwareListStatus))
|
||||
softwareList.Status = SoftwareListStatus.NULL;
|
||||
|
||||
|
||||
@@ -1060,6 +1060,9 @@ namespace SabreTools.Filtering
|
||||
/// <param name="datItemFields">List of fields representing what should be updated</param>
|
||||
private static void ReplaceFields(SoftwareList softwareList, SoftwareList newItem, List<DatItemField> datItemFields)
|
||||
{
|
||||
if (datItemFields.Contains(DatItemField.Tag))
|
||||
softwareList.Tag = newItem.Tag;
|
||||
|
||||
if (datItemFields.Contains(DatItemField.SoftwareListStatus))
|
||||
softwareList.Status = newItem.Status;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user