summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorPierre Rossi <pierre.rossi@digia.com>2013-10-23 17:07:23 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-10-24 19:58:02 +0200
commit7904082dbaf2841f3263134c8d1290d33159a6b0 (patch)
tree14b749a95d46104725c141200fe66c5080898db4 /lib
parentac95a438620f3ec7c72ae60396ee26b3778d38b2 (diff)
Add windowCloseRequested() support
Change-Id: If97c7b50efc7bf01095cb4a7138208ab2c6b2e9b Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/quick/qquickwebengineview.cpp5
-rw-r--r--lib/quick/qquickwebengineview_p_p.h1
-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
7 files changed, 20 insertions, 0 deletions
diff --git a/lib/quick/qquickwebengineview.cpp b/lib/quick/qquickwebengineview.cpp
index dfab8ea0e..68d4fcca8 100644
--- a/lib/quick/qquickwebengineview.cpp
+++ b/lib/quick/qquickwebengineview.cpp
@@ -125,6 +125,11 @@ void QQuickWebEngineViewPrivate::adoptNewWindow(WebContentsAdapter *newWebConten
Q_UNREACHABLE();
}
+void QQuickWebEngineViewPrivate::close()
+{
+ Q_UNREACHABLE();
+}
+
QQuickWebEngineView::QQuickWebEngineView(QQuickItem *parent)
: QQuickItem(*(new QQuickWebEngineViewPrivate), parent)
{
diff --git a/lib/quick/qquickwebengineview_p_p.h b/lib/quick/qquickwebengineview_p_p.h
index bd127c02b..a1f2df9b3 100644
--- a/lib/quick/qquickwebengineview_p_p.h
+++ b/lib/quick/qquickwebengineview_p_p.h
@@ -68,6 +68,7 @@ public:
virtual void loadFinished(bool success) Q_DECL_OVERRIDE;
virtual void focusContainer() Q_DECL_OVERRIDE;
virtual void adoptNewWindow(WebContentsAdapter *newWebContents, WindowOpenDisposition disposition) Q_DECL_OVERRIDE;
+ virtual void close() Q_DECL_OVERRIDE;
virtual bool contextMenuRequested(const WebEngineContextMenuData &) Q_DECL_OVERRIDE { return false;}
virtual bool javascriptDialog(JavascriptDialogType type, const QString &message, const QString &defaultValue = QString(), QString *result = 0) Q_DECL_OVERRIDE { return false; }
diff --git a/lib/web_contents_adapter_client.h b/lib/web_contents_adapter_client.h
index 799836c6b..5905511dc 100644
--- a/lib/web_contents_adapter_client.h
+++ b/lib/web_contents_adapter_client.h
@@ -111,6 +111,7 @@ public:
virtual void loadFinished(bool success) = 0;
virtual void focusContainer() = 0;
virtual void adoptNewWindow(WebContentsAdapter *newWebContents, WindowOpenDisposition disposition) = 0;
+ virtual void close() = 0;
virtual bool contextMenuRequested(const WebEngineContextMenuData&) = 0;
virtual bool javascriptDialog(JavascriptDialogType type, const QString &message, const QString &defaultValue = QString(), QString *result = 0) = 0;
};
diff --git a/lib/web_contents_delegate_qt.cpp b/lib/web_contents_delegate_qt.cpp
index c2840b608..8588a4320 100644
--- a/lib/web_contents_delegate_qt.cpp
+++ b/lib/web_contents_delegate_qt.cpp
@@ -81,6 +81,11 @@ void WebContentsDelegateQt::AddNewContents(content::WebContents* source, content
*was_blocked = !newAdapter;
}
+void WebContentsDelegateQt::CloseContents(content::WebContents *source)
+{
+ m_viewClient->close();
+}
+
void WebContentsDelegateQt::LoadingStateChanged(content::WebContents* source)
{
m_viewClient->loadingStateChanged();
diff --git a/lib/web_contents_delegate_qt.h b/lib/web_contents_delegate_qt.h
index 42ec5c15c..d5628f486 100644
--- a/lib/web_contents_delegate_qt.h
+++ b/lib/web_contents_delegate_qt.h
@@ -64,6 +64,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 CloseContents(content::WebContents *source);
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);
diff --git a/lib/widgets/Api/qwebenginepage.cpp b/lib/widgets/Api/qwebenginepage.cpp
index a11272a0d..ba671cb84 100644
--- a/lib/widgets/Api/qwebenginepage.cpp
+++ b/lib/widgets/Api/qwebenginepage.cpp
@@ -127,6 +127,12 @@ void QWebEnginePagePrivate::adoptNewWindow(WebContentsAdapter *newWebContents, W
}
}
+void QWebEnginePagePrivate::close()
+{
+ Q_Q(QWebEnginePage);
+ Q_EMIT q->windowCloseRequested();
+}
+
void QWebEnginePagePrivate::updateAction(QWebEnginePage::WebAction action) const
{
#ifdef QT_NO_ACTION
diff --git a/lib/widgets/Api/qwebenginepage_p.h b/lib/widgets/Api/qwebenginepage_p.h
index 584b5abeb..b79a0da2e 100644
--- a/lib/widgets/Api/qwebenginepage_p.h
+++ b/lib/widgets/Api/qwebenginepage_p.h
@@ -74,6 +74,7 @@ public:
virtual void loadFinished(bool success) Q_DECL_OVERRIDE;
virtual void focusContainer() Q_DECL_OVERRIDE;
virtual void adoptNewWindow(WebContentsAdapter *newWebContents, WindowOpenDisposition disposition) Q_DECL_OVERRIDE;
+ virtual void close() Q_DECL_OVERRIDE;
virtual bool contextMenuRequested(const WebEngineContextMenuData &data) Q_DECL_OVERRIDE;
virtual bool javascriptDialog(JavascriptDialogType type, const QString &message, const QString &defaultValue = QString(), QString *result = 0) Q_DECL_OVERRIDE;