diff options
Diffstat (limited to 'src/webengine/ui_delegates_manager.cpp')
-rw-r--r-- | src/webengine/ui_delegates_manager.cpp | 19 |
1 files changed, 15 insertions, 4 deletions
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); } |