diff options
author | Martin Negyokru <negyokru@inf.u-szeged.hu> | 2022-11-04 10:55:58 +0100 |
---|---|---|
committer | Martin Negyokru <negyokru@inf.u-szeged.hu> | 2023-12-15 09:39:26 +0100 |
commit | de57e1b0b00be63e0647d864ff48b9c75742423d (patch) | |
tree | 639eb11f6ae7ab3abe32130fdfa4981402c95aef /examples/webenginewidgets/simplebrowser | |
parent | 39e437f0bc990cf292defff0d77790d27b31df32 (diff) |
Add new API for screen capturing
[ChangeLog][WebEngineCore] Add QWebEnginePage::desktopMediaRequested() signal
[ChangeLog][WebEngineQuick] Add QQuickWebEngineView::desktopMediaRequested() signal
Pick-to: 6.7
Fixes: QTBUG-112142
Task-number: QTBUG-70077
Change-Id: I4bfad88732b45fb68b77f7617440bcb50b248a11
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'examples/webenginewidgets/simplebrowser')
4 files changed, 13 insertions, 0 deletions
diff --git a/examples/webenginewidgets/simplebrowser/browser.cpp b/examples/webenginewidgets/simplebrowser/browser.cpp index 83e273d07..fd68246d0 100644 --- a/examples/webenginewidgets/simplebrowser/browser.cpp +++ b/examples/webenginewidgets/simplebrowser/browser.cpp @@ -27,6 +27,7 @@ BrowserWindow *Browser::createHiddenWindow(bool offTheRecord) m_profile->settings()->setAttribute(QWebEngineSettings::DnsPrefetchEnabled, true); m_profile->settings()->setAttribute(QWebEngineSettings::LocalContentCanAccessRemoteUrls, true); m_profile->settings()->setAttribute(QWebEngineSettings::LocalContentCanAccessFileUrls, false); + m_profile->settings()->setAttribute(QWebEngineSettings::ScreenCaptureEnabled, true); QObject::connect(m_profile.get(), &QWebEngineProfile::downloadRequested, &m_downloadManagerWidget, &DownloadManagerWidget::downloadRequested); } diff --git a/examples/webenginewidgets/simplebrowser/main.cpp b/examples/webenginewidgets/simplebrowser/main.cpp index bd9a3a198..ff4811eae 100644 --- a/examples/webenginewidgets/simplebrowser/main.cpp +++ b/examples/webenginewidgets/simplebrowser/main.cpp @@ -31,6 +31,8 @@ int main(int argc, char **argv) QWebEngineProfile::defaultProfile()->settings()->setAttribute(QWebEngineSettings::PluginsEnabled, true); QWebEngineProfile::defaultProfile()->settings()->setAttribute(QWebEngineSettings::DnsPrefetchEnabled, true); + QWebEngineProfile::defaultProfile()->settings()->setAttribute( + QWebEngineSettings::ScreenCaptureEnabled, true); QUrl url = commandLineUrlArgument(); diff --git a/examples/webenginewidgets/simplebrowser/webpage.cpp b/examples/webenginewidgets/simplebrowser/webpage.cpp index 699e3d2ed..807cdf0ff 100644 --- a/examples/webenginewidgets/simplebrowser/webpage.cpp +++ b/examples/webenginewidgets/simplebrowser/webpage.cpp @@ -13,6 +13,8 @@ WebPage::WebPage(QWebEngineProfile *profile, QObject *parent) { connect(this, &QWebEnginePage::selectClientCertificate, this, &WebPage::handleSelectClientCertificate); connect(this, &QWebEnginePage::certificateError, this, &WebPage::handleCertificateError); + connect(this, &QWebEnginePage::desktopMediaRequested, this, + &WebPage::handleDesktopMediaRequest); } void WebPage::handleCertificateError(QWebEngineCertificateError error) @@ -27,3 +29,9 @@ void WebPage::handleSelectClientCertificate(QWebEngineClientCertificateSelection // Just select one. selection.select(selection.certificates().at(0)); } + +void WebPage::handleDesktopMediaRequest(const QWebEngineDesktopMediaRequest &request) +{ + // select the primary screen + request.selectScreen(request.screensModel()->index(0)); +} diff --git a/examples/webenginewidgets/simplebrowser/webpage.h b/examples/webenginewidgets/simplebrowser/webpage.h index 83a4e833f..56740f817 100644 --- a/examples/webenginewidgets/simplebrowser/webpage.h +++ b/examples/webenginewidgets/simplebrowser/webpage.h @@ -7,6 +7,7 @@ #include <QWebEnginePage> #include <QWebEngineRegisterProtocolHandlerRequest> #include <QWebEngineCertificateError> +#include <QWebEngineDesktopMediaRequest> class WebPage : public QWebEnginePage { @@ -21,6 +22,7 @@ signals: private slots: void handleCertificateError(QWebEngineCertificateError error); void handleSelectClientCertificate(QWebEngineClientCertificateSelection clientCertSelection); + void handleDesktopMediaRequest(const QWebEngineDesktopMediaRequest &request); }; #endif // WEBPAGE_H |