No progress indicator or meter for page rendering
Some pages take very long time to show (example: fasciaverdenew.pdf). This is not a fault of poppler, they are just huge. The only way I see so far to inform the user that something is happening is by a spinner or something running in a separate thread. That, however:
-
does not make any difference between the case where file reading is blocked, slow or just going on normally but the page is long to process;
-
does not tell anything about the progress made so far.
For example, if the page is on a network volume rendering could be stopped or slowed down because of the network while the spinner is still spinning as if the network was ok but the page is hard to render.
I agree that there is no sure way to tell the progress made in rendering, but this also applies to many other processes where progress meters are used, like downloading large files from the Internet or installing new software.
I think such problems could be solved by a callback to the file-reading operations. As far as I can see poppler reads the file during rendering in block of 256 bytes; this would make it straightforward to tell how fast page reading is progressing, distinguishing pages of large content from pages on problematic filesystems.
A progress meter could be implemented if the callback received the current offset in the file, the starting offset and size of the object that is currently being read, and the same for the page content object (including the offset of the last read in it). Of course, this would still give a rough estimate.
This is a request for your opinion: what do you think about all of this?