Fix UI issues with Camera Monitor (#31809)

* Fix jumpy camera monitor UI

Basically copy-pasted same solution from #30292

* Remove duplicate code; use shared ItemList method to sync items
This commit is contained in:
eoineoineoin
2025-04-17 11:15:35 +01:00
committed by GitHub
parent 6c05477ca3
commit 2fc8cdff00
2 changed files with 13 additions and 59 deletions

View File

@@ -125,14 +125,12 @@ public sealed partial class SurveillanceCameraMonitorWindow : DefaultWindow
private void PopulateCameraList(Dictionary<string, string> cameras)
{
SubnetList.Clear();
foreach (var (address, name) in cameras)
{
AddCameraToList(name, address);
}
SubnetList.SortItemsByText();
var entries = cameras.Select(i => new ItemList.Item(SubnetList) {
Text = $"{i.Value}: {i.Key}",
Metadata = i.Key
}).ToList();
entries.Sort((a, b) => string.Compare(a.Text, b.Text, StringComparison.Ordinal));
SubnetList.SetItems(entries, (a,b) => string.Compare(a.Text, b.Text));
}
private void SetCameraView(IEye? eye)
@@ -187,12 +185,6 @@ public sealed partial class SurveillanceCameraMonitorWindow : DefaultWindow
return SubnetSelector.ItemCount - 1;
}
private void AddCameraToList(string name, string address)
{
var item = SubnetList.AddItem($"{name}: {address}");
item.Metadata = address;
}
private void OnSubnetListSelect(ItemList.ItemListSelectedEventArgs args)
{
CameraSelected!((string) SubnetList[args.ItemIndex].Metadata!);