From db1830c54ecc70f7933febab02c2ad7ee44d0bd1 Mon Sep 17 00:00:00 2001 From: Marvin W Date: Mon, 7 Apr 2025 13:14:23 +0200 Subject: Improve UI for sfs image progress indicator --- .../conversation_content_view/file_image_widget.vala | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) (limited to 'main/src/ui/conversation_content_view/file_image_widget.vala') diff --git a/main/src/ui/conversation_content_view/file_image_widget.vala b/main/src/ui/conversation_content_view/file_image_widget.vala index 2b4d1765..33232e93 100644 --- a/main/src/ui/conversation_content_view/file_image_widget.vala +++ b/main/src/ui/conversation_content_view/file_image_widget.vala @@ -15,7 +15,7 @@ public class FileImageWidget : Widget { } private State state = State.EMPTY; - private Stack stack = new Stack() { transition_duration=600, transition_type=StackTransitionType.CROSSFADE }; + private Stack stack = new Stack() { transition_duration=600, transition_type=StackTransitionType.CROSSFADE, hhomogeneous = false, vhomogeneous = false, interpolate_size = true }; private Overlay overlay = new Overlay(); private bool show_image_overlay_toolbar = false; @@ -106,16 +106,8 @@ public class FileImageWidget : Widget { private void refresh_state() { if ((state == EMPTY || state == PREVIEW) && file_transfer.path != null) { - if (state == EMPTY) { - load_from_file.begin(file_transfer.get_file(), file_transfer.file_name); - show_image_overlay_toolbar = true; - } if (state == PREVIEW) { - Timeout.add(500, () => { - load_from_file.begin(file_transfer.get_file(), file_transfer.file_name); - show_image_overlay_toolbar = true; - return false; - }); - } + load_from_file.begin(file_transfer.get_file(), file_transfer.file_name); + show_image_overlay_toolbar = true; this.set_cursor_from_name("zoom-in"); state = IMAGE; @@ -132,7 +124,7 @@ public class FileImageWidget : Widget { transmission_progress.visible = true; show_image_overlay_toolbar = false; } else if (transmission_progress.visible) { - Timeout.add(500, () => { + Timeout.add(250, () => { transmission_progress.transferred_size = transmission_progress.file_size; transmission_progress.visible = false; show_image_overlay_toolbar = true; @@ -146,7 +138,7 @@ public class FileImageWidget : Widget { } else { transmission_progress.state = FileTransmissionProgress.State.UPLOADING; } - } else if (file_transfer.sfs_sources.is_empty) { + } else if (file_transfer.sfs_sources.is_empty && file_transfer.direction == FileTransfer.DIRECTION_RECEIVED) { transmission_progress.state = UNKNOWN_SOURCE; } else if (file_transfer.state == NOT_STARTED && file_transfer.direction == FileTransfer.DIRECTION_RECEIVED) { transmission_progress.state = DOWNLOAD_NOT_STARTED; -- cgit v1.3