diff options
Diffstat (limited to 'examples/webenginewidgets')
-rw-r--r-- | examples/webenginewidgets/simplebrowser/webpage.cpp | 45 | ||||
-rw-r--r-- | examples/webenginewidgets/simplebrowser/webpage.h | 2 |
2 files changed, 21 insertions, 26 deletions
diff --git a/examples/webenginewidgets/simplebrowser/webpage.cpp b/examples/webenginewidgets/simplebrowser/webpage.cpp index d8f954c90..c4d7204cb 100644 --- a/examples/webenginewidgets/simplebrowser/webpage.cpp +++ b/examples/webenginewidgets/simplebrowser/webpage.cpp @@ -70,34 +70,29 @@ WebPage::WebPage(QWebEngineProfile *profile, QObject *parent) connect(this, &QWebEnginePage::selectClientCertificate, this, &WebPage::handleSelectClientCertificate); } -void WebPage::certificateError(const QWebEngineCertificateError &error) +void WebPage::certificateError(QWebEngineCertificateError error) { QWidget *mainWindow = view()->window(); - QWebEngineCertificateError deferredError = error; - deferredError.defer(); - - QTimer::singleShot(0, mainWindow, [mainWindow, error = std::move(deferredError)] () mutable { - if (!error.deferred()) { - QMessageBox::critical(mainWindow, tr("Certificate Error"), error.errorDescription()); - } else { - QDialog dialog(mainWindow); - dialog.setModal(true); - dialog.setWindowFlags(dialog.windowFlags() & ~Qt::WindowContextHelpButtonHint); - - Ui::CertificateErrorDialog certificateDialog; - certificateDialog.setupUi(&dialog); - certificateDialog.m_iconLabel->setText(QString()); - QIcon icon(mainWindow->style()->standardIcon(QStyle::SP_MessageBoxWarning, 0, mainWindow)); - certificateDialog.m_iconLabel->setPixmap(icon.pixmap(32, 32)); - certificateDialog.m_errorLabel->setText(error.errorDescription()); - dialog.setWindowTitle(tr("Certificate Error")); - - if (dialog.exec() == QDialog::Accepted) - error.ignoreCertificateError(); - else - error.rejectCertificate(); - } + error.defer(); + + QTimer::singleShot(0, mainWindow, [mainWindow, error]() mutable { + QDialog dialog(mainWindow); + dialog.setModal(true); + dialog.setWindowFlags(dialog.windowFlags() & ~Qt::WindowContextHelpButtonHint); + + Ui::CertificateErrorDialog certificateDialog; + certificateDialog.setupUi(&dialog); + certificateDialog.m_iconLabel->setText(QString()); + QIcon icon(mainWindow->style()->standardIcon(QStyle::SP_MessageBoxWarning, 0, mainWindow)); + certificateDialog.m_iconLabel->setPixmap(icon.pixmap(32, 32)); + certificateDialog.m_errorLabel->setText(error.description()); + dialog.setWindowTitle(tr("Certificate Error")); + + if (dialog.exec() == QDialog::Accepted) + error.acceptCertificate(); + else + error.rejectCertificate(); }); } diff --git a/examples/webenginewidgets/simplebrowser/webpage.h b/examples/webenginewidgets/simplebrowser/webpage.h index fbb15fc0f..d69c459e9 100644 --- a/examples/webenginewidgets/simplebrowser/webpage.h +++ b/examples/webenginewidgets/simplebrowser/webpage.h @@ -62,7 +62,7 @@ public: WebPage(QWebEngineProfile *profile, QObject *parent = nullptr); protected: - void certificateError(const QWebEngineCertificateError &error) override; + void certificateError(QWebEngineCertificateError error) override; private slots: void handleAuthenticationRequired(const QUrl &requestUrl, QAuthenticator *auth); |