|
@@ -25,7 +25,7 @@ namespace Avalonia.Diagnostics.ViewModels
|
|
}
|
|
}
|
|
|
|
|
|
public event EventHandler<string>? ClipboardCopyRequested;
|
|
public event EventHandler<string>? ClipboardCopyRequested;
|
|
-
|
|
|
|
|
|
+
|
|
public MainViewModel MainView { get; }
|
|
public MainViewModel MainView { get; }
|
|
|
|
|
|
public FilterViewModel PropertiesFilter { get; }
|
|
public FilterViewModel PropertiesFilter { get; }
|
|
@@ -117,11 +117,11 @@ namespace Avalonia.Diagnostics.ViewModels
|
|
if (currentVisual is not null)
|
|
if (currentVisual is not null)
|
|
{
|
|
{
|
|
var selector = GetVisualSelector(currentVisual);
|
|
var selector = GetVisualSelector(currentVisual);
|
|
-
|
|
|
|
|
|
+
|
|
ClipboardCopyRequested?.Invoke(this, selector);
|
|
ClipboardCopyRequested?.Invoke(this, selector);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
public void CopySelectorFromTemplateParent()
|
|
public void CopySelectorFromTemplateParent()
|
|
{
|
|
{
|
|
var parts = new List<string>();
|
|
var parts = new List<string>();
|
|
@@ -130,7 +130,7 @@ namespace Avalonia.Diagnostics.ViewModels
|
|
while (currentVisual is not null)
|
|
while (currentVisual is not null)
|
|
{
|
|
{
|
|
parts.Add(GetVisualSelector(currentVisual));
|
|
parts.Add(GetVisualSelector(currentVisual));
|
|
-
|
|
|
|
|
|
+
|
|
currentVisual = currentVisual.TemplatedParent as Visual;
|
|
currentVisual = currentVisual.TemplatedParent as Visual;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -148,7 +148,7 @@ namespace Avalonia.Diagnostics.ViewModels
|
|
if (SelectedNode is { } selectedNode)
|
|
if (SelectedNode is { } selectedNode)
|
|
{
|
|
{
|
|
ExpandNode(selectedNode);
|
|
ExpandNode(selectedNode);
|
|
-
|
|
|
|
|
|
+
|
|
var stack = new Stack<TreeNode>();
|
|
var stack = new Stack<TreeNode>();
|
|
stack.Push(selectedNode);
|
|
stack.Push(selectedNode);
|
|
|
|
|
|
@@ -192,8 +192,8 @@ namespace Avalonia.Diagnostics.ViewModels
|
|
{
|
|
{
|
|
(SelectedNode?.Visual as Control)?.BringIntoView();
|
|
(SelectedNode?.Visual as Control)?.BringIntoView();
|
|
}
|
|
}
|
|
-
|
|
|
|
-
|
|
|
|
|
|
+
|
|
|
|
+
|
|
public void Focus()
|
|
public void Focus()
|
|
{
|
|
{
|
|
(SelectedNode?.Visual as Control)?.Focus();
|
|
(SelectedNode?.Visual as Control)?.Focus();
|
|
@@ -205,10 +205,10 @@ namespace Avalonia.Diagnostics.ViewModels
|
|
var classes = string.Concat(visual.Classes
|
|
var classes = string.Concat(visual.Classes
|
|
.Where(c => !c.StartsWith(":"))
|
|
.Where(c => !c.StartsWith(":"))
|
|
.Select(c => '.' + c));
|
|
.Select(c => '.' + c));
|
|
- var typeName = StyledElement.GetStyleKey(visual);
|
|
|
|
-
|
|
|
|
- return $"{typeName}{name}{classes}";
|
|
|
|
- }
|
|
|
|
|
|
+ var pseudo = string.Concat(visual.Classes.Where(c => c[0] == ':').Select(c => c));
|
|
|
|
+ var type = StyledElement.GetStyleKey(visual);
|
|
|
|
+ return $$"""{{{type.Assembly.FullName}}}{{type.Namespace}}|{{type.Name}}{{name}}{{classes}}{{pseudo}}""";
|
|
|
|
+ }
|
|
|
|
|
|
private void ExpandNode(TreeNode? node)
|
|
private void ExpandNode(TreeNode? node)
|
|
{
|
|
{
|