summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJocelyn Turcotte <jocelyn.turcotte@digia.com>2014-06-30 12:13:16 +0200
committerJocelyn Turcotte <jocelyn.turcotte@digia.com>2014-08-01 15:33:06 +0200
commit3ef45d0329858a60a8b96363fcf9d7fe9b6d8311 (patch)
tree4ecaca279efcd9c99edcd52fdd9bcdf3831e9c59
parent04f58ffc1904bef7ba788b56ed098a7823017e65 (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.cpp3
-rw-r--r--src/webengine/ui_delegates_manager.cpp19
-rw-r--r--src/webengine/ui_delegates_manager.h1
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