diff options
author | Jüri Valdmann <juri.valdmann@qt.io> | 2019-07-02 12:36:34 +0200 |
---|---|---|
committer | Jüri Valdmann <juri.valdmann@qt.io> | 2019-07-08 09:34:06 +0200 |
commit | 3c34f95ad4a96737f66ab4933edb9e00abecdc24 (patch) | |
tree | 3249d3d1680a0f63e684a9564edff85cc51cc3dd /src | |
parent | 76846a183e956abfa1ae950a6fe9e58edfeb2a56 (diff) |
Disable Cut/Copy/Unselect actions when there's no selection
Fixes: QTBUG-76666
Change-Id: I74b9a26cd7be9a830f4eecd36db69777412ab316
Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
Diffstat (limited to 'src')
-rw-r--r-- | src/webengine/api/qquickwebengineview.cpp | 9 | ||||
-rw-r--r-- | src/webengine/api/qquickwebengineview_p_p.h | 2 | ||||
-rw-r--r-- | src/webenginewidgets/api/qwebenginepage.cpp | 9 |
3 files changed, 16 insertions, 4 deletions
diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp index 583678aaf..60db2fcd5 100644 --- a/src/webengine/api/qquickwebengineview.cpp +++ b/src/webengine/api/qquickwebengineview.cpp @@ -413,6 +413,11 @@ void QQuickWebEngineViewPrivate::didUpdateTargetURL(const QUrl &hoveredUrl) Q_EMIT q->linkHovered(hoveredUrl); } +void QQuickWebEngineViewPrivate::selectionChanged() +{ + updateEditActions(); +} + void QQuickWebEngineViewPrivate::recentlyAudibleChanged(bool recentlyAudible) { Q_Q(QQuickWebEngineView); @@ -963,12 +968,14 @@ void QQuickWebEngineViewPrivate::updateAction(QQuickWebEngineView::WebAction act break; case QQuickWebEngineView::Cut: case QQuickWebEngineView::Copy: + case QQuickWebEngineView::Unselect: + enabled = adapter->hasFocusedFrame() && !adapter->selectedText().isEmpty(); + break; case QQuickWebEngineView::Paste: case QQuickWebEngineView::Undo: case QQuickWebEngineView::Redo: case QQuickWebEngineView::SelectAll: case QQuickWebEngineView::PasteAndMatchStyle: - case QQuickWebEngineView::Unselect: enabled = adapter->hasFocusedFrame(); break; default: diff --git a/src/webengine/api/qquickwebengineview_p_p.h b/src/webengine/api/qquickwebengineview_p_p.h index 1e0ba309c..e0f2595ec 100644 --- a/src/webengine/api/qquickwebengineview_p_p.h +++ b/src/webengine/api/qquickwebengineview_p_p.h @@ -109,7 +109,7 @@ public: void iconChanged(const QUrl&) override; void loadProgressChanged(int progress) override; void didUpdateTargetURL(const QUrl&) override; - void selectionChanged() override { } + void selectionChanged() override; void recentlyAudibleChanged(bool recentlyAudible) override; QRectF viewportRect() const override; QColor backgroundColor() const override; diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp index 4658a4739..6e517c6c8 100644 --- a/src/webenginewidgets/api/qwebenginepage.cpp +++ b/src/webenginewidgets/api/qwebenginepage.cpp @@ -260,7 +260,10 @@ void QWebEnginePagePrivate::didUpdateTargetURL(const QUrl &hoveredUrl) void QWebEnginePagePrivate::selectionChanged() { Q_Q(QWebEnginePage); - QTimer::singleShot(0, q, &QWebEnginePage::selectionChanged); + QTimer::singleShot(0, q, [this, q]() { + updateEditActions(); + Q_EMIT q->selectionChanged(); + }); } void QWebEnginePagePrivate::recentlyAudibleChanged(bool recentlyAudible) @@ -594,12 +597,14 @@ void QWebEnginePagePrivate::updateAction(QWebEnginePage::WebAction action) const break; case QWebEnginePage::Cut: case QWebEnginePage::Copy: + case QWebEnginePage::Unselect: + enabled = adapter->hasFocusedFrame() && !adapter->selectedText().isEmpty(); + break; case QWebEnginePage::Paste: case QWebEnginePage::Undo: case QWebEnginePage::Redo: case QWebEnginePage::SelectAll: case QWebEnginePage::PasteAndMatchStyle: - case QWebEnginePage::Unselect: enabled = adapter->hasFocusedFrame(); break; default: |