From 2ec47c9921a1e381943159f540b45c105d2ff1db Mon Sep 17 00:00:00 2001 From: Peter Varga <pvarga@inf.u-szeged.hu> Date: Wed, 21 Sep 2016 15:38:47 +0200 Subject: [PATCH] Remove viewSource and canViewSource APIs and use WebAction instead Task-number: QTBUG-56092 Change-Id: I026a0d153269a71e4e44f0fd30ef5ca054edd0e7 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> --- src/webengine/api/qquickwebengineview.cpp | 19 ++++---------- src/webengine/api/qquickwebengineview_p.h | 4 +-- .../doc/src/qtwebengine-features.qdoc | 3 +-- src/webengine/doc/src/webengineview.qdoc | 19 ++------------ src/webenginewidgets/api/qwebenginepage.cpp | 25 ------------------- src/webenginewidgets/api/qwebenginepage.h | 3 --- .../doc/src/qwebenginepage_lgpl.qdoc | 2 +- .../quick/qmltests/data/tst_viewSource.qml | 11 +++++--- .../qwebenginepage/tst_qwebenginepage.cpp | 8 +++--- 9 files changed, 21 insertions(+), 73 deletions(-) diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp index 1fdab6a52..64f7fb5be 100644 --- a/src/webengine/api/qquickwebengineview.cpp +++ b/src/webengine/api/qquickwebengineview.cpp @@ -255,8 +255,8 @@ bool QQuickWebEngineViewPrivate::contextMenuRequested(const WebEngineContextMenu ui()->addMenuItem(item, QQuickWebEngineView::tr("Reload"), QStringLiteral("view-refresh")); item = new MenuItemHandler(menu); - QObject::connect(item, &MenuItemHandler::triggered, q, &QQuickWebEngineView::viewSource); - ui()->addMenuItem(item, QQuickWebEngineView::tr("View Page Source"), QStringLiteral("view-source"), q->canViewSource()); + QObject::connect(item, &MenuItemHandler::triggered, [q] { q->triggerWebAction(QQuickWebEngineView::ViewSource); }); + ui()->addMenuItem(item, QQuickWebEngineView::tr("View Page Source"), QStringLiteral("view-source"), adapter->canViewSource()); } else { item = new MenuItemHandler(menu); QObject::connect(item, &MenuItemHandler::triggered, [q] { q->triggerWebAction(QQuickWebEngineView::Copy); }); @@ -1328,18 +1328,6 @@ void QQuickWebEngineView::replaceMisspelledWord(const QString &replacement) d->adapter->replaceMisspelling(replacement); } -void QQuickWebEngineView::viewSource() -{ - Q_D(QQuickWebEngineView); - d->adapter->viewSource(); -} - -bool QQuickWebEngineView::canViewSource() const -{ - Q_D(const QQuickWebEngineView); - return d->adapter->canViewSource(); -} - bool QQuickWebEngineView::isFullScreen() const { Q_D(const QQuickWebEngineView); @@ -1689,6 +1677,9 @@ void QQuickWebEngineView::triggerWebAction(WebAction action) case SavePage: d->adapter->save(); break; + case ViewSource: + d->adapter->viewSource(); + break; default: Q_UNREACHABLE(); } diff --git a/src/webengine/api/qquickwebengineview_p.h b/src/webengine/api/qquickwebengineview_p.h index 64894d88d..16c4799b5 100644 --- a/src/webengine/api/qquickwebengineview_p.h +++ b/src/webengine/api/qquickwebengineview_p.h @@ -123,7 +123,6 @@ class Q_WEBENGINE_PRIVATE_EXPORT QQuickWebEngineView : public QQuickItem { Q_PROPERTY(bool audioMuted READ isAudioMuted WRITE setAudioMuted NOTIFY audioMutedChanged FINAL REVISION 3) Q_PROPERTY(bool recentlyAudible READ recentlyAudible NOTIFY recentlyAudibleChanged FINAL REVISION 3) Q_PROPERTY(uint webChannelWorld READ webChannelWorld WRITE setWebChannelWorld NOTIFY webChannelWorldChanged REVISION 3) - Q_PROPERTY(bool canViewSource READ canViewSource FINAL REVISION 4) #ifdef ENABLE_QML_TESTSUPPORT_API Q_PROPERTY(QQuickWebEngineTestSupport *testSupport READ testSupport WRITE setTestSupport FINAL) @@ -150,7 +149,6 @@ public: void setBackgroundColor(const QColor &color); QSizeF contentsSize() const; QPointF scrollPosition() const; - bool canViewSource() const; // must match WebContentsAdapterClient::NavigationRequestAction enum NavigationRequestAction { @@ -247,6 +245,7 @@ public: RequestClose, Unselect, SavePage, + ViewSource, WebActionCount }; Q_ENUM(WebAction) @@ -477,7 +476,6 @@ public Q_SLOTS: Q_REVISION(3) void printToPdf(const QString &filePath, PrintedPageSizeId pageSizeId = PrintedPageSizeId::A4, PrintedPageOrientation orientation = PrintedPageOrientation::Portrait); Q_REVISION(3) void printToPdf(const QJSValue &callback, PrintedPageSizeId pageSizeId = PrintedPageSizeId::A4, PrintedPageOrientation orientation = PrintedPageOrientation::Portrait); Q_REVISION(4) void replaceMisspelledWord(const QString &replacement); - Q_REVISION(4) void viewSource(); private Q_SLOTS: void lazyInitialize(); diff --git a/src/webengine/doc/src/qtwebengine-features.qdoc b/src/webengine/doc/src/qtwebengine-features.qdoc index 48f1536b4..5ba3f23b8 100644 --- a/src/webengine/doc/src/qtwebengine-features.qdoc +++ b/src/webengine/doc/src/qtwebengine-features.qdoc @@ -306,8 +306,7 @@ Qt WebEngine supports viewing the HTML source of a web page. This feature can be used from custom menus or assigned to custom events. - For more information, see WebEngineView::viewSource, WebEngineView::canViewSource, - QWebEnginePage::viewSource, and QWebEnginePage::canViewSource. + For more information, see WebEngineView::WebAction, and QWebEnginePage::WebAction. This feature can be tested by opening a web page in \l{WebEngine Widgets Simple Browser Example}{Simple Browser} or \l{WebEngine Quick Nano Browser} diff --git a/src/webengine/doc/src/webengineview.qdoc b/src/webengine/doc/src/webengineview.qdoc index 82fd66989..512f6dfda 100644 --- a/src/webengine/doc/src/webengineview.qdoc +++ b/src/webengine/doc/src/webengineview.qdoc @@ -806,6 +806,8 @@ Exit the fullscreen mode. (Added in Qt 5.6) \value WebEngineView.SavePage Save the current web page to disk. (Added in Qt 5.7) + \value WebEngineView.ViewSource + Show the source of the current page in a new tab. (Added in Qt 5.8) \omitvalue WebActionCount */ @@ -1144,23 +1146,6 @@ delay}, from the moment the audio is paused. */ -/*! - \qmlmethod void WebEngineView::viewSource() - \since QtWebEngine 1.4 - - Shows the source of the current page in a new tab. - - \sa canViewSource -*/ - -/*! - \qmlproperty bool WebEngineView::canViewSource - \brief This property holds whether the source for the current page can be viewed. - \since QtWebEngine 1.4 - - \sa viewSource() -*/ - /*! \qmlsignal WebEngineView::authenticationDialogRequested(AuthenticationDialogRequest request) \since QtWebEngine 1.4 diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp index 34784c507..1004b3e92 100644 --- a/src/webenginewidgets/api/qwebenginepage.cpp +++ b/src/webenginewidgets/api/qwebenginepage.cpp @@ -1889,31 +1889,6 @@ const QWebEngineContextMenuData &QWebEnginePage::contextMenuData() const return d->contextData; } -/*! - \since 5.8 - - Shows the source of the current page in a new tab. - - \sa canViewSource -*/ -void QWebEnginePage::viewSource() -{ - triggerAction(QWebEnginePage::ViewSource); -} - -/*! - \property QWebEnginePage::canViewSource - \brief whether the source for the current page can be viewed. - \since 5.8 - - \sa viewSource() -*/ -bool QWebEnginePage::canViewSource() const -{ - Q_D(const QWebEnginePage); - return d->adapter->canViewSource(); -} - QT_END_NAMESPACE #include "moc_qwebenginepage.cpp" diff --git a/src/webenginewidgets/api/qwebenginepage.h b/src/webenginewidgets/api/qwebenginepage.h index d283f6aef..e85f9b30e 100644 --- a/src/webenginewidgets/api/qwebenginepage.h +++ b/src/webenginewidgets/api/qwebenginepage.h @@ -84,7 +84,6 @@ class QWEBENGINEWIDGETS_EXPORT QWebEnginePage : public QObject { Q_PROPERTY(QPointF scrollPosition READ scrollPosition NOTIFY scrollPositionChanged) Q_PROPERTY(bool audioMuted READ isAudioMuted WRITE setAudioMuted NOTIFY audioMutedChanged) Q_PROPERTY(bool recentlyAudible READ recentlyAudible NOTIFY recentlyAudibleChanged) - Q_PROPERTY(bool canViewSource READ canViewSource) public: enum WebAction { @@ -292,8 +291,6 @@ public: #endif // QT_NO_PRINTER const QWebEngineContextMenuData &contextMenuData() const; - void viewSource(); - bool canViewSource() const; Q_SIGNALS: void loadStarted(); diff --git a/src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc b/src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc index 560d4a2e4..58abc9fa1 100644 --- a/src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc +++ b/src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc @@ -156,7 +156,7 @@ \value Unselect Clear the current selection. (Added in Qt 5.7) \value SavePage Save the current page to disk. MHTML is the default format that is used to store the web page on disk. (Added in Qt 5.7) - \value ViewSource Shows the source of the current page in a new tab. (Added in Qt 5.8) + \value ViewSource Show the source of the current page in a new tab. (Added in Qt 5.8) \omitvalue WebActionCount diff --git a/tests/auto/quick/qmltests/data/tst_viewSource.qml b/tests/auto/quick/qmltests/data/tst_viewSource.qml index 746bfcfb3..79b097b80 100644 --- a/tests/auto/quick/qmltests/data/tst_viewSource.qml +++ b/tests/auto/quick/qmltests/data/tst_viewSource.qml @@ -75,10 +75,11 @@ TestWebEngineView { webEngineView.url = Qt.resolvedUrl("test1.html"); verify(webEngineView.waitForLoadSucceeded()); compare(webEngineView.title, "Test page 1"); - verify(webEngineView.canViewSource, true); + // FIXME(pvarga): Reintroduce this check in the fix for QTBUG-56117 + //verify(webEngineView.canViewSource, true); titleChangedSpy.clear(); - webEngineView.viewSource(); + webEngineView.triggerWebAction(WebEngineView.ViewSource); tryCompare(newViewRequestedSpy, "count", 1); verify(webEngineView.waitForLoadSucceeded()); // The first titleChanged signal is emitted by adoptWebContents() @@ -86,7 +87,8 @@ TestWebEngineView { compare(viewRequest.destination, WebEngineView.NewViewInTab); verify(viewRequest.userInitiated); - verify(!webEngineView.canViewSource); + // FIXME(pvarga): Reintroduce this check in the fix for QTBUG-56117 + //verify(!webEngineView.canViewSource); compare(webEngineView.title, "test1.html"); compare(webEngineView.url, "view-source:" + Qt.resolvedUrl("test1.html")); @@ -120,7 +122,8 @@ TestWebEngineView { compare(webEngineView.url, row.url); compare(webEngineView.title, row.title); - verify(!webEngineView.canViewSource); + // FIXME(pvarga): Reintroduce this check in the fix for QTBUG-56117 + //verify(!webEngineView.canViewSource); } } } diff --git a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp index 4c3a47bed..f7c0914bc 100644 --- a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp +++ b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp @@ -4982,15 +4982,15 @@ void tst_QWebEnginePage::viewSource() page.load(url); QTRY_COMPARE(loadFinishedSpy.count(), 1); QCOMPARE(page.title(), QStringLiteral("Test page 1")); - QVERIFY(page.canViewSource()); + QVERIFY(page.action(QWebEnginePage::ViewSource)->isEnabled()); - page.viewSource(); + page.triggerAction(QWebEnginePage::ViewSource); QTRY_COMPARE(windowCreatedSpy.count(), 1); QCOMPARE(page.createdWindows.size(), 1); QTRY_COMPARE(page.createdWindows[0]->url().toString(), QStringLiteral("view-source:%1").arg(url.toString())); QTRY_COMPARE(page.createdWindows[0]->title(), QStringLiteral("view-source:%1").arg(url.toString())); - QVERIFY(!page.createdWindows[0]->canViewSource()); + QVERIFY(!page.createdWindows[0]->action(QWebEnginePage::ViewSource)->isEnabled()); } void tst_QWebEnginePage::viewSourceURL_data() @@ -5035,7 +5035,7 @@ void tst_QWebEnginePage::viewSourceURL() QCOMPARE(arguments.at(0).toBool(), loadSucceed); QCOMPARE(page->url(), url); QCOMPARE(page->title(), title); - QVERIFY(!page->canViewSource()); + QVERIFY(!page->action(QWebEnginePage::ViewSource)->isEnabled()); delete page; } -- GitLab