summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/web_contents_adapter.cpp12
-rw-r--r--src/core/web_contents_adapter.h1
-rw-r--r--src/webenginewidgets/api/qwebenginepage.cpp9
-rw-r--r--src/webenginewidgets/api/qwebenginepage.h4
-rw-r--r--src/webenginewidgets/api/qwebengineview.cpp6
-rw-r--r--src/webenginewidgets/api/qwebengineview.h3
-rw-r--r--src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc17
-rw-r--r--src/webenginewidgets/doc/src/qwebengineview_lgpl.qdoc15
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.