diff options
author | Jocelyn Turcotte <jocelyn.turcotte@digia.com> | 2014-06-30 12:13:16 +0200 |
---|---|---|
committer | Jocelyn Turcotte <jocelyn.turcotte@digia.com> | 2014-08-01 15:33:06 +0200 |
commit | 3ef45d0329858a60a8b96363fcf9d7fe9b6d8311 (patch) | |
tree | 4ecaca279efcd9c99edcd52fdd9bcdf3831e9c59 | |
parent | 04f58ffc1904bef7ba788b56ed098a7823017e65 (diff) |
Don't use the private QQmlMetaType::defaultProperty
Duplicate the small implementation of that function, which uses
QMetaObject public API together with the semi-public fact that
the meta class info named DefaultProperty needs to be fetched.
Change-Id: I37413bd28a0b0ead55853e4e3db5864dfc39966b
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
-rw-r--r-- | src/webengine/api/qquickwebengineview.cpp | 3 | ||||
-rw-r--r-- | src/webengine/ui_delegates_manager.cpp | 19 | ||||
-rw-r--r-- | src/webengine/ui_delegates_manager.h | 1 |
3 files changed, 17 insertions, 6 deletions
diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp index 3fbd53d34..cbd45842d 100644 --- a/src/webengine/api/qquickwebengineview.cpp +++ b/src/webengine/api/qquickwebengineview.cpp @@ -60,7 +60,6 @@ #include <QScreen> #include <QStringBuilder> #include <QUrl> -#include <private/qqmlmetatype_p.h> #include <private/qquickaccessibleattached_p.h> QT_BEGIN_NAMESPACE @@ -184,7 +183,7 @@ bool QQuickWebEngineViewPrivate::contextMenuRequested(const WebEngineContextMenu ui()->addMenuSeparator(menu); if (QObject* menuExtras = contextMenuExtraItems->create(ui()->creationContextForComponent(contextMenuExtraItems))) { menuExtras->setParent(menu); - QQmlListReference entries(menu, QQmlMetaType::defaultProperty(menu).name(), qmlEngine(q)); + QQmlListReference entries(menu, defaultPropertyName(menu), qmlEngine(q)); if (entries.isValid()) entries.append(menuExtras); } diff --git a/src/webengine/ui_delegates_manager.cpp b/src/webengine/ui_delegates_manager.cpp index 7790d2d55..5c0b0f65e 100644 --- a/src/webengine/ui_delegates_manager.cpp +++ b/src/webengine/ui_delegates_manager.cpp @@ -52,7 +52,6 @@ #include <QQmlEngine> #include <QQmlProperty> #include <QStringBuilder> -#include <private/qqmlmetatype_p.h> // Uncomment for QML debugging //#define UI_DELEGATES_DEBUG @@ -94,6 +93,18 @@ static QString getUIDelegatesImportDir(QQmlEngine *engine) { return importDir; } +const char *defaultPropertyName(QObject *obj) +{ + const QMetaObject *metaObject = obj->metaObject(); + + int idx = metaObject->indexOfClassInfo("DefaultProperty"); + if (-1 == idx) + return 0; + + QMetaClassInfo info = metaObject->classInfo(idx); + return info.value(); +} + MenuItemHandler::MenuItemHandler(QObject *parent) : QObject(parent) { @@ -208,7 +219,7 @@ void UIDelegatesManager::addMenuItem(MenuItemHandler *menuItemHandler, const QSt QObject *menu = menuItemHandler->parent(); it->setParent(menu); - QQmlListReference entries(menu, QQmlMetaType::defaultProperty(menu).name(), qmlEngine(m_view)); + QQmlListReference entries(menu, defaultPropertyName(menu), qmlEngine(m_view)); if (entries.isValid()) entries.append(it); } @@ -222,7 +233,7 @@ void UIDelegatesManager::addMenuSeparator(QObject *menu) QObject *sep = menuSeparatorComponent->create(itemContext); sep->setParent(menu); - QQmlListReference entries(menu, QQmlMetaType::defaultProperty(menu).name(), qmlEngine(m_view)); + QQmlListReference entries(menu, defaultPropertyName(menu), qmlEngine(m_view)); if (entries.isValid()) entries.append(sep); } @@ -250,7 +261,7 @@ QObject *UIDelegatesManager::addMenu(QObject *parentMenu, const QString &title, } else { menu->setParent(parentMenu); - QQmlListReference entries(parentMenu, QQmlMetaType::defaultProperty(parentMenu).name(), qmlEngine(m_view)); + QQmlListReference entries(parentMenu, defaultPropertyName(parentMenu), qmlEngine(m_view)); if (entries.isValid()) entries.append(menu); } diff --git a/src/webengine/ui_delegates_manager.h b/src/webengine/ui_delegates_manager.h index 125cacff4..6f8d8b097 100644 --- a/src/webengine/ui_delegates_manager.h +++ b/src/webengine/ui_delegates_manager.h @@ -75,6 +75,7 @@ class QQmlContext; class QQuickWebEngineView; QT_END_NAMESPACE +const char *defaultPropertyName(QObject *obj); class MenuItemHandler : public QObject { Q_OBJECT |