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
qquickdeferredexecute_p_p.h
Go to the documentation of this file.
1// Copyright (C) 2017 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 QQUICKDEFERREDEXECUTE_P_P_H
6#define QQUICKDEFERREDEXECUTE_P_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 <QtQuickTemplates2/private/qquickdeferredpointer_p_p.h>
21#include <QtQuickTemplates2/private/qtquicktemplates2global_p.h>
22
23#include <QtQml/private/qqmlvme_p.h>
24
26
27class QString;
28class QObject;
29
30namespace QtQuickPrivate {
31 Q_QUICKTEMPLATES2_EXPORT void beginDeferred(QObject *object, const QString &property,
32 QQuickUntypedDeferredPointer *delegate, bool isOwnState, QQmlEngine *engine = nullptr);
33 Q_QUICKTEMPLATES2_EXPORT void cancelDeferred(QObject *object, const QString &property);
34 Q_QUICKTEMPLATES2_EXPORT void completeDeferred(QObject *object, const QString &property,
35 QQuickUntypedDeferredPointer *delegate, QQmlEngine *engine = nullptr);
36}
37
38template<typename T>
39void quickBeginDeferred(QObject *object, const QString &property, QQuickDeferredPointer<T> &delegate)
40{
41 if (!QQmlVME::componentCompleteEnabled())
42 return;
43
44 QtQuickPrivate::beginDeferred(object, property, &delegate, delegate.setExecuting(true));
45 delegate.setExecuting(false);
46}
47
48template<typename T>
49void quickBeginAttachedDeferred(QObject *object, const QString &property,
50 QQuickDeferredPointer<T> &delegate, QQmlEngine *engine)
51{
52 if (!QQmlVME::componentCompleteEnabled())
53 return;
54
55 QtQuickPrivate::beginDeferred(object, property, &delegate, delegate.setExecuting(true), engine);
56 delegate.setExecuting(false);
57}
58
59inline void quickCancelDeferred(QObject *object, const QString &property)
60{
61 QtQuickPrivate::cancelDeferred(object, property);
62}
63
64template<typename T>
65void quickCompleteDeferred(QObject *object, const QString &property, QQuickDeferredPointer<T> &delegate)
66{
67 Q_ASSERT(!delegate.wasExecuted());
68 QtQuickPrivate::completeDeferred(object, property, &delegate);
69 delegate.setExecuted();
70}
71
72template<typename T>
73void quickCompleteAttachedDeferred(QObject *object, const QString &property,
74 QQuickDeferredPointer<T> &delegate, QQmlEngine *engine)
75{
76 Q_ASSERT(!delegate.wasExecuted());
77 QtQuickPrivate::completeDeferred(object, property, &delegate, engine);
78 delegate.setExecuted();
79}
80
81QT_END_NAMESPACE
82
83#endif // QQUICKDEFERREDEXECUTE_P_P_H
Groups actions together.
void trigger(QObject *, bool doToggle)
bool handleShortcutEvent(QObject *object, QShortcutEvent *event)
void itemDestroyed(QQuickItem *item) override
void registerItem(QQuickItem *item)
bool watchItem(QQuickItem *item)
QQuickActionGroup * group
void itemVisibilityChanged(QQuickItem *item) override
bool unwatchItem(QQuickItem *item)
void unregisterItem(QQuickItem *item)
Mutually-exclusive group of checkable buttons.
Q_QUICKTEMPLATES2_EXPORT void completeDeferred(QObject *object, const QString &property, QQuickUntypedDeferredPointer *delegate, QQmlEngine *engine=nullptr)
Q_QUICKTEMPLATES2_EXPORT void beginDeferred(QObject *object, const QString &property, QQuickUntypedDeferredPointer *delegate, bool isOwnState, QQmlEngine *engine=nullptr)
Q_QUICKTEMPLATES2_EXPORT void cancelDeferred(QObject *object, const QString &property)
void quickBeginAttachedDeferred(QObject *object, const QString &property, QQuickDeferredPointer< T > &delegate, QQmlEngine *engine)
void quickCancelDeferred(QObject *object, const QString &property)
void quickCompleteDeferred(QObject *object, const QString &property, QQuickDeferredPointer< T > &delegate)
void quickCompleteAttachedDeferred(QObject *object, const QString &property, QQuickDeferredPointer< T > &delegate, QQmlEngine *engine)
void quickBeginDeferred(QObject *object, const QString &property, QQuickDeferredPointer< T > &delegate)