Bug 308231

Summary: yast2 busy indicator looks broken
Product: [openSUSE] openSUSE 10.3 Reporter: Sonja Krause-Harder <skh>
Component: YaST2Assignee: Stefan Hundhammer <shundhammer>
Status: RESOLVED FIXED QA Contact: Jiri Srain <jsrain>
Severity: Normal    
Priority: P5 - None CC: coolo, dmueller, forgotten_h13THG8RK1, lslezak, mmeeks
Version: Beta 3   
Target Milestone: ---   
Hardware: Other   
OS: Other   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Attachments: screenshot

Description Sonja Krause-Harder 2007-09-06 14:29:00 UTC
The new busy indicator while yast is reading repositories during package manager startup looks broken.

How I understand that it should look:

three diagonal stipes run through the indicator field from right to left, then there's some space without stripes, then the stripes come again, repeat etc., a variant of the well-known running-spiral-stripe progress bar.

How it looks here:

three stripes enter the indicator field from the right until it looks like in the attached screenshot, then they disappear and the animation restarts. It looks like a cross between blinking and continous stripe-running that somehow went wrong.
Comment 1 Sonja Krause-Harder 2007-09-06 14:29:34 UTC
Created attachment 162391 [details]
screenshot
Comment 2 Stefan Hundhammer 2007-09-06 14:51:31 UTC
I just checked with the simple Image-animated.ycp UI example: The MNG animation looks normal (as expected), but the animated GIF looks very strange indeed.
Comment 3 Ladislav Slezák 2007-09-07 07:23:54 UTC
The animated gif is correct, 'animate /usr/share/YaST2/theme/current/animations/ticks-loop3.gif' displays it like expected.

So the problem is either in yast2-qt or in the Qt library...
Comment 4 Stefan Hundhammer 2007-09-07 10:52:38 UTC
We tested this with MNG, which works nicely and is the documented way for the Qt UI. GIF was used for the sake of the Gtk-UI which does not support MNG.

The Qt UI uses standard Qt methods to display and animate those animations. But it looks like Qt (-3) does not display this animated GIF (don't know about others) correctly.

It has been made clear to us that there will be no more support for Qt-3 (other than security fixes, which this is clearly not).

Comment 5 Stefan Hundhammer 2007-09-07 11:37:40 UTC
dmueller said (in IRC) that the problem is that the first and the last frame of that GIF are not identical.

Apparently this is not a problem with MNGs (which use the same code with QMovie etc.), but it utterly disturbs display of an animated GIF.

Maybe this can be fixed in the artwork by making an animated GIF that meets the above requirement.

Maybe we should use the file format that works (MNG) so this animation actually fulfills its intention: Better eye candy while the user has to wait. But in that case, we have to think about what to do with the Gtk UI: Either not have it report it supports animations (which it does only half way: no MNG (*)) or (most likely a much more intrusive change) have it support MNG, too.




(*) The UI examples and the UI documentation use MNG everywhere. Even though there is no formal spec about that aspect of a YaST2 UI, it might have been concluded from that that MNG is the format of choice that should be supported if the UI indicates it has the "HasAnimationSupport" capability.

http://forgeftp.novell.com///yast/doc/SL10.2/tdg/Image_widget.html
Comment 6 Stefan Hundhammer 2007-09-07 11:42:23 UTC
Stano, Coolo, we need some decisions here:

(1) What do we do about this for 10.3 ?

    (a) leave it like this
    (b) use the MNG that works properly for Qt, but not at all for Gtk
    (c) make a new animated GIF that works properly for both
        (artwork help required - jimmac?)


(2) What do we do to avoid this in the future?

    (a) make the Gtk-UI report "false" for the "HasAnimationSupport"
        UI capability since it does not support the format of choice (MNG)
    (b) add MNG support to the Gtk-UI
    (c) officially drop support for MNG in both the Qt-UI to get down
        to the least common denominator
Comment 7 Stanislav Visnovsky 2007-09-07 11:48:53 UTC
Please, leave the implementation as is for 10.3

For future:
- UI has to provide a busy progress or similar natively, no hack needed
- I think MNG support for Gtk-UI would be the best way
Comment 8 Ladislav Slezák 2007-09-07 11:55:38 UTC
I think that the best solution for the future is to create a new native widget (`BusyProgress?) which will be handled by the UIs and drop this workaround.

So the look and feel of the indicator will depend on the UI which knows best it's own possibilities and limitations.
Comment 9 Stefan Hundhammer 2007-09-07 11:58:10 UTC
(In reply to comment #7 from Stanislav Visnovsky)
> Please, leave the implementation as is for 10.3

OK.

> For future:
> - UI has to provide a busy progress or similar natively, no hack needed

Definitely. We will need that at many places.

> - I think MNG support for Gtk-UI would be the best way

-> mmeeks

Comment 10 Stefan Hundhammer 2007-09-07 12:10:05 UTC
(In reply to comment #9 from Stefan Hundhammer)
> > - I think MNG support for Gtk-UI would be the best way
> 
> -> mmeeks

new bug# 308617 :yast2-gtk-ui does not support MNG animations

Comment 11 Stefan Hundhammer 2007-09-07 12:28:08 UTC
> > For future:
> > - UI has to provide a busy progress or similar natively, no hack needed
> 
> Definitely. We will need that at many places.

Added as fate #302559 :
http://keeper.suse.de:8080/webfate/match/id?value=302559&display-hint=yes
Comment 12 Forgotten User h13THG8RK1 2007-10-16 14:53:10 UTC
yast-gtk should render MNG-VCL animations fine now. But please test them, or just send me the file you want to use.
Comment 13 Stefan Hundhammer 2008-04-29 12:22:23 UTC
reopening
Comment 14 Stefan Hundhammer 2008-04-29 12:22:53 UTC
We have a new, shiny dedicated busy indicator now.