aboutsummaryrefslogtreecommitdiff
path: root/main/src/ui/conversation_content_view/file_default_widget.vala
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/ui/conversation_content_view/file_default_widget.vala')
-rw-r--r--main/src/ui/conversation_content_view/file_default_widget.vala15
1 files changed, 13 insertions, 2 deletions
diff --git a/main/src/ui/conversation_content_view/file_default_widget.vala b/main/src/ui/conversation_content_view/file_default_widget.vala
index 638dab15..79d22fe4 100644
--- a/main/src/ui/conversation_content_view/file_default_widget.vala
+++ b/main/src/ui/conversation_content_view/file_default_widget.vala
@@ -31,7 +31,8 @@ public class FileDefaultWidget : EventBox {
cancel_button = new ModelButton() { text=_("Cancel"), visible=true };
}
- public void update_file_info(string? mime_type, FileTransfer.State state, long size) {
+ public void update_file_info(string? mime_type, uint64 transferred_bytes,
+ bool direction, FileTransfer.State state, long size) {
this.state = state;
spinner.active = false; // A hidden spinning spinner still uses CPU. Deactivate asap
@@ -58,7 +59,17 @@ public class FileDefaultWidget : EventBox {
popover_menu.closed.connect(on_pointer_left);
break;
case FileTransfer.State.IN_PROGRESS:
- mime_label.label = _("Downloading %s…").printf(get_size_string(size));
+ uint progress = 0;
+
+ if (size > 0)
+ progress = (uint)((transferred_bytes * (uint64)100) / (uint64)size);
+
+ if (direction == FileTransfer.DIRECTION_SENT) {
+ mime_label.label = _("Uploading %s (%u%%)…").printf(get_size_string(size), progress);
+ }
+ else {
+ mime_label.label = _("Downloading %s (%u%%)…").printf(get_size_string(size), progress);
+ }
spinner.active = true;
image_stack.set_visible_child_name("spinner");