summaryrefslogtreecommitdiffstats
path: root/src/core/javascript_dialog_manager_qt.h
diff options
context:
space:
mode:
authorPierre Rossi <pierre.rossi@digia.com>2014-01-13 15:01:54 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-01-15 21:35:29 +0100
commit6f5850dd4f6c4cc253c48f41f59130aee5415591 (patch)
tree9f92f25e0e297cdc51e5dd8aed3b942413e6c917 /src/core/javascript_dialog_manager_qt.h
parente46886912858e9b233fb099bb211e288dd7d57b5 (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.h12
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;
};