diff options
author | Pierre Rossi <pierre.rossi@digia.com> | 2013-09-05 15:55:00 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-10-17 15:06:19 +0200 |
commit | 7642fabf5f62fbc583dc6bd9f349dbe1e45e805a (patch) | |
tree | f493be28f91e06b46534061bcd251d259105da58 /lib/widgets/Api/qwebenginepage.cpp | |
parent | d9276b51c64c2b0b1cd97dcd02c0a83e78018f81 (diff) | |
download | qtwebengine-7642fabf5f62fbc583dc6bd9f349dbe1e45e805a.tar.gz |
Add javascript dialogs support
This is just the basic core part and widgets plumbing and default
implementations of the virtual functions in QWebEnginePage.
QtQuick implementation is still yet to be done
Change-Id: I7cf8d6e5ec0bf747d45e9914db57bd0e4ef95b7f
Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
Diffstat (limited to 'lib/widgets/Api/qwebenginepage.cpp')
-rw-r--r-- | lib/widgets/Api/qwebenginepage.cpp | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/lib/widgets/Api/qwebenginepage.cpp b/lib/widgets/Api/qwebenginepage.cpp index b956a8785..a11272a0d 100644 --- a/lib/widgets/Api/qwebenginepage.cpp +++ b/lib/widgets/Api/qwebenginepage.cpp @@ -34,8 +34,10 @@ #include <QApplication> #include <QClipboard> #include <QIcon> +#include <QInputDialog> #include <QLayout> #include <QMenu> +#include <QMessageBox> #include <QUrl> QT_BEGIN_NAMESPACE @@ -306,6 +308,22 @@ bool QWebEnginePagePrivate::contextMenuRequested(const WebEngineContextMenuData return true; } +bool QWebEnginePagePrivate::javascriptDialog(JavascriptDialogType type, const QString &message, const QString &defaultValue, QString *result) +{ + Q_Q(QWebEnginePage); + switch (type) { + case AlertDialog: + q->javaScriptAlert(0, message); + return true; + case ConfirmDialog: + return q->javaScriptConfirm(0, message); + case PromptDialog: + return q->javaScriptPrompt(0, message, defaultValue, result); + } + Q_UNREACHABLE(); + return false; +} + QMenu *QWebEnginePage::createStandardContextMenu() { Q_D(QWebEnginePage); @@ -391,6 +409,26 @@ QWebEnginePage *QWebEnginePage::createWindow(WebWindowType type) return 0; } +void QWebEnginePage::javaScriptAlert(QWebEngineFrame *originatingFrame, const QString &msg) +{ + Q_UNUSED(originatingFrame); + QMessageBox::information(view(), QStringLiteral("Javascript Alert - %1").arg(url().toString()), msg); +} + +bool QWebEnginePage::javaScriptConfirm(QWebEngineFrame *originatingFrame, const QString &msg) +{ + Q_UNUSED(originatingFrame); + return (QMessageBox::information(view(), QStringLiteral("Javascript Confirm - %1").arg(url().toString()), msg, QMessageBox::Ok, QMessageBox::Cancel) == QMessageBox::Ok); +} + +bool QWebEnginePage::javaScriptPrompt(QWebEngineFrame *originatingFrame, const QString &msg, const QString &defaultValue, QString *result) +{ + Q_UNUSED(originatingFrame); + bool ret = false; + if (result) + *result = QInputDialog::getText(view(), QStringLiteral("Javascript Prompt - %1").arg(url().toString()), msg, QLineEdit::Normal, defaultValue, &ret); + return ret; +} QT_END_NAMESPACE #include "moc_qwebenginepage.cpp" |