Browse Source

Add option to enable/disable dirty rects

pull/4609/head
Luis von der Eltz 6 years ago
parent
commit
c4ebf899e5
  1. 27
      src/Avalonia.Diagnostics/Diagnostics/ViewModels/MainViewModel.cs
  2. 7
      src/Avalonia.Diagnostics/Diagnostics/Views/MainView.xaml

27
src/Avalonia.Diagnostics/Diagnostics/ViewModels/MainViewModel.cs

@ -9,7 +9,7 @@ namespace Avalonia.Diagnostics.ViewModels
{
internal class MainViewModel : ViewModelBase, IDisposable
{
private readonly IControl _root;
private readonly TopLevel _root;
private readonly TreePageViewModel _logicalTree;
private readonly TreePageViewModel _visualTree;
private readonly EventsPageViewModel _events;
@ -19,8 +19,9 @@ namespace Avalonia.Diagnostics.ViewModels
private string _focusedControl;
private string _pointerOverElement;
private bool _shouldVisualizeMarginPadding = true;
private bool _shouldVisualizeDirtyRects;
public MainViewModel(IControl root)
public MainViewModel(TopLevel root)
{
_root = root;
_logicalTree = new TreePageViewModel(this, LogicalTreeNode.Create(root));
@ -40,6 +41,22 @@ namespace Avalonia.Diagnostics.ViewModels
get => _shouldVisualizeMarginPadding;
set => RaiseAndSetIfChanged(ref _shouldVisualizeMarginPadding, value);
}
public bool ShouldVisualizeDirtyRects
{
get => _shouldVisualizeDirtyRects;
set
{
RaiseAndSetIfChanged(ref _shouldVisualizeDirtyRects, value);
_root.Renderer.DrawDirtyRects = value;
}
}
public void ToggleVisualizeDirtyRects()
{
ShouldVisualizeDirtyRects = !ShouldVisualizeDirtyRects;
}
public void ToggleVisualizeMarginPadding()
{
@ -128,10 +145,7 @@ namespace Avalonia.Diagnostics.ViewModels
{
var tree = Content as TreePageViewModel;
if (tree != null)
{
tree.SelectControl(control);
}
tree?.SelectControl(control);
}
public void Dispose()
@ -140,6 +154,7 @@ namespace Avalonia.Diagnostics.ViewModels
_pointerOverSubscription.Dispose();
_logicalTree.Dispose();
_visualTree.Dispose();
_root.Renderer.DrawDirtyRects = false;
}
private void UpdateFocusedControl()

7
src/Avalonia.Diagnostics/Diagnostics/Views/MainView.xaml

@ -24,6 +24,13 @@
IsEnabled="False"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem Header="Visualize dirty rects" Command="{Binding ToggleVisualizeDirtyRects}">
<MenuItem.Icon>
<CheckBox BorderThickness="0"
IsChecked="{Binding ShouldVisualizeDirtyRects}"
IsEnabled="False"/>
</MenuItem.Icon>
</MenuItem>
</MenuItem>
</Menu>

Loading…
Cancel
Save