Changeset 55774 in webkit


Ignore:
Timestamp:
Mar 10, 2010 2:46:08 AM (14 years ago)
Author:
zecke@webkit.org
Message:

[Qt] Non animated gifs are animated in QtWebKit

https://bugs.webkit.org/show_bug.cgi?id=35955

Properly map Qt animated and non-animated values to WebCore's
understanding of animated and non-animated images. Currently
we can not map anything to the cAnimationLoopNone value.

  • manual-tests/qt/qt-anim.gif: Added.
  • manual-tests/qt/qt-gif-test.html: Added.
  • manual-tests/qt/qt-noanim.gif: Added.
  • platform/graphics/qt/ImageDecoderQt.cpp:

(WebCore::ImageDecoderQt::repetitionCount):

Location:
trunk/WebCore
Files:
3 added
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r55773 r55774  
     12010-03-10  Holger Hans Peter Freyther  <zecke@selfish.org>
     2
     3        Reviewed by Simon Hausmann.
     4
     5        [Qt] Non animated gifs are animated in QtWebKit
     6        https://bugs.webkit.org/show_bug.cgi?id=35955
     7
     8        Properly map Qt animated and non-animated values to WebCore's
     9        understanding of animated and non-animated images. Currently
     10        we can not map anything to the cAnimationLoopNone value.
     11
     12        * manual-tests/qt/qt-anim.gif: Added.
     13        * manual-tests/qt/qt-gif-test.html: Added.
     14        * manual-tests/qt/qt-noanim.gif: Added.
     15        * platform/graphics/qt/ImageDecoderQt.cpp:
     16        (WebCore::ImageDecoderQt::repetitionCount):
     17
    1182010-03-07  Holger Hans Peter Freyther  <zecke@selfish.org>
    219
  • trunk/WebCore/platform/graphics/qt/ImageDecoderQt.cpp

    r55687 r55774  
    116116int ImageDecoderQt::repetitionCount() const
    117117{
    118     if (m_reader && m_reader->supportsAnimation())
    119         m_repetitionCount = qMax(0, m_reader->loopCount());
     118    if (m_reader && m_reader->supportsAnimation()) {
     119        m_repetitionCount = m_reader->loopCount();
     120
     121        // Qt and WebCore have a incompatible understanding of
     122        // the loop count and we can not completely map everything.
     123        //  Qt   |   WebCore          | description
     124        //  -1   |     0              | infinite animation
     125        //   0   | cAnimationLoopOnce | show every frame once
     126        //   n   |     n              | no idea if that is supported
     127        //  n/a  | cAnimationNone     | show only the first frame
     128        if (m_repetitionCount == -1)
     129            m_repetitionCount = 0;
     130        else if (m_repetitionCount == 0)
     131            m_repetitionCount = cAnimationLoopOnce;
     132    }
    120133
    121134    return m_repetitionCount;
Note: See TracChangeset for help on using the changeset viewer.