Ignore:
Timestamp:
Aug 2, 2010, 9:27:30 PM (15 years ago)
Author:
Dmitry A. Kuminov
Message:

trunk: Merged in qt 4.6.3 sources from branches/vendor/nokia/qt.

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk

  • trunk/demos/composition/composition.cpp

    r651 r769  
    4848#include <QMouseEvent>
    4949#include <qmath.h>
     50
     51const int animationInterval = 15; // update every 16 ms = ~60FPS
    5052
    5153CompositionWidget::CompositionWidget(QWidget *parent)
     
    237239{
    238240    m_animation_enabled = true;
     241    m_animationTimer = startTimer(animationInterval);
    239242#ifdef Q_WS_QWS
    240243    m_image = QPixmap(":res/composition/flower.jpg");
     
    263266    rect.translate(-size.width()/2, -size.height()/2);
    264267    return rect;
     268}
     269
     270void CompositionRenderer::setAnimationEnabled(bool enabled)
     271{
     272    if (m_animation_enabled == enabled)
     273        return;
     274    m_animation_enabled = enabled;
     275    if (enabled) {
     276        Q_ASSERT(!m_animationTimer);
     277        m_animationTimer = startTimer(animationInterval);
     278    } else {
     279        killTimer(m_animationTimer);
     280        m_animationTimer = 0;
     281    }
    265282}
    266283
     
    472489#endif
    473490    }
    474 
    475     if (m_animation_enabled && m_current_object == NoObject) {
    476         updateCirclePos();
    477     }
    478491}
    479492
     
    490503        m_current_object = NoObject;
    491504    }
     505    if (m_animation_enabled) {
     506        killTimer(m_animationTimer);
     507        m_animationTimer = 0;
     508    }
    492509}
    493510
     
    501518    m_current_object = NoObject;
    502519
    503     if (m_animation_enabled)
     520    if (m_animation_enabled) {
     521        Q_ASSERT(!m_animationTimer);
     522        m_animationTimer = startTimer(animationInterval);
     523    }
     524}
     525
     526void CompositionRenderer::timerEvent(QTimerEvent *event)
     527{
     528    if (event->timerId() == m_animationTimer)
    504529        updateCirclePos();
    505530}
  • trunk/demos/composition/composition.h

    r651 r769  
    110110    void paint(QPainter *);
    111111
    112     void mousePressEvent(QMouseEvent *);
    113     void mouseMoveEvent(QMouseEvent *);
    114     void mouseReleaseEvent(QMouseEvent *);
    115 
    116112    void setCirclePos(const QPointF &pos);
    117113
     
    121117    int circleColor() const { return m_circle_hue; }
    122118    int circleAlpha() const { return m_circle_alpha; }
     119
     120protected:
     121    void mousePressEvent(QMouseEvent *);
     122    void mouseMoveEvent(QMouseEvent *);
     123    void mouseReleaseEvent(QMouseEvent *);
     124    void timerEvent(QTimerEvent *);
    123125
    124126public slots:
     
    151153    void setCircleAlpha(int alpha) { m_circle_alpha = alpha; update(); }
    152154    void setCircleColor(int hue) { m_circle_hue = hue; update(); }
    153     void setAnimationEnabled(bool enabled) { m_animation_enabled = enabled; update(); }
     155    void setAnimationEnabled(bool enabled);
    154156
    155157private:
     
    178180    ObjectType m_current_object;
    179181    bool m_animation_enabled;
     182    int m_animationTimer;
    180183
    181184#ifdef QT_OPENGL_SUPPORT
Note: See TracChangeset for help on using the changeset viewer.