diff options
author | Pierre Rossi <pierre.rossi@digia.com> | 2014-01-13 15:01:54 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-01-15 21:35:29 +0100 |
commit | 6f5850dd4f6c4cc253c48f41f59130aee5415591 (patch) | |
tree | 9f92f25e0e297cdc51e5dd8aed3b942413e6c917 /src/core/javascript_dialog_manager_qt.h | |
parent | e46886912858e9b233fb099bb211e288dd7d57b5 (diff) |
JS dialogs in QtQuick
Refactor JavaScriptDialogManagerQt to support a Qt Quick dialogs
friendly approach.
Qt Quick dialogs are still missing a prompt, so we use a "handmade"
one. This should be solved before 5.3 though.
Change-Id: I965df66837b2e81d6e4618a8da1167a37661c26e
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Diffstat (limited to 'src/core/javascript_dialog_manager_qt.h')
-rw-r--r-- | src/core/javascript_dialog_manager_qt.h | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/core/javascript_dialog_manager_qt.h b/src/core/javascript_dialog_manager_qt.h index de416e03e..69eaf94b1 100644 --- a/src/core/javascript_dialog_manager_qt.h +++ b/src/core/javascript_dialog_manager_qt.h @@ -45,7 +45,10 @@ #include "content/public/common/javascript_message_type.h" #include "qglobal.h" +#include <QMap> +#include <QSharedPointer> +class JavaScriptDialogController; namespace content { class WebContents; } @@ -62,8 +65,13 @@ public: virtual void RunBeforeUnloadDialog(content::WebContents *, const base::string16 &messageText, bool isReload, const content::JavaScriptDialogManager::DialogClosedCallback &callback) Q_DECL_OVERRIDE { Q_UNUSED(messageText); Q_UNUSED(isReload); Q_UNUSED(callback); } virtual bool HandleJavaScriptDialog(content::WebContents *, bool accept, const base::string16 *promptOverride) Q_DECL_OVERRIDE; - virtual void CancelActiveAndPendingDialogs(content::WebContents *) Q_DECL_OVERRIDE {} - virtual void WebContentsDestroyed(content::WebContents *) Q_DECL_OVERRIDE {} + virtual void CancelActiveAndPendingDialogs(content::WebContents *contents) Q_DECL_OVERRIDE { removeDialogForContents(contents); } + virtual void WebContentsDestroyed(content::WebContents *contents) Q_DECL_OVERRIDE { removeDialogForContents(contents); } + + void removeDialogForContents(content::WebContents *); + +private: + QMap<content::WebContents *, QSharedPointer<JavaScriptDialogController> > m_activeDialogs; }; |