do not replace symbols by their rich text code as qml will handle it itself

replace \n by <br> to handle carriage return
This commit is contained in:
Gaelle Braud 2026-01-22 09:47:19 +01:00
parent 5622016824
commit 37d6649fa4
6 changed files with 35 additions and 33 deletions

View file

@ -210,8 +210,8 @@ void ChatCore::setSelf(QSharedPointer<ChatCore> me) {
&ChatModel::newEvent, [this](const std::shared_ptr<linphone::ChatRoom> &chatRoom, &ChatModel::newEvent, [this](const std::shared_ptr<linphone::ChatRoom> &chatRoom,
const std::shared_ptr<const linphone::EventLog> &eventLog) { const std::shared_ptr<const linphone::EventLog> &eventLog) {
if (mChatModel->getMonitor() != chatRoom) return; if (mChatModel->getMonitor() != chatRoom) return;
lDebug() << "EVENT LOG RECEIVED IN CHATROOM" << mChatModel->getTitle();
if (!eventLog) return; if (!eventLog) return;
lDebug() << "EVENT LOG RECEIVED IN CHATROOM" << mChatModel->getTitle();
auto event = EventLogCore::create(eventLog, chatRoom); auto event = EventLogCore::create(eventLog, chatRoom);
if (event->isHandled()) { if (event->isHandled()) {
mChatModelConnection->invokeToCore([this, event]() { emit eventsInserted({event}); }); mChatModelConnection->invokeToCore([this, event]() { emit eventsInserted({event}); });

View file

@ -6050,49 +6050,49 @@ Um sie in einem kommerziellen Projekt zu aktivieren, kontaktieren Sie uns bitte.
<context> <context>
<name>ToolModel</name> <name>ToolModel</name>
<message> <message>
<location filename="../../model/tool/ToolModel.cpp" line="329"/> <location filename="../../model/tool/ToolModel.cpp" line="331"/>
<source>call_error_uninterpretable_sip_address</source> <source>call_error_uninterpretable_sip_address</source>
<extracomment>&quot;The calling address is not an interpretable SIP address : %1</extracomment> <extracomment>&quot;The calling address is not an interpretable SIP address : %1</extracomment>
<translation>Die Anrufadresse ist keine interpretierbare SIP-Adresse: %1</translation> <translation>Die Anrufadresse ist keine interpretierbare SIP-Adresse: %1</translation>
</message> </message>
<message> <message>
<location filename="../../model/tool/ToolModel.cpp" line="404"/> <location filename="../../model/tool/ToolModel.cpp" line="406"/>
<source>group_call_error_no_account</source> <source>group_call_error_no_account</source>
<translation>Kein Standardkonto gefunden, Gruppengespräch kann nicht erstellt werden</translation> <translation>Kein Standardkonto gefunden, Gruppengespräch kann nicht erstellt werden</translation>
</message> </message>
<message> <message>
<location filename="../../model/tool/ToolModel.cpp" line="434"/> <location filename="../../model/tool/ToolModel.cpp" line="436"/>
<source>group_call_error_participants_invite</source> <source>group_call_error_participants_invite</source>
<translation>Teilnehmer konnten nicht zum Gruppengespräch eingeladen werden</translation> <translation>Teilnehmer konnten nicht zum Gruppengespräch eingeladen werden</translation>
</message> </message>
<message> <message>
<location filename="../../model/tool/ToolModel.cpp" line="438"/> <location filename="../../model/tool/ToolModel.cpp" line="440"/>
<source>group_call_error_creation</source> <source>group_call_error_creation</source>
<translation>Gruppengespräch konnte nicht erstellt werden</translation> <translation>Gruppengespräch konnte nicht erstellt werden</translation>
</message> </message>
<message> <message>
<location filename="../../model/tool/ToolModel.cpp" line="538"/> <location filename="../../model/tool/ToolModel.cpp" line="540"/>
<source>voice_recording_duration</source> <source>voice_recording_duration</source>
<extracomment>&quot;Voice recording (%1)&quot; : %1 is the duration formated in mm:ss</extracomment> <extracomment>&quot;Voice recording (%1)&quot; : %1 is the duration formated in mm:ss</extracomment>
<translation>Sprachnachricht (%1)</translation> <translation>Sprachnachricht (%1)</translation>
</message> </message>
<message> <message>
<location filename="../../model/tool/ToolModel.cpp" line="546"/> <location filename="../../model/tool/ToolModel.cpp" line="548"/>
<source>conference_invitation</source> <source>conference_invitation</source>
<translation>Meeting-Einladung</translation> <translation>Meeting-Einladung</translation>
</message> </message>
<message> <message>
<location filename="../../model/tool/ToolModel.cpp" line="548"/> <location filename="../../model/tool/ToolModel.cpp" line="550"/>
<source>conference_invitation_updated</source> <source>conference_invitation_updated</source>
<translation>Meeting-Änderung</translation> <translation>Meeting-Änderung</translation>
</message> </message>
<message> <message>
<location filename="../../model/tool/ToolModel.cpp" line="550"/> <location filename="../../model/tool/ToolModel.cpp" line="552"/>
<source>conference_invitation_cancelled</source> <source>conference_invitation_cancelled</source>
<translation>Meeting-Absage</translation> <translation>Meeting-Absage</translation>
</message> </message>
<message> <message>
<location filename="../../model/tool/ToolModel.cpp" line="612"/> <location filename="../../model/tool/ToolModel.cpp" line="614"/>
<source>unknown_audio_device_name</source> <source>unknown_audio_device_name</source>
<translation>Unbekannter Gerätename</translation> <translation>Unbekannter Gerätename</translation>
</message> </message>

View file

@ -5915,49 +5915,49 @@ To enable them in a commercial project, please contact us.</translation>
<context> <context>
<name>ToolModel</name> <name>ToolModel</name>
<message> <message>
<location filename="../../model/tool/ToolModel.cpp" line="329"/> <location filename="../../model/tool/ToolModel.cpp" line="331"/>
<source>call_error_uninterpretable_sip_address</source> <source>call_error_uninterpretable_sip_address</source>
<extracomment>&quot;The calling address is not an interpretable SIP address : %1</extracomment> <extracomment>&quot;The calling address is not an interpretable SIP address : %1</extracomment>
<translation>The calling address is not an interpretable SIP address : %1</translation> <translation>The calling address is not an interpretable SIP address : %1</translation>
</message> </message>
<message> <message>
<location filename="../../model/tool/ToolModel.cpp" line="404"/> <location filename="../../model/tool/ToolModel.cpp" line="406"/>
<source>group_call_error_no_account</source> <source>group_call_error_no_account</source>
<translation>No default account found, can&apos;t create group call</translation> <translation>No default account found, can&apos;t create group call</translation>
</message> </message>
<message> <message>
<location filename="../../model/tool/ToolModel.cpp" line="434"/> <location filename="../../model/tool/ToolModel.cpp" line="436"/>
<source>group_call_error_participants_invite</source> <source>group_call_error_participants_invite</source>
<translation>Couldn&apos;t invite participants to group call</translation> <translation>Couldn&apos;t invite participants to group call</translation>
</message> </message>
<message> <message>
<location filename="../../model/tool/ToolModel.cpp" line="438"/> <location filename="../../model/tool/ToolModel.cpp" line="440"/>
<source>group_call_error_creation</source> <source>group_call_error_creation</source>
<translation>Group call couldn&apos;t be created</translation> <translation>Group call couldn&apos;t be created</translation>
</message> </message>
<message> <message>
<location filename="../../model/tool/ToolModel.cpp" line="538"/> <location filename="../../model/tool/ToolModel.cpp" line="540"/>
<source>voice_recording_duration</source> <source>voice_recording_duration</source>
<extracomment>&quot;Voice recording (%1)&quot; : %1 is the duration formated in mm:ss</extracomment> <extracomment>&quot;Voice recording (%1)&quot; : %1 is the duration formated in mm:ss</extracomment>
<translation>Voice recording (%1)</translation> <translation>Voice recording (%1)</translation>
</message> </message>
<message> <message>
<location filename="../../model/tool/ToolModel.cpp" line="612"/> <location filename="../../model/tool/ToolModel.cpp" line="614"/>
<source>unknown_audio_device_name</source> <source>unknown_audio_device_name</source>
<translation>Unknown device name</translation> <translation>Unknown device name</translation>
</message> </message>
<message> <message>
<location filename="../../model/tool/ToolModel.cpp" line="546"/> <location filename="../../model/tool/ToolModel.cpp" line="548"/>
<source>conference_invitation</source> <source>conference_invitation</source>
<translation>Meeting invitation</translation> <translation>Meeting invitation</translation>
</message> </message>
<message> <message>
<location filename="../../model/tool/ToolModel.cpp" line="550"/> <location filename="../../model/tool/ToolModel.cpp" line="552"/>
<source>conference_invitation_cancelled</source> <source>conference_invitation_cancelled</source>
<translation>Meeting cancellation</translation> <translation>Meeting cancellation</translation>
</message> </message>
<message> <message>
<location filename="../../model/tool/ToolModel.cpp" line="548"/> <location filename="../../model/tool/ToolModel.cpp" line="550"/>
<source>conference_invitation_updated</source> <source>conference_invitation_updated</source>
<translation>Meeting modification</translation> <translation>Meeting modification</translation>
</message> </message>

View file

@ -5886,49 +5886,49 @@ Pour les activer dans un projet commercial, merci de nous contacter.</translatio
<context> <context>
<name>ToolModel</name> <name>ToolModel</name>
<message> <message>
<location filename="../../model/tool/ToolModel.cpp" line="329"/> <location filename="../../model/tool/ToolModel.cpp" line="331"/>
<source>call_error_uninterpretable_sip_address</source> <source>call_error_uninterpretable_sip_address</source>
<extracomment>&quot;The calling address is not an interpretable SIP address : %1</extracomment> <extracomment>&quot;The calling address is not an interpretable SIP address : %1</extracomment>
<translation>L&apos;adresse n&apos;est pas interprétable comme une adresse SIP</translation> <translation>L&apos;adresse n&apos;est pas interprétable comme une adresse SIP</translation>
</message> </message>
<message> <message>
<location filename="../../model/tool/ToolModel.cpp" line="404"/> <location filename="../../model/tool/ToolModel.cpp" line="406"/>
<source>group_call_error_no_account</source> <source>group_call_error_no_account</source>
<translation>Impossible de créer l&apos;appel de groupe, le compte par défaut n&apos;est pas défini</translation> <translation>Impossible de créer l&apos;appel de groupe, le compte par défaut n&apos;est pas défini</translation>
</message> </message>
<message> <message>
<location filename="../../model/tool/ToolModel.cpp" line="434"/> <location filename="../../model/tool/ToolModel.cpp" line="436"/>
<source>group_call_error_participants_invite</source> <source>group_call_error_participants_invite</source>
<translation>Impossible d&apos;inviter les participants à l&apos;appel de groupe</translation> <translation>Impossible d&apos;inviter les participants à l&apos;appel de groupe</translation>
</message> </message>
<message> <message>
<location filename="../../model/tool/ToolModel.cpp" line="438"/> <location filename="../../model/tool/ToolModel.cpp" line="440"/>
<source>group_call_error_creation</source> <source>group_call_error_creation</source>
<translation>L&apos;appel de groupe n&apos;a pas pu être créé</translation> <translation>L&apos;appel de groupe n&apos;a pas pu être créé</translation>
</message> </message>
<message> <message>
<location filename="../../model/tool/ToolModel.cpp" line="538"/> <location filename="../../model/tool/ToolModel.cpp" line="540"/>
<source>voice_recording_duration</source> <source>voice_recording_duration</source>
<extracomment>&quot;Voice recording (%1)&quot; : %1 is the duration formated in mm:ss</extracomment> <extracomment>&quot;Voice recording (%1)&quot; : %1 is the duration formated in mm:ss</extracomment>
<translation>Message vocal (%1)</translation> <translation>Message vocal (%1)</translation>
</message> </message>
<message> <message>
<location filename="../../model/tool/ToolModel.cpp" line="612"/> <location filename="../../model/tool/ToolModel.cpp" line="614"/>
<source>unknown_audio_device_name</source> <source>unknown_audio_device_name</source>
<translation>Appareil inconnu</translation> <translation>Appareil inconnu</translation>
</message> </message>
<message> <message>
<location filename="../../model/tool/ToolModel.cpp" line="546"/> <location filename="../../model/tool/ToolModel.cpp" line="548"/>
<source>conference_invitation</source> <source>conference_invitation</source>
<translation>Invitation à une réunion</translation> <translation>Invitation à une réunion</translation>
</message> </message>
<message> <message>
<location filename="../../model/tool/ToolModel.cpp" line="550"/> <location filename="../../model/tool/ToolModel.cpp" line="552"/>
<source>conference_invitation_cancelled</source> <source>conference_invitation_cancelled</source>
<translation>Annulation d&apos;une réunion</translation> <translation>Annulation d&apos;une réunion</translation>
</message> </message>
<message> <message>
<location filename="../../model/tool/ToolModel.cpp" line="548"/> <location filename="../../model/tool/ToolModel.cpp" line="550"/>
<source>conference_invitation_updated</source> <source>conference_invitation_updated</source>
<translation>Modification d&apos;une réunion</translation> <translation>Modification d&apos;une réunion</translation>
</message> </message>

View file

@ -160,11 +160,13 @@ QString ToolModel::encodeTextToQmlRichFormat(const QString &text,
for (int i = 0; i < iriParsed.size(); ++i) { for (int i = 0; i < iriParsed.size(); ++i) {
QString iri = iriParsed[i] QString iri = iriParsed[i]
.second.replace('&', "&amp;") .second
// .replace('&', "&amp;")
.replace('<', "\u2063&lt;") .replace('<', "\u2063&lt;")
.replace('>', "\u2063&gt;") .replace('\n', "<br>");
.replace('"', "&quot;") // .replace('>', "\u2063&gt;")
.replace('\'', "&#039;"); // .replace('"', "&quot;")
// .replace('\'', "&#039;");
if (!iriParsed[i].first) { if (!iriParsed[i].first) {
if (lastWasUrl) { if (lastWasUrl) {
lastWasUrl = false; lastWasUrl = false;

View file

@ -31,7 +31,7 @@ TextEdit {
contentGui.core.setSearchedTextPart(searchedTextPart) contentGui.core.setSearchedTextPart(searchedTextPart)
} }
textFormat: Text.AutoText // To supports links and imgs. textFormat: Text.RichText // To supports links and imgs.
wrapMode: TextEdit.Wrap wrapMode: TextEdit.Wrap
onLinkActivated: (link) => { onLinkActivated: (link) => {