GNOME Bugzilla – Bug 308082
Visual feedback when rendering complex pages
Last modified: 2005-09-02 05:07:49 UTC
When you open a visually complex documents, there is a noticeable period during which evince displays a blank page. It would be nice if there was some kind of visual feedback to tell the user that evince is actually doing something. Currently there is no way to tell if the PDF is empty or not. Bug #165413 (visual feedback when opening complex document) is related.
My PDF test case is http://image.guardian.co.uk/sys-files/Guardian/documents/2004/11/11/lemon_jelly.pdf
Bryan what sort of feedback you think we should provide? Showing an hourglass would be sort of strange I think, also you dont really want to show it for pages that takes only a very small amount (even if noticable) of time. Maybe in this case the right fix is to speedup rendering ;) Any idea of what acroread does?
Yeah, I think we really need to speed up rendering time. :) I guess the epiphany style loading spinner would be good enough feedback that evince is thinking. Although something makes me think that when we do that we've just taken the last step to finally becoming Epiphany, we're just waiting for someone to create an http backend. ;)
FWIW, acroread just renders everything on-screen (where evince renders off-screen and shows the result all at once)
Interesting way of doing it, might still be nice to know when it's finished via progress bar or spinner.
Integrating epiphany spinner should be easy, I can do it if that's what we want. Though I wonder if the progress bar wouldnt be enough... after all this is something that we should improve (rendering speed). Also I tend to think any feedback tend to look strange when you are just scrolling pages. On screen rendering is interesting, though I think it require huge changes.
To be clear IHMO there are only 2 ways to solve this in a satisfactory way: 1 Incremental rendering 2 Mostly instantaneous rendering I'm not sure any other form of feedback will work well, but if we really need one I'd use a "jumping" progress bar.
I think a progress bar would actually be best. I'd rather not have a spinner since it will let us forget how slow the rendering is going, instead of reminding us that we need to make it faster. :) Marco, I had an idea about this earlier let me know what you think of this. I'll attach the mockup.
Created attachment 48960 [details] Evince Loading pages slowly This is also in my http://gnome.org/~clarkbw/designs/document-viewer/ area Just to give enough feedback we could show some text in a light color drawn on the page that gets displaced when the page actually finishes loading. Now we wouldn't really want this to be flashing all the time on quick renders, but if rendering was taking a while it would be nice to see something. Getting fancy with this could involve making the elipsis change from: Loading . Loading .. Loading ... We don't have to get fancy, but that's an idea instead of pushing a progress bar or spinner somewhere.
Bryan I like that approach. I guess the trick is to find a good logic/time about displaying or not displaying that label. Something we should play with anyway.
Progress bars are really hard (TM). In the long run, we'd rather have no progress bar, but just be fast enough. Lets put some loading text instead, and maybe a busy cursor or something. I'd really push back against a progress bar unless we were convinced that a given page is always going to be slow.
Oh yeah, just to be clear. I'd much rather do this text thing than progress bars.
Created attachment 49201 [details] [review] Patch that implements bryan proposal
Hrm -- that doesn't look like bryan's proposal. (-: We probably want to put the loading on the actual page. This patch doesn't work well if you've got multiple pages loading in continuous, too. It should be easier than this -- we can just draw the 'Loading' text in expose() if we don't get a pixbuf back from the cache. Also, after seeing the animation, I don't think I like it. I'll let Bryan comment, but I think it's a bit distracting. Lets keep it subtle, and not distract the user.
Hmm, agreed. I didn't say this of course, but was picturing the animation to be a very slow ... if anything. As jrb says, "Lets keep it subtle". nsh: I think you got the timing very well for when the loading appears. I didn't do too much testing, but it seemed to always appear on the test items right at the moment when I thought, "Is it still loading, or frozen?".
The current Evince loading progress bar is on the left of the status bar, Epiphany's loading progress bar is on the right. If the progress bar is staying in, then it would make sense to choose a consistent location.
Status bar is going to be dropped... Prolly shortly after the freeze.
I added the "Loading..." text to HEAD. I'm not sure I like it. I'll close this bug, but please feel free to open a new one about making the Loading feedback snazzier.