diff options
author | Valentin Fokin <fokinv@inf.u-szeged.hu> | 2018-05-30 14:46:15 +0200 |
---|---|---|
committer | Peter Varga <pvarga@inf.u-szeged.hu> | 2018-08-02 14:17:17 +0000 |
commit | 1481e8d87fe89d9e27d9de593767b55a0e84a31f (patch) | |
tree | 7ff04c22c4c880ec8d0951255772ce8b2c49bf3a /src/webengine/ui_delegates_manager.cpp | |
parent | 6a5f8d69fc1d090326fa92a0b24bd494369c2d0d (diff) |
Introduce WebEngineAction in Quick API
Also implement QQuickWebEngineView::action() method similar to the Widget API
to access the WebEngineActions.
[ChangeLog][QtWebEngine] Introduce WebEngineAction in Quick API
Task-number: QTBUG-56117
Change-Id: I758cd4703db4c111c1ed9187e091d4c845486c46
Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
Diffstat (limited to 'src/webengine/ui_delegates_manager.cpp')
-rw-r--r-- | src/webengine/ui_delegates_manager.cpp | 35 |
1 files changed, 13 insertions, 22 deletions
diff --git a/src/webengine/ui_delegates_manager.cpp b/src/webengine/ui_delegates_manager.cpp index 4570172d7..c35d26017 100644 --- a/src/webengine/ui_delegates_manager.cpp +++ b/src/webengine/ui_delegates_manager.cpp @@ -119,11 +119,6 @@ const char *defaultPropertyName(QObject *obj) return info.value(); } -MenuItemHandler::MenuItemHandler(QObject *parent) - : QObject(parent) -{ -} - #define COMPONENT_MEMBER_INIT(TYPE, COMPONENT) \ , COMPONENT##Component(0) @@ -212,26 +207,25 @@ bool UIDelegatesManager::ensureComponentLoaded(ComponentType type) if (!prop.isSignalProperty()) \ qWarning("%s is missing %s signal property.\n", qPrintable(location.toString()), qPrintable(prop.name())); -void UIDelegatesManager::addMenuItem(MenuItemHandler *menuItemHandler, const QString &text, const QString &iconName, bool enabled, - bool checkable, bool checked) +void UIDelegatesManager::addMenuItem(QQuickWebEngineAction *action, QObject *menu, bool checkable, bool checked) { - Q_ASSERT(menuItemHandler); + Q_ASSERT(action); if (!ensureComponentLoaded(MenuItem)) return; QObject *it = menuItemComponent->beginCreate(qmlContext(m_view)); - QQmlProperty(it, QStringLiteral("text")).write(text); - QQmlProperty(it, QStringLiteral("iconName")).write(iconName); - QQmlProperty(it, QStringLiteral("enabled")).write(enabled); + QQmlProperty(it, QStringLiteral("text")).write(action->text()); + QQmlProperty(it, QStringLiteral("iconName")).write(action->iconText()); + QQmlProperty(it, QStringLiteral("enabled")).write(action->isEnabled()); QQmlProperty(it, QStringLiteral("checkable")).write(checkable); QQmlProperty(it, QStringLiteral("checked")).write(checked); QQmlProperty signal(it, QStringLiteral("onTriggered")); CHECK_QML_SIGNAL_PROPERTY(signal, menuItemComponent->url()); - QObject::connect(it, signal.method(), menuItemHandler, QMetaMethod::fromSignal(&MenuItemHandler::triggered)); + const QMetaObject *actionMeta = action->metaObject(); + QObject::connect(it, signal.method(), action, actionMeta->method(actionMeta->indexOfSlot("trigger()"))); menuItemComponent->completeCreate(); - QObject *menu = menuItemHandler->parent(); it->setParent(menu); QQmlListReference entries(menu, defaultPropertyName(menu), qmlEngine(m_view)); @@ -636,28 +630,25 @@ QObject *UI2DelegatesManager::addMenu(QObject *parentMenu, const QString &title, return menu; } -void UI2DelegatesManager::addMenuItem(MenuItemHandler *menuItemHandler, const QString &text, - const QString &/*iconName*/, bool enabled, - bool checkable, bool checked) +void UI2DelegatesManager::addMenuItem(QQuickWebEngineAction *action, QObject *menu, bool checkable, bool checked) { - Q_ASSERT(menuItemHandler); + Q_ASSERT(action); if (!ensureComponentLoaded(MenuItem)) return; QObject *it = menuItemComponent->beginCreate(qmlContext(m_view)); - it->setProperty("text", text); - it->setProperty("enabled", enabled); + it->setProperty("text", action->text()); + it->setProperty("enabled", action->isEnabled()); it->setProperty("checked", checked); it->setProperty("checkable", checkable); QQmlProperty signal(it, QStringLiteral("onTriggered")); CHECK_QML_SIGNAL_PROPERTY(signal, menuItemComponent->url()); - QObject::connect(it, signal.method(), menuItemHandler, - QMetaMethod::fromSignal(&MenuItemHandler::triggered)); + const QMetaObject *actionMeta = action->metaObject(); + QObject::connect(it, signal.method(), action, actionMeta->method(actionMeta->indexOfSlot("trigger()"))); menuItemComponent->completeCreate(); - QObject *menu = menuItemHandler->parent(); it->setParent(menu); QQmlListReference entries(menu, defaultPropertyName(menu), qmlEngine(m_view)); |