diff options
author | Michal Klocek <michal.klocek@qt.io> | 2020-08-11 14:46:42 +0200 |
---|---|---|
committer | Michal Klocek <michal.klocek@qt.io> | 2020-08-28 13:40:00 +0200 |
commit | 1978e726a909ac945c32429e216c49ecad3ecb3a (patch) | |
tree | bf0cbbf13ba31f08b4552544122044ac6386fdf4 /examples/webenginewidgets | |
parent | 08375ee796a545e3916feb24e0b35d561e6f0049 (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.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); |