aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2021-01-29 10:29:04 +0100
committerUlf Hermann <ulf.hermann@qt.io>2021-01-29 16:52:29 +0100
commit3e539bf997004b834e296ef1e3c8298f45e74a57 (patch)
tree61abff82eaca914fff0ee1c6b297c78b1666bac4 /src/qml
parent4bec8958bb8f709efe74216fb68f36976c5a7a5b (diff)
Move implementation of functions declared in qqml.h into qqml.cpp
It makes no sense to have them qqmlengine.cpp. Change-Id: I138807c7650ec7aef4c6e8833e8bac8a6f179d1c Reviewed-by: Maximilian Goldstein <max.goldstein@qt.io> Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Diffstat (limited to 'src/qml')
-rw-r--r--src/qml/qml/qqml.cpp76
-rw-r--r--src/qml/qml/qqmlengine.cpp74
2 files changed, 76 insertions, 74 deletions
diff --git a/src/qml/qml/qqml.cpp b/src/qml/qml/qqml.cpp
index d4eeff90a2..bda4954bb2 100644
--- a/src/qml/qml/qqml.cpp
+++ b/src/qml/qml/qqml.cpp
@@ -48,11 +48,87 @@
#include <private/qqmltype_p_p.h>
#include <private/qqmltypemodule_p.h>
#include <private/qqmltypenotavailable_p.h>
+#include <private/qqmlcomponent_p.h>
#include <QtCore/qmutex.h>
QT_BEGIN_NAMESPACE
+
+/*!
+ \internal
+*/
+void qmlExecuteDeferred(QObject *object)
+{
+ QQmlData *data = QQmlData::get(object);
+
+ if (data && !data->deferredData.isEmpty() && !data->wasDeleted(object)) {
+ QQmlEnginePrivate *ep = QQmlEnginePrivate::get(data->context->engine());
+
+ QQmlComponentPrivate::DeferredState state;
+ QQmlComponentPrivate::beginDeferred(ep, object, &state);
+
+ // Release the reference for the deferral action (we still have one from construction)
+ data->releaseDeferredData();
+
+ QQmlComponentPrivate::completeDeferred(ep, &state);
+ }
+}
+
+QQmlContext *qmlContext(const QObject *obj)
+{
+ return QQmlEngine::contextForObject(obj);
+}
+
+QQmlEngine *qmlEngine(const QObject *obj)
+{
+ QQmlData *data = QQmlData::get(obj, false);
+ if (!data || !data->context)
+ return nullptr;
+ return data->context->engine();
+}
+
+static QObject *resolveAttachedProperties(QQmlAttachedPropertiesFunc pf, QQmlData *data,
+ QObject *object, bool create)
+{
+ if (!pf)
+ return nullptr;
+
+ QObject *rv = data->hasExtendedData() ? data->attachedProperties()->value(pf) : 0;
+ if (rv || !create)
+ return rv;
+
+ rv = pf(object);
+
+ if (rv)
+ data->attachedProperties()->insert(pf, rv);
+
+ return rv;
+}
+
+QQmlAttachedPropertiesFunc qmlAttachedPropertiesFunction(QObject *object,
+ const QMetaObject *attachedMetaObject)
+{
+ QQmlEngine *engine = object ? qmlEngine(object) : nullptr;
+ return QQmlMetaType::attachedPropertiesFunc(engine ? QQmlEnginePrivate::get(engine) : nullptr,
+ attachedMetaObject);
+}
+
+QObject *qmlAttachedPropertiesObject(QObject *object, QQmlAttachedPropertiesFunc func, bool create)
+{
+ if (!object)
+ return nullptr;
+
+ QQmlData *data = QQmlData::get(object, create);
+
+ // Attached properties are only on objects created by QML,
+ // unless explicitly requested (create==true)
+ if (!data)
+ return nullptr;
+
+ return resolveAttachedProperties(func, data, object, create);
+}
+
int qmlRegisterUncreatableMetaObject(const QMetaObject &staticMetaObject,
const char *uri, int versionMajor,
int versionMinor, const char *qmlName,
diff --git a/src/qml/qml/qqmlengine.cpp b/src/qml/qml/qqmlengine.cpp
index ae36fde7f0..36faecaba5 100644
--- a/src/qml/qml/qqmlengine.cpp
+++ b/src/qml/qml/qqmlengine.cpp
@@ -1452,80 +1452,6 @@ void QQmlEnginePrivate::doDeleteInEngineThread()
delete d;
}
-/*!
- \internal
-*/
-void qmlExecuteDeferred(QObject *object)
-{
- QQmlData *data = QQmlData::get(object);
-
- if (data && !data->deferredData.isEmpty() && !data->wasDeleted(object)) {
- QQmlEnginePrivate *ep = QQmlEnginePrivate::get(data->context->engine());
-
- QQmlComponentPrivate::DeferredState state;
- QQmlComponentPrivate::beginDeferred(ep, object, &state);
-
- // Release the reference for the deferral action (we still have one from construction)
- data->releaseDeferredData();
-
- QQmlComponentPrivate::completeDeferred(ep, &state);
- }
-}
-
-QQmlContext *qmlContext(const QObject *obj)
-{
- return QQmlEngine::contextForObject(obj);
-}
-
-QQmlEngine *qmlEngine(const QObject *obj)
-{
- QQmlData *data = QQmlData::get(obj, false);
- if (!data || !data->context)
- return nullptr;
- return data->context->engine();
-}
-
-static QObject *resolveAttachedProperties(QQmlAttachedPropertiesFunc pf, QQmlData *data,
- QObject *object, bool create)
-{
- if (!pf)
- return nullptr;
-
- QObject *rv = data->hasExtendedData() ? data->attachedProperties()->value(pf) : 0;
- if (rv || !create)
- return rv;
-
- rv = pf(object);
-
- if (rv)
- data->attachedProperties()->insert(pf, rv);
-
- return rv;
-}
-
-QQmlAttachedPropertiesFunc qmlAttachedPropertiesFunction(QObject *object,
- const QMetaObject *attachedMetaObject)
-{
- QQmlEngine *engine = object ? qmlEngine(object) : nullptr;
- return QQmlMetaType::attachedPropertiesFunc(engine ? QQmlEnginePrivate::get(engine) : nullptr,
- attachedMetaObject);
-}
-
-QObject *qmlAttachedPropertiesObject(QObject *object, QQmlAttachedPropertiesFunc func, bool create)
-{
- if (!object)
- return nullptr;
-
- QQmlData *data = QQmlData::get(object, create);
-
- // Attached properties are only on objects created by QML,
- // unless explicitly requested (create==true)
- if (!data)
- return nullptr;
-
- return resolveAttachedProperties(func, data, object, create);
-}
-
class QQmlDataExtended {
public:
QQmlDataExtended();