From 4cb0e9650599cb9b94651bb4f9e62bfdafde1ec4 Mon Sep 17 00:00:00 2001 From: BogDan Vatra Date: Fri, 28 Mar 2014 08:46:54 +0200 Subject: Android: Convert plain text to html text for native dialogs. Task-number: QTBUG-37824 Change-Id: I380b41d300b198b6cf3060bbecb5b98e0190b69a Reviewed-by: Eskil Abrahamsen Blomfeldt --- .../android/qandroidplatformdialoghelpers.cpp | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/plugins/platforms/android/qandroidplatformdialoghelpers.cpp b/src/plugins/platforms/android/qandroidplatformdialoghelpers.cpp index e76eedbfd9..897feb5802 100644 --- a/src/plugins/platforms/android/qandroidplatformdialoghelpers.cpp +++ b/src/plugins/platforms/android/qandroidplatformdialoghelpers.cpp @@ -41,6 +41,9 @@ #include "qandroidplatformdialoghelpers.h" #include "androidjnimain.h" + +#include + #include #include @@ -61,6 +64,14 @@ void QAndroidPlatformMessageDialogHelper::exec() m_loop.exec(); } +static QString htmlText(QString text) +{ + if (Qt::mightBeRichText(text)) + return text; + text.remove(QLatin1Char('\r')); + return text.toHtmlEscaped().replace(QLatin1Char('\n'), QLatin1String("
")); +} + bool QAndroidPlatformMessageDialogHelper::show(Qt::WindowFlags windowFlags , Qt::WindowModality windowModality , QWindow *parent) @@ -74,19 +85,19 @@ bool QAndroidPlatformMessageDialogHelper::show(Qt::WindowFlags windowFlags m_javaMessageDialog.callMethod("setIcon", "(I)V", opt->icon()); - QString str = opt->windowTitle(); + QString str = htmlText(opt->windowTitle()); if (!str.isEmpty()) m_javaMessageDialog.callMethod("setTile", "(Ljava/lang/String;)V", QJNIObjectPrivate::fromString(str).object()); - str = opt->text(); + str = htmlText(opt->text()); if (!str.isEmpty()) m_javaMessageDialog.callMethod("setText", "(Ljava/lang/String;)V", QJNIObjectPrivate::fromString(str).object()); - str = opt->informativeText(); + str = htmlText(opt->informativeText()); if (!str.isEmpty()) m_javaMessageDialog.callMethod("setInformativeText", "(Ljava/lang/String;)V", QJNIObjectPrivate::fromString(str).object()); - str = opt->detailedText(); + str = htmlText(opt->detailedText()); if (!str.isEmpty()) m_javaMessageDialog.callMethod("setDetailedText", "(Ljava/lang/String;)V", QJNIObjectPrivate::fromString(str).object()); -- cgit v1.2.3