diff options
author | Qt Continuous Integration System <qt-info@nokia.com> | 2010-03-18 04:27:25 (GMT) |
---|---|---|
committer | Qt Continuous Integration System <qt-info@nokia.com> | 2010-03-18 04:27:25 (GMT) |
commit | 4dd9931c91aed711a888fb108f9f7225fd3e8045 (patch) | |
tree | 8a577565d6ba4fab08d48dbd8b93845fdcc80bc6 /src/corelib/animation/qparallelanimationgroup.cpp | |
parent | d3c8da01258a963c80f888f4acee722a84618db3 (diff) | |
parent | 91b29b3b00ba9292cfcbeb2ac93c4b1f7bed2bd6 (diff) | |
download | Qt-4dd9931c91aed711a888fb108f9f7225fd3e8045.zip Qt-4dd9931c91aed711a888fb108f9f7225fd3e8045.tar.gz Qt-4dd9931c91aed711a888fb108f9f7225fd3e8045.tar.bz2 |
Merge branch '4.6' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into 4.6-integration
* '4.6' of scm.dev.nokia.troll.no:qt/oslo-staging-2:
Optimize getting bearings of a glyph on Windows for true type fonts
Fixes blending problem when paiting non-opaque items with cache enabled.
Optimize speed of QTextLayout and QPainter::drawText
Fix a crash in animation groups when deleting uncontrolled animations
Diffstat (limited to 'src/corelib/animation/qparallelanimationgroup.cpp')
-rw-r--r-- | src/corelib/animation/qparallelanimationgroup.cpp | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src/corelib/animation/qparallelanimationgroup.cpp b/src/corelib/animation/qparallelanimationgroup.cpp index eaa0364..280afed 100644 --- a/src/corelib/animation/qparallelanimationgroup.cpp +++ b/src/corelib/animation/qparallelanimationgroup.cpp @@ -246,11 +246,9 @@ void QParallelAnimationGroupPrivate::_q_uncontrolledAnimationFinished() void QParallelAnimationGroupPrivate::disconnectUncontrolledAnimations() { - Q_Q(QParallelAnimationGroup); - QHash<QAbstractAnimation *, int>::iterator it = uncontrolledFinishTime.begin(); while (it != uncontrolledFinishTime.end()) { - QObject::disconnect(it.key(), SIGNAL(finished()), q, SLOT(_q_uncontrolledAnimationFinished())); + disconnectUncontrolledAnimation(it.key()); ++it; } @@ -259,13 +257,11 @@ void QParallelAnimationGroupPrivate::disconnectUncontrolledAnimations() void QParallelAnimationGroupPrivate::connectUncontrolledAnimations() { - Q_Q(QParallelAnimationGroup); - for (int i = 0; i < animations.size(); ++i) { QAbstractAnimation *animation = animations.at(i); if (animation->duration() == -1 || animation->loopCount() < 0) { uncontrolledFinishTime[animation] = -1; - QObject::connect(animation, SIGNAL(finished()), q, SLOT(_q_uncontrolledAnimationFinished())); + connectUncontrolledAnimation(animation); } } } @@ -305,6 +301,13 @@ bool QParallelAnimationGroupPrivate::isUncontrolledAnimationFinished(QAbstractAn return uncontrolledFinishTime.value(anim, -1) >= 0; } +void QParallelAnimationGroupPrivate::animationRemoved(int index, QAbstractAnimation *anim) +{ + QAnimationGroupPrivate::animationRemoved(index, anim); + disconnectUncontrolledAnimation(anim); + uncontrolledFinishTime.remove(anim); +} + /*! \reimp */ |