Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qqmldelayedcallqueue_p.h
Go to the documentation of this file.
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
4
5#ifndef QQMLDELAYEDCALLQUEUE_P_H
6#define QQMLDELAYEDCALLQUEUE_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 <QtCore/qglobal.h>
20#include <QtCore/qobject.h>
21#include <QtCore/qmetaobject.h>
22#include <QtCore/qmetatype.h>
23#include <private/qqmlguard_p.h>
24#include <private/qv4context_p.h>
25
26QT_BEGIN_NAMESPACE
27
28class QQmlDelayedCallQueue : public QObject
29{
30 Q_OBJECT
31public:
32 QQmlDelayedCallQueue();
33 ~QQmlDelayedCallQueue() override;
34
35 void init(QV4::ExecutionEngine *);
36
37 static QV4::ReturnedValue addUniquelyAndExecuteLater(QV4::ExecutionEngine *engine,
38 QQmlV4FunctionPtr args);
39
40public Q_SLOTS:
41 void ticked();
42
43private:
44 struct DelayedFunctionCall
45 {
46 DelayedFunctionCall() {}
47 DelayedFunctionCall(QV4::PersistentValue function)
48 : m_function(function), m_guarded(false) { }
49
50 void execute(QV4::ExecutionEngine *engine) const;
51
52 QV4::PersistentValue m_function;
53 QV4::PersistentValue m_args;
54 QQmlGuard<QObject> m_objectGuard;
55 bool m_guarded;
56 };
57
58 void storeAnyArguments(DelayedFunctionCall& dfc, QQmlV4FunctionPtr args, int offset, QV4::ExecutionEngine *engine);
59 void executeAllExpired_Later();
60
61 QV4::ExecutionEngine *m_engine;
62 QList<DelayedFunctionCall> m_delayedFunctionCalls;
63 QMetaMethod m_tickedMethod;
64 bool m_callbackOutstanding;
65};
66
68
69#endif // QQMLDELAYEDCALLQUEUE_P_H
Combined button and popup list for selecting options.