diff --git a/linphone-app/src/utils/Utils.cpp b/linphone-app/src/utils/Utils.cpp index edf60e9a1..86c99afed 100644 --- a/linphone-app/src/utils/Utils.cpp +++ b/linphone-app/src/utils/Utils.cpp @@ -719,14 +719,16 @@ bool Utils::isOnlyEmojis(const QString& text){ QString Utils::encodeTextToQmlRichFormat(const QString& text, const QVariantMap& options){ - QString images; - QStringList formattedText; + /*QString images; QStringList imageFormat; - bool lastWasUrl = false; for(auto format : QImageReader::supportedImageFormats()) imageFormat.append(QString::fromLatin1(format).toUpper()); + */ + QStringList formattedText; + bool lastWasUrl = false; + if(options.contains("noLink") && options["noLink"].toBool()){ - formattedText.append(text); + formattedText.append(encodeEmojiToQmlRichFormat(text)); }else{ auto primaryColor = App::getInstance()->getColorListModel()->getColor("i")->getColor(); auto iriParsed = UriTools::parseIri(text); @@ -743,9 +745,10 @@ QString Utils::encodeTextToQmlRichFormat(const QString& text, const QVariantMap& if(iri.front() != ' ') iri.push_front(' '); } - formattedText.append(iri); + formattedText.append(encodeEmojiToQmlRichFormat(iri)); }else{ QString uri = iriParsed[i].second.left(3) == "www" ? "http://"+iriParsed[i].second : iriParsed[i].second ; + /* TODO : preview from link int extIndex = iriParsed[i].second.lastIndexOf('.'); QString ext; if( extIndex >= 0) @@ -759,24 +762,19 @@ QString Utils::encodeTextToQmlRichFormat(const QString& text, const QVariantMap& options.contains("imagesWidth") ? QString(" height='auto'") : "" - ) + " src=\"" + iriParsed[i].second + "\" />"; + ) + " src=\"" + iriParsed[i].second + "\" />"+uri+""; }else{ + */ formattedText.append( "" + iri + ""); lastWasUrl = true; - } + /*}*/ } } } if(lastWasUrl && formattedText.last().back() != ' '){ formattedText.push_back(" "); } - if(images != "") - images = "
" + images +"
"; - QString encodeEmojis = encodeEmojiToQmlRichFormat(formattedText.join("")); - if( encodeEmojis.isEmpty() && images.isEmpty()) - return ""; - else - return images + "

" + encodeEmojiToQmlRichFormat(formattedText.join("")) + "

"; + return "

" + formattedText.join("") + "

"; } QString Utils::getFileContent(const QString& filePath){ diff --git a/linphone-app/ui/modules/Linphone/Notifications/NotificationReceivedMessage.qml b/linphone-app/ui/modules/Linphone/Notifications/NotificationReceivedMessage.qml index e940d474d..8101854ea 100644 --- a/linphone-app/ui/modules/Linphone/Notifications/NotificationReceivedMessage.qml +++ b/linphone-app/ui/modules/Linphone/Notifications/NotificationReceivedMessage.qml @@ -5,6 +5,7 @@ import Common 1.0 import Linphone 1.0 import Linphone.Styles 1.0 import UtilsCpp 1.0 +import Units 1.0 import 'qrc:/ui/scripts/Utils/utils.js' as Utils @@ -56,23 +57,36 @@ Notification { color: NotificationReceivedMessageStyle.messageContainer.colorModel.color radius: NotificationReceivedMessageStyle.messageContainer.radius - Text { + TextEdit { + id: messageText + property font customFont : SettingsModel.textMessageFont + property string fullText: notification.notificationData.message anchors { fill: parent margins: NotificationReceivedMessageStyle.messageContainer.margins } color: NotificationReceivedMessageStyle.messageContainer.text.colorModel.color - elide: Text.ElideRight + font { italic: true - pointSize: NotificationReceivedMessageStyle.messageContainer.text.pointSize + family: customFont.family + pointSize: Units.dp * (customFont.pointSize - 1) } verticalAlignment: Text.AlignVCenter - text: notification.notificationData.message + text: UtilsCpp.encodeTextToQmlRichFormat(metrics.elidedText) + textFormat: Text.RichText wrapMode: Text.Wrap + + TextMetrics { + id: metrics + font: messageText.font + text: messageText.fullText + elideWidth: messageText.width + elide: Qt.ElideRight + } } } } diff --git a/linphone-app/ui/modules/Linphone/Styles/Notifications/NotificationReceivedMessageStyle.qml b/linphone-app/ui/modules/Linphone/Styles/Notifications/NotificationReceivedMessageStyle.qml index c2009eb56..b7fdab775 100644 --- a/linphone-app/ui/modules/Linphone/Styles/Notifications/NotificationReceivedMessageStyle.qml +++ b/linphone-app/ui/modules/Linphone/Styles/Notifications/NotificationReceivedMessageStyle.qml @@ -22,7 +22,6 @@ QtObject { property QtObject text: QtObject { property var colorModel: ColorsList.add(sectionName+'_message_container_text', 'l') - property int pointSize: Units.dp * 9 } } }