diff options
author | Pierre Rossi <pierre.rossi@digia.com> | 2013-10-23 17:07:23 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-10-24 19:58:02 +0200 |
commit | 7904082dbaf2841f3263134c8d1290d33159a6b0 (patch) | |
tree | 14b749a95d46104725c141200fe66c5080898db4 /lib | |
parent | ac95a438620f3ec7c72ae60396ee26b3778d38b2 (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.cpp | 5 | ||||
-rw-r--r-- | lib/quick/qquickwebengineview_p_p.h | 1 | ||||
-rw-r--r-- | lib/web_contents_adapter_client.h | 1 | ||||
-rw-r--r-- | lib/web_contents_delegate_qt.cpp | 5 | ||||
-rw-r--r-- | lib/web_contents_delegate_qt.h | 1 | ||||
-rw-r--r-- | lib/widgets/Api/qwebenginepage.cpp | 6 | ||||
-rw-r--r-- | lib/widgets/Api/qwebenginepage_p.h | 1 |
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; |