1
0
mirror of https://github.com/Artemis-RGB/Artemis synced 2025-12-13 05:48:35 +00:00

Core - Nullability fixes (and I need a build)

This commit is contained in:
Robert 2023-01-15 12:57:38 +01:00
parent 3246505cc0
commit ac960b8f31

View File

@ -163,21 +163,16 @@ public abstract class DataModelVisualizationViewModel : ReactiveObject, IDisposa
/// </summary> /// </summary>
/// <param name="looseMatch">Whether the type may be a loose match, meaning it can be cast or converted</param> /// <param name="looseMatch">Whether the type may be a loose match, meaning it can be cast or converted</param>
/// <param name="filteredTypes">The types to filter</param> /// <param name="filteredTypes">The types to filter</param>
public void ApplyTypeFilter(bool looseMatch, params Type[]? filteredTypes) public void ApplyTypeFilter(bool looseMatch, params Type?[]? filteredTypes)
{ {
if (filteredTypes != null) if (filteredTypes != null)
{ filteredTypes = filteredTypes.All(t => t == null) ? null : filteredTypes.Where(t => t != null).ToArray();
if (filteredTypes.All(t => t == null))
filteredTypes = null;
else
filteredTypes = filteredTypes.Where(t => t != null).ToArray();
}
// If the VM has children, its own type is not relevant // If the VM has children, its own type is not relevant
if (Children.Any()) if (Children.Any())
{ {
foreach (DataModelVisualizationViewModel child in Children) foreach (DataModelVisualizationViewModel child in Children)
child?.ApplyTypeFilter(looseMatch, filteredTypes); child.ApplyTypeFilter(looseMatch, filteredTypes);
IsMatchingFilteredTypes = true; IsMatchingFilteredTypes = true;
return; return;
@ -287,7 +282,7 @@ public abstract class DataModelVisualizationViewModel : ReactiveObject, IDisposa
foreach (PropertyInfo propertyInfo in modelType.GetProperties(BindingFlags.Public | BindingFlags.Instance).OrderBy(t => t.MetadataToken)) foreach (PropertyInfo propertyInfo in modelType.GetProperties(BindingFlags.Public | BindingFlags.Instance).OrderBy(t => t.MetadataToken))
{ {
string childPath = AppendToPath(propertyInfo.Name); string childPath = AppendToPath(propertyInfo.Name);
if (Children.Any(c => c?.Path != null && c.Path.Equals(childPath))) if (Children.Any(c => c.Path != null && c.Path.Equals(childPath)))
continue; continue;
if (propertyInfo.GetCustomAttribute<DataModelIgnoreAttribute>() != null) if (propertyInfo.GetCustomAttribute<DataModelIgnoreAttribute>() != null)
continue; continue;