diff options
Diffstat (limited to 'src/webengine')
-rw-r--r-- | src/webengine/webpage.cpp | 12 | ||||
-rw-r--r-- | src/webengine/webpage.h | 19 | ||||
-rw-r--r-- | src/webengine/webview.cpp | 16 | ||||
-rw-r--r-- | src/webengine/webview.h | 4 |
4 files changed, 47 insertions, 4 deletions
diff --git a/src/webengine/webpage.cpp b/src/webengine/webpage.cpp new file mode 100644 index 0000000..79ba809 --- /dev/null +++ b/src/webengine/webpage.cpp @@ -0,0 +1,12 @@ +#include "webpage.h" + +WebPage::WebPage(QWebEngineProfile *profile, QObject *parent) : + QWebEnginePage(profile, parent) +{ +} + +bool WebPage::certificateError(const QWebEngineCertificateError &certificateError) +{ + emit certificateErrorMessage(certificateError.errorDescription()); + return certificateError.isOverridable(); +} diff --git a/src/webengine/webpage.h b/src/webengine/webpage.h new file mode 100644 index 0000000..6ae0802 --- /dev/null +++ b/src/webengine/webpage.h @@ -0,0 +1,19 @@ +#ifndef WEBPAGE_H +#define WEBPAGE_H + +#include <QWebEnginePage> + +class WebPage : public QWebEnginePage +{ + Q_OBJECT +public: + explicit WebPage(QWebEngineProfile *profile, QObject *parent = nullptr); + +signals: + void certificateErrorMessage(const QString &message); + +protected: + bool certificateError(const QWebEngineCertificateError &certificateError); +}; + +#endif // WEBPAGE_H diff --git a/src/webengine/webview.cpp b/src/webengine/webview.cpp index ff2780c..4f7b386 100644 --- a/src/webengine/webview.cpp +++ b/src/webengine/webview.cpp @@ -31,6 +31,9 @@ #include "mainwindow.h" #include <QStatusBar> +// ssl errors +#include "lib/navigation/urllineedit.h" + WebView::WebView(MainWindow *parentMainWindow, QWidget *parent) : QWebEngineView(parent) { @@ -124,10 +127,12 @@ QMenu *WebView::pageMenu() return m_pageMenu; } -void WebView::setPage(QWebEnginePage *page) +void WebView::setPage(WebPage *page) { - disconnect(this->page(), SIGNAL(linkHovered(QString)), this, SLOT(handleLinkHovered(QString))); - connect(page, SIGNAL(linkHovered(QString)), this, SLOT(handleLinkHovered(QString))); + Q_CHECK_PTR(page); + //this->page()->deleteLater(); + connect(page, &WebPage::linkHovered, this, &WebView::handleLinkHovered); + connect(page, &WebPage::certificateErrorMessage, this, &WebView::handleCertificateError); QWebEngineView::setPage(page); } @@ -165,3 +170,8 @@ void WebView::handleLinkHovered(const QString &url) m_parent->statusBar()->showMessage(url); } } + +void WebView::handleCertificateError(const QString &message) +{ + m_parent->m_addressBar->showSslError(message); +} diff --git a/src/webengine/webview.h b/src/webengine/webview.h index d30a1fd..ed191e5 100644 --- a/src/webengine/webview.h +++ b/src/webengine/webview.h @@ -11,6 +11,7 @@ #include <QWebEngineView> #include <QMenu> +#include "webengine/webpage.h" class MainWindow; class WebView : public QWebEngineView @@ -22,7 +23,7 @@ public: QMenu *pageMenu(); - void setPage(QWebEnginePage *page); + void setPage(WebPage *page); signals: void newBookmark(const QString &title, const QUrl &url); @@ -32,6 +33,7 @@ protected: private slots: void handleLinkHovered(const QString &url); + void handleCertificateError(const QString &message); private: MainWindow *m_parent = nullptr; |