Browse Source

Expand nesting selectors in Style.ToString.

pull/8600/head
Steven Kirk 4 years ago
parent
commit
6f3a649737
  1. 4
      src/Avalonia.Base/Styling/ChildSelector.cs
  2. 8
      src/Avalonia.Base/Styling/ControlTheme.cs
  3. 4
      src/Avalonia.Base/Styling/DescendentSelector.cs
  4. 2
      src/Avalonia.Base/Styling/NestingSelector.cs
  5. 4
      src/Avalonia.Base/Styling/NotSelector.cs
  6. 4
      src/Avalonia.Base/Styling/NthChildSelector.cs
  7. 5
      src/Avalonia.Base/Styling/OrSelector.cs
  8. 4
      src/Avalonia.Base/Styling/PropertyEqualsSelector.cs
  9. 9
      src/Avalonia.Base/Styling/Selector.cs
  10. 12
      src/Avalonia.Base/Styling/Style.cs
  11. 4
      src/Avalonia.Base/Styling/TemplateSelector.cs
  12. 8
      src/Avalonia.Base/Styling/TypeNameAndClassSelector.cs

4
src/Avalonia.Base/Styling/ChildSelector.cs

@ -27,11 +27,11 @@ namespace Avalonia.Styling
/// <inheritdoc/>
public override Type? TargetType => null;
public override string ToString()
public override string ToString(Style? owner)
{
if (_selectorString == null)
{
_selectorString = _parent.ToString() + " > ";
_selectorString = _parent.ToString(owner) + " > ";
}
return _selectorString;

8
src/Avalonia.Base/Styling/ControlTheme.cs

@ -52,13 +52,7 @@ namespace Avalonia.Styling
return result;
}
public override string ToString()
{
if (TargetType is not null)
return "ControlTheme: " + TargetType.Name;
else
return "ControlTheme";
}
public override string ToString() => TargetType?.Name ?? "ControlTheme";
internal override void SetParent(StyleBase? parent)
{

4
src/Avalonia.Base/Styling/DescendentSelector.cs

@ -25,11 +25,11 @@ namespace Avalonia.Styling
/// <inheritdoc/>
public override Type? TargetType => null;
public override string ToString()
public override string ToString(Style? owner)
{
if (_selectorString == null)
{
_selectorString = _parent.ToString() + ' ';
_selectorString = _parent.ToString(owner) + ' ';
}
return _selectorString;

2
src/Avalonia.Base/Styling/NestingSelector.cs

@ -11,7 +11,7 @@ namespace Avalonia.Styling
public override bool IsCombinator => false;
public override Type? TargetType => null;
public override string ToString() => "^";
public override string ToString(Style? owner) => owner?.Parent?.ToString() ?? "^";
protected override SelectorMatch Evaluate(IStyleable control, IStyle? parent, bool subscribe)
{

4
src/Avalonia.Base/Styling/NotSelector.cs

@ -35,11 +35,11 @@ namespace Avalonia.Styling
public override Type? TargetType => _previous?.TargetType;
/// <inheritdoc/>
public override string ToString()
public override string ToString(Style? owner)
{
if (_selectorString == null)
{
_selectorString = $"{_previous?.ToString()}:not({_argument})";
_selectorString = $"{_previous?.ToString(owner)}:not({_argument})";
}
return _selectorString;

4
src/Avalonia.Base/Styling/NthChildSelector.cs

@ -107,10 +107,10 @@ namespace Avalonia.Styling
protected override Selector? MovePrevious() => _previous;
protected override Selector? MovePreviousOrParent() => _previous;
public override string ToString()
public override string ToString(Style? owner)
{
var expectedCapacity = NthLastChildSelectorName.Length + 8;
var stringBuilder = new StringBuilder(_previous?.ToString(), expectedCapacity);
var stringBuilder = new StringBuilder(_previous?.ToString(owner), expectedCapacity);
stringBuilder.Append(':');
stringBuilder.Append(_reversed ? NthLastChildSelectorName : NthChildSelectorName);

5
src/Avalonia.Base/Styling/OrSelector.cs

@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Avalonia.Styling.Activators;
#nullable enable
@ -55,11 +56,11 @@ namespace Avalonia.Styling
}
/// <inheritdoc/>
public override string ToString()
public override string ToString(Style? owner)
{
if (_selectorString == null)
{
_selectorString = string.Join(", ", _selectors);
_selectorString = string.Join(", ", _selectors.Select(x => x.ToString(owner)));
}
return _selectorString;

4
src/Avalonia.Base/Styling/PropertyEqualsSelector.cs

@ -38,7 +38,7 @@ namespace Avalonia.Styling
public override Type? TargetType => _previous?.TargetType;
/// <inheritdoc/>
public override string ToString()
public override string ToString(Style? owner)
{
if (_selectorString == null)
{
@ -46,7 +46,7 @@ namespace Avalonia.Styling
if (_previous != null)
{
builder.Append(_previous.ToString());
builder.Append(_previous.ToString(owner));
}
builder.Append('[');

9
src/Avalonia.Base/Styling/Selector.cs

@ -67,6 +67,15 @@ namespace Avalonia.Styling
return match;
}
public override string ToString() => ToString(null);
/// <summary>
/// Gets a string representing the selector, with the nesting separator (`^`) replaced with
/// the parent selector.
/// </summary>
/// <param name="owner">The owner style.</param>
public abstract string ToString(Style? owner);
/// <summary>
/// Evaluates the selector for a match.
/// </summary>

12
src/Avalonia.Base/Styling/Style.cs

@ -68,17 +68,7 @@ namespace Avalonia.Styling
/// Returns a string representation of the style.
/// </summary>
/// <returns>A string representation of the style.</returns>
public override string ToString()
{
if (Selector != null)
{
return "Style: " + Selector.ToString();
}
else
{
return "Style";
}
}
public override string ToString() => Selector?.ToString(this) ?? "Style";
internal override void SetParent(StyleBase? parent)
{

4
src/Avalonia.Base/Styling/TemplateSelector.cs

@ -26,11 +26,11 @@ namespace Avalonia.Styling
/// <inheritdoc/>
public override Type? TargetType => null;
public override string ToString()
public override string ToString(Style? owner)
{
if (_selectorString == null)
{
_selectorString = _parent.ToString() + " /template/ ";
_selectorString = _parent.ToString(owner) + " /template/ ";
}
return _selectorString;

8
src/Avalonia.Base/Styling/TypeNameAndClassSelector.cs

@ -84,11 +84,11 @@ namespace Avalonia.Styling
public IList<string> Classes => _classes.Value;
/// <inheritdoc/>
public override string ToString()
public override string ToString(Style? owner)
{
if (_selectorString == null)
{
_selectorString = BuildSelectorString();
_selectorString = BuildSelectorString(owner);
}
return _selectorString;
@ -143,13 +143,13 @@ namespace Avalonia.Styling
protected override Selector? MovePrevious() => _previous;
protected override Selector? MovePreviousOrParent() => _previous;
private string BuildSelectorString()
private string BuildSelectorString(Style? owner)
{
var builder = new StringBuilder();
if (_previous != null)
{
builder.Append(_previous.ToString());
builder.Append(_previous.ToString(owner));
}
if (TargetType != null)

Loading…
Cancel
Save