mirror of
https://gitlab.linphone.org/BC/public/linphone-desktop.git
synced 2026-01-27 08:49:19 +00:00
Merge branch 'fix/6.1' into 'release/6.1'
fix bold text part searched in chatroom See merge request BC/public/linphone-desktop!1648
This commit is contained in:
commit
344b4b4bb0
12 changed files with 214 additions and 240 deletions
|
|
@ -64,7 +64,13 @@ ChatMessageContentCore::ChatMessageContentCore(const std::shared_ptr<linphone::C
|
|||
mFileOffset = 0;
|
||||
mUtf8Text = Utils::coreStringToAppString(content->getUtf8Text());
|
||||
auto chatRoom = chatMessageModel ? chatMessageModel->getMonitor()->getChatRoom() : nullptr;
|
||||
mRichFormatText = ToolModel::encodeTextToQmlRichFormat(mUtf8Text, {}, chatRoom);
|
||||
mRichFormatText = ToolModel::encodeTextToQmlRichFormat(mUtf8Text, mSearchedTextPart, {}, chatRoom);
|
||||
connect(this, &ChatMessageContentCore::searchedTextPartChanged, this, [this] {
|
||||
auto chatroom = mChatMessageContentModel->getChatMessageModel()
|
||||
? mChatMessageContentModel->getChatMessageModel()->getMonitor()->getChatRoom()
|
||||
: nullptr;
|
||||
setRichFormatText(ToolModel::encodeTextToQmlRichFormat(mUtf8Text, mSearchedTextPart, {}, chatroom));
|
||||
});
|
||||
mWasDownloaded = !mFilePath.isEmpty() && QFileInfo(mFilePath).isFile();
|
||||
mThumbnail = mFilePath.isEmpty()
|
||||
? QUrl()
|
||||
|
|
@ -246,10 +252,6 @@ ConferenceInfoGui *ChatMessageContentCore::getConferenceInfoGui() const {
|
|||
return mConferenceInfo ? new ConferenceInfoGui(mConferenceInfo) : nullptr;
|
||||
}
|
||||
|
||||
bool ChatMessageContentCore::wasDownloaded() const {
|
||||
return mWasDownloaded;
|
||||
}
|
||||
|
||||
QUrl ChatMessageContentCore::getThumbnail() const {
|
||||
return mThumbnail;
|
||||
}
|
||||
|
|
@ -260,6 +262,10 @@ void ChatMessageContentCore::setThumbnail(const QUrl &data) {
|
|||
emit thumbnailChanged();
|
||||
}
|
||||
}
|
||||
|
||||
bool ChatMessageContentCore::wasDownloaded() const {
|
||||
return mWasDownloaded;
|
||||
}
|
||||
void ChatMessageContentCore::setWasDownloaded(bool wasDownloaded) {
|
||||
if (mWasDownloaded != wasDownloaded) {
|
||||
mWasDownloaded = wasDownloaded;
|
||||
|
|
@ -267,6 +273,24 @@ void ChatMessageContentCore::setWasDownloaded(bool wasDownloaded) {
|
|||
}
|
||||
}
|
||||
|
||||
void ChatMessageContentCore::setRichFormatText(const QString &richFormatText) {
|
||||
if (mRichFormatText != richFormatText) {
|
||||
mRichFormatText = richFormatText;
|
||||
emit richFormatTextChanged();
|
||||
}
|
||||
}
|
||||
|
||||
void ChatMessageContentCore::setSearchedTextPart(const QString &searchedTextPart) {
|
||||
if (mSearchedTextPart != searchedTextPart) {
|
||||
mSearchedTextPart = searchedTextPart;
|
||||
emit searchedTextPartChanged();
|
||||
}
|
||||
}
|
||||
|
||||
QString ChatMessageContentCore::getSearchedTextPart() const {
|
||||
return mSearchedTextPart;
|
||||
}
|
||||
|
||||
const std::shared_ptr<ChatMessageContentModel> &ChatMessageContentCore::getContentModel() const {
|
||||
return mChatMessageContentModel;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -40,7 +40,8 @@ class ChatMessageContentCore : public QObject, public AbstractObject {
|
|||
Q_PROPERTY(bool wasDownloaded READ wasDownloaded WRITE setWasDownloaded NOTIFY wasDownloadedChanged)
|
||||
Q_PROPERTY(QString filePath READ getFilePath WRITE setFilePath NOTIFY filePathChanged)
|
||||
Q_PROPERTY(QString utf8Text READ getUtf8Text CONSTANT)
|
||||
Q_PROPERTY(QString richFormatText MEMBER mRichFormatText CONSTANT)
|
||||
Q_PROPERTY(QString richFormatText WRITE setRichFormatText MEMBER mRichFormatText NOTIFY richFormatTextChanged)
|
||||
Q_PROPERTY(QString searchTextPart READ getSearchedTextPart WRITE setSearchedTextPart NOTIFY searchedTextPartChanged)
|
||||
Q_PROPERTY(bool isFile READ isFile WRITE setIsFile NOTIFY isFileChanged)
|
||||
Q_PROPERTY(bool isFileEncrypted READ isFileEncrypted WRITE setIsFileEncrypted NOTIFY isFileEncryptedChanged)
|
||||
Q_PROPERTY(bool isFileTransfer READ isFileTransfer WRITE setIsFileTransfer NOTIFY isFileTransferChanged)
|
||||
|
|
@ -90,6 +91,10 @@ public:
|
|||
bool wasDownloaded() const;
|
||||
void setWasDownloaded(bool downloaded);
|
||||
|
||||
void setRichFormatText(const QString &richFormatText);
|
||||
Q_INVOKABLE void setSearchedTextPart(const QString &searchedTextPart);
|
||||
QString getSearchedTextPart() const;
|
||||
|
||||
const std::shared_ptr<ChatMessageContentModel> &getContentModel() const;
|
||||
|
||||
signals:
|
||||
|
|
@ -102,6 +107,8 @@ signals:
|
|||
void isFileEncryptedChanged();
|
||||
void wasDownloadedChanged(bool downloaded);
|
||||
void isVideoChanged();
|
||||
void searchedTextPartChanged();
|
||||
void richFormatTextChanged();
|
||||
|
||||
void lCreateThumbnail(const bool &force = false);
|
||||
void lRemoveDownloadedFile();
|
||||
|
|
@ -124,6 +131,7 @@ private:
|
|||
QUrl mThumbnail;
|
||||
QString mUtf8Text;
|
||||
QString mRichFormatText;
|
||||
QString mSearchedTextPart;
|
||||
QString mFilePath;
|
||||
QString mName;
|
||||
quint64 mFileSize;
|
||||
|
|
|
|||
|
|
@ -2279,24 +2279,24 @@
|
|||
<context>
|
||||
<name>ChatMessageContentCore</name>
|
||||
<message>
|
||||
<location filename="../../core/chat/message/content/ChatMessageContentCore.cpp" line="105"/>
|
||||
<location filename="../../core/chat/message/content/ChatMessageContentCore.cpp" line="111"/>
|
||||
<source>download_file_default_error</source>
|
||||
<extracomment>Error downloading file %1</extracomment>
|
||||
<translation>Fehler beim Herunterladen der Datei %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../core/chat/message/content/ChatMessageContentCore.cpp" line="106"/>
|
||||
<location filename="../../core/chat/message/content/ChatMessageContentCore.cpp" line="112"/>
|
||||
<source>info_popup_error_titile</source>
|
||||
<translation>Fehler</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../core/chat/message/content/ChatMessageContentCore.cpp" line="138"/>
|
||||
<location filename="../../core/chat/message/content/ChatMessageContentCore.cpp" line="144"/>
|
||||
<source>popup_error_title</source>
|
||||
<extracomment>Error</extracomment>
|
||||
<translation>Fehler</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../core/chat/message/content/ChatMessageContentCore.cpp" line="140"/>
|
||||
<location filename="../../core/chat/message/content/ChatMessageContentCore.cpp" line="146"/>
|
||||
<source>popup_open_file_error_does_not_exist_message</source>
|
||||
<extracomment>Could not open file : unknown path %1</extracomment>
|
||||
<translation>Datei konnte nicht geöffnet werden: unbekannter Pfad %1</translation>
|
||||
|
|
@ -2361,37 +2361,37 @@ Error</extracomment>
|
|||
<translation type="vanished">Fehler</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../model/chat/message/content/ChatMessageContentModel.cpp" line="83"/>
|
||||
<location filename="../../model/chat/message/content/ChatMessageContentModel.cpp" line="87"/>
|
||||
<source>download_error_object_doesnt_exist</source>
|
||||
<extracomment>Internal error : message object associated to this content does not exist anymore !</extracomment>
|
||||
<translation type="unfinished">Interner Fehler: Nachrichtenobjekt existiert nicht mehr!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../model/chat/message/content/ChatMessageContentModel.cpp" line="98"/>
|
||||
<location filename="../../model/chat/message/content/ChatMessageContentModel.cpp" line="102"/>
|
||||
<source>download_file_server_error</source>
|
||||
<extracomment>Error while trying to download content : %1</extracomment>
|
||||
<translation>Fehler beim Versuch, Inhalte herunterzuladen: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../model/chat/message/content/ChatMessageContentModel.cpp" line="108"/>
|
||||
<location filename="../../model/chat/message/content/ChatMessageContentModel.cpp" line="112"/>
|
||||
<source>download_file_error_no_safe_file_path</source>
|
||||
<extracomment>Unable to create safe file path for: %1</extracomment>
|
||||
<translation>Speicherpfad konnte nicht erstellen für: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../model/chat/message/content/ChatMessageContentModel.cpp" line="117"/>
|
||||
<location filename="../../model/chat/message/content/ChatMessageContentModel.cpp" line="121"/>
|
||||
<source>download_file_error_file_transfer_unavailable</source>
|
||||
<extracomment>This file was already downloaded and is no more on the server. Your peer have to resend it if you want to get it</extracomment>
|
||||
<translation>Diese Datei wurde bereits heruntergeladen und ist nicht mehr auf dem Server verfügbar. Ihr Kontakt muss die Datei erneut senden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../model/chat/message/content/ChatMessageContentModel.cpp" line="122"/>
|
||||
<location filename="../../model/chat/message/content/ChatMessageContentModel.cpp" line="126"/>
|
||||
<source>download_file_error_null_name</source>
|
||||
<extracomment>Content name is null, can't download it !</extracomment>
|
||||
<translation>Inhaltsname nicht gesetzt, herunterladen fehlgeschlagen!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../model/chat/message/content/ChatMessageContentModel.cpp" line="130"/>
|
||||
<location filename="../../model/chat/message/content/ChatMessageContentModel.cpp" line="134"/>
|
||||
<source>download_file_error_unable_to_download</source>
|
||||
<extracomment>Unable to download file of entry %1</extracomment>
|
||||
<translation>Datei des Eintrags %1 konnte nicht heruntergeladen werden</translation>
|
||||
|
|
@ -6050,49 +6050,49 @@ Um sie in einem kommerziellen Projekt zu aktivieren, kontaktieren Sie uns bitte.
|
|||
<context>
|
||||
<name>ToolModel</name>
|
||||
<message>
|
||||
<location filename="../../model/tool/ToolModel.cpp" line="311"/>
|
||||
<location filename="../../model/tool/ToolModel.cpp" line="330"/>
|
||||
<source>call_error_uninterpretable_sip_address</source>
|
||||
<extracomment>"The calling address is not an interpretable SIP address : %1</extracomment>
|
||||
<translation>Die Anrufadresse ist keine interpretierbare SIP-Adresse: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../model/tool/ToolModel.cpp" line="386"/>
|
||||
<location filename="../../model/tool/ToolModel.cpp" line="405"/>
|
||||
<source>group_call_error_no_account</source>
|
||||
<translation>Kein Standardkonto gefunden, Gruppengespräch kann nicht erstellt werden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../model/tool/ToolModel.cpp" line="416"/>
|
||||
<location filename="../../model/tool/ToolModel.cpp" line="435"/>
|
||||
<source>group_call_error_participants_invite</source>
|
||||
<translation>Teilnehmer konnten nicht zum Gruppengespräch eingeladen werden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../model/tool/ToolModel.cpp" line="420"/>
|
||||
<location filename="../../model/tool/ToolModel.cpp" line="439"/>
|
||||
<source>group_call_error_creation</source>
|
||||
<translation>Gruppengespräch konnte nicht erstellt werden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../model/tool/ToolModel.cpp" line="520"/>
|
||||
<location filename="../../model/tool/ToolModel.cpp" line="539"/>
|
||||
<source>voice_recording_duration</source>
|
||||
<extracomment>"Voice recording (%1)" : %1 is the duration formated in mm:ss</extracomment>
|
||||
<translation>Sprachnachricht (%1)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../model/tool/ToolModel.cpp" line="528"/>
|
||||
<location filename="../../model/tool/ToolModel.cpp" line="547"/>
|
||||
<source>conference_invitation</source>
|
||||
<translation>Meeting-Einladung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../model/tool/ToolModel.cpp" line="530"/>
|
||||
<location filename="../../model/tool/ToolModel.cpp" line="549"/>
|
||||
<source>conference_invitation_updated</source>
|
||||
<translation>Meeting-Änderung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../model/tool/ToolModel.cpp" line="532"/>
|
||||
<location filename="../../model/tool/ToolModel.cpp" line="551"/>
|
||||
<source>conference_invitation_cancelled</source>
|
||||
<translation>Meeting-Absage</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../model/tool/ToolModel.cpp" line="594"/>
|
||||
<location filename="../../model/tool/ToolModel.cpp" line="613"/>
|
||||
<source>unknown_audio_device_name</source>
|
||||
<translation>Unbekannter Gerätename</translation>
|
||||
</message>
|
||||
|
|
@ -6100,7 +6100,7 @@ Um sie in einem kommerziellen Projekt zu aktivieren, kontaktieren Sie uns bitte.
|
|||
<context>
|
||||
<name>Utils</name>
|
||||
<message numerus="yes">
|
||||
<location filename="../../tool/Utils.cpp" line="2278"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2192"/>
|
||||
<source>nMinute</source>
|
||||
<translation>
|
||||
<numerusform>%1 Minute</numerusform>
|
||||
|
|
@ -6108,7 +6108,7 @@ Um sie in einem kommerziellen Projekt zu aktivieren, kontaktieren Sie uns bitte.
|
|||
</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../../tool/Utils.cpp" line="2279"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2193"/>
|
||||
<source>nHour</source>
|
||||
<translation>
|
||||
<numerusform>%1 Stunde</numerusform>
|
||||
|
|
@ -6116,8 +6116,8 @@ Um sie in einem kommerziellen Projekt zu aktivieren, kontaktieren Sie uns bitte.
|
|||
</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../../tool/Utils.cpp" line="2280"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2281"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2194"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2195"/>
|
||||
<source>nDay</source>
|
||||
<translation>
|
||||
<numerusform>%1 Tag</numerusform>
|
||||
|
|
@ -6125,7 +6125,7 @@ Um sie in einem kommerziellen Projekt zu aktivieren, kontaktieren Sie uns bitte.
|
|||
</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../../tool/Utils.cpp" line="2282"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2196"/>
|
||||
<source>nWeek</source>
|
||||
<translation>
|
||||
<numerusform>%1 Woche</numerusform>
|
||||
|
|
@ -6133,7 +6133,7 @@ Um sie in einem kommerziellen Projekt zu aktivieren, kontaktieren Sie uns bitte.
|
|||
</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../../tool/Utils.cpp" line="2283"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2197"/>
|
||||
<source>nSeconds</source>
|
||||
<translation>
|
||||
<numerusform>%1 Sekunde</numerusform>
|
||||
|
|
@ -6259,73 +6259,73 @@ Um sie in einem kommerziellen Projekt zu aktivieren, kontaktieren Sie uns bitte.
|
|||
<translation>Offline</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2189"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2103"/>
|
||||
<source>recorder_error</source>
|
||||
<extracomment>Error with the recorder</extracomment>
|
||||
<translation>Fehler mit der Aufzeichnung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2094"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2126"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2191"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2008"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2040"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2105"/>
|
||||
<source>chat_error</source>
|
||||
<translation>Fehler im Chat</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2092"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2006"/>
|
||||
<source>chat_message_forward_error</source>
|
||||
<extracomment>Cannot forward an invalid message</extracomment>
|
||||
<translation>Eine ungültige Nachricht kann nicht weitergeleitet werden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2096"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2111"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2128"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2155"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2193"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2207"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2010"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2025"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2042"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2069"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2107"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2121"/>
|
||||
<source>info_popup_error_title</source>
|
||||
<extracomment>Error</extracomment>
|
||||
<translation>Fehler</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2098"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2012"/>
|
||||
<source>info_popup_forward_message_error</source>
|
||||
<extracomment>Could not forward message : %1</extracomment>
|
||||
<translation>Nachricht konnte nicht weitergeleitet werden: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2113"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2027"/>
|
||||
<source>info_popup_send_forward_message_error_message</source>
|
||||
<extracomment>Failed to create forward message</extracomment>
|
||||
<translation>Weiterleitungsnachricht konnte nicht erstellt werden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2124"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2038"/>
|
||||
<source>chat_message_reply_error</source>
|
||||
<extracomment>Cannot reply to invalid message</extracomment>
|
||||
<translation>Auf eine ungültige Nachricht kann nicht geantwortet werden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2130"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2044"/>
|
||||
<source>info_popup_reply_message_error</source>
|
||||
<extracomment>Could not send reply message : %1</extracomment>
|
||||
<translation>Antwort konnte nicht gesendet werden: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2157"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2071"/>
|
||||
<source>info_popup_send_reply_message_error_message</source>
|
||||
<extracomment>Failed to create reply message</extracomment>
|
||||
<translation>Antwort konnte nicht erstellt werden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2195"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2109"/>
|
||||
<source>info_popup_send_voice_message_error_message</source>
|
||||
<extracomment>Could not send voice message : %1</extracomment>
|
||||
<translation>Sprachnachricht konnte nicht gesendet werden: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2209"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2123"/>
|
||||
<source>info_popup_send_voice_message_sending_error_message</source>
|
||||
<extracomment>Failed to create message from record</extracomment>
|
||||
<translation>Nachricht aus der Aufnahme konnte nicht erstellt werden</translation>
|
||||
|
|
|
|||
|
|
@ -2242,24 +2242,24 @@
|
|||
<context>
|
||||
<name>ChatMessageContentCore</name>
|
||||
<message>
|
||||
<location filename="../../core/chat/message/content/ChatMessageContentCore.cpp" line="105"/>
|
||||
<location filename="../../core/chat/message/content/ChatMessageContentCore.cpp" line="111"/>
|
||||
<source>download_file_default_error</source>
|
||||
<extracomment>Error downloading file %1</extracomment>
|
||||
<translation>Error downloading file %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../core/chat/message/content/ChatMessageContentCore.cpp" line="106"/>
|
||||
<location filename="../../core/chat/message/content/ChatMessageContentCore.cpp" line="112"/>
|
||||
<source>info_popup_error_titile</source>
|
||||
<translation>Error</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../core/chat/message/content/ChatMessageContentCore.cpp" line="138"/>
|
||||
<location filename="../../core/chat/message/content/ChatMessageContentCore.cpp" line="144"/>
|
||||
<source>popup_error_title</source>
|
||||
<extracomment>Error</extracomment>
|
||||
<translation>Error</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../core/chat/message/content/ChatMessageContentCore.cpp" line="140"/>
|
||||
<location filename="../../core/chat/message/content/ChatMessageContentCore.cpp" line="146"/>
|
||||
<source>popup_open_file_error_does_not_exist_message</source>
|
||||
<extracomment>Could not open file : unknown path %1</extracomment>
|
||||
<translation>Could not open file : unknown path %1</translation>
|
||||
|
|
@ -2319,37 +2319,37 @@ Error</extracomment>
|
|||
<context>
|
||||
<name>ChatMessageContentModel</name>
|
||||
<message>
|
||||
<location filename="../../model/chat/message/content/ChatMessageContentModel.cpp" line="83"/>
|
||||
<location filename="../../model/chat/message/content/ChatMessageContentModel.cpp" line="87"/>
|
||||
<source>download_error_object_doesnt_exist</source>
|
||||
<extracomment>Internal error : message object associated to this content does not exist anymore !</extracomment>
|
||||
<translation>Internal error : message object associated to this content does not exist anymore !</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../model/chat/message/content/ChatMessageContentModel.cpp" line="98"/>
|
||||
<location filename="../../model/chat/message/content/ChatMessageContentModel.cpp" line="102"/>
|
||||
<source>download_file_server_error</source>
|
||||
<extracomment>Error while trying to download content : %1</extracomment>
|
||||
<translation>Error while trying to download content : %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../model/chat/message/content/ChatMessageContentModel.cpp" line="108"/>
|
||||
<location filename="../../model/chat/message/content/ChatMessageContentModel.cpp" line="112"/>
|
||||
<source>download_file_error_no_safe_file_path</source>
|
||||
<extracomment>Unable to create safe file path for: %1</extracomment>
|
||||
<translation>Unable to create safe file path for: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../model/chat/message/content/ChatMessageContentModel.cpp" line="117"/>
|
||||
<location filename="../../model/chat/message/content/ChatMessageContentModel.cpp" line="121"/>
|
||||
<source>download_file_error_file_transfer_unavailable</source>
|
||||
<extracomment>This file was already downloaded and is no more on the server. Your peer have to resend it if you want to get it</extracomment>
|
||||
<translation>This file was already downloaded and is no more on the server. Your peer have to resend it if you want to get it</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../model/chat/message/content/ChatMessageContentModel.cpp" line="122"/>
|
||||
<location filename="../../model/chat/message/content/ChatMessageContentModel.cpp" line="126"/>
|
||||
<source>download_file_error_null_name</source>
|
||||
<extracomment>Content name is null, can't download it !</extracomment>
|
||||
<translation>Content name is null, can't download it !</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../model/chat/message/content/ChatMessageContentModel.cpp" line="130"/>
|
||||
<location filename="../../model/chat/message/content/ChatMessageContentModel.cpp" line="134"/>
|
||||
<source>download_file_error_unable_to_download</source>
|
||||
<extracomment>Unable to download file of entry %1</extracomment>
|
||||
<translation>Unable to download file of entry %1</translation>
|
||||
|
|
@ -5915,49 +5915,49 @@ To enable them in a commercial project, please contact us.</translation>
|
|||
<context>
|
||||
<name>ToolModel</name>
|
||||
<message>
|
||||
<location filename="../../model/tool/ToolModel.cpp" line="311"/>
|
||||
<location filename="../../model/tool/ToolModel.cpp" line="330"/>
|
||||
<source>call_error_uninterpretable_sip_address</source>
|
||||
<extracomment>"The calling address is not an interpretable SIP address : %1</extracomment>
|
||||
<translation>The calling address is not an interpretable SIP address : %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../model/tool/ToolModel.cpp" line="386"/>
|
||||
<location filename="../../model/tool/ToolModel.cpp" line="405"/>
|
||||
<source>group_call_error_no_account</source>
|
||||
<translation>No default account found, can't create group call</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../model/tool/ToolModel.cpp" line="416"/>
|
||||
<location filename="../../model/tool/ToolModel.cpp" line="435"/>
|
||||
<source>group_call_error_participants_invite</source>
|
||||
<translation>Couldn't invite participants to group call</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../model/tool/ToolModel.cpp" line="420"/>
|
||||
<location filename="../../model/tool/ToolModel.cpp" line="439"/>
|
||||
<source>group_call_error_creation</source>
|
||||
<translation>Group call couldn't be created</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../model/tool/ToolModel.cpp" line="520"/>
|
||||
<location filename="../../model/tool/ToolModel.cpp" line="539"/>
|
||||
<source>voice_recording_duration</source>
|
||||
<extracomment>"Voice recording (%1)" : %1 is the duration formated in mm:ss</extracomment>
|
||||
<translation>Voice recording (%1)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../model/tool/ToolModel.cpp" line="594"/>
|
||||
<location filename="../../model/tool/ToolModel.cpp" line="613"/>
|
||||
<source>unknown_audio_device_name</source>
|
||||
<translation>Unknown device name</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../model/tool/ToolModel.cpp" line="528"/>
|
||||
<location filename="../../model/tool/ToolModel.cpp" line="547"/>
|
||||
<source>conference_invitation</source>
|
||||
<translation>Meeting invitation</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../model/tool/ToolModel.cpp" line="532"/>
|
||||
<location filename="../../model/tool/ToolModel.cpp" line="551"/>
|
||||
<source>conference_invitation_cancelled</source>
|
||||
<translation>Meeting cancellation</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../model/tool/ToolModel.cpp" line="530"/>
|
||||
<location filename="../../model/tool/ToolModel.cpp" line="549"/>
|
||||
<source>conference_invitation_updated</source>
|
||||
<translation>Meeting modification</translation>
|
||||
</message>
|
||||
|
|
@ -5965,7 +5965,7 @@ To enable them in a commercial project, please contact us.</translation>
|
|||
<context>
|
||||
<name>Utils</name>
|
||||
<message numerus="yes">
|
||||
<location filename="../../tool/Utils.cpp" line="2283"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2197"/>
|
||||
<source>nSeconds</source>
|
||||
<translation>
|
||||
<numerusform>%1 second</numerusform>
|
||||
|
|
@ -5973,7 +5973,7 @@ To enable them in a commercial project, please contact us.</translation>
|
|||
</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../../tool/Utils.cpp" line="2278"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2192"/>
|
||||
<source>nMinute</source>
|
||||
<translation>
|
||||
<numerusform>%1 minute</numerusform>
|
||||
|
|
@ -5981,43 +5981,43 @@ To enable them in a commercial project, please contact us.</translation>
|
|||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2092"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2006"/>
|
||||
<source>chat_message_forward_error</source>
|
||||
<extracomment>Cannot forward an invalid message</extracomment>
|
||||
<translation>Cannot forward an invalid message</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2098"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2012"/>
|
||||
<source>info_popup_forward_message_error</source>
|
||||
<extracomment>Could not forward message : %1</extracomment>
|
||||
<translation>Could not forward message : %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2113"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2027"/>
|
||||
<source>info_popup_send_forward_message_error_message</source>
|
||||
<extracomment>Failed to create forward message</extracomment>
|
||||
<translation>Failed to create forward message</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2124"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2038"/>
|
||||
<source>chat_message_reply_error</source>
|
||||
<extracomment>Cannot reply to invalid message</extracomment>
|
||||
<translation>Cannot reply to invalid message</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2130"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2044"/>
|
||||
<source>info_popup_reply_message_error</source>
|
||||
<extracomment>Could not send reply message : %1</extracomment>
|
||||
<translation>Could not send reply message : %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2157"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2071"/>
|
||||
<source>info_popup_send_reply_message_error_message</source>
|
||||
<extracomment>Failed to create reply message</extracomment>
|
||||
<translation>Failed to create reply message</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../../tool/Utils.cpp" line="2279"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2193"/>
|
||||
<source>nHour</source>
|
||||
<translation>
|
||||
<numerusform>%1 hour</numerusform>
|
||||
|
|
@ -6025,8 +6025,8 @@ To enable them in a commercial project, please contact us.</translation>
|
|||
</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../../tool/Utils.cpp" line="2280"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2281"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2194"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2195"/>
|
||||
<source>nDay</source>
|
||||
<translation>
|
||||
<numerusform>%1 day</numerusform>
|
||||
|
|
@ -6034,7 +6034,7 @@ To enable them in a commercial project, please contact us.</translation>
|
|||
</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../../tool/Utils.cpp" line="2282"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2196"/>
|
||||
<source>nWeek</source>
|
||||
<translation>
|
||||
<numerusform>%1 week</numerusform>
|
||||
|
|
@ -6160,37 +6160,37 @@ To enable them in a commercial project, please contact us.</translation>
|
|||
<translation>Failed to create 1-1 conversation with %1 !</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2189"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2103"/>
|
||||
<source>recorder_error</source>
|
||||
<extracomment>Error with the recorder</extracomment>
|
||||
<translation>Error with the recorder</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2094"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2126"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2191"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2008"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2040"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2105"/>
|
||||
<source>chat_error</source>
|
||||
<translation>Error in the chat</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2096"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2111"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2128"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2155"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2193"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2207"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2010"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2025"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2042"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2069"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2107"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2121"/>
|
||||
<source>info_popup_error_title</source>
|
||||
<extracomment>Error</extracomment>
|
||||
<translation>Error</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2195"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2109"/>
|
||||
<source>info_popup_send_voice_message_error_message</source>
|
||||
<extracomment>Could not send voice message : %1</extracomment>
|
||||
<translation>Could not send voice message : %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2209"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2123"/>
|
||||
<source>info_popup_send_voice_message_sending_error_message</source>
|
||||
<extracomment>Failed to create message from record</extracomment>
|
||||
<translation>Failed to create message from record</translation>
|
||||
|
|
|
|||
|
|
@ -2217,24 +2217,24 @@
|
|||
<context>
|
||||
<name>ChatMessageContentCore</name>
|
||||
<message>
|
||||
<location filename="../../core/chat/message/content/ChatMessageContentCore.cpp" line="105"/>
|
||||
<location filename="../../core/chat/message/content/ChatMessageContentCore.cpp" line="111"/>
|
||||
<source>download_file_default_error</source>
|
||||
<extracomment>Error downloading file %1</extracomment>
|
||||
<translation>Erreur de téléchargement du fichier %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../core/chat/message/content/ChatMessageContentCore.cpp" line="106"/>
|
||||
<location filename="../../core/chat/message/content/ChatMessageContentCore.cpp" line="112"/>
|
||||
<source>info_popup_error_titile</source>
|
||||
<translation>Erreur</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../core/chat/message/content/ChatMessageContentCore.cpp" line="138"/>
|
||||
<location filename="../../core/chat/message/content/ChatMessageContentCore.cpp" line="144"/>
|
||||
<source>popup_error_title</source>
|
||||
<extracomment>Error</extracomment>
|
||||
<translation>Erreur</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../core/chat/message/content/ChatMessageContentCore.cpp" line="140"/>
|
||||
<location filename="../../core/chat/message/content/ChatMessageContentCore.cpp" line="146"/>
|
||||
<source>popup_open_file_error_does_not_exist_message</source>
|
||||
<extracomment>Could not open file : unknown path %1</extracomment>
|
||||
<translation>Impossible d'ouvrir le fichier : chemin inconnu (%1)</translation>
|
||||
|
|
@ -2294,37 +2294,37 @@ Error</extracomment>
|
|||
<context>
|
||||
<name>ChatMessageContentModel</name>
|
||||
<message>
|
||||
<location filename="../../model/chat/message/content/ChatMessageContentModel.cpp" line="83"/>
|
||||
<location filename="../../model/chat/message/content/ChatMessageContentModel.cpp" line="87"/>
|
||||
<source>download_error_object_doesnt_exist</source>
|
||||
<extracomment>Internal error : message object associated to this content does not exist anymore !</extracomment>
|
||||
<translation>Erreur interne : le message associé à ce contenu n'existe plus !</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../model/chat/message/content/ChatMessageContentModel.cpp" line="98"/>
|
||||
<location filename="../../model/chat/message/content/ChatMessageContentModel.cpp" line="102"/>
|
||||
<source>download_file_server_error</source>
|
||||
<extracomment>Error while trying to download content : %1</extracomment>
|
||||
<translation>Erreur en tentant de télécharger le contenu : %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../model/chat/message/content/ChatMessageContentModel.cpp" line="108"/>
|
||||
<location filename="../../model/chat/message/content/ChatMessageContentModel.cpp" line="112"/>
|
||||
<source>download_file_error_no_safe_file_path</source>
|
||||
<extracomment>Unable to create safe file path for: %1</extracomment>
|
||||
<translation>Impossible de créer le chemin : %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../model/chat/message/content/ChatMessageContentModel.cpp" line="117"/>
|
||||
<location filename="../../model/chat/message/content/ChatMessageContentModel.cpp" line="121"/>
|
||||
<source>download_file_error_file_transfer_unavailable</source>
|
||||
<extracomment>This file was already downloaded and is no more on the server. Your peer have to resend it if you want to get it</extracomment>
|
||||
<translation>Le fichier a déjà été téléchargé et n'est plus disponible sur le serveur. Votre correspondant devra vous le renvoyez si vous souhaitez l'obtenir</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../model/chat/message/content/ChatMessageContentModel.cpp" line="122"/>
|
||||
<location filename="../../model/chat/message/content/ChatMessageContentModel.cpp" line="126"/>
|
||||
<source>download_file_error_null_name</source>
|
||||
<extracomment>Content name is null, can't download it !</extracomment>
|
||||
<translation>Le nom du contenu est nul, impossible de le télécharger !</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../model/chat/message/content/ChatMessageContentModel.cpp" line="130"/>
|
||||
<location filename="../../model/chat/message/content/ChatMessageContentModel.cpp" line="134"/>
|
||||
<source>download_file_error_unable_to_download</source>
|
||||
<extracomment>Unable to download file of entry %1</extracomment>
|
||||
<translation>Impossible de télécharger le fichier : %1</translation>
|
||||
|
|
@ -5886,49 +5886,49 @@ Pour les activer dans un projet commercial, merci de nous contacter.</translatio
|
|||
<context>
|
||||
<name>ToolModel</name>
|
||||
<message>
|
||||
<location filename="../../model/tool/ToolModel.cpp" line="311"/>
|
||||
<location filename="../../model/tool/ToolModel.cpp" line="330"/>
|
||||
<source>call_error_uninterpretable_sip_address</source>
|
||||
<extracomment>"The calling address is not an interpretable SIP address : %1</extracomment>
|
||||
<translation>L'adresse n'est pas interprétable comme une adresse SIP</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../model/tool/ToolModel.cpp" line="386"/>
|
||||
<location filename="../../model/tool/ToolModel.cpp" line="405"/>
|
||||
<source>group_call_error_no_account</source>
|
||||
<translation>Impossible de créer l'appel de groupe, le compte par défaut n'est pas défini</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../model/tool/ToolModel.cpp" line="416"/>
|
||||
<location filename="../../model/tool/ToolModel.cpp" line="435"/>
|
||||
<source>group_call_error_participants_invite</source>
|
||||
<translation>Impossible d'inviter les participants à l'appel de groupe</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../model/tool/ToolModel.cpp" line="420"/>
|
||||
<location filename="../../model/tool/ToolModel.cpp" line="439"/>
|
||||
<source>group_call_error_creation</source>
|
||||
<translation>L'appel de groupe n'a pas pu être créé</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../model/tool/ToolModel.cpp" line="520"/>
|
||||
<location filename="../../model/tool/ToolModel.cpp" line="539"/>
|
||||
<source>voice_recording_duration</source>
|
||||
<extracomment>"Voice recording (%1)" : %1 is the duration formated in mm:ss</extracomment>
|
||||
<translation>Message vocal (%1)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../model/tool/ToolModel.cpp" line="594"/>
|
||||
<location filename="../../model/tool/ToolModel.cpp" line="613"/>
|
||||
<source>unknown_audio_device_name</source>
|
||||
<translation>Appareil inconnu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../model/tool/ToolModel.cpp" line="528"/>
|
||||
<location filename="../../model/tool/ToolModel.cpp" line="547"/>
|
||||
<source>conference_invitation</source>
|
||||
<translation>Invitation à une réunion</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../model/tool/ToolModel.cpp" line="532"/>
|
||||
<location filename="../../model/tool/ToolModel.cpp" line="551"/>
|
||||
<source>conference_invitation_cancelled</source>
|
||||
<translation>Annulation d'une réunion</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../model/tool/ToolModel.cpp" line="530"/>
|
||||
<location filename="../../model/tool/ToolModel.cpp" line="549"/>
|
||||
<source>conference_invitation_updated</source>
|
||||
<translation>Modification d'une réunion</translation>
|
||||
</message>
|
||||
|
|
@ -5936,7 +5936,7 @@ Pour les activer dans un projet commercial, merci de nous contacter.</translatio
|
|||
<context>
|
||||
<name>Utils</name>
|
||||
<message numerus="yes">
|
||||
<location filename="../../tool/Utils.cpp" line="2278"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2192"/>
|
||||
<source>nMinute</source>
|
||||
<translation>
|
||||
<numerusform>%1 minute</numerusform>
|
||||
|
|
@ -5944,7 +5944,7 @@ Pour les activer dans un projet commercial, merci de nous contacter.</translatio
|
|||
</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../../tool/Utils.cpp" line="2279"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2193"/>
|
||||
<source>nHour</source>
|
||||
<translation>
|
||||
<numerusform>%1 heure</numerusform>
|
||||
|
|
@ -5952,8 +5952,8 @@ Pour les activer dans un projet commercial, merci de nous contacter.</translatio
|
|||
</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../../tool/Utils.cpp" line="2280"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2281"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2194"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2195"/>
|
||||
<source>nDay</source>
|
||||
<translation>
|
||||
<numerusform>%1 jour</numerusform>
|
||||
|
|
@ -5961,7 +5961,7 @@ Pour les activer dans un projet commercial, merci de nous contacter.</translatio
|
|||
</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../../tool/Utils.cpp" line="2282"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2196"/>
|
||||
<source>nWeek</source>
|
||||
<translation>
|
||||
<numerusform>%1 semaine</numerusform>
|
||||
|
|
@ -5969,7 +5969,7 @@ Pour les activer dans un projet commercial, merci de nous contacter.</translatio
|
|||
</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../../tool/Utils.cpp" line="2283"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2197"/>
|
||||
<source>nSeconds</source>
|
||||
<translation>
|
||||
<numerusform>%1 seconde</numerusform>
|
||||
|
|
@ -6095,73 +6095,73 @@ Pour les activer dans un projet commercial, merci de nous contacter.</translatio
|
|||
<translation>Erreur lors de la création de la conversation avec %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2189"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2103"/>
|
||||
<source>recorder_error</source>
|
||||
<extracomment>Error with the recorder</extracomment>
|
||||
<translation>Erreur avec l'enregistreur</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2094"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2126"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2191"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2008"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2040"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2105"/>
|
||||
<source>chat_error</source>
|
||||
<translation>Erreur dans le chat</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2092"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2006"/>
|
||||
<source>chat_message_forward_error</source>
|
||||
<extracomment>Cannot forward an invalid message</extracomment>
|
||||
<translation>Impossible de transférer : message invalide</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2096"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2111"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2128"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2155"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2193"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2207"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2010"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2025"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2042"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2069"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2107"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2121"/>
|
||||
<source>info_popup_error_title</source>
|
||||
<extracomment>Error</extracomment>
|
||||
<translation>Erreur</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2098"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2012"/>
|
||||
<source>info_popup_forward_message_error</source>
|
||||
<extracomment>Could not forward message : %1</extracomment>
|
||||
<translation>Impossible de transférer le message : %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2113"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2027"/>
|
||||
<source>info_popup_send_forward_message_error_message</source>
|
||||
<extracomment>Failed to create forward message</extracomment>
|
||||
<translation>Impossible de créer le message</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2124"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2038"/>
|
||||
<source>chat_message_reply_error</source>
|
||||
<extracomment>Cannot reply to invalid message</extracomment>
|
||||
<translation>Impossible de répondre : message invalide</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2130"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2044"/>
|
||||
<source>info_popup_reply_message_error</source>
|
||||
<extracomment>Could not send reply message : %1</extracomment>
|
||||
<translation>Impossible d'envoyer la réponse : %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2157"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2071"/>
|
||||
<source>info_popup_send_reply_message_error_message</source>
|
||||
<extracomment>Failed to create reply message</extracomment>
|
||||
<translation>Impossible de créer le message</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2195"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2109"/>
|
||||
<source>info_popup_send_voice_message_error_message</source>
|
||||
<extracomment>Could not send voice message : %1</extracomment>
|
||||
<translation>Impossible d'envoyer le message vocal : %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2209"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2123"/>
|
||||
<source>info_popup_send_voice_message_sending_error_message</source>
|
||||
<extracomment>Failed to create message from record</extracomment>
|
||||
<translation>Impossible de créer le message vocal</translation>
|
||||
|
|
|
|||
|
|
@ -57,6 +57,10 @@ ChatMessageContentModel::~ChatMessageContentModel() {
|
|||
mustBeInLinphoneThread("~" + getClassName());
|
||||
}
|
||||
|
||||
std::shared_ptr<ChatMessageModel> ChatMessageContentModel::getChatMessageModel() const {
|
||||
return mChatMessageModel;
|
||||
}
|
||||
|
||||
// Create a thumbnail from the first content that have a file
|
||||
void ChatMessageContentModel::createThumbnail() {
|
||||
auto path = Utils::coreStringToAppString(mContent->getFilePath());
|
||||
|
|
|
|||
|
|
@ -43,6 +43,7 @@ public:
|
|||
void setThumbnail(const QString &data);
|
||||
void setWasDownloaded(bool wasDownloaded);
|
||||
|
||||
std::shared_ptr<ChatMessageModel> getChatMessageModel() const;
|
||||
void createThumbnail();
|
||||
void removeDownloadedFile(QString filePath);
|
||||
|
||||
|
|
|
|||
|
|
@ -131,7 +131,21 @@ QString ToolModel::getDisplayName(QString address) {
|
|||
return nameSplitted.join(" ");
|
||||
}
|
||||
|
||||
QString ToolModel::boldTextPart(const QString &text, const QString ®ex) {
|
||||
int regexIndex = text.indexOf(regex, 0, Qt::CaseInsensitive);
|
||||
if (regex.isEmpty() || regexIndex == -1) return text;
|
||||
QString result;
|
||||
QStringList splittedText = text.split(regex, Qt::KeepEmptyParts, Qt::CaseInsensitive);
|
||||
for (int i = 0; i < splittedText.size() - 1; ++i) {
|
||||
result.append(splittedText[i]);
|
||||
result.append("<b>" + regex + "</b>");
|
||||
}
|
||||
if (splittedText.size() > 0) result.append(splittedText[splittedText.size() - 1]);
|
||||
return result;
|
||||
}
|
||||
|
||||
QString ToolModel::encodeTextToQmlRichFormat(const QString &text,
|
||||
const QString &textPartToBold,
|
||||
const QVariantMap &options,
|
||||
std::shared_ptr<linphone::ChatRoom> chatRoom) {
|
||||
QStringList formattedText;
|
||||
|
|
@ -230,7 +244,11 @@ QString ToolModel::encodeTextToQmlRichFormat(const QString &text,
|
|||
}
|
||||
}
|
||||
}
|
||||
return "<p style=\"white-space:pre-wrap;\">" + formattedText.join("");
|
||||
QString finalText = formattedText.join("");
|
||||
if (!textPartToBold.isEmpty()) {
|
||||
finalText = boldTextPart(finalText, textPartToBold);
|
||||
}
|
||||
return finalText;
|
||||
}
|
||||
|
||||
std::shared_ptr<linphone::Friend> ToolModel::findFriendByAddress(const QString &address) {
|
||||
|
|
|
|||
|
|
@ -50,9 +50,11 @@ public:
|
|||
static QString getDisplayName(const std::shared_ptr<const linphone::Address> &address);
|
||||
static QString getDisplayName(QString address);
|
||||
|
||||
static QString boldTextPart(const QString &text, const QString ®ex);
|
||||
static QString encodeTextToQmlRichFormat(const QString &text,
|
||||
const QVariantMap &options,
|
||||
std::shared_ptr<linphone::ChatRoom> chatRoom);
|
||||
const QString &textPartToBold = QString(),
|
||||
const QVariantMap &options = QVariantMap(),
|
||||
std::shared_ptr<linphone::ChatRoom> chatRoom = nullptr);
|
||||
|
||||
static std::shared_ptr<linphone::Friend> findFriendByAddress(const QString &address);
|
||||
static std::shared_ptr<linphone::Friend>
|
||||
|
|
|
|||
|
|
@ -1866,7 +1866,10 @@ QString Utils::getPresenceStatus(LinphoneEnums::Presence presence) {
|
|||
return presenceStatus;
|
||||
}
|
||||
|
||||
VariantObject *Utils::encodeTextToQmlRichFormat(const QString &text, const QVariantMap &options, ChatGui *chat) {
|
||||
VariantObject *Utils::encodeTextToQmlRichFormat(const QString &text,
|
||||
const QString &textPartToBold,
|
||||
const QVariantMap &options,
|
||||
ChatGui *chat) {
|
||||
/*QString images;
|
||||
QStringList imageFormat;
|
||||
for(auto format : QImageReader::supportedImageFormats())
|
||||
|
|
@ -1875,99 +1878,10 @@ VariantObject *Utils::encodeTextToQmlRichFormat(const QString &text, const QVari
|
|||
VariantObject *data = new VariantObject("encodeTextToQmlRichFormat");
|
||||
if (!data) return nullptr;
|
||||
auto primaryColor = getDefaultStyleColor("info_500_main");
|
||||
data->makeRequest([text, options, chat, primaryColor] {
|
||||
QStringList formattedText;
|
||||
bool lastWasUrl = false;
|
||||
|
||||
if (options.contains("noLink") && options["noLink"].toBool()) {
|
||||
formattedText.append(encodeEmojiToQmlRichFormat(text));
|
||||
} else {
|
||||
|
||||
auto iriParsed = UriTools::parseIri(text);
|
||||
|
||||
for (int i = 0; i < iriParsed.size(); ++i) {
|
||||
QString iri = iriParsed[i]
|
||||
.second.replace('&', "&")
|
||||
.replace('<', "\u2063<")
|
||||
.replace('>', "\u2063>")
|
||||
.replace('"', """)
|
||||
.replace('\'', "'");
|
||||
if (!iriParsed[i].first) {
|
||||
if (lastWasUrl) {
|
||||
lastWasUrl = false;
|
||||
if (iri.front() != ' ') iri.push_front(' ');
|
||||
}
|
||||
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)
|
||||
ext = iriParsed[i].second.mid(extIndex+1).toUpper();
|
||||
if(imageFormat.contains(ext.toLatin1())){// imagesHeight is not used because of bugs on display
|
||||
(blank image if set without width) images += "<a href=\"" + uri + "\"><img" + (
|
||||
options.contains("imagesWidth") ? QString(" width='") + options["imagesWidth"].toString() + "'" : ""
|
||||
) + (
|
||||
options.contains("imagesWidth")
|
||||
? QString(" height='auto'")
|
||||
: ""
|
||||
) + " src=\"" + iriParsed[i].second + "\" />"+uri+"</a>";
|
||||
}else{
|
||||
*/
|
||||
formattedText.append("<a style=\"color:" + primaryColor.name() + ";\" href=\"" + uri + "\">" + iri +
|
||||
"</a>");
|
||||
lastWasUrl = true;
|
||||
/*}*/
|
||||
}
|
||||
}
|
||||
}
|
||||
if (lastWasUrl && formattedText.last().back() != ' ') {
|
||||
formattedText.push_back(" ");
|
||||
}
|
||||
if (chat && chat->mCore) {
|
||||
auto participants = chat->mCore->getParticipants();
|
||||
auto mentionsParsed = UriTools::parseMention(formattedText.join(""));
|
||||
formattedText.clear();
|
||||
|
||||
for (int i = 0; i < mentionsParsed.size(); ++i) {
|
||||
QString mention = mentionsParsed[i].second;
|
||||
|
||||
if (mentionsParsed[i].first) {
|
||||
QString mentions = mentionsParsed[i].second;
|
||||
QStringList finalMentions;
|
||||
QStringList parts = mentions.split(" ");
|
||||
for (auto part : parts) {
|
||||
if (part.startsWith("@")) { // mention
|
||||
QString username = part;
|
||||
username.removeFirst();
|
||||
auto it = std::find_if(
|
||||
participants.begin(), participants.end(),
|
||||
[username](QSharedPointer<ParticipantCore> p) { return username == p->getUsername(); });
|
||||
if (it != participants.end()) {
|
||||
auto foundParticipant = participants.at(std::distance(participants.begin(), it));
|
||||
auto address = foundParticipant->getSipAddress();
|
||||
auto isFriend = ToolModel::findFriendByAddress(address);
|
||||
if (isFriend)
|
||||
part = "@" + Utils::coreStringToAppString(isFriend->getAddress()->getDisplayName());
|
||||
QString participantLink = "<a style=\"color:" + primaryColor.name() +
|
||||
";\" href=\"mention:" + address + "\">" + part + "</a>";
|
||||
finalMentions.append(participantLink);
|
||||
} else {
|
||||
finalMentions.append(part);
|
||||
}
|
||||
} else {
|
||||
finalMentions.append(part);
|
||||
}
|
||||
}
|
||||
formattedText.push_back(finalMentions.join(" "));
|
||||
} else {
|
||||
formattedText.push_back(mentionsParsed[i].second);
|
||||
}
|
||||
}
|
||||
}
|
||||
return "<p style=\"white-space:pre-wrap;\">" + formattedText.join("");
|
||||
data->makeRequest([text, options, chat, primaryColor, textPartToBold] {
|
||||
auto chatroom =
|
||||
chat && chat->mCore && chat->mCore->getModel() ? chat->mCore->getModel()->getMonitor() : nullptr;
|
||||
return ToolModel::encodeTextToQmlRichFormat(text, textPartToBold, options, chatroom);
|
||||
});
|
||||
data->requestValue();
|
||||
return data;
|
||||
|
|
|
|||
|
|
@ -143,10 +143,10 @@ public:
|
|||
Q_INVOKABLE static void useFetchConfig(const QString &configUrl);
|
||||
Q_INVOKABLE void playDtmf(const QString &dtmf);
|
||||
Q_INVOKABLE bool isInteger(const QString &text);
|
||||
Q_INVOKABLE QString boldTextPart(const QString &text, const QString ®ex);
|
||||
Q_INVOKABLE static QString boldTextPart(const QString &text, const QString ®ex);
|
||||
Q_INVOKABLE static QString getFileChecksum(const QString &filePath);
|
||||
Q_INVOKABLE QList<QVariant> append(const QList<QVariant> a, const QList<QVariant> b);
|
||||
Q_INVOKABLE QString getAddressToDisplay(QVariantList addressList, QString filter, QString defaultAddress);
|
||||
Q_INVOKABLE static QList<QVariant> append(const QList<QVariant> a, const QList<QVariant> b);
|
||||
Q_INVOKABLE static QString getAddressToDisplay(QVariantList addressList, QString filter, QString defaultAddress);
|
||||
Q_INVOKABLE static QColor getPresenceColor(LinphoneEnums::Presence presence);
|
||||
Q_INVOKABLE static QUrl getPresenceIcon(LinphoneEnums::Presence presence);
|
||||
Q_INVOKABLE static QString getPresenceStatus(LinphoneEnums::Presence presence);
|
||||
|
|
@ -156,8 +156,10 @@ public:
|
|||
Q_INVOKABLE static VariantObject *createGroupChat(QString subject, QStringList participantAddresses);
|
||||
Q_INVOKABLE static void openChat(ChatGui *chat);
|
||||
Q_INVOKABLE static bool isEmptyMessage(QString message);
|
||||
Q_INVOKABLE static VariantObject *
|
||||
encodeTextToQmlRichFormat(const QString &text, const QVariantMap &options = QVariantMap(), ChatGui *chat = nullptr);
|
||||
Q_INVOKABLE static VariantObject *encodeTextToQmlRichFormat(const QString &text,
|
||||
const QString &textPartToBold = QString(),
|
||||
const QVariantMap &options = QVariantMap(),
|
||||
ChatGui *chat = nullptr);
|
||||
Q_INVOKABLE static QString encodeEmojiToQmlRichFormat(const QString &body);
|
||||
Q_INVOKABLE static bool isOnlyEmojis(const QString &text);
|
||||
Q_INVOKABLE static void openContactAtAddress(const QString &address);
|
||||
|
|
|
|||
|
|
@ -26,9 +26,10 @@ TextEdit {
|
|||
readOnly: true
|
||||
selectByMouse: true
|
||||
|
||||
text: searchedTextPart !== ""
|
||||
? UtilsCpp.boldTextPart(contentGui.core.richFormatText, searchedTextPart)
|
||||
: contentGui.core.richFormatText
|
||||
text: contentGui.core.richFormatText
|
||||
onSearchedTextPartChanged: {
|
||||
contentGui.core.setSearchedTextPart(searchedTextPart)
|
||||
}
|
||||
|
||||
textFormat: Text.RichText // To supports links and imgs.
|
||||
wrapMode: TextEdit.Wrap
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue