Rework UI Updates #7

Merged
Moonbase merged 4 commits from ui-updating-rework into master 2025-11-27 13:09:50 -08:00
Showing only changes of commit a970fd1b5c - Show all commits

View File

@ -816,15 +816,10 @@ namespace qtc_net_client_2
if (!contactsRes.Success || contactsRes.Data == null)
return;
var uniqueContacts = contactsRes.Data
.GroupBy(c => c.UserId)
.Select(g => g.First())
.ToList();
if (InvokeRequired)
Invoke(() => ApplyContacts(uniqueContacts));
Invoke(() => ApplyContacts(contactsRes.Data));
else
ApplyContacts(uniqueContacts);
ApplyContacts(contactsRes.Data);
}
finally
{
@ -840,15 +835,14 @@ namespace qtc_net_client_2
e.UserStatus == Contact.ContactStatus.AwaitingApprovalFromSelf);
Contacts.Clear();
Contacts.AddRange(newContacts.DistinctBy(c => c.UserId));
// Snapshot to avoid concurrent modification
var contactsSnapshot = Contacts.ToList();
Contacts.AddRange(newContacts.DistinctBy(c => c.Id));
flpContacts.SuspendLayout();
flpContacts.Controls.Clear();
foreach (var contact in contactsSnapshot)
var contactsSnap = Contacts.ToList();
foreach (var contact in contactsSnap)
{
var ctrl = await BuildContactControl(contact);
if (ctrl != null)