Some checks failed
LANCommander SDK Release / prep (push) Failing after 59s
LANCommander SDK Release / publish (push) Has been skipped
LANCommander Release / prep (push) Failing after 1m12s
LANCommander Release / build_server_linux_arm64 (push) Has been skipped
LANCommander Release / build_server_linux_x64 (push) Has been skipped
LANCommander Release / build_server_osx_arm64 (push) Has been skipped
LANCommander Release / build_server_osx_x64 (push) Has been skipped
LANCommander Release / build_server_win_arm64 (push) Has been skipped
LANCommander Release / build_server_win_x64 (push) Has been skipped
LANCommander Release / build_launcher_avalonia_linux_x64 (push) Has been skipped
LANCommander Release / build_launcher_avalonia_osx_arm64 (push) Has been skipped
LANCommander Release / build_launcher_avalonia_osx_x64 (push) Has been skipped
LANCommander Release / build_launcher_avalonia_win_x64 (push) Has been skipped
LANCommander Release / build_packager (push) Has been skipped
LANCommander Release / build_release (push) Has been skipped
46 lines
1.4 KiB
C#
46 lines
1.4 KiB
C#
using Avalonia.Controls;
|
|
using LANCommander.Packager.Models;
|
|
|
|
namespace LANCommander.Packager.Views;
|
|
|
|
public partial class RegistrySelectionView : UserControl
|
|
{
|
|
private readonly PackageContext _context;
|
|
private CheckableTreeNode _root = new();
|
|
|
|
public RegistrySelectionView(PackageContext context)
|
|
{
|
|
_context = context;
|
|
InitializeComponent();
|
|
|
|
SelectAllButton.Click += (_, _) => { _root.IsChecked = true; UpdateCount(); };
|
|
SelectNoneButton.Click += (_, _) => { _root.IsChecked = false; UpdateCount(); };
|
|
}
|
|
|
|
public void PopulateEntries()
|
|
{
|
|
_root = CheckableTreeNode.BuildRegistryTree(_context.RegistryChanges);
|
|
_root.OnTreeSelectionChanged = UpdateCount;
|
|
RegistryTree.ItemsSource = _root.Children;
|
|
UpdateCount();
|
|
}
|
|
|
|
public void ApplySelection()
|
|
{
|
|
_context.SelectedRegistryEntries.Clear();
|
|
|
|
foreach (var leaf in _root.GetCheckedLeaves())
|
|
{
|
|
if (leaf.SourceIndex >= 0 && leaf.SourceIndex < _context.RegistryChanges.Count)
|
|
_context.SelectedRegistryEntries.Add(_context.RegistryChanges[leaf.SourceIndex]);
|
|
}
|
|
}
|
|
|
|
private void UpdateCount()
|
|
{
|
|
var selected = _root.CountCheckedLeaves();
|
|
var total = _root.CountTotalLeaves();
|
|
|
|
CountLabel.Text = $"{selected} / {total} entries selected";
|
|
}
|
|
}
|