summaryrefslogtreecommitdiffstats
path: root/examples/webenginewidgets
diff options
context:
space:
mode:
authorMichal Klocek <michal.klocek@qt.io>2020-08-11 14:46:42 +0200
committerMichal Klocek <michal.klocek@qt.io>2020-08-28 13:40:00 +0200
commit1978e726a909ac945c32429e216c49ecad3ecb3a (patch)
treebf0cbbf13ba31f08b4552544122044ac6386fdf4 /examples/webenginewidgets
parent08375ee796a545e3916feb24e0b35d561e6f0049 (diff)
Improve QWebEngineCertificateError api
* remove const ref from QWebEngineCertificateError Q_GADGET is a value type, QWebEngineCertificateError is pass as const reference from api. This is not so useful since, in qml this will be anyway copied and for c++ this is not useful since reject, ignore, defer methods are all const. Therefore simply pass it by value. * make consistent naming defer(), acceptCertificate(), rejectCertificate() * remove properties 'differed', 'answered' which are use internally, user knows if he calls functions. * error.errorDescription -> error.description() * error.error() -> error.type() [ChangeLog] In QWebEngineCertificateError use acceptCertificate() instead of ignoreCertificiateError() Change-Id: I9ffa500a0a455d98445b066252dd283872740731 Reviewed-by: Michael BrĂ¼ning <michael.bruning@qt.io>
Diffstat (limited to 'examples/webenginewidgets')
-rw-r--r--examples/webenginewidgets/simplebrowser/webpage.cpp45
-rw-r--r--examples/webenginewidgets/simplebrowser/webpage.h2
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);