diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/core/web_contents_adapter.cpp | 12 | ||||
-rw-r--r-- | src/core/web_contents_adapter.h | 1 | ||||
-rw-r--r-- | src/webenginewidgets/api/qwebenginepage.cpp | 9 | ||||
-rw-r--r-- | src/webenginewidgets/api/qwebenginepage.h | 4 | ||||
-rw-r--r-- | src/webenginewidgets/api/qwebengineview.cpp | 6 | ||||
-rw-r--r-- | src/webenginewidgets/api/qwebengineview.h | 3 | ||||
-rw-r--r-- | src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc | 17 | ||||
-rw-r--r-- | src/webenginewidgets/doc/src/qwebengineview_lgpl.qdoc | 15 |
8 files changed, 66 insertions, 1 deletions
diff --git a/src/core/web_contents_adapter.cpp b/src/core/web_contents_adapter.cpp index 235534f18..3dcef4ba4 100644 --- a/src/core/web_contents_adapter.cpp +++ b/src/core/web_contents_adapter.cpp @@ -62,6 +62,7 @@ #include "content/public/browser/child_process_security_policy.h" #include "content/public/browser/navigation_entry.h" #include "content/public/browser/render_view_host.h" +#include "content/public/browser/favicon_status.h" #include "content/public/common/page_state.h" #include "content/public/common/page_zoom.h" #include "content/public/common/renderer_preferences.h" @@ -472,6 +473,17 @@ QUrl WebContentsAdapter::requestedUrl() const return QUrl(); } +QUrl WebContentsAdapter::iconUrl() const +{ + Q_D(const WebContentsAdapter); + if (content::NavigationEntry* entry = d->webContents->GetController().GetVisibleEntry()) { + content::FaviconStatus favicon = entry->GetFavicon(); + if (favicon.valid) + return toQt(favicon.url); + } + return QUrl(); +} + QString WebContentsAdapter::pageTitle() const { Q_D(const WebContentsAdapter); diff --git a/src/core/web_contents_adapter.h b/src/core/web_contents_adapter.h index 8e665ee2c..a20d55959 100644 --- a/src/core/web_contents_adapter.h +++ b/src/core/web_contents_adapter.h @@ -76,6 +76,7 @@ public: QUrl requestedUrl() const; QString pageTitle() const; QString selectedText() const; + QUrl iconUrl() const; void undo(); void redo(); diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp index 8e87c1cf7..212fd696e 100644 --- a/src/webenginewidgets/api/qwebenginepage.cpp +++ b/src/webenginewidgets/api/qwebenginepage.cpp @@ -196,7 +196,8 @@ void QWebEnginePagePrivate::urlChanged(const QUrl &url) void QWebEnginePagePrivate::iconChanged(const QUrl &url) { - Q_UNUSED(url) + Q_Q(QWebEnginePage); + Q_EMIT q->iconUrlChanged(url); } void QWebEnginePagePrivate::loadProgressChanged(int progress) @@ -802,6 +803,12 @@ QUrl QWebEnginePage::requestedUrl() const return d->adapter->requestedUrl(); } +QUrl QWebEnginePage::iconUrl() const +{ + Q_D(const QWebEnginePage); + return d->adapter->iconUrl(); +} + qreal QWebEnginePage::zoomFactor() const { Q_D(const QWebEnginePage); diff --git a/src/webenginewidgets/api/qwebenginepage.h b/src/webenginewidgets/api/qwebenginepage.h index 6d8d2ddd8..bd1e5c7a9 100644 --- a/src/webenginewidgets/api/qwebenginepage.h +++ b/src/webenginewidgets/api/qwebenginepage.h @@ -77,6 +77,7 @@ class QWEBENGINEWIDGETS_EXPORT QWebEnginePage : public QObject { Q_PROPERTY(qreal zoomFactor READ zoomFactor WRITE setZoomFactor) Q_PROPERTY(QString title READ title) Q_PROPERTY(QUrl url READ url WRITE setUrl) + Q_PROPERTY(QUrl iconUrl READ iconUrl) public: enum WebAction { @@ -171,6 +172,7 @@ public: void setUrl(const QUrl &url); QUrl url() const; QUrl requestedUrl() const; + QUrl iconUrl() const; qreal zoomFactor() const; void setZoomFactor(qreal factor); @@ -197,6 +199,8 @@ Q_SIGNALS: // Ex-QWebFrame signals void titleChanged(const QString &title); void urlChanged(const QUrl &url); + // Was iconChanged() in QWebFrame + void iconUrlChanged(const QUrl &url); protected: virtual QWebEnginePage *createWindow(WebWindowType type); diff --git a/src/webenginewidgets/api/qwebengineview.cpp b/src/webenginewidgets/api/qwebengineview.cpp index b11af3e7a..03bb474bb 100644 --- a/src/webenginewidgets/api/qwebengineview.cpp +++ b/src/webenginewidgets/api/qwebengineview.cpp @@ -82,6 +82,7 @@ void QWebEngineViewPrivate::bind(QWebEngineView *view, QWebEnginePage *page) if (view && page) { QObject::connect(page, &QWebEnginePage::titleChanged, view, &QWebEngineView::titleChanged); QObject::connect(page, &QWebEnginePage::urlChanged, view, &QWebEngineView::urlChanged); + QObject::connect(page, &QWebEnginePage::iconUrlChanged, view, &QWebEngineView::iconUrlChanged); QObject::connect(page, &QWebEnginePage::loadStarted, view, &QWebEngineView::loadStarted); QObject::connect(page, &QWebEnginePage::loadProgress, view, &QWebEngineView::loadProgress); QObject::connect(page, &QWebEnginePage::loadFinished, view, &QWebEngineView::loadFinished); @@ -168,6 +169,11 @@ QUrl QWebEngineView::url() const return page()->url(); } +QUrl QWebEngineView::iconUrl() const +{ + return page()->iconUrl(); +} + bool QWebEngineView::hasSelection() const { return page()->hasSelection(); diff --git a/src/webenginewidgets/api/qwebengineview.h b/src/webenginewidgets/api/qwebengineview.h index 02f599d45..c3ebfba07 100644 --- a/src/webenginewidgets/api/qwebengineview.h +++ b/src/webenginewidgets/api/qwebengineview.h @@ -39,6 +39,7 @@ class QWEBENGINEWIDGETS_EXPORT QWebEngineView : public QWidget { Q_OBJECT Q_PROPERTY(QString title READ title) Q_PROPERTY(QUrl url READ url WRITE setUrl) + Q_PROPERTY(QUrl iconUrl READ iconUrl) Q_PROPERTY(QString selectedText READ selectedText) Q_PROPERTY(bool hasSelection READ hasSelection) Q_PROPERTY(qreal zoomFactor READ zoomFactor WRITE setZoomFactor) @@ -59,6 +60,7 @@ public: QString title() const; void setUrl(const QUrl &url); QUrl url() const; + QUrl iconUrl() const; bool hasSelection() const; QString selectedText() const; @@ -88,6 +90,7 @@ Q_SIGNALS: void titleChanged(const QString& title); void selectionChanged(); void urlChanged(const QUrl&); + void iconUrlChanged(const QUrl&); protected: virtual QWebEngineView *createWindow(QWebEnginePage::WebWindowType type); diff --git a/src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc b/src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc index 20564d724..41dd0a31b 100644 --- a/src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc +++ b/src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc @@ -425,6 +425,13 @@ */ /*! + \property QWebEnginePage::iconUrl + \brief the url of the icon associated with the frame currently viewed. + + \sa iconUrlChanged() +*/ + +/*! \property QWebEnginePage::requestedUrl The URL requested to loaded by the frame currently viewed. The URL may differ from @@ -544,3 +551,13 @@ \sa url() */ + +/*! + \fn void QWebEnginePage::iconUrlChanged(const QUrl &url) + + This signal is emitted when the icon ("favicon") associated with the main frame is + found or changed. The new URL is specified by \a url. + + + \sa iconUrl() +*/ diff --git a/src/webenginewidgets/doc/src/qwebengineview_lgpl.qdoc b/src/webenginewidgets/doc/src/qwebengineview_lgpl.qdoc index bdfd4b20a..5c42d252b 100644 --- a/src/webenginewidgets/doc/src/qwebengineview_lgpl.qdoc +++ b/src/webenginewidgets/doc/src/qwebengineview_lgpl.qdoc @@ -193,6 +193,13 @@ */ /*! + \property QWebEngineView::iconUrl + \brief the url of the icon associated with the web page currently viewed + + \sa iconUrlChanged() +*/ + +/*! \property QWebEngineView::hasSelection \brief whether this page contains selected content or not. @@ -315,6 +322,14 @@ */ /*! + \fn void QWebEngineView::iconUrlChanged(const QUrl &url) + + This signal is emitted whenever the icon \a url of the view changes. + + \sa iconUrl() +*/ + +/*! \fn void QWebEngineView::loadStarted() This signal is emitted when a new load of the page is started. |