Bug 377394 - Uploading a mail in a remote IMAP folder does not show progress status in Kmail
Summary: Uploading a mail in a remote IMAP folder does not show progress status in Kmail
Status: CONFIRMED
Alias: None
Product: Akonadi
Classification: Frameworks and Libraries
Component: IMAP resource (show other bugs)
Version: 5.4.1
Platform: unspecified Linux
: NOR minor
Target Milestone: ---
Assignee: Daniel Vrátil
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-03-08 21:18 UTC by orontobate
Modified: 2017-03-09 10:31 UTC (History)
4 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description orontobate 2017-03-08 21:18:07 UTC
The bottom right progress bar in Kmail does not show the progression of all IMAP operation: for example "uploading" a mail to a remote IMAP folder.

Steps to recreate:
1) configure an IMAP account
2) in "Settings" -> "Configure KMail" -> "Identities" -> "Modify" -> "Advanced" -> "sent mail folder" select a remote IMAP folder 
3) send a big mail to someone, like 9Mb (sometimes people ask to receive big mail instead of Dropbox links)

Actual result:
after the mail is sent there is no way to check the progress status of the "upload" of the mail to the IMAP folder

Expected result:
it should display the progress bar in the bottom right corner
Comment 1 Daniel Vrátil 2017-03-09 00:04:03 UTC
Upon initial investigation, it turns out this might be really tricky to implement properly because Qt does not really provide us with any means of monitoring the progress of data being sent. It simply buffers the entire payload and passes it to the kernel, which buffers it internally again.

We could maybe try to abuse the way Qt works with its internal buffers and pass the payload to Qt in several smaller chunks, then we would get notified upon every chunk being written to the socket and we could check how much data remains in Qt's the buffer. To get a reasonable progress reporting we would, however, have to pass the payload in really small chunks. The question is what is the performance impact (in the terms of upload speed) compared to just passing the entire payload to the kernel in one piece to deal with it internally.
Comment 2 orontobate 2017-03-09 06:46:07 UTC
At least a status notification without progress bar could be possible?
Just to be notified when the process end with success