From 6d3aef271875eba7a3867259f2089e3801141b19 Mon Sep 17 00:00:00 2001 From: Xavier Del Campo Romero Date: Wed, 4 Oct 2023 01:23:11 +0200 Subject: Show file upload/download progress Fixes upstream issue #1350. Notes: Image uploads were incorrectly handled by Dino, as they were always reported as completed even if they were not, maybe so as to show the image preview from the start. Now, Dino shows the upload progress for all file types, and the image is only shown when completed. --- plugins/http-files/src/file_sender.vala | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'plugins/http-files/src') diff --git a/plugins/http-files/src/file_sender.vala b/plugins/http-files/src/file_sender.vala index 8f9f02fc..17dbc6cf 100644 --- a/plugins/http-files/src/file_sender.vala +++ b/plugins/http-files/src/file_sender.vala @@ -106,6 +106,18 @@ public class HttpFileSender : FileSender, Object { put_message.wrote_headers.connect(() => transfer_more_bytes(file_transfer.input_stream, put_message.request_body)); put_message.wrote_chunk.connect(() => transfer_more_bytes(file_transfer.input_stream, put_message.request_body)); #endif + + file_transfer.transferred_bytes = 0; + put_message.wrote_body_data.connect((chunk) => { + if (file_transfer.size != 0) { +#if SOUP_3_0 + file_transfer.transferred_bytes += chunk; +#else + file_transfer.transferred_bytes += chunk.length; +#endif + } + }); + foreach (var entry in file_send_data.headers.entries) { put_message.request_headers.append(entry.key, entry.value); } -- cgit v1.2.3