diff options
author | Martin Negyokru <negyokru@inf.u-szeged.hu> | 2023-11-21 15:45:51 +0100 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2024-01-12 19:52:50 +0000 |
commit | 3484a9bb1213d4b808215f0e2c0e54a7397a340a (patch) | |
tree | 47616bd651c0cd84c5561ac0f4562725624ae5ab | |
parent | 62735b0857a11689bc18f8047112cae42bb05985 (diff) |
Fix text formatting in JS Dialogs
Use plain text instead of escaped html to match
other browsers behavior.
Also set the text format for qml dialogs.
Fixes: QTBUG-119245
Task-number: QTBUG-83338
Change-Id: Icb2c9fd21f27487418835372d6afda96a6812cc3
Reviewed-by: Michal Klocek <michal.klocek@qt.io>
(cherry picked from commit 3fcf62c0c19e89abbd154bc5f1fc8d84099aa58e)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
(cherry picked from commit b9c8cfba0154a260ec618df53c3d8e030a544662)
-rw-r--r-- | src/webenginequick/ui/AlertDialog.qml | 1 | ||||
-rw-r--r-- | src/webenginequick/ui/AuthenticationDialog.qml | 1 | ||||
-rw-r--r-- | src/webenginequick/ui/ConfirmDialog.qml | 1 | ||||
-rw-r--r-- | src/webenginequick/ui/PromptDialog.qml | 1 | ||||
-rw-r--r-- | src/webenginewidgets/api/qwebengineview.cpp | 32 |
5 files changed, 27 insertions, 9 deletions
diff --git a/src/webenginequick/ui/AlertDialog.qml b/src/webenginequick/ui/AlertDialog.qml index 53911f0bc..e4c17b056 100644 --- a/src/webenginequick/ui/AlertDialog.qml +++ b/src/webenginequick/ui/AlertDialog.qml @@ -49,6 +49,7 @@ Dialog { id: message Layout.fillWidth: true color: palette.windowText + textFormat: Text.PlainText } } Item { diff --git a/src/webenginequick/ui/AuthenticationDialog.qml b/src/webenginequick/ui/AuthenticationDialog.qml index f9de8d79f..d0611b84f 100644 --- a/src/webenginequick/ui/AuthenticationDialog.qml +++ b/src/webenginequick/ui/AuthenticationDialog.qml @@ -50,6 +50,7 @@ Dialog { Label { id: message color: palette.windowText + textFormat: Text.PlainText } GridLayout { columns: 2 diff --git a/src/webenginequick/ui/ConfirmDialog.qml b/src/webenginequick/ui/ConfirmDialog.qml index 7b5f1f5cf..cfffe7c4d 100644 --- a/src/webenginequick/ui/ConfirmDialog.qml +++ b/src/webenginequick/ui/ConfirmDialog.qml @@ -55,6 +55,7 @@ Dialog { id: message Layout.fillWidth: true color: palette.windowText + textFormat: Text.PlainText } } Item { diff --git a/src/webenginequick/ui/PromptDialog.qml b/src/webenginequick/ui/PromptDialog.qml index f3a15d48d..275deace8 100644 --- a/src/webenginequick/ui/PromptDialog.qml +++ b/src/webenginequick/ui/PromptDialog.qml @@ -52,6 +52,7 @@ Dialog { id: message Layout.fillWidth: true color: palette.windowText + textFormat: Text.PlainText } TextField { id:field diff --git a/src/webenginewidgets/api/qwebengineview.cpp b/src/webenginewidgets/api/qwebengineview.cpp index 952ebe7cd..c4a0da4d9 100644 --- a/src/webenginewidgets/api/qwebengineview.cpp +++ b/src/webenginewidgets/api/qwebengineview.cpp @@ -553,8 +553,10 @@ bool QWebEngineViewPrivate::showAuthorizationDialog(const QString &title, const { #if QT_CONFIG(messagebox) Q_Q(QWebEngineView); - return QMessageBox::question(q, title, message, QMessageBox::Yes, QMessageBox::No) - == QMessageBox::Yes; + QMessageBox msgBox(QMessageBox::Question, title, message, QMessageBox::Yes | QMessageBox::No, + q, Qt::Dialog | Qt::MSWindowsFixedSizeDialogHint); + msgBox.setTextFormat(Qt::PlainText); + return msgBox.exec() == QMessageBox::Yes; #else return false; #endif // QT_CONFIG(messagebox) @@ -564,8 +566,12 @@ void QWebEngineViewPrivate::javaScriptAlert(const QUrl &url, const QString &msg) { #if QT_CONFIG(messagebox) Q_Q(QWebEngineView); - QMessageBox::information(q, QStringLiteral("Javascript Alert - %1").arg(url.toString()), - msg.toHtmlEscaped()); + QMessageBox msgBox(QMessageBox::Information, + QStringLiteral("Javascript Alert - %1").arg(url.toString()), + msg, QMessageBox::Ok, q, + Qt::Dialog | Qt::MSWindowsFixedSizeDialogHint); + msgBox.setTextFormat(Qt::PlainText); + msgBox.exec(); #else Q_UNUSED(msg); #endif // QT_CONFIG(messagebox) @@ -575,10 +581,12 @@ bool QWebEngineViewPrivate::javaScriptConfirm(const QUrl &url, const QString &ms { #if QT_CONFIG(messagebox) Q_Q(QWebEngineView); - return (QMessageBox::information(q, - QStringLiteral("Javascript Confirm - %1").arg(url.toString()), - msg.toHtmlEscaped(), QMessageBox::Ok, QMessageBox::Cancel) - == QMessageBox::Ok); + QMessageBox msgBox(QMessageBox::Information, + QStringLiteral("Javascript Confirm - %1").arg(url.toString()), + msg, QMessageBox::Ok | QMessageBox::Cancel, q, + Qt::Dialog | Qt::MSWindowsFixedSizeDialogHint); + msgBox.setTextFormat(Qt::PlainText); + return msgBox.exec() == QMessageBox::Ok; #else Q_UNUSED(msg); return false; @@ -591,10 +599,16 @@ bool QWebEngineViewPrivate::javaScriptPrompt(const QUrl &url, const QString &msg #if QT_CONFIG(inputdialog) Q_Q(QWebEngineView); bool ret = false; + + // Workaround: Do not interpret text as Qt::RichText + // QInputDialog uses Qt::AutoText that interprets the text string as + // Qt::RichText if Qt::mightBeRichText() returns true, otherwise as Qt::PlainText. + const QString message = Qt::mightBeRichText(msg) ? msg.toHtmlEscaped() : msg; + if (result) *result = QInputDialog::getText( q, QStringLiteral("Javascript Prompt - %1").arg(url.toString()), - msg.toHtmlEscaped(), QLineEdit::Normal, defaultValue.toHtmlEscaped(), &ret); + message, QLineEdit::Normal, defaultValue, &ret); return ret; #else Q_UNUSED(msg); |