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:
@@ -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!);
|
||||
|
||||
Reference in New Issue
Block a user