summaryrefslogtreecommitdiffstats
path: root/src/webengine/ui_delegates_manager.cpp
diff options
context:
space:
mode:
authorValentin Fokin <fokinv@inf.u-szeged.hu>2018-05-30 14:46:15 +0200
committerPeter Varga <pvarga@inf.u-szeged.hu>2018-08-02 14:17:17 +0000
commit1481e8d87fe89d9e27d9de593767b55a0e84a31f (patch)
tree7ff04c22c4c880ec8d0951255772ce8b2c49bf3a /src/webengine/ui_delegates_manager.cpp
parent6a5f8d69fc1d090326fa92a0b24bd494369c2d0d (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.cpp35
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));