diff --git a/src/qml/qml/qqml.h b/src/qml/qml/qqml.h index f04cf7d6fa17d787007eb85ec87a40b9cb2a138d..fb0133f305566b5e88cf16f62cb52c4aacf5a740 100644 --- a/src/qml/qml/qqml.h +++ b/src/qml/qml/qqml.h @@ -419,11 +419,17 @@ class QQmlContext; class QQmlEngine; class QJSValue; class QJSEngine; -Q_QML_EXPORT void qmlExecuteDeferred(QObject *); -Q_QML_EXPORT QQmlContext *qmlContext(const QObject *); -Q_QML_EXPORT QQmlEngine *qmlEngine(const QObject *); -Q_QML_EXPORT QObject *qmlAttachedPropertiesObjectById(int, const QObject *, bool create = true); -Q_QML_EXPORT QObject *qmlAttachedPropertiesObject(int *, const QObject *, const QMetaObject *, bool create); + +namespace QtQml { + // declared in namespace to avoid symbol conflicts with QtDeclarative + Q_QML_EXPORT void qmlExecuteDeferred(QObject *); + Q_QML_EXPORT QQmlContext *qmlContext(const QObject *); + Q_QML_EXPORT QQmlEngine *qmlEngine(const QObject *); + Q_QML_EXPORT QObject *qmlAttachedPropertiesObjectById(int, const QObject *, bool create = true); + Q_QML_EXPORT QObject *qmlAttachedPropertiesObject(int *, const QObject *, + const QMetaObject *, bool create); +} +using namespace QtQml; template<typename T> QObject *qmlAttachedPropertiesObject(const QObject *obj, bool create = true) diff --git a/src/qml/qml/qqmlengine.cpp b/src/qml/qml/qqmlengine.cpp index 377d0c49d6d66c154076e81bc40fe762c9c7b5e0..bb3ac938c342456eae2b137c2aea6bf01592467e 100644 --- a/src/qml/qml/qqmlengine.cpp +++ b/src/qml/qml/qqmlengine.cpp @@ -1279,6 +1279,8 @@ void QQmlEnginePrivate::doDeleteInEngineThread() delete d; } +namespace QtQml { + Q_AUTOTEST_EXPORT void qmlExecuteDeferred(QObject *object) { QQmlData *data = QQmlData::get(object); @@ -1352,6 +1354,41 @@ QObject *qmlAttachedPropertiesObject(int *idCache, const QObject *object, return qmlAttachedPropertiesObjectById(*idCache, object, create); } +} // namespace QtQml + +#if QT_DEPRECATED_SINCE(5, 1) + +// Also define symbols outside namespace to keep binary compatibility with Qt 5.0 + +Q_QML_EXPORT void qmlExecuteDeferred(QObject *obj) +{ + QtQml::qmlExecuteDeferred(obj); +} + +Q_QML_EXPORT QQmlContext *qmlContext(const QObject *obj) +{ + return QtQml::qmlContext(obj); +} + +Q_QML_EXPORT QQmlEngine *qmlEngine(const QObject *obj) +{ + return QtQml::qmlEngine(obj); +} + +Q_QML_EXPORT QObject *qmlAttachedPropertiesObjectById(int id, const QObject *obj, bool create) +{ + return QtQml::qmlAttachedPropertiesObjectById(id, obj, create); +} + +Q_QML_EXPORT QObject *qmlAttachedPropertiesObject(int *idCache, const QObject *object, + const QMetaObject *attachedMetaObject, + bool create) +{ + return QtQml::qmlAttachedPropertiesObject(idCache, object, attachedMetaObject, create); +} + +#endif // QT_DEPRECATED_SINCE(5, 1) + QQmlDebuggingEnabler::QQmlDebuggingEnabler(bool printWarning) { #ifndef QQML_NO_DEBUG_PROTOCOL diff --git a/src/qml/qml/qqmlinfo.cpp b/src/qml/qml/qqmlinfo.cpp index 66670e26586f74233b90740a8d77cf2c9d36a2c5..32f0eeef3603f782b7e790f9e0852be69dd1dbd9 100644 --- a/src/qml/qml/qqmlinfo.cpp +++ b/src/qml/qml/qqmlinfo.cpp @@ -165,6 +165,8 @@ QQmlInfo::~QQmlInfo() } } +namespace QtQml { + QQmlInfo qmlInfo(const QObject *me) { QQmlInfoPrivate *d = new QQmlInfoPrivate; @@ -188,5 +190,27 @@ QQmlInfo qmlInfo(const QObject *me, const QList<QQmlError> &errors) return QQmlInfo(d); } +} // namespace QtQml + +#if QT_DEPRECATED_SINCE(5, 1) + +// Also define symbols outside namespace to keep binary compatibility with Qt 5.0 + +QQmlInfo qmlInfo(const QObject *me) +{ + return QtQml::qmlInfo(me); +} + +QQmlInfo qmlInfo(const QObject *me, const QQmlError &error) +{ + return QtQml::qmlInfo(me, error); +} + +QQmlInfo qmlInfo(const QObject *me, const QList<QQmlError> &errors) +{ + return QtQml::qmlInfo(me, errors); +} + +#endif // QT_DEPRECATED_SINCE(5, 1) QT_END_NAMESPACE diff --git a/src/qml/qml/qqmlinfo.h b/src/qml/qml/qqmlinfo.h index 16fca9428e2b01272d1ac2d42a890750a2cf3419..56ac7886243943e00db74ec36304ea56745eae5c 100644 --- a/src/qml/qml/qqmlinfo.h +++ b/src/qml/qml/qqmlinfo.h @@ -48,6 +48,15 @@ QT_BEGIN_NAMESPACE +class QQmlInfo; + +namespace QtQml { + // declared in namespace to avoid symbol conflicts with QtDeclarative + Q_QML_EXPORT QQmlInfo qmlInfo(const QObject *me); + Q_QML_EXPORT QQmlInfo qmlInfo(const QObject *me, const QQmlError &error); + Q_QML_EXPORT QQmlInfo qmlInfo(const QObject *me, const QList<QQmlError> &errors); +} +using namespace QtQml; class QQmlInfoPrivate; class Q_QML_EXPORT QQmlInfo : public QDebug @@ -82,18 +91,14 @@ public: #endif private: - friend Q_QML_EXPORT QQmlInfo qmlInfo(const QObject *me); - friend Q_QML_EXPORT QQmlInfo qmlInfo(const QObject *me, const QQmlError &error); - friend Q_QML_EXPORT QQmlInfo qmlInfo(const QObject *me, const QList<QQmlError> &errors); + friend Q_QML_EXPORT QQmlInfo QtQml::qmlInfo(const QObject *me); + friend Q_QML_EXPORT QQmlInfo QtQml::qmlInfo(const QObject *me, const QQmlError &error); + friend Q_QML_EXPORT QQmlInfo QtQml::qmlInfo(const QObject *me, const QList<QQmlError> &errors); QQmlInfo(QQmlInfoPrivate *); QQmlInfoPrivate *d; }; -Q_QML_EXPORT QQmlInfo qmlInfo(const QObject *me); -Q_QML_EXPORT QQmlInfo qmlInfo(const QObject *me, const QQmlError &error); -Q_QML_EXPORT QQmlInfo qmlInfo(const QObject *me, const QList<QQmlError> &errors); - QT_END_NAMESPACE #endif // QQMLINFO_H