1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3// Qt-Security score:significant reason:default
4
5#ifndef QPARALLELANIMATIONGROUP_P_H
6#define QPARALLELANIMATIONGROUP_P_H
7
8//
9// W A R N I N G
10// -------------
11//
12// This file is not part of the Qt API. It exists purely as an
13// implementation detail. This header file may change from version to
14// version without notice, or even be removed.
15//
16// We mean it.
17//
18
19#include "qparallelanimationgroup.h"
20#include "private/qanimationgroup_p.h"
21#include <QtCore/qhash.h>
22
23QT_REQUIRE_CONFIG(animation);
24
25QT_BEGIN_NAMESPACE
26
27class QParallelAnimationGroupPrivate : public QAnimationGroupPrivate
28{
29 Q_DECLARE_PUBLIC(QParallelAnimationGroup)
30public:
31 QParallelAnimationGroupPrivate()
32 : lastLoop(0), lastCurrentTime(0)
33 {
34 }
35
36 QHash<QAbstractAnimation*, int> uncontrolledFinishTime;
37 int lastLoop;
38 int lastCurrentTime;
39
40 bool shouldAnimationStart(QAbstractAnimation *animation, bool startIfAtEnd) const;
41 void applyGroupState(QAbstractAnimation *animation);
42 bool isUncontrolledAnimationFinished(QAbstractAnimation *anim) const;
43 void connectUncontrolledAnimations();
44 void disconnectUncontrolledAnimations();
45
46 void animationRemoved(qsizetype index, QAbstractAnimation *) override;
47
48 // private slot
49 void _q_uncontrolledAnimationFinished();
50};
51
52QT_END_NAMESPACE
53
54#endif //QPARALLELANIMATIONGROUP_P_H
55

source code of qtbase/src/corelib/animation/qparallelanimationgroup_p.h