From 2c86c348d7a94f27d1e9e7a71c2435565cbe6fb5 Mon Sep 17 00:00:00 2001 From: Peter Varga Date: Wed, 15 May 2019 10:33:07 +0200 Subject: Disable edit actions when content has no focused frame Task-number: QTBUG-75505 Change-Id: Ia1329ff554a86e307aa7995e9af1665ea6c5e64c Reviewed-by: Allan Sandfeld Jensen --- src/webengine/api/qquickwebengineaction.cpp | 3 +-- src/webengine/api/qquickwebengineview.cpp | 22 ++++++++++++++++++++++ src/webengine/api/qquickwebengineview_p_p.h | 1 + 3 files changed, 24 insertions(+), 2 deletions(-) (limited to 'src/webengine/api') diff --git a/src/webengine/api/qquickwebengineaction.cpp b/src/webengine/api/qquickwebengineaction.cpp index 69a05f29b..77ac8d340 100644 --- a/src/webengine/api/qquickwebengineaction.cpp +++ b/src/webengine/api/qquickwebengineaction.cpp @@ -146,8 +146,7 @@ QString QQuickWebEngineAction::iconName() const /*! \qmlproperty bool WebEngineAction::enabled - This property holds whether the action is enabled. Context-dependent - actions are always enabled. + This property holds whether the action is enabled. */ bool QQuickWebEngineAction::isEnabled() const { diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp index fd3cc8e82..c8ba64f49 100644 --- a/src/webengine/api/qquickwebengineview.cpp +++ b/src/webengine/api/qquickwebengineview.cpp @@ -931,6 +931,16 @@ void QQuickWebEngineViewPrivate::updateAction(QQuickWebEngineView::WebAction act case QQuickWebEngineView::ViewSource: enabled = adapter->canViewSource(); break; + case QQuickWebEngineView::Cut: + case QQuickWebEngineView::Copy: + case QQuickWebEngineView::Paste: + case QQuickWebEngineView::Undo: + case QQuickWebEngineView::Redo: + case QQuickWebEngineView::SelectAll: + case QQuickWebEngineView::PasteAndMatchStyle: + case QQuickWebEngineView::Unselect: + enabled = adapter->hasFocusedFrame(); + break; default: break; } @@ -948,6 +958,18 @@ void QQuickWebEngineViewPrivate::updateNavigationActions() updateAction(QQuickWebEngineView::ViewSource); } +void QQuickWebEngineViewPrivate::updateEditActions() +{ + updateAction(QQuickWebEngineView::Cut); + updateAction(QQuickWebEngineView::Copy); + updateAction(QQuickWebEngineView::Paste); + updateAction(QQuickWebEngineView::Undo); + updateAction(QQuickWebEngineView::Redo); + updateAction(QQuickWebEngineView::SelectAll); + updateAction(QQuickWebEngineView::PasteAndMatchStyle); + updateAction(QQuickWebEngineView::Unselect); +} + QUrl QQuickWebEngineView::url() const { Q_D(const QQuickWebEngineView); diff --git a/src/webengine/api/qquickwebengineview_p_p.h b/src/webengine/api/qquickwebengineview_p_p.h index 3c4189fd9..3b6300d5f 100644 --- a/src/webengine/api/qquickwebengineview_p_p.h +++ b/src/webengine/api/qquickwebengineview_p_p.h @@ -147,6 +147,7 @@ public: void updateScrollPosition(const QPointF &position) override; void updateContentsSize(const QSizeF &size) override; void updateNavigationActions() override; + void updateEditActions() override; void startDragging(const content::DropData &dropData, Qt::DropActions allowedActions, const QPixmap &pixmap, const QPoint &offset) override; bool supportsDragging() const override; -- cgit v1.2.3