diff options
author | Peter Varga <pvarga@inf.u-szeged.hu> | 2019-05-15 10:33:07 +0200 |
---|---|---|
committer | Peter Varga <pvarga@inf.u-szeged.hu> | 2019-05-27 10:49:59 +0200 |
commit | 2c86c348d7a94f27d1e9e7a71c2435565cbe6fb5 (patch) | |
tree | 574dd43d6739aa975f8a40e150ff32946fca5899 /src/webenginewidgets | |
parent | e02bcb0855ebee0612cab0f3cd3f9fd494497336 (diff) |
Disable edit actions when content has no focused frame
Task-number: QTBUG-75505
Change-Id: Ia1329ff554a86e307aa7995e9af1665ea6c5e64c
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'src/webenginewidgets')
-rw-r--r-- | src/webenginewidgets/api/qwebenginepage.cpp | 22 | ||||
-rw-r--r-- | src/webenginewidgets/api/qwebenginepage_p.h | 1 | ||||
-rw-r--r-- | src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc | 8 |
3 files changed, 28 insertions, 3 deletions
diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp index c33034015..78b89a53c 100644 --- a/src/webenginewidgets/api/qwebenginepage.cpp +++ b/src/webenginewidgets/api/qwebenginepage.cpp @@ -650,6 +650,16 @@ void QWebEnginePagePrivate::updateAction(QWebEnginePage::WebAction action) const case QWebEnginePage::ViewSource: enabled = adapter->canViewSource(); break; + case QWebEnginePage::Cut: + case QWebEnginePage::Copy: + case QWebEnginePage::Paste: + case QWebEnginePage::Undo: + case QWebEnginePage::Redo: + case QWebEnginePage::SelectAll: + case QWebEnginePage::PasteAndMatchStyle: + case QWebEnginePage::Unselect: + enabled = adapter->hasFocusedFrame(); + break; default: break; } @@ -668,6 +678,18 @@ void QWebEnginePagePrivate::updateNavigationActions() updateAction(QWebEnginePage::ViewSource); } +void QWebEnginePagePrivate::updateEditActions() +{ + updateAction(QWebEnginePage::Cut); + updateAction(QWebEnginePage::Copy); + updateAction(QWebEnginePage::Paste); + updateAction(QWebEnginePage::Undo); + updateAction(QWebEnginePage::Redo); + updateAction(QWebEnginePage::SelectAll); + updateAction(QWebEnginePage::PasteAndMatchStyle); + updateAction(QWebEnginePage::Unselect); +} + #ifndef QT_NO_ACTION void QWebEnginePagePrivate::_q_webActionTriggered(bool checked) { diff --git a/src/webenginewidgets/api/qwebenginepage_p.h b/src/webenginewidgets/api/qwebenginepage_p.h index 25ed89371..f8f67d341 100644 --- a/src/webenginewidgets/api/qwebenginepage_p.h +++ b/src/webenginewidgets/api/qwebenginepage_p.h @@ -144,6 +144,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; diff --git a/src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc b/src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc index 75b6c4f54..15e57e904 100644 --- a/src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc +++ b/src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc @@ -112,8 +112,7 @@ Actions only have an effect when they are applicable. The availability of actions can be be determined by checking - \l{QAction::}{isEnabled()} on the action returned by action(). Context-dependent - actions are always enabled. + \l{QAction::}{isEnabled()} on the action returned by action(). \value NoWebAction No action is triggered. \value Back Navigate back in the history of navigated links. @@ -126,7 +125,10 @@ \value Paste Paste content from the clipboard. \value Undo Undo the last editing action. \value Redo Redo the last editing action. - \value SelectAll Select all content. + \value SelectAll Select all content. This action is only enabled when the page's content is focused. + The focus can be forced by the JavaScript \c{window.focus()} call, or the + \l{QWebEngineSettings::FocusOnNavigationEnabled} {FocusOnNavigationEnabled} setting + should be enabled to get automatic focus. \value PasteAndMatchStyle Paste content from the clipboard with current style. \value OpenLinkInThisWindow Open the current link in the current window. (Added in Qt 5.6) |