All pastes #1909646 Raw Edit

Something

public diff v1 · immutable
#1909646 ·published 2010-07-27 22:04 UTC
rendered paste body
Index: mythtv/libs/libmythui/mythuiimage.cpp===================================================================--- mythtv/libs/libmythui/mythuiimage.cpp	(revision 25434)+++ mythtv/libs/libmythui/mythuiimage.cpp	(working copy)@@ -238,7 +238,7 @@     m_isGreyscale = false;      m_preserveAspect = false;-    +     m_animationCycle = kCycleStart;     m_animationReverse = false; }@@ -388,6 +388,9 @@         aSize = aSize.expandedTo(im->size());     } +    VERBOSE(VB_IMPORTANT, QString("Inserted %1 images").arg(m_Images.size()));+    SetImageCount(1, m_Images.size());+     if (m_ForceSize.isNull())         SetSize(aSize); @@ -518,6 +521,13 @@      Clear(); +    QString extension = filename.section('.', -1);+    if (extension == "gif")+    {+        if (QImageReader(filename).imageCount() > 1)+            return LoadAnimatedImage(filename);+    }+ //    SetRedraw();  //    if (!IsVisible(true))@@ -812,6 +822,36 @@     return image; } +bool MythUIImage::LoadAnimatedImage(const QString &imFile)+{+    QVector<MythImage *> images;+    QImageReader reader(imFile);++    if (!reader.supportsAnimation())+        return false;++    while (1)+    {+        MythImage *im = GetMythPainter()->GetFormatImage();+        reader.read(im);+        if (im->isNull())+        {+            im->DownRef();+            break;+        }+        images.append(im);+    }++    if (images.size() > 0)+    {+        m_Delay = reader.nextImageDelay();+        SetImages(images);+        return true;+    }++    return true;+}+ /**  *  \copydoc MythUIType::Pulse()  */@@ -845,7 +885,7 @@             else                 ++m_CurPos;         }-             +         m_ImagesLock.unlock();          SetRedraw();Index: mythtv/libs/libmythui/mythuiimage.h===================================================================--- mythtv/libs/libmythui/mythuiimage.h	(revision 25434)+++ mythtv/libs/libmythui/mythuiimage.h	(working copy)@@ -66,6 +66,7 @@     void Clear(void);     MythImage* LoadImage(const QString &imFile, int imageNumber,                          QSize bForceSize);+    bool LoadAnimatedImage(const QString &filename);     void customEvent(QEvent *event);      virtual bool ParseElement(@@ -131,7 +132,7 @@     enum AnimationCycle {kCycleStart, kCycleReverse};     AnimationCycle m_animationCycle;     bool m_animationReverse;-    +     friend class MythThemeBase;     friend class MythUIButtonListItem;     friend class MythUIProgressBar;