diff options
Diffstat (limited to 'examples')
14 files changed, 75 insertions, 18 deletions
diff --git a/examples/webengine/customdialogs/doc/src/customdialogs.qdoc b/examples/webengine/customdialogs/doc/src/customdialogs.qdoc index 6319ce53b..16eab0b6c 100644 --- a/examples/webengine/customdialogs/doc/src/customdialogs.qdoc +++ b/examples/webengine/customdialogs/doc/src/customdialogs.qdoc @@ -57,11 +57,10 @@ \section1 Triggering Dialogs - As mentioned, the \l {webengine/customdialogs/index.html}{index.html} file - is responsible for triggering the dialogs from the side of HTML and - JavaScript. Additionally, the example program starts a localhost TCP server - returning the mocked HTTP responses needed to trigger proxy and HTTP - authentication dialogs. + As mentioned, the \c index.html file is responsible for triggering the + dialogs from the side of HTML and JavaScript. Additionally, the example + program starts a localhost TCP server returning the mocked HTTP responses + needed to trigger proxy and HTTP authentication dialogs. \section1 Custom Dialogs diff --git a/examples/webengine/lifecycle/WebTab.qml b/examples/webengine/lifecycle/WebTab.qml index 645758104..8649da3cb 100644 --- a/examples/webengine/lifecycle/WebTab.qml +++ b/examples/webengine/lifecycle/WebTab.qml @@ -53,7 +53,7 @@ import QtQuick 2.12 import QtQuick.Controls 2.12 import QtQuick.Controls.Material 2.12 import QtQuick.Layouts 1.12 -import QtWebEngine 1.11 +import QtWebEngine 1.10 ColumnLayout { id: root diff --git a/examples/webengine/lifecycle/WebTabButton.qml b/examples/webengine/lifecycle/WebTabButton.qml index 815e2fb09..68057412b 100644 --- a/examples/webengine/lifecycle/WebTabButton.qml +++ b/examples/webengine/lifecycle/WebTabButton.qml @@ -52,7 +52,7 @@ import QtQuick 2.12 import QtQuick.Controls 2.12 import QtQuick.Controls.Material 2.12 import QtQuick.Layouts 1.12 -import QtWebEngine 1.11 +import QtWebEngine 1.10 TabButton { id: root diff --git a/examples/webengine/lifecycle/main.cpp b/examples/webengine/lifecycle/main.cpp index 83907cbaf..bb93d64a7 100644 --- a/examples/webengine/lifecycle/main.cpp +++ b/examples/webengine/lifecycle/main.cpp @@ -58,8 +58,8 @@ int main(int argc, char *argv[]) { QCoreApplication::setOrganizationName("QtExamples"); QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); - QGuiApplication app(argc, argv); QtWebEngine::initialize(); + QGuiApplication app(argc, argv); QQmlApplicationEngine engine; engine.load(QUrl(QStringLiteral("qrc:/WebBrowser.qml"))); return app.exec(); diff --git a/examples/webengine/quicknanobrowser/BrowserWindow.qml b/examples/webengine/quicknanobrowser/BrowserWindow.qml index 2d3168382..c595c3bc5 100644 --- a/examples/webengine/quicknanobrowser/BrowserWindow.qml +++ b/examples/webengine/quicknanobrowser/BrowserWindow.qml @@ -133,6 +133,10 @@ ApplicationWindow { } } Action { + shortcut: StandardKey.Quit + onTriggered: browserWindow.close() + } + Action { shortcut: "Escape" onTriggered: { if (currentWebView.state == "FullScreen") { @@ -268,7 +272,7 @@ ApplicationWindow { id: faviconImage width: 16; height: 16 sourceSize: Qt.size(width, height) - source: currentWebView && currentWebView.icon + source: currentWebView && currentWebView.icon ? currentWebView.icon : '' } style: TextFieldStyle { padding { @@ -395,11 +399,25 @@ ApplicationWindow { var tab = addTab("", tabComponent); // We must do this first to make sure that tab.active gets set so that tab.item gets instantiated immediately. tab.active = true; - tab.title = Qt.binding(function() { return tab.item.title }); + tab.title = Qt.binding(function() { return tab.item.title ? tab.item.title : 'New Tab' }); tab.item.profile = profile; return tab; } + function indexOfView(view) { + for (let i = 0; i < tabs.count; ++i) + if (tabs.getTab(i).item == view) + return i + return -1 + } + + function removeView(index) { + if (tabs.count > 1) + tabs.removeTab(index) + else + browserWindow.close(); + } + anchors.top: parent.top anchors.bottom: devToolsView.top anchors.left: parent.left @@ -447,7 +465,7 @@ ApplicationWindow { color: control.hovered ? "#ccc" : tabRectangle.color Text {text: "x" ; anchors.centerIn: parent ; color: "gray"} }} - onClicked: tabs.removeTab(styleData.index); + onClicked: tabs.removeView(styleData.index) } } } @@ -564,12 +582,7 @@ ApplicationWindow { reloadTimer.running = true; } - onWindowCloseRequested: { - if (tabs.count == 1) - browserWindow.close(); - else - tabs.removeTab(tabs.currentIndex); - } + onWindowCloseRequested: tabs.removeView(tabs.indexOfView(webEngineView)) onSelectClientCertificate: function(selection) { selection.certificates[0].select(); diff --git a/examples/webenginewidgets/simplebrowser/browserwindow.cpp b/examples/webenginewidgets/simplebrowser/browserwindow.cpp index c1d0ea359..12a1e6844 100644 --- a/examples/webenginewidgets/simplebrowser/browserwindow.cpp +++ b/examples/webenginewidgets/simplebrowser/browserwindow.cpp @@ -66,7 +66,9 @@ #include <QStatusBar> #include <QToolBar> #include <QVBoxLayout> +#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0) #include <QWebEngineFindTextResult> +#endif #include <QWebEngineProfile> BrowserWindow::BrowserWindow(Browser *browser, QWebEngineProfile *profile, bool forDevTools) @@ -130,7 +132,9 @@ BrowserWindow::BrowserWindow(Browser *browser, QWebEngineProfile *profile, bool connect(m_urlLineEdit, &QLineEdit::returnPressed, [this]() { m_tabWidget->setUrl(QUrl::fromUserInput(m_urlLineEdit->text())); }); +#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0) connect(m_tabWidget, &TabWidget::findTextFinished, this, &BrowserWindow::handleFindTextFinished); +#endif QAction *focusUrlLineEditAction = new QAction(this); addAction(focusUrlLineEditAction); @@ -462,7 +466,14 @@ void BrowserWindow::handleFindActionTriggered() m_lastSearch, &ok); if (ok && !search.isEmpty()) { m_lastSearch = search; +#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0) currentTab()->findText(m_lastSearch); +#else + currentTab()->findText(m_lastSearch, 0, [this](bool found) { + if (!found) + statusBar()->showMessage(tr("\"%1\" not found.").arg(m_lastSearch)); + }); +#endif } } @@ -526,6 +537,7 @@ void BrowserWindow::handleDevToolsRequested(QWebEnginePage *source) source->triggerAction(QWebEnginePage::InspectElement); } +#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0) void BrowserWindow::handleFindTextFinished(const QWebEngineFindTextResult &result) { if (result.numberOfMatches() == 0) { @@ -536,3 +548,4 @@ void BrowserWindow::handleFindTextFinished(const QWebEngineFindTextResult &resul QString::number(result.numberOfMatches()))); } } +#endif diff --git a/examples/webenginewidgets/simplebrowser/browserwindow.h b/examples/webenginewidgets/simplebrowser/browserwindow.h index 11a655469..ea12ad9df 100644 --- a/examples/webenginewidgets/simplebrowser/browserwindow.h +++ b/examples/webenginewidgets/simplebrowser/browserwindow.h @@ -88,7 +88,9 @@ private slots: void handleWebViewTitleChanged(const QString &title); void handleWebActionEnabledChanged(QWebEnginePage::WebAction action, bool enabled); void handleDevToolsRequested(QWebEnginePage *source); +#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0) void handleFindTextFinished(const QWebEngineFindTextResult &result); +#endif private: QMenu *createFileMenu(TabWidget *tabWidget); diff --git a/examples/webenginewidgets/simplebrowser/downloadmanagerwidget.cpp b/examples/webenginewidgets/simplebrowser/downloadmanagerwidget.cpp index b6f9e9c13..2c8831429 100644 --- a/examples/webenginewidgets/simplebrowser/downloadmanagerwidget.cpp +++ b/examples/webenginewidgets/simplebrowser/downloadmanagerwidget.cpp @@ -69,12 +69,20 @@ void DownloadManagerWidget::downloadRequested(QWebEngineDownloadItem *download) { Q_ASSERT(download && download->state() == QWebEngineDownloadItem::DownloadRequested); +#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0) QString path = QFileDialog::getSaveFileName(this, tr("Save as"), QDir(download->downloadDirectory()).filePath(download->downloadFileName())); +#else + QString path = QFileDialog::getSaveFileName(this, tr("Save as"), download->path()); +#endif if (path.isEmpty()) return; +#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0) download->setDownloadDirectory(QFileInfo(path).path()); download->setDownloadFileName(QFileInfo(path).fileName()); +#else + download->setPath(path); +#endif download->accept(); add(new DownloadWidget(download)); diff --git a/examples/webenginewidgets/simplebrowser/downloadwidget.cpp b/examples/webenginewidgets/simplebrowser/downloadwidget.cpp index ddddc5e5d..c4e3cd805 100644 --- a/examples/webenginewidgets/simplebrowser/downloadwidget.cpp +++ b/examples/webenginewidgets/simplebrowser/downloadwidget.cpp @@ -61,7 +61,11 @@ DownloadWidget::DownloadWidget(QWebEngineDownloadItem *download, QWidget *parent { m_timeAdded.start(); setupUi(this); +#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0) m_dstName->setText(m_download->downloadFileName()); +#else + m_dstName->setText(QFileInfo(m_download->path()).fileName()); +#endif m_srcUrl->setText(m_download->url().toDisplayString()); connect(m_cancelButton, &QPushButton::clicked, diff --git a/examples/webenginewidgets/simplebrowser/main.cpp b/examples/webenginewidgets/simplebrowser/main.cpp index 7b77a4bd2..ddc8b4d01 100644 --- a/examples/webenginewidgets/simplebrowser/main.cpp +++ b/examples/webenginewidgets/simplebrowser/main.cpp @@ -75,8 +75,10 @@ int main(int argc, char **argv) app.setWindowIcon(QIcon(QStringLiteral(":AppLogoColor.png"))); QWebEngineSettings::defaultSettings()->setAttribute(QWebEngineSettings::PluginsEnabled, true); +#if QT_VERSION >= QT_VERSION_CHECK(5, 13, 0) QWebEngineSettings::defaultSettings()->setAttribute(QWebEngineSettings::DnsPrefetchEnabled, true); QWebEngineProfile::defaultProfile()->setUseForGlobalCertificateVerification(); +#endif QUrl url = commandLineUrlArgument(); diff --git a/examples/webenginewidgets/simplebrowser/tabwidget.cpp b/examples/webenginewidgets/simplebrowser/tabwidget.cpp index 3b6d84ebe..d7a69e61f 100644 --- a/examples/webenginewidgets/simplebrowser/tabwidget.cpp +++ b/examples/webenginewidgets/simplebrowser/tabwidget.cpp @@ -200,10 +200,12 @@ void TabWidget::setupView(WebView *webView) closeTab(index); }); connect(webView, &WebView::devToolsRequested, this, &TabWidget::devToolsRequested); +#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0) connect(webPage, &QWebEnginePage::findTextFinished, [this, webView](const QWebEngineFindTextResult &result) { if (currentIndex() == indexOf(webView)) emit findTextFinished(result); }); +#endif } WebView *TabWidget::createTab() diff --git a/examples/webenginewidgets/simplebrowser/tabwidget.h b/examples/webenginewidgets/simplebrowser/tabwidget.h index fba61d44f..bf65c9505 100644 --- a/examples/webenginewidgets/simplebrowser/tabwidget.h +++ b/examples/webenginewidgets/simplebrowser/tabwidget.h @@ -78,7 +78,9 @@ signals: void favIconChanged(const QIcon &icon); void webActionEnabledChanged(QWebEnginePage::WebAction action, bool enabled); void devToolsRequested(QWebEnginePage *source); +#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0) void findTextFinished(const QWebEngineFindTextResult &result); +#endif public slots: // current tab/page slots diff --git a/examples/webenginewidgets/simplebrowser/webpage.cpp b/examples/webenginewidgets/simplebrowser/webpage.cpp index 2e49f651f..9f7038cdb 100644 --- a/examples/webenginewidgets/simplebrowser/webpage.cpp +++ b/examples/webenginewidgets/simplebrowser/webpage.cpp @@ -76,6 +76,7 @@ bool WebPage::certificateError(const QWebEngineCertificateError &error) { QWidget *mainWindow = view()->window(); +#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0) QWebEngineCertificateError deferredError = error; deferredError.defer(); @@ -83,6 +84,9 @@ bool WebPage::certificateError(const QWebEngineCertificateError &error) if (!error.deferred()) { QMessageBox::critical(mainWindow, tr("Certificate Error"), error.errorDescription()); } else { +#else + if (error.isOverridable()) { +#endif QDialog dialog(mainWindow); dialog.setModal(true); dialog.setWindowFlags(dialog.windowFlags() & ~Qt::WindowContextHelpButtonHint); @@ -95,6 +99,7 @@ bool WebPage::certificateError(const QWebEngineCertificateError &error) certificateDialog.m_errorLabel->setText(error.errorDescription()); dialog.setWindowTitle(tr("Certificate Error")); +#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0) if (dialog.exec() == QDialog::Accepted) error.ignoreCertificateError(); else @@ -102,6 +107,13 @@ bool WebPage::certificateError(const QWebEngineCertificateError &error) } }); return true; +#else + return dialog.exec() == QDialog::Accepted; + } + + QMessageBox::critical(mainWindow, tr("Certificate Error"), error.errorDescription()); + return false; +#endif } void WebPage::handleAuthenticationRequired(const QUrl &requestUrl, QAuthenticator *auth) diff --git a/examples/webenginewidgets/videoplayer/doc/src/videoplayer.qdoc b/examples/webenginewidgets/videoplayer/doc/src/videoplayer.qdoc index 5c455345b..256a69baf 100644 --- a/examples/webenginewidgets/videoplayer/doc/src/videoplayer.qdoc +++ b/examples/webenginewidgets/videoplayer/doc/src/videoplayer.qdoc @@ -113,7 +113,7 @@ request will be denied. Finally, we load some HTML (see - \l{webenginewidgets/videoplayer/data/index.html}{index.html} included with + \c webenginewidgets/videoplayer/data/index.html included with the example) into our \l QWebEngineView: \printline load |