refactor: more avatar improvements

This commit is contained in:
MeexReay 2025-07-05 18:55:02 +03:00
parent 3fc9bd7bca
commit 0bb94a1ae5

View File

@ -842,8 +842,6 @@ fn setup(_: &Application, ctx: Arc<Context>, ui: UiModel) {
} }
}); });
let mut avatars = Vec::new();
for message in messages.iter() { for message in messages.iter() {
let Some(avatar_url) = grab_avatar(message) else { continue }; let Some(avatar_url) = grab_avatar(message) else { continue };
let avatar_id = get_avatar_id(&avatar_url); let avatar_id = get_avatar_id(&avatar_url);
@ -863,20 +861,15 @@ fn setup(_: &Application, ctx: Arc<Context>, ui: UiModel) {
pixbuf.rowstride() pixbuf.rowstride()
))) else { continue }; ))) else { continue };
avatars.push((avatar_id, avatar));
}
timeout_add_once(Duration::ZERO, { timeout_add_once(Duration::ZERO, {
let added = added.clone();
move || { move || {
while !added.load(Ordering::SeqCst) {} while !added.load(Ordering::SeqCst) {}
GLOBAL.with(|global| { GLOBAL.with(|global| {
if let Some(ui) = &*global.borrow() { if let Some(ui) = &*global.borrow() {
for (id, avatar) in avatars { let pixbuf = Pixbuf::from_bytes(
if let Some(pics) = ui.avatars.lock().unwrap().remove(&id) {
for pic in pics {
pic.set_pixbuf(Some(&
Pixbuf::from_bytes(
&avatar.0, &avatar.0,
avatar.1, avatar.1,
avatar.2, avatar.2,
@ -884,9 +877,11 @@ fn setup(_: &Application, ctx: Arc<Context>, ui: UiModel) {
avatar.4, avatar.4,
avatar.5, avatar.5,
avatar.6 avatar.6
) );
));
} if let Some(pics) = ui.avatars.lock().unwrap().remove(&avatar_id) {
for pic in pics {
pic.set_pixbuf(Some(&pixbuf));
} }
} }
} }
@ -895,6 +890,7 @@ fn setup(_: &Application, ctx: Arc<Context>, ui: UiModel) {
}); });
} }
} }
}
}); });
} }