summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--examples/quick/quicknanobrowser/quickwindow.qml60
-rw-r--r--lib/quick/qquickwebengineview.cpp14
-rw-r--r--lib/quick/qquickwebengineview_p.h3
-rw-r--r--lib/quick/qquickwebengineview_p_p.h2
-rw-r--r--lib/web_contents_adapter_client.h1
-rw-r--r--lib/web_contents_delegate_qt.cpp5
-rw-r--r--lib/web_contents_delegate_qt.h1
-rw-r--r--lib/widgets/Api/qwebenginepage.cpp6
-rw-r--r--lib/widgets/Api/qwebenginepage_p.h1
-rw-r--r--lib/widgets/Api/qwebengineview.cpp1
10 files changed, 68 insertions, 26 deletions
diff --git a/examples/quick/quicknanobrowser/quickwindow.qml b/examples/quick/quicknanobrowser/quickwindow.qml
index 7ec4fc021..a3b8c405d 100644
--- a/examples/quick/quicknanobrowser/quickwindow.qml
+++ b/examples/quick/quicknanobrowser/quickwindow.qml
@@ -62,36 +62,43 @@ ApplicationWindow {
toolBar: ToolBar {
id: navigationBar
- RowLayout {
+ ColumnLayout {
anchors.fill: parent
+ RowLayout {
+ ToolButton {
+ id: backButton
+ iconSource: "icons/go-previous.png"
+ onClicked: webEngineView.goBack()
+ enabled: webEngineView.canGoBack
+ }
+ ToolButton {
+ id: forwardButton
+ iconSource: "icons/go-next.png"
+ onClicked: webEngineView.goForward()
+ enabled: webEngineView.canGoForward
+ }
+ ToolButton {
+ id: reloadButton
+ iconSource: webEngineView.loading ? "icons/process-stop.png" : "icons/view-refresh.png"
+ onClicked: webEngineView.reload()
+ }
+ Image {
+ id: faviconImage
+ width: 16; height: 16
+ }
+ TextField {
+ id: addressBar
+ focus: true
+ Layout.fillWidth: true
- ToolButton {
- id: backButton
- iconSource: "icons/go-previous.png"
- onClicked: webEngineView.goBack()
- enabled: webEngineView.canGoBack
+ onAccepted: webEngineView.url = utils.fromUserInput(text)
+ }
}
- ToolButton {
- id: forwardButton
- iconSource: "icons/go-next.png"
- onClicked: webEngineView.goForward()
- enabled: webEngineView.canGoForward
- }
- ToolButton {
- id: reloadButton
- iconSource: webEngineView.loading ? "icons/process-stop.png" : "icons/view-refresh.png"
- onClicked: webEngineView.reload()
- }
- Image {
- id: faviconImage
- width: 16; height: 16
- }
- TextField {
- id: addressBar
- focus: true
+ ProgressBar {
Layout.fillWidth: true
-
- onAccepted: webEngineView.url = utils.fromUserInput(text)
+ id: progressBar
+ minimumValue: 0
+ maximumValue: 100
}
}
}
@@ -104,5 +111,6 @@ ApplicationWindow {
onUrlChanged: addressBar.text = url
onIconChanged: faviconImage.source = url
+ onLoadProgressChanged: progressBar.value = loadProgress
}
}
diff --git a/lib/quick/qquickwebengineview.cpp b/lib/quick/qquickwebengineview.cpp
index aa942c017..55d871093 100644
--- a/lib/quick/qquickwebengineview.cpp
+++ b/lib/quick/qquickwebengineview.cpp
@@ -51,6 +51,7 @@ QT_BEGIN_NAMESPACE
QQuickWebEngineViewPrivate::QQuickWebEngineViewPrivate()
: adapter(new WebContentsAdapter)
+ , loadProgress(0)
{
adapter->initialize(this);
}
@@ -87,6 +88,13 @@ void QQuickWebEngineViewPrivate::loadingStateChanged()
Q_EMIT q->loadingStateChanged();
}
+void QQuickWebEngineViewPrivate::loadProgressChanged(int progress)
+{
+ Q_Q(QQuickWebEngineView);
+ loadProgress = progress;
+ Q_EMIT q->loadProgressChanged();
+}
+
QRectF QQuickWebEngineViewPrivate::viewportRect() const
{
Q_Q(const QQuickWebEngineView);
@@ -170,6 +178,12 @@ bool QQuickWebEngineView::isLoading() const
return d->adapter->isLoading();
}
+int QQuickWebEngineView::loadProgress() const
+{
+ Q_D(const QQuickWebEngineView);
+ return d->loadProgress;
+}
+
QString QQuickWebEngineView::title() const
{
Q_D(const QQuickWebEngineView);
diff --git a/lib/quick/qquickwebengineview_p.h b/lib/quick/qquickwebengineview_p.h
index 1c3e27732..87e7403d6 100644
--- a/lib/quick/qquickwebengineview_p.h
+++ b/lib/quick/qquickwebengineview_p.h
@@ -53,6 +53,7 @@ class QQuickWebEngineView : public QQuickItem {
Q_PROPERTY(QUrl url READ url WRITE setUrl NOTIFY urlChanged)
Q_PROPERTY(QUrl icon READ icon NOTIFY iconChanged)
Q_PROPERTY(bool loading READ isLoading NOTIFY loadingStateChanged)
+ Q_PROPERTY(int loadProgress READ loadProgress NOTIFY loadProgressChanged)
Q_PROPERTY(QString title READ title NOTIFY titleChanged)
Q_PROPERTY(bool canGoBack READ canGoBack NOTIFY loadingStateChanged)
Q_PROPERTY(bool canGoForward READ canGoForward NOTIFY loadingStateChanged)
@@ -65,6 +66,7 @@ public:
void setUrl(const QUrl&);
QUrl icon() const;
bool isLoading() const;
+ int loadProgress() const;
QString title() const;
bool canGoBack() const;
bool canGoForward() const;
@@ -80,6 +82,7 @@ Q_SIGNALS:
void urlChanged();
void iconChanged();
void loadingStateChanged();
+ void loadProgressChanged();
protected:
void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry);
diff --git a/lib/quick/qquickwebengineview_p_p.h b/lib/quick/qquickwebengineview_p_p.h
index 38621b44d..947886c44 100644
--- a/lib/quick/qquickwebengineview_p_p.h
+++ b/lib/quick/qquickwebengineview_p_p.h
@@ -63,6 +63,7 @@ public:
virtual void urlChanged(const QUrl&) Q_DECL_OVERRIDE;
virtual void iconChanged(const QUrl&) Q_DECL_OVERRIDE;
virtual void loadingStateChanged() Q_DECL_OVERRIDE;
+ virtual void loadProgressChanged(int progress) Q_DECL_OVERRIDE;
virtual QRectF viewportRect() const Q_DECL_OVERRIDE;
virtual void loadFinished(bool success) Q_DECL_OVERRIDE;
virtual void focusContainer() Q_DECL_OVERRIDE;
@@ -70,6 +71,7 @@ public:
QExplicitlySharedDataPointer<WebContentsAdapter> adapter;
QUrl icon;
+ int loadProgress;
};
QT_END_NAMESPACE
diff --git a/lib/web_contents_adapter_client.h b/lib/web_contents_adapter_client.h
index ea6e5a666..39968a8a5 100644
--- a/lib/web_contents_adapter_client.h
+++ b/lib/web_contents_adapter_client.h
@@ -82,6 +82,7 @@ public:
virtual void urlChanged(const QUrl&) = 0;
virtual void iconChanged(const QUrl&) = 0;
virtual void loadingStateChanged() = 0;
+ virtual void loadProgressChanged(int progress) = 0;
virtual QRectF viewportRect() const = 0;
virtual void loadFinished(bool success) = 0;
virtual void focusContainer() = 0;
diff --git a/lib/web_contents_delegate_qt.cpp b/lib/web_contents_delegate_qt.cpp
index 12a00481c..877d1cafc 100644
--- a/lib/web_contents_delegate_qt.cpp
+++ b/lib/web_contents_delegate_qt.cpp
@@ -86,6 +86,11 @@ void WebContentsDelegateQt::LoadingStateChanged(content::WebContents* source)
m_viewClient->loadingStateChanged();
}
+void WebContentsDelegateQt::LoadProgressChanged(content::WebContents* source, double progress)
+{
+ m_viewClient->loadProgressChanged(qRound(progress * 100));
+}
+
void WebContentsDelegateQt::DidFailLoad(int64 frame_id, const GURL &validated_url, bool is_main_frame, int error_code, const string16 &error_description, content::RenderViewHost *render_view_host)
{
if (is_main_frame)
diff --git a/lib/web_contents_delegate_qt.h b/lib/web_contents_delegate_qt.h
index 629fd5c6c..b9720eac2 100644
--- a/lib/web_contents_delegate_qt.h
+++ b/lib/web_contents_delegate_qt.h
@@ -62,6 +62,7 @@ public:
virtual void NavigationStateChanged(const content::WebContents* source, unsigned changed_flags);
virtual void AddNewContents(content::WebContents* source, content::WebContents* new_contents, WindowOpenDisposition disposition, const gfx::Rect& initial_pos, bool user_gesture, bool* was_blocked);
virtual void LoadingStateChanged(content::WebContents* source);
+ virtual void LoadProgressChanged(content::WebContents* source, double progress);
virtual void DidFailLoad(int64 frame_id, const GURL &validated_url, bool is_main_frame, int error_code, const string16 &error_description, content::RenderViewHost *render_view_host);
virtual void DidFinishLoad(int64 frame_id, const GURL &validated_url, bool is_main_frame, content::RenderViewHost *render_view_host);
virtual void DidUpdateFaviconURL(int32 page_id, const std::vector<content::FaviconURL>& candidates);
diff --git a/lib/widgets/Api/qwebenginepage.cpp b/lib/widgets/Api/qwebenginepage.cpp
index ab3b1e675..8fafb3c47 100644
--- a/lib/widgets/Api/qwebenginepage.cpp
+++ b/lib/widgets/Api/qwebenginepage.cpp
@@ -86,6 +86,12 @@ void QWebEnginePagePrivate::loadingStateChanged()
updateNavigationActions();
}
+void QWebEnginePagePrivate::loadProgressChanged(int progress)
+{
+ Q_Q(QWebEnginePage);
+ Q_EMIT q->loadProgress(progress);
+}
+
QRectF QWebEnginePagePrivate::viewportRect() const
{
return view ? view->geometry() : QRectF();
diff --git a/lib/widgets/Api/qwebenginepage_p.h b/lib/widgets/Api/qwebenginepage_p.h
index ad1de0047..e8f511d2d 100644
--- a/lib/widgets/Api/qwebenginepage_p.h
+++ b/lib/widgets/Api/qwebenginepage_p.h
@@ -69,6 +69,7 @@ public:
virtual void urlChanged(const QUrl&) Q_DECL_OVERRIDE;
virtual void iconChanged(const QUrl&) Q_DECL_OVERRIDE;
virtual void loadingStateChanged() Q_DECL_OVERRIDE;
+ virtual void loadProgressChanged(int progress) Q_DECL_OVERRIDE;
virtual QRectF viewportRect() const Q_DECL_OVERRIDE;
virtual void loadFinished(bool success) Q_DECL_OVERRIDE;
virtual void focusContainer() Q_DECL_OVERRIDE;
diff --git a/lib/widgets/Api/qwebengineview.cpp b/lib/widgets/Api/qwebengineview.cpp
index a1b4fbc27..d07e710ab 100644
--- a/lib/widgets/Api/qwebengineview.cpp
+++ b/lib/widgets/Api/qwebengineview.cpp
@@ -75,6 +75,7 @@ void QWebEngineViewPrivate::bind(QWebEngineView *view, QWebEnginePage *page)
QObject::connect(page, &QWebEnginePage::titleChanged, view, &QWebEngineView::titleChanged);
QObject::connect(page, &QWebEnginePage::urlChanged, view, &QWebEngineView::urlChanged);
QObject::connect(page, &QWebEnginePage::loadStarted, view, &QWebEngineView::loadStarted);
+ QObject::connect(page, &QWebEnginePage::loadProgress, view, &QWebEngineView::loadProgress);
QObject::connect(page, &QWebEnginePage::loadFinished, view, &QWebEngineView::loadFinished);
}
}