From ce7d46d6122c0af2c5820d51bbb804bc81cdefa7 Mon Sep 17 00:00:00 2001 From: Szabolcs David Date: Wed, 14 Nov 2018 13:46:18 +0100 Subject: Docs: Extend documentation of WebActions Add some useful information. Change-Id: I39290c8dfc6c4a1d87c6b24fe6c48cab93f805db Reviewed-by: Leena Miettinen Reviewed-by: Allan Sandfeld Jensen --- src/webengine/api/qquickwebengineaction.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/webengine/api') diff --git a/src/webengine/api/qquickwebengineaction.cpp b/src/webengine/api/qquickwebengineaction.cpp index 16eef04d3..f5b780ea6 100644 --- a/src/webengine/api/qquickwebengineaction.cpp +++ b/src/webengine/api/qquickwebengineaction.cpp @@ -146,7 +146,8 @@ QString QQuickWebEngineAction::iconName() const /*! \qmlproperty bool WebEngineAction::enabled - This property holds whether the action is enabled. + This property holds whether the action is enabled. Context-dependent + actions are always enabled. */ bool QQuickWebEngineAction::isEnabled() const { -- cgit v1.2.3 From f7110be2c88596814d1210d8fe1af9c501f9555e Mon Sep 17 00:00:00 2001 From: Szabolcs David Date: Wed, 28 Nov 2018 14:09:50 +0100 Subject: Avoid binding loops caused by default context menu When a WebEngineAction is tied to a UI element and a context menu request modifies its enabled state, the users get a warning: 'Binding loop detected for property "enabled"' Avoid triggering the action's notifier signal when the default context menu is being built. Change-Id: Ie23087f0b879399cf1cb88c44a42cd0be537a750 Reviewed-by: Allan Sandfeld Jensen --- src/webengine/api/qquickwebengineaction_p_p.h | 6 +++--- src/webengine/api/qquickwebengineview.cpp | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) (limited to 'src/webengine/api') diff --git a/src/webengine/api/qquickwebengineaction_p_p.h b/src/webengine/api/qquickwebengineaction_p_p.h index 4320f73e4..d2ead30e9 100644 --- a/src/webengine/api/qquickwebengineaction_p_p.h +++ b/src/webengine/api/qquickwebengineaction_p_p.h @@ -72,13 +72,13 @@ public: void trigger(); -private: - QQuickWebEngineAction *q_ptr; - QVariant m_data; QString m_text; QString m_iconName; bool m_enabled; + +private: + QQuickWebEngineAction *q_ptr; }; QT_END_NAMESPACE diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp index d9667a643..b9ae06aeb 100644 --- a/src/webengine/api/qquickwebengineview.cpp +++ b/src/webengine/api/qquickwebengineview.cpp @@ -2225,7 +2225,8 @@ void QQuickContextMenuBuilder::addMenuItem(ContextMenuItem menuItem) m_view->d_ptr->ui()->addMenuSeparator(m_menu); return; } - action->d_ptr->setEnabled(isMenuItemEnabled(menuItem)); + // Set enabled property directly with avoiding binding loops caused by its notifier signal. + action->d_ptr->m_enabled = isMenuItemEnabled(menuItem); m_view->d_ptr->ui()->addMenuItem(action, m_menu); } -- cgit v1.2.3 From e599907de9db0503b02a2d4a9be6d75e9542d6e3 Mon Sep 17 00:00:00 2001 From: Alexandru Croitor Date: Thu, 29 Nov 2018 18:26:50 +0100 Subject: Document and safeguard usage of custom schemes The change improves the documentation of QWebEngineUrlSchemeHandler to notify the requirement of registering a custom scheme before installing a custom scheme handler. Also start showing warnings when QWebEngineProfile::installUrlSchemeHandler() is called before a scheme is registered. Also show warnings when installing the handler using QML. Task-number: QTBUG-72079 Change-Id: If249592ea43fe2f9ad587a6ff4e8c9dedcc5d3d3 Reviewed-by: Leena Miettinen Reviewed-by: Kai Koehne --- src/webengine/api/qquickwebengineprofile.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/webengine/api') diff --git a/src/webengine/api/qquickwebengineprofile.cpp b/src/webengine/api/qquickwebengineprofile.cpp index ed2600e49..ddc71602b 100644 --- a/src/webengine/api/qquickwebengineprofile.cpp +++ b/src/webengine/api/qquickwebengineprofile.cpp @@ -53,6 +53,8 @@ #include "renderer_host/user_resource_controller_host.h" #include "web_engine_settings.h" +#include + using QtWebEngineCore::ProfileAdapter; QT_BEGIN_NAMESPACE @@ -857,7 +859,7 @@ static bool checkInternalScheme(const QByteArray &scheme) /*! Registers a handler \a handler for custom URL scheme \a scheme in the profile. - It is recommended to first register the scheme with \l + It is necessary to first register the scheme with \l QWebEngineUrlScheme::registerScheme at application startup. */ void QQuickWebEngineProfile::installUrlSchemeHandler(const QByteArray &scheme, QWebEngineUrlSchemeHandler *handler) @@ -875,6 +877,11 @@ void QQuickWebEngineProfile::installUrlSchemeHandler(const QByteArray &scheme, Q qWarning("URL scheme handler already installed for the scheme: %s", scheme.constData()); return; } + + if (QWebEngineUrlScheme::schemeByName(canonicalScheme) == QWebEngineUrlScheme()) + qWarning("Please register the custom scheme '%s' via QWebEngineUrlScheme::registerScheme() " + "before installing the custom scheme handler.", scheme.constData()); + d->profileAdapter()->addCustomUrlSchemeHandler(canonicalScheme, handler); connect(handler, SIGNAL(_q_destroyedUrlSchemeHandler(QWebEngineUrlSchemeHandler*)), this, SLOT(destroyedUrlSchemeHandler(QWebEngineUrlSchemeHandler*))); } -- cgit v1.2.3 From a9fc32bafccea8c57260b7dcec0cc3143b493578 Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Thu, 13 Dec 2018 13:22:04 +0100 Subject: Doc: Add full stop to the end of brief statement To get rid of a QDoc warning. Change-Id: Ib5d25edcf3b7e4a9786dd2056b025757ed5f7beb Reviewed-by: Kai Koehne --- src/webengine/api/qquickwebengineaction.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/webengine/api') diff --git a/src/webengine/api/qquickwebengineaction.cpp b/src/webengine/api/qquickwebengineaction.cpp index f5b780ea6..69a05f29b 100644 --- a/src/webengine/api/qquickwebengineaction.cpp +++ b/src/webengine/api/qquickwebengineaction.cpp @@ -50,7 +50,7 @@ QT_BEGIN_NAMESPACE \inqmlmodule QtWebEngine \since QtWebEngine 1.8 - \brief An action that represents a \l WebEngineView::WebAction + \brief An action that represents a \l WebEngineView::WebAction. A WebEngineAction is returned by the \l WebEngineView::action() method. It provides information about the action, such as -- cgit v1.2.3