QCommonStyle: simplify removeAnimation
Simplify removeAnimation by directly passing the pointer to remove to the function instead trying to figure them out later on and relying on QObject::sender(). Change-Id: I9de3a138c60b0da8dd1ab23fe8521798b7f4c13c Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
This commit is contained in:
parent
4d9d66d7a8
commit
01eb95acf0
@ -1275,11 +1275,11 @@ QStyleAnimation * QCommonStylePrivate::animation(const QObject *target) const
|
||||
void QCommonStylePrivate::startAnimation(QStyleAnimation *animation) const
|
||||
{
|
||||
Q_Q(const QCommonStyle);
|
||||
stopAnimation(animation->target());
|
||||
QObjectPrivate::connect(animation, &QStyleAnimation::destroyed,
|
||||
this, &QCommonStylePrivate::removeAnimation,
|
||||
Qt::UniqueConnection);
|
||||
animations.insert(animation->target(), animation);
|
||||
const auto target = animation->target();
|
||||
stopAnimation(target);
|
||||
QObject::connect(animation, &QStyleAnimation::destroyed,
|
||||
q, [this, target]() { removeAnimation(target); });
|
||||
animations.insert(target, animation);
|
||||
animation->start();
|
||||
}
|
||||
|
||||
@ -1294,12 +1294,9 @@ void QCommonStylePrivate::stopAnimation(const QObject *target) const
|
||||
}
|
||||
|
||||
/*! \internal */
|
||||
void QCommonStylePrivate::removeAnimation()
|
||||
void QCommonStylePrivate::removeAnimation(const QObject *target) const
|
||||
{
|
||||
Q_Q(QCommonStyle);
|
||||
QObject *animation = q->sender();
|
||||
if (animation)
|
||||
animations.remove(animation->parent());
|
||||
animations.remove(target);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -95,7 +95,7 @@ public:
|
||||
QStyleAnimation* animation(const QObject *target) const;
|
||||
void startAnimation(QStyleAnimation *animation) const;
|
||||
void stopAnimation(const QObject *target) const;
|
||||
void removeAnimation();
|
||||
void removeAnimation(const QObject *target) const;
|
||||
|
||||
private:
|
||||
mutable QHash<const QObject*, QStyleAnimation*> animations;
|
||||
|
Loading…
Reference in New Issue
Block a user