mirror of
https://gitlab.linphone.org/BC/public/linphone-desktop.git
synced 2026-01-17 11:28:07 +00:00
forward message
This commit is contained in:
parent
b1ab4224ef
commit
1e5ec027bb
18 changed files with 805 additions and 566 deletions
|
|
@ -196,19 +196,17 @@ void ChatCore::setSelf(QSharedPointer<ChatCore> me) {
|
|||
});
|
||||
|
||||
// Events (excluding messages)
|
||||
mChatModelConnection->makeConnectToModel(&ChatModel::newEvent,
|
||||
[this](const std::shared_ptr<linphone::ChatRoom> &chatRoom,
|
||||
const std::shared_ptr<const linphone::EventLog> &eventLog) {
|
||||
if (mChatModel->getMonitor() != chatRoom) return;
|
||||
qDebug() << "EVENT LOG RECEIVED IN CHATROOM" << mChatModel->getTitle();
|
||||
auto event = EventLogCore::create(eventLog);
|
||||
if (event->isHandled()) {
|
||||
mChatModelConnection->invokeToCore([this, event]() {
|
||||
appendEventLogToEventLogList(event);
|
||||
emit lUpdateLastUpdatedTime();
|
||||
});
|
||||
}
|
||||
});
|
||||
mChatModelConnection->makeConnectToModel(
|
||||
&ChatModel::newEvent, [this](const std::shared_ptr<linphone::ChatRoom> &chatRoom,
|
||||
const std::shared_ptr<const linphone::EventLog> &eventLog) {
|
||||
if (mChatModel->getMonitor() != chatRoom) return;
|
||||
qDebug() << "EVENT LOG RECEIVED IN CHATROOM" << mChatModel->getTitle();
|
||||
auto event = EventLogCore::create(eventLog);
|
||||
if (event->isHandled()) {
|
||||
mChatModelConnection->invokeToCore([this, event]() { appendEventLogToEventLogList(event); });
|
||||
}
|
||||
mChatModelConnection->invokeToCore([this, event]() { emit lUpdateLastUpdatedTime(); });
|
||||
});
|
||||
|
||||
// Chat messages
|
||||
mChatModelConnection->makeConnectToModel(
|
||||
|
|
|
|||
|
|
@ -45,6 +45,7 @@ void ChatProxy::setSourceModel(QAbstractItemModel *model) {
|
|||
[this, newChatList] { emit newChatList->filterChanged(getFilterText()); });
|
||||
connect(newChatList, &ChatList::chatRemoved, this, &ChatProxy::chatRemoved);
|
||||
connect(newChatList, &ChatList::chatAdded, this, [this] { invalidate(); });
|
||||
connect(newChatList, &ChatList::dataChanged, this, [this] { invalidate(); });
|
||||
}
|
||||
auto firstList = new SortFilterList(model, Qt::AscendingOrder);
|
||||
firstList->setDynamicSortFilter(true);
|
||||
|
|
|
|||
|
|
@ -691,7 +691,7 @@
|
|||
<location filename="../../core/call/CallCore.cpp" line="653"/>
|
||||
<source>media_encryption_dtls</source>
|
||||
<extracomment>DTLS</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation type="unfinished">DTLS</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../core/call/CallCore.cpp" line="656"/>
|
||||
|
|
@ -703,7 +703,7 @@
|
|||
<location filename="../../core/call/CallCore.cpp" line="659"/>
|
||||
<source>media_encryption_srtp</source>
|
||||
<extracomment>SRTP</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation type="unfinished">SRTP</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../core/call/CallCore.cpp" line="662"/>
|
||||
|
|
@ -788,26 +788,6 @@
|
|||
</context>
|
||||
<context>
|
||||
<name>CallHistoryLayout</name>
|
||||
<message>
|
||||
<source>contact_presence_status_online</source>
|
||||
<extracomment>"En ligne"</extracomment>
|
||||
<translation type="vanished">Online</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>contact_presence_status_busy</source>
|
||||
<extracomment>"Occupé"</extracomment>
|
||||
<translation type="vanished">Beschäftigt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>contact_presence_status_do_not_disturb</source>
|
||||
<extracomment>"Ne pas déranger"</extracomment>
|
||||
<translation type="vanished">Nicht stören</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>contact_presence_status_offline</source>
|
||||
<extracomment>"Hors ligne"</extracomment>
|
||||
<translation type="vanished">Offline</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Container/Call/CallHistoryLayout.qml" line="117"/>
|
||||
<source>meeting_info_join_title</source>
|
||||
|
|
@ -1054,16 +1034,6 @@
|
|||
<extracomment>"Lancer"</extracomment>
|
||||
<translation>Starten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>history_group_call_start_dialog_subject_hint</source>
|
||||
<extracomment>"Nom du groupe"</extracomment>
|
||||
<translation type="vanished">Gruppenname</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>required</source>
|
||||
<extracomment>"Requis"</extracomment>
|
||||
<translation type="vanished">Erforderlich</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Page/Main/Call/CallPage.qml" line="404"/>
|
||||
<location filename="../../view/Page/Main/Call/CallPage.qml" line="408"/>
|
||||
|
|
@ -1758,47 +1728,47 @@
|
|||
<context>
|
||||
<name>ChatListView</name>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="275"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="276"/>
|
||||
<source>chat_message_is_writing_info</source>
|
||||
<extracomment>%1 is writing…</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="277"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="278"/>
|
||||
<source>chat_message_draft_sending_text</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="368"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="369"/>
|
||||
<source>chat_room_delete</source>
|
||||
<extracomment>"Delete"</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="346"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="347"/>
|
||||
<source>chat_room_mute</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="346"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="347"/>
|
||||
<source>chat_room_unmute</source>
|
||||
<extracomment>"Mute"</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="357"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="358"/>
|
||||
<source>chat_room_mark_as_read</source>
|
||||
<extracomment>"Mark as read"</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="374"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="375"/>
|
||||
<source>chat_list_delete_chat_popup_title</source>
|
||||
<extracomment>Delete the conversation ?</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="376"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="377"/>
|
||||
<source>chat_list_delete_chat_popup_message</source>
|
||||
<extracomment>This conversation and all its messages will be deleted. Do You want to continue ?</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
|
|
@ -1807,67 +1777,79 @@
|
|||
<context>
|
||||
<name>ChatMessage</name>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="341"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="388"/>
|
||||
<source>chat_message_copy_selection</source>
|
||||
<extracomment>"Copy selection"</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="343"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="390"/>
|
||||
<source>chat_message_copy</source>
|
||||
<extracomment>"Copy"</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="351"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="398"/>
|
||||
<source>chat_message_copied_to_clipboard_title</source>
|
||||
<extracomment>Copied</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="353"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="400"/>
|
||||
<source>chat_message_copied_to_clipboard_toast</source>
|
||||
<extracomment>"to clipboard"</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="90"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="114"/>
|
||||
<source>chat_message_remote_replied</source>
|
||||
<extracomment>%1 replied</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="88"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="407"/>
|
||||
<source>chat_message_forward</source>
|
||||
<extracomment>Forward</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="112"/>
|
||||
<source>chat_message_remote_replied_to</source>
|
||||
<extracomment>%1 replied to %2</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="93"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="81"/>
|
||||
<source>chat_message_forwarded</source>
|
||||
<extracomment>Forwarded</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="117"/>
|
||||
<source>chat_message_user_replied_to</source>
|
||||
<extracomment>You replied to %1</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="95"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="119"/>
|
||||
<source>chat_message_user_replied</source>
|
||||
<extracomment>You replied</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="316"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="363"/>
|
||||
<source>chat_message_reception_info</source>
|
||||
<extracomment>"Reception info"</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="328"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="375"/>
|
||||
<source>chat_message_reply</source>
|
||||
<extracomment>Reply</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="365"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="424"/>
|
||||
<source>chat_message_delete</source>
|
||||
<extracomment>"Delete"</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
|
|
@ -1963,13 +1945,13 @@ Error</extracomment>
|
|||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../core/chat/message/ChatMessageCore.cpp" line="196"/>
|
||||
<location filename="../../core/chat/message/ChatMessageCore.cpp" line="198"/>
|
||||
<source>info_toast_deleted_title</source>
|
||||
<extracomment>Deleted</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../core/chat/message/ChatMessageCore.cpp" line="198"/>
|
||||
<location filename="../../core/chat/message/ChatMessageCore.cpp" line="200"/>
|
||||
<source>info_toast_deleted_message</source>
|
||||
<extracomment>The message has been deleted</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
|
|
@ -2022,20 +2004,20 @@ Error</extracomment>
|
|||
<context>
|
||||
<name>ChatMessagesListView</name>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="92"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="93"/>
|
||||
<source>chat_message_list_encrypted_header_title</source>
|
||||
<extracomment>End to end encrypted chat</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="102"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="103"/>
|
||||
<source>chat_message_list_encrypted_header_message</source>
|
||||
<extracomment>Les messages de cette conversation sont chiffrés de bout
|
||||
en bout. Seul votre correspondant peut les déchiffrer.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="231"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="233"/>
|
||||
<source>chat_message_is_writing_info</source>
|
||||
<extracomment>%1 is writing…</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
|
|
@ -2098,37 +2080,37 @@ Error</extracomment>
|
|||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="246"/>
|
||||
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="248"/>
|
||||
<source>chat_action_start_new_chat</source>
|
||||
<extracomment>"New chat"</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="282"/>
|
||||
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="284"/>
|
||||
<source>chat_start_group_chat_title</source>
|
||||
<extracomment>"Nouveau groupe"</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="284"/>
|
||||
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="286"/>
|
||||
<source>chat_action_start_group_chat</source>
|
||||
<extracomment>"Créer"</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="310"/>
|
||||
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="314"/>
|
||||
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="312"/>
|
||||
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="316"/>
|
||||
<source>information_popup_error_title</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="312"/>
|
||||
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="314"/>
|
||||
<source>group_chat_error_must_have_name</source>
|
||||
<extracomment>"Un nom doit être donné au groupe</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="316"/>
|
||||
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="318"/>
|
||||
<source>group_call_error_not_connected</source>
|
||||
<extracomment>"Vous n'etes pas connecté"</extracomment>
|
||||
<translation type="unfinished">Sie sind nicht verbunden</translation>
|
||||
|
|
@ -2205,26 +2187,6 @@ Error</extracomment>
|
|||
</context>
|
||||
<context>
|
||||
<name>Contact</name>
|
||||
<message>
|
||||
<source>drawer_menu_account_connection_status_connected</source>
|
||||
<extracomment>"Connecté"</extracomment>
|
||||
<translation type="vanished">Verbunden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>drawer_menu_account_connection_status_cleared</source>
|
||||
<extracomment>"Désactivé"</extracomment>
|
||||
<translation type="vanished">Deaktiviert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>drawer_menu_account_connection_status_refreshing</source>
|
||||
<extracomment>"Connexion…"</extracomment>
|
||||
<translation type="vanished">Verbinden…</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>drawer_menu_account_connection_status_failed</source>
|
||||
<extracomment>"Erreur"</extracomment>
|
||||
<translation type="vanished">Fehler</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Contact/Contact.qml" line="194"/>
|
||||
<source>information_popup_error_title</source>
|
||||
|
|
@ -2330,53 +2292,53 @@ Error</extracomment>
|
|||
<context>
|
||||
<name>ContactListItem</name>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Contact/ContactListItem.qml" line="192"/>
|
||||
<location filename="../../view/Control/Display/Contact/ContactListItem.qml" line="193"/>
|
||||
<source>contact_details_remove_from_favourites</source>
|
||||
<extracomment>"Enlever des favoris"</extracomment>
|
||||
<translation>Aus Favoriten entfernen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Contact/ContactListItem.qml" line="194"/>
|
||||
<location filename="../../view/Control/Display/Contact/ContactListItem.qml" line="195"/>
|
||||
<source>contact_details_add_to_favourites</source>
|
||||
<extracomment>"Ajouter aux favoris"</extracomment>
|
||||
<translation>Zu Favoriten hinzufügen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Contact/ContactListItem.qml" line="208"/>
|
||||
<location filename="../../view/Control/Display/Contact/ContactListItem.qml" line="209"/>
|
||||
<source>Partager</source>
|
||||
<translation>Teilen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Contact/ContactListItem.qml" line="221"/>
|
||||
<location filename="../../view/Control/Display/Contact/ContactListItem.qml" line="222"/>
|
||||
<source>information_popup_error_title</source>
|
||||
<translation>Fehler</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Contact/ContactListItem.qml" line="223"/>
|
||||
<location filename="../../view/Control/Display/Contact/ContactListItem.qml" line="224"/>
|
||||
<source>information_popup_vcard_creation_error</source>
|
||||
<extracomment>La création du fichier vcard a échoué</extracomment>
|
||||
<translation>VCard-Erstellung fehlgeschlagen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Contact/ContactListItem.qml" line="227"/>
|
||||
<location filename="../../view/Control/Display/Contact/ContactListItem.qml" line="228"/>
|
||||
<source>information_popup_vcard_creation_title</source>
|
||||
<extracomment>VCard créée</extracomment>
|
||||
<translation>VCard erstellt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Contact/ContactListItem.qml" line="229"/>
|
||||
<location filename="../../view/Control/Display/Contact/ContactListItem.qml" line="230"/>
|
||||
<source>information_popup_vcard_creation_success</source>
|
||||
<extracomment>"VCard du contact enregistrée dans %1"</extracomment>
|
||||
<translation>VCard in %1 gespeichert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Contact/ContactListItem.qml" line="231"/>
|
||||
<location filename="../../view/Control/Display/Contact/ContactListItem.qml" line="232"/>
|
||||
<source>contact_sharing_email_title</source>
|
||||
<extracomment>Partage de contact</extracomment>
|
||||
<translation>Kontakt teilen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Contact/ContactListItem.qml" line="237"/>
|
||||
<location filename="../../view/Control/Display/Contact/ContactListItem.qml" line="238"/>
|
||||
<source>contact_details_delete</source>
|
||||
<extracomment>"Supprimer"</extracomment>
|
||||
<translation>Löschen</translation>
|
||||
|
|
@ -2538,26 +2500,6 @@ Error</extracomment>
|
|||
<extracomment>"Appel vidéo"</extracomment>
|
||||
<translation>Videoanruf</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>contact_presence_status_online</source>
|
||||
<extracomment>"En ligne"</extracomment>
|
||||
<translation type="vanished">Online</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>contact_presence_status_busy</source>
|
||||
<extracomment>"Occupé"</extracomment>
|
||||
<translation type="vanished">Beschäftigt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>contact_presence_status_do_not_disturb</source>
|
||||
<extracomment>"Ne pas déranger"</extracomment>
|
||||
<translation type="vanished">Nicht stören</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>contact_presence_status_offline</source>
|
||||
<extracomment>"Hors ligne"</extracomment>
|
||||
<translation type="vanished">Offline</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Page/Main/Contact/ContactPage.qml" line="482"/>
|
||||
<source>contact_details_numbers_and_addresses_title</source>
|
||||
|
|
@ -3159,11 +3101,6 @@ Error</extracomment>
|
|||
<extracomment>Medias & documents</extracomment>
|
||||
<translation>Medien & Dokumente</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>group_infos_shared_media</source>
|
||||
<extracomment>Shared medias</extracomment>
|
||||
<translation type="vanished">Geteilte Medien</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Page/Layout/Chat/GroupConversationInfos.qml" line="223"/>
|
||||
<source>group_infos_shared_docs</source>
|
||||
|
|
@ -4006,10 +3943,6 @@ Error</extracomment>
|
|||
<source>meeting_schedule_add_participants_apply</source>
|
||||
<translation>Apply</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>add</source>
|
||||
<translation type="vanished">Hinzufügen</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="545"/>
|
||||
<source>group_call_participant_selected</source>
|
||||
|
|
@ -4145,11 +4078,6 @@ Error</extracomment>
|
|||
<extracomment>"Appels en cours"</extracomment>
|
||||
<translation>Laufender Anruf</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>search_bar_look_for_contact_text</source>
|
||||
<extracomment>"Rechercher un contact"</extracomment>
|
||||
<translation type="vanished">Kontakt suchen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Page/Form/Call/NewCallForm.qml" line="17"/>
|
||||
<source>call_start_group_call_title</source>
|
||||
|
|
@ -4477,22 +4405,10 @@ Error</extracomment>
|
|||
</context>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
<message>
|
||||
<source>DTLS</source>
|
||||
<translation type="vanished">DTLS</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>None</source>
|
||||
<translation type="vanished">Nichts</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>SRTP</source>
|
||||
<translation type="vanished">SRTP</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/LinphoneEnums.cpp" line="62"/>
|
||||
<source>media_encryption_dtls</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>DTLS</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/LinphoneEnums.cpp" line="64"/>
|
||||
|
|
@ -4502,7 +4418,7 @@ Error</extracomment>
|
|||
<message>
|
||||
<location filename="../../tool/LinphoneEnums.cpp" line="66"/>
|
||||
<source>media_encryption_srtp</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>SRTP</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/LinphoneEnums.cpp" line="69"/>
|
||||
|
|
@ -4949,28 +4865,40 @@ Pour les activer dans un projet commercial, merci de nous contacter.</source>
|
|||
<context>
|
||||
<name>SelectedChatView</name>
|
||||
<message>
|
||||
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="36"/>
|
||||
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="37"/>
|
||||
<source>chat_view_group_call_toast_message</source>
|
||||
<translation>Start a group call ?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="311"/>
|
||||
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="317"/>
|
||||
<source>reply_to_label</source>
|
||||
<extracomment>Reply to %1</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="517"/>
|
||||
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="518"/>
|
||||
<source>shared_medias_title</source>
|
||||
<extracomment>Shared medias</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="519"/>
|
||||
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="520"/>
|
||||
<source>shared_documents_title</source>
|
||||
<extracomment>Shared documents</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="549"/>
|
||||
<source>forward_to_title</source>
|
||||
<extracomment>Transfer to...</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="581"/>
|
||||
<source>conversations_title</source>
|
||||
<extracomment>Conversations</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SettingsPage</name>
|
||||
|
|
@ -5109,7 +5037,7 @@ Pour les activer dans un projet commercial, merci de nous contacter.</source>
|
|||
<context>
|
||||
<name>Utils</name>
|
||||
<message numerus="yes">
|
||||
<location filename="../../tool/Utils.cpp" line="2184"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2216"/>
|
||||
<source>nMinute</source>
|
||||
<translation type="unfinished">
|
||||
<numerusform></numerusform>
|
||||
|
|
@ -5117,7 +5045,7 @@ Pour les activer dans un projet commercial, merci de nous contacter.</source>
|
|||
</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../../tool/Utils.cpp" line="2185"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2217"/>
|
||||
<source>nHour</source>
|
||||
<translation type="unfinished">
|
||||
<numerusform></numerusform>
|
||||
|
|
@ -5125,8 +5053,8 @@ Pour les activer dans un projet commercial, merci de nous contacter.</source>
|
|||
</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../../tool/Utils.cpp" line="2186"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2187"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2218"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2219"/>
|
||||
<source>nDay</source>
|
||||
<translation type="unfinished">
|
||||
<numerusform></numerusform>
|
||||
|
|
@ -5134,7 +5062,7 @@ Pour les activer dans un projet commercial, merci de nous contacter.</source>
|
|||
</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../../tool/Utils.cpp" line="2188"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2220"/>
|
||||
<source>nWeek</source>
|
||||
<translation type="unfinished">
|
||||
<numerusform></numerusform>
|
||||
|
|
@ -5142,7 +5070,7 @@ Pour les activer dans un projet commercial, merci de nous contacter.</source>
|
|||
</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../../tool/Utils.cpp" line="2189"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2221"/>
|
||||
<source>nSeconds</source>
|
||||
<translation type="unfinished">
|
||||
<numerusform></numerusform>
|
||||
|
|
@ -5273,42 +5201,73 @@ Failed to create 1-1 conversation with %1 !</extracomment>
|
|||
<translation type="unfinished">Offline</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2036"/>
|
||||
<source>chatMessage_error</source>
|
||||
<extracomment>Cannot reply to invalid message</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2101"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2133"/>
|
||||
<source>recorder_error</source>
|
||||
<extracomment>Error with the recorder</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2038"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2103"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2070"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2135"/>
|
||||
<source>chat_error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2036"/>
|
||||
<source>chat_message_forward_error</source>
|
||||
<extracomment>Cannot forward an invalid message</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2040"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2067"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2105"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2119"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2055"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2072"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2099"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2137"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2151"/>
|
||||
<source>info_popup_error_title</source>
|
||||
<extracomment>Error</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2042"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2107"/>
|
||||
<source>info_popup_forward_message_error</source>
|
||||
<extracomment>Could not forward message : %1</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2057"/>
|
||||
<source>info_popup_send_forward_message_error_message</source>
|
||||
<extracomment>Failed to create forward message</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2068"/>
|
||||
<source>chat_message_reply_error</source>
|
||||
<extracomment>Cannot reply to invalid message</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2074"/>
|
||||
<source>info_popup_reply_message_error</source>
|
||||
<extracomment>Could not send reply message : %1</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2101"/>
|
||||
<source>info_popup_send_reply_message_error_message</source>
|
||||
<extracomment>Failed to create reply message</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2139"/>
|
||||
<source>info_popup_send_voice_message_error_message</source>
|
||||
<extracomment>Could not send voice message : %1</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2069"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2121"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2153"/>
|
||||
<source>info_popup_send_voice_message_sending_error_message</source>
|
||||
<extracomment>Failed to create message from record</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
|
|
|
|||
|
|
@ -1720,47 +1720,47 @@
|
|||
<context>
|
||||
<name>ChatListView</name>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="275"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="276"/>
|
||||
<source>chat_message_is_writing_info</source>
|
||||
<extracomment>%1 is writing…</extracomment>
|
||||
<translation>%1 is writing…</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="277"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="278"/>
|
||||
<source>chat_message_draft_sending_text</source>
|
||||
<translation>Draft : %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="368"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="369"/>
|
||||
<source>chat_room_delete</source>
|
||||
<extracomment>"Delete"</extracomment>
|
||||
<translation>Delete</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="346"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="347"/>
|
||||
<source>chat_room_mute</source>
|
||||
<translation>Mute</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="346"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="347"/>
|
||||
<source>chat_room_unmute</source>
|
||||
<extracomment>"Mute"</extracomment>
|
||||
<translation>Unmute</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="357"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="358"/>
|
||||
<source>chat_room_mark_as_read</source>
|
||||
<extracomment>"Mark as read"</extracomment>
|
||||
<translation>Mark as read</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="374"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="375"/>
|
||||
<source>chat_list_delete_chat_popup_title</source>
|
||||
<extracomment>Delete the conversation ?</extracomment>
|
||||
<translation>Delete the conversation ?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="376"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="377"/>
|
||||
<source>chat_list_delete_chat_popup_message</source>
|
||||
<extracomment>This conversation and all its messages will be deleted. Do You want to continue ?</extracomment>
|
||||
<translation>This conversation and all its messages will be deleted. Do You want to continue ?</translation>
|
||||
|
|
@ -1769,67 +1769,79 @@
|
|||
<context>
|
||||
<name>ChatMessage</name>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="341"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="388"/>
|
||||
<source>chat_message_copy_selection</source>
|
||||
<extracomment>"Copy selection"</extracomment>
|
||||
<translation>Copy selection</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="343"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="390"/>
|
||||
<source>chat_message_copy</source>
|
||||
<extracomment>"Copy"</extracomment>
|
||||
<translation>Copy</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="351"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="398"/>
|
||||
<source>chat_message_copied_to_clipboard_title</source>
|
||||
<extracomment>Copied</extracomment>
|
||||
<translation>Copied</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="353"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="400"/>
|
||||
<source>chat_message_copied_to_clipboard_toast</source>
|
||||
<extracomment>"to clipboard"</extracomment>
|
||||
<translation>in clipboard</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="90"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="114"/>
|
||||
<source>chat_message_remote_replied</source>
|
||||
<extracomment>%1 replied</extracomment>
|
||||
<translation>%1 replied to</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="88"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="407"/>
|
||||
<source>chat_message_forward</source>
|
||||
<extracomment>Forward</extracomment>
|
||||
<translation>Forward</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="112"/>
|
||||
<source>chat_message_remote_replied_to</source>
|
||||
<extracomment>%1 replied to %2</extracomment>
|
||||
<translation>%1 replied to %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="93"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="81"/>
|
||||
<source>chat_message_forwarded</source>
|
||||
<extracomment>Forwarded</extracomment>
|
||||
<translation>Forwarded</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="117"/>
|
||||
<source>chat_message_user_replied_to</source>
|
||||
<extracomment>You replied to %1</extracomment>
|
||||
<translation>You replied to %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="95"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="119"/>
|
||||
<source>chat_message_user_replied</source>
|
||||
<extracomment>You replied</extracomment>
|
||||
<translation>You replied</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="316"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="363"/>
|
||||
<source>chat_message_reception_info</source>
|
||||
<extracomment>"Reception info"</extracomment>
|
||||
<translation>Reception info</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="328"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="375"/>
|
||||
<source>chat_message_reply</source>
|
||||
<extracomment>Reply</extracomment>
|
||||
<translation>Reply</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="365"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="424"/>
|
||||
<source>chat_message_delete</source>
|
||||
<extracomment>"Delete"</extracomment>
|
||||
<translation>Delete</translation>
|
||||
|
|
@ -1925,13 +1937,13 @@ Error</extracomment>
|
|||
<translation>Reactions</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../core/chat/message/ChatMessageCore.cpp" line="196"/>
|
||||
<location filename="../../core/chat/message/ChatMessageCore.cpp" line="198"/>
|
||||
<source>info_toast_deleted_title</source>
|
||||
<extracomment>Deleted</extracomment>
|
||||
<translation>Deleted</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../core/chat/message/ChatMessageCore.cpp" line="198"/>
|
||||
<location filename="../../core/chat/message/ChatMessageCore.cpp" line="200"/>
|
||||
<source>info_toast_deleted_message</source>
|
||||
<extracomment>The message has been deleted</extracomment>
|
||||
<translation>The message has been deleted</translation>
|
||||
|
|
@ -1984,13 +1996,13 @@ Error</extracomment>
|
|||
<context>
|
||||
<name>ChatMessagesListView</name>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="92"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="93"/>
|
||||
<source>chat_message_list_encrypted_header_title</source>
|
||||
<extracomment>End to end encrypted chat</extracomment>
|
||||
<translation>End to end encrypted chat</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="102"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="103"/>
|
||||
<source>chat_message_list_encrypted_header_message</source>
|
||||
<extracomment>Les messages de cette conversation sont chiffrés de bout
|
||||
en bout. Seul votre correspondant peut les déchiffrer.</extracomment>
|
||||
|
|
@ -1998,7 +2010,7 @@ Error</extracomment>
|
|||
Only your correspondent can decrypt them.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="231"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="233"/>
|
||||
<source>chat_message_is_writing_info</source>
|
||||
<extracomment>%1 is writing…</extracomment>
|
||||
<translation>%1 is writing…</translation>
|
||||
|
|
@ -2061,37 +2073,37 @@ Only your correspondent can decrypt them.</translation>
|
|||
<translation>No conversation in history</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="246"/>
|
||||
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="248"/>
|
||||
<source>chat_action_start_new_chat</source>
|
||||
<extracomment>"New chat"</extracomment>
|
||||
<translation>New conversation</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="282"/>
|
||||
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="284"/>
|
||||
<source>chat_start_group_chat_title</source>
|
||||
<extracomment>"Nouveau groupe"</extracomment>
|
||||
<translation>New group</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="284"/>
|
||||
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="286"/>
|
||||
<source>chat_action_start_group_chat</source>
|
||||
<extracomment>"Créer"</extracomment>
|
||||
<translation>Create</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="310"/>
|
||||
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="314"/>
|
||||
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="312"/>
|
||||
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="316"/>
|
||||
<source>information_popup_error_title</source>
|
||||
<translation>Error</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="312"/>
|
||||
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="314"/>
|
||||
<source>group_chat_error_must_have_name</source>
|
||||
<extracomment>"Un nom doit être donné au groupe</extracomment>
|
||||
<translation>A name must be set for the group</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="316"/>
|
||||
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="318"/>
|
||||
<source>group_call_error_not_connected</source>
|
||||
<extracomment>"Vous n'etes pas connecté"</extracomment>
|
||||
<translation>You are not connected</translation>
|
||||
|
|
@ -2273,53 +2285,53 @@ Only your correspondent can decrypt them.</translation>
|
|||
<context>
|
||||
<name>ContactListItem</name>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Contact/ContactListItem.qml" line="192"/>
|
||||
<location filename="../../view/Control/Display/Contact/ContactListItem.qml" line="193"/>
|
||||
<source>contact_details_remove_from_favourites</source>
|
||||
<extracomment>"Enlever des favoris"</extracomment>
|
||||
<translation>Remove from favorites</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Contact/ContactListItem.qml" line="194"/>
|
||||
<location filename="../../view/Control/Display/Contact/ContactListItem.qml" line="195"/>
|
||||
<source>contact_details_add_to_favourites</source>
|
||||
<extracomment>"Ajouter aux favoris"</extracomment>
|
||||
<translation>Add to favorites</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Contact/ContactListItem.qml" line="208"/>
|
||||
<location filename="../../view/Control/Display/Contact/ContactListItem.qml" line="209"/>
|
||||
<source>Partager</source>
|
||||
<translation>Share</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Contact/ContactListItem.qml" line="221"/>
|
||||
<location filename="../../view/Control/Display/Contact/ContactListItem.qml" line="222"/>
|
||||
<source>information_popup_error_title</source>
|
||||
<translation>Error</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Contact/ContactListItem.qml" line="223"/>
|
||||
<location filename="../../view/Control/Display/Contact/ContactListItem.qml" line="224"/>
|
||||
<source>information_popup_vcard_creation_error</source>
|
||||
<extracomment>La création du fichier vcard a échoué</extracomment>
|
||||
<translation>VCard creation failed</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Contact/ContactListItem.qml" line="227"/>
|
||||
<location filename="../../view/Control/Display/Contact/ContactListItem.qml" line="228"/>
|
||||
<source>information_popup_vcard_creation_title</source>
|
||||
<extracomment>VCard créée</extracomment>
|
||||
<translation>VCard created</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Contact/ContactListItem.qml" line="229"/>
|
||||
<location filename="../../view/Control/Display/Contact/ContactListItem.qml" line="230"/>
|
||||
<source>information_popup_vcard_creation_success</source>
|
||||
<extracomment>"VCard du contact enregistrée dans %1"</extracomment>
|
||||
<translation>VCard has been saved in %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Contact/ContactListItem.qml" line="231"/>
|
||||
<location filename="../../view/Control/Display/Contact/ContactListItem.qml" line="232"/>
|
||||
<source>contact_sharing_email_title</source>
|
||||
<extracomment>Partage de contact</extracomment>
|
||||
<translation>Share contact</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Contact/ContactListItem.qml" line="237"/>
|
||||
<location filename="../../view/Control/Display/Contact/ContactListItem.qml" line="238"/>
|
||||
<source>contact_details_delete</source>
|
||||
<extracomment>"Supprimer"</extracomment>
|
||||
<translation>Delete</translation>
|
||||
|
|
@ -4843,28 +4855,40 @@ To enable them in a commercial project, please contact us.</translation>
|
|||
<context>
|
||||
<name>SelectedChatView</name>
|
||||
<message>
|
||||
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="36"/>
|
||||
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="37"/>
|
||||
<source>chat_view_group_call_toast_message</source>
|
||||
<translation>Start a group call ?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="311"/>
|
||||
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="317"/>
|
||||
<source>reply_to_label</source>
|
||||
<extracomment>Reply to %1</extracomment>
|
||||
<translation>Reply to %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="517"/>
|
||||
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="518"/>
|
||||
<source>shared_medias_title</source>
|
||||
<extracomment>Shared medias</extracomment>
|
||||
<translation>Shared medias</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="519"/>
|
||||
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="520"/>
|
||||
<source>shared_documents_title</source>
|
||||
<extracomment>Shared documents</extracomment>
|
||||
<translation>Shared documents</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="549"/>
|
||||
<source>forward_to_title</source>
|
||||
<extracomment>Transfer to...</extracomment>
|
||||
<translation>Transfer to…</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="581"/>
|
||||
<source>conversations_title</source>
|
||||
<extracomment>Conversations</extracomment>
|
||||
<translation>Conversations</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SettingsPage</name>
|
||||
|
|
@ -5003,7 +5027,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="2189"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2221"/>
|
||||
<source>nSeconds</source>
|
||||
<translation>
|
||||
<numerusform>%1 second</numerusform>
|
||||
|
|
@ -5011,15 +5035,51 @@ To enable them in a commercial project, please contact us.</translation>
|
|||
</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../../tool/Utils.cpp" line="2184"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2216"/>
|
||||
<source>nMinute</source>
|
||||
<translation>
|
||||
<numerusform>%1 minute</numerusform>
|
||||
<numerusform>%1 minutes</numerusform>
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2036"/>
|
||||
<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="2042"/>
|
||||
<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="2057"/>
|
||||
<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="2068"/>
|
||||
<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="2074"/>
|
||||
<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="2101"/>
|
||||
<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="2185"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2217"/>
|
||||
<source>nHour</source>
|
||||
<translation>
|
||||
<numerusform>%1 hour</numerusform>
|
||||
|
|
@ -5027,8 +5087,8 @@ To enable them in a commercial project, please contact us.</translation>
|
|||
</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../../tool/Utils.cpp" line="2186"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2187"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2218"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2219"/>
|
||||
<source>nDay</source>
|
||||
<translation>
|
||||
<numerusform>%1 day</numerusform>
|
||||
|
|
@ -5036,7 +5096,7 @@ To enable them in a commercial project, please contact us.</translation>
|
|||
</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../../tool/Utils.cpp" line="2188"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2220"/>
|
||||
<source>nWeek</source>
|
||||
<translation>
|
||||
<numerusform>%1 week</numerusform>
|
||||
|
|
@ -5167,42 +5227,37 @@ Failed to create 1-1 conversation with %1 !</extracomment>
|
|||
<translation>Failed to create 1-1 conversation with %1 !</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2036"/>
|
||||
<source>chatMessage_error</source>
|
||||
<extracomment>Cannot reply to invalid message</extracomment>
|
||||
<translation>Cannot reply to invalid message</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2101"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2133"/>
|
||||
<source>recorder_error</source>
|
||||
<extracomment>Error with the recorder</extracomment>
|
||||
<translation>Error with the recorder</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2038"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2103"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2070"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2135"/>
|
||||
<source>chat_error</source>
|
||||
<translation>Error in the chat</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2040"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2067"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2105"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2119"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2055"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2072"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2099"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2137"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2151"/>
|
||||
<source>info_popup_error_title</source>
|
||||
<extracomment>Error</extracomment>
|
||||
<translation>Error</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2042"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2107"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2139"/>
|
||||
<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="2069"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2121"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2153"/>
|
||||
<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>
|
||||
|
|
|
|||
|
|
@ -1720,47 +1720,47 @@
|
|||
<context>
|
||||
<name>ChatListView</name>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="275"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="276"/>
|
||||
<source>chat_message_is_writing_info</source>
|
||||
<extracomment>%1 is writing…</extracomment>
|
||||
<translation>%1 est en train d'écrire…</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="277"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="278"/>
|
||||
<source>chat_message_draft_sending_text</source>
|
||||
<translation>Brouillon : %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="368"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="369"/>
|
||||
<source>chat_room_delete</source>
|
||||
<extracomment>"Delete"</extracomment>
|
||||
<translation>Supprimer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="346"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="347"/>
|
||||
<source>chat_room_mute</source>
|
||||
<translation>Mettre en sourdine</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="346"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="347"/>
|
||||
<source>chat_room_unmute</source>
|
||||
<extracomment>"Mute"</extracomment>
|
||||
<translation>Enlever la sourdine </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="357"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="358"/>
|
||||
<source>chat_room_mark_as_read</source>
|
||||
<extracomment>"Mark as read"</extracomment>
|
||||
<translation>Marquer comme lu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="374"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="375"/>
|
||||
<source>chat_list_delete_chat_popup_title</source>
|
||||
<extracomment>Delete the conversation ?</extracomment>
|
||||
<translation>Supprimer la conversation ?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="376"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="377"/>
|
||||
<source>chat_list_delete_chat_popup_message</source>
|
||||
<extracomment>This conversation and all its messages will be deleted. Do You want to continue ?</extracomment>
|
||||
<translation>La conversation et tous ses messages seront supprimés. Souhaitez-vous continuer ?</translation>
|
||||
|
|
@ -1769,67 +1769,79 @@
|
|||
<context>
|
||||
<name>ChatMessage</name>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="341"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="388"/>
|
||||
<source>chat_message_copy_selection</source>
|
||||
<extracomment>"Copy selection"</extracomment>
|
||||
<translation>Copier la sélection</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="343"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="390"/>
|
||||
<source>chat_message_copy</source>
|
||||
<extracomment>"Copy"</extracomment>
|
||||
<translation>Copier</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="351"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="398"/>
|
||||
<source>chat_message_copied_to_clipboard_title</source>
|
||||
<extracomment>Copied</extracomment>
|
||||
<translation>Copié</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="353"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="400"/>
|
||||
<source>chat_message_copied_to_clipboard_toast</source>
|
||||
<extracomment>"to clipboard"</extracomment>
|
||||
<translation>dans le presse-papiers</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="90"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="114"/>
|
||||
<source>chat_message_remote_replied</source>
|
||||
<extracomment>%1 replied</extracomment>
|
||||
<translation>%1 a répondu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="88"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="407"/>
|
||||
<source>chat_message_forward</source>
|
||||
<extracomment>Forward</extracomment>
|
||||
<translation>Transférer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="112"/>
|
||||
<source>chat_message_remote_replied_to</source>
|
||||
<extracomment>%1 replied to %2</extracomment>
|
||||
<translation>%1 a répondu à %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="93"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="81"/>
|
||||
<source>chat_message_forwarded</source>
|
||||
<extracomment>Forwarded</extracomment>
|
||||
<translation>Transféré</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="117"/>
|
||||
<source>chat_message_user_replied_to</source>
|
||||
<extracomment>You replied to %1</extracomment>
|
||||
<translation>Vous avez répondu à %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="95"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="119"/>
|
||||
<source>chat_message_user_replied</source>
|
||||
<extracomment>You replied</extracomment>
|
||||
<translation>Vous avez répondu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="316"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="363"/>
|
||||
<source>chat_message_reception_info</source>
|
||||
<extracomment>"Reception info"</extracomment>
|
||||
<translation>Info de réception</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="328"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="375"/>
|
||||
<source>chat_message_reply</source>
|
||||
<extracomment>Reply</extracomment>
|
||||
<translation>Répondre</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="365"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessage.qml" line="424"/>
|
||||
<source>chat_message_delete</source>
|
||||
<extracomment>"Delete"</extracomment>
|
||||
<translation>Supprimer</translation>
|
||||
|
|
@ -1925,13 +1937,13 @@ Error</extracomment>
|
|||
<translation>Réactions</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../core/chat/message/ChatMessageCore.cpp" line="196"/>
|
||||
<location filename="../../core/chat/message/ChatMessageCore.cpp" line="198"/>
|
||||
<source>info_toast_deleted_title</source>
|
||||
<extracomment>Deleted</extracomment>
|
||||
<translation>Supprimé</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../core/chat/message/ChatMessageCore.cpp" line="198"/>
|
||||
<location filename="../../core/chat/message/ChatMessageCore.cpp" line="200"/>
|
||||
<source>info_toast_deleted_message</source>
|
||||
<extracomment>The message has been deleted</extracomment>
|
||||
<translation>Le message a été supprimé</translation>
|
||||
|
|
@ -1984,13 +1996,13 @@ Error</extracomment>
|
|||
<context>
|
||||
<name>ChatMessagesListView</name>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="92"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="93"/>
|
||||
<source>chat_message_list_encrypted_header_title</source>
|
||||
<extracomment>End to end encrypted chat</extracomment>
|
||||
<translation>Conversation chiffrée de bout en bout</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="102"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="103"/>
|
||||
<source>chat_message_list_encrypted_header_message</source>
|
||||
<extracomment>Les messages de cette conversation sont chiffrés de bout
|
||||
en bout. Seul votre correspondant peut les déchiffrer.</extracomment>
|
||||
|
|
@ -1998,7 +2010,7 @@ Error</extracomment>
|
|||
en bout. Seul votre correspondant peut les déchiffrer.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="231"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="233"/>
|
||||
<source>chat_message_is_writing_info</source>
|
||||
<extracomment>%1 is writing…</extracomment>
|
||||
<translation>%1 est en train d'écrire…</translation>
|
||||
|
|
@ -2061,37 +2073,37 @@ en bout. Seul votre correspondant peut les déchiffrer.</translation>
|
|||
<translation>Aucune conversation dans votre historique</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="246"/>
|
||||
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="248"/>
|
||||
<source>chat_action_start_new_chat</source>
|
||||
<extracomment>"New chat"</extracomment>
|
||||
<translation>Nouvelle conversation</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="282"/>
|
||||
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="284"/>
|
||||
<source>chat_start_group_chat_title</source>
|
||||
<extracomment>"Nouveau groupe"</extracomment>
|
||||
<translation>Nouveau groupe</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="284"/>
|
||||
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="286"/>
|
||||
<source>chat_action_start_group_chat</source>
|
||||
<extracomment>"Créer"</extracomment>
|
||||
<translation>Créer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="310"/>
|
||||
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="314"/>
|
||||
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="312"/>
|
||||
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="316"/>
|
||||
<source>information_popup_error_title</source>
|
||||
<translation>Erreur</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="312"/>
|
||||
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="314"/>
|
||||
<source>group_chat_error_must_have_name</source>
|
||||
<extracomment>"Un nom doit être donné au groupe</extracomment>
|
||||
<translation>Un nom doit être donné au groupe</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="316"/>
|
||||
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="318"/>
|
||||
<source>group_call_error_not_connected</source>
|
||||
<extracomment>"Vous n'etes pas connecté"</extracomment>
|
||||
<translation>Vous n'êtes pas connecté</translation>
|
||||
|
|
@ -2273,53 +2285,53 @@ en bout. Seul votre correspondant peut les déchiffrer.</translation>
|
|||
<context>
|
||||
<name>ContactListItem</name>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Contact/ContactListItem.qml" line="192"/>
|
||||
<location filename="../../view/Control/Display/Contact/ContactListItem.qml" line="193"/>
|
||||
<source>contact_details_remove_from_favourites</source>
|
||||
<extracomment>"Enlever des favoris"</extracomment>
|
||||
<translation>Enlever des favoris</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Contact/ContactListItem.qml" line="194"/>
|
||||
<location filename="../../view/Control/Display/Contact/ContactListItem.qml" line="195"/>
|
||||
<source>contact_details_add_to_favourites</source>
|
||||
<extracomment>"Ajouter aux favoris"</extracomment>
|
||||
<translation>Ajouter aux favoris</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Contact/ContactListItem.qml" line="208"/>
|
||||
<location filename="../../view/Control/Display/Contact/ContactListItem.qml" line="209"/>
|
||||
<source>Partager</source>
|
||||
<translation>Partager</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Contact/ContactListItem.qml" line="221"/>
|
||||
<location filename="../../view/Control/Display/Contact/ContactListItem.qml" line="222"/>
|
||||
<source>information_popup_error_title</source>
|
||||
<translation>Erreur</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Contact/ContactListItem.qml" line="223"/>
|
||||
<location filename="../../view/Control/Display/Contact/ContactListItem.qml" line="224"/>
|
||||
<source>information_popup_vcard_creation_error</source>
|
||||
<extracomment>La création du fichier vcard a échoué</extracomment>
|
||||
<translation>La création du fichier vcard a échoué</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Contact/ContactListItem.qml" line="227"/>
|
||||
<location filename="../../view/Control/Display/Contact/ContactListItem.qml" line="228"/>
|
||||
<source>information_popup_vcard_creation_title</source>
|
||||
<extracomment>VCard créée</extracomment>
|
||||
<translation>VCard créée</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Contact/ContactListItem.qml" line="229"/>
|
||||
<location filename="../../view/Control/Display/Contact/ContactListItem.qml" line="230"/>
|
||||
<source>information_popup_vcard_creation_success</source>
|
||||
<extracomment>"VCard du contact enregistrée dans %1"</extracomment>
|
||||
<translation>VCard du contact enregistrée dans %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Contact/ContactListItem.qml" line="231"/>
|
||||
<location filename="../../view/Control/Display/Contact/ContactListItem.qml" line="232"/>
|
||||
<source>contact_sharing_email_title</source>
|
||||
<extracomment>Partage de contact</extracomment>
|
||||
<translation>Partage de contact</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Contact/ContactListItem.qml" line="237"/>
|
||||
<location filename="../../view/Control/Display/Contact/ContactListItem.qml" line="238"/>
|
||||
<source>contact_details_delete</source>
|
||||
<extracomment>"Supprimer"</extracomment>
|
||||
<translation>Supprimer</translation>
|
||||
|
|
@ -4843,28 +4855,40 @@ Pour les activer dans un projet commercial, merci de nous contacter.</translatio
|
|||
<context>
|
||||
<name>SelectedChatView</name>
|
||||
<message>
|
||||
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="36"/>
|
||||
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="37"/>
|
||||
<source>chat_view_group_call_toast_message</source>
|
||||
<translation>Démarrer un appel de groupe ?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="311"/>
|
||||
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="317"/>
|
||||
<source>reply_to_label</source>
|
||||
<extracomment>Reply to %1</extracomment>
|
||||
<translation>Réponse à %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="517"/>
|
||||
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="518"/>
|
||||
<source>shared_medias_title</source>
|
||||
<extracomment>Shared medias</extracomment>
|
||||
<translation>Médias partagés</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="519"/>
|
||||
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="520"/>
|
||||
<source>shared_documents_title</source>
|
||||
<extracomment>Shared documents</extracomment>
|
||||
<translation>Documents partagés</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="549"/>
|
||||
<source>forward_to_title</source>
|
||||
<extracomment>Transfer to...</extracomment>
|
||||
<translation>Transférer à…</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="581"/>
|
||||
<source>conversations_title</source>
|
||||
<extracomment>Conversations</extracomment>
|
||||
<translation>Conversations</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SettingsPage</name>
|
||||
|
|
@ -5003,7 +5027,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="2184"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2216"/>
|
||||
<source>nMinute</source>
|
||||
<translation>
|
||||
<numerusform>%1 minute</numerusform>
|
||||
|
|
@ -5011,7 +5035,7 @@ Pour les activer dans un projet commercial, merci de nous contacter.</translatio
|
|||
</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../../tool/Utils.cpp" line="2185"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2217"/>
|
||||
<source>nHour</source>
|
||||
<translation>
|
||||
<numerusform>%1 heure</numerusform>
|
||||
|
|
@ -5019,8 +5043,8 @@ Pour les activer dans un projet commercial, merci de nous contacter.</translatio
|
|||
</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../../tool/Utils.cpp" line="2186"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2187"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2218"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2219"/>
|
||||
<source>nDay</source>
|
||||
<translation>
|
||||
<numerusform>%1 jour</numerusform>
|
||||
|
|
@ -5028,7 +5052,7 @@ Pour les activer dans un projet commercial, merci de nous contacter.</translatio
|
|||
</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../../tool/Utils.cpp" line="2188"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2220"/>
|
||||
<source>nWeek</source>
|
||||
<translation>
|
||||
<numerusform>%1 semaine</numerusform>
|
||||
|
|
@ -5036,7 +5060,7 @@ Pour les activer dans un projet commercial, merci de nous contacter.</translatio
|
|||
</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../../tool/Utils.cpp" line="2189"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2221"/>
|
||||
<source>nSeconds</source>
|
||||
<translation>
|
||||
<numerusform>%1 seconde</numerusform>
|
||||
|
|
@ -5167,42 +5191,73 @@ Failed to create 1-1 conversation with %1 !</extracomment>
|
|||
<translation>Erreur lors de la création de la conversation avec %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2036"/>
|
||||
<source>chatMessage_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="2101"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2133"/>
|
||||
<source>recorder_error</source>
|
||||
<extracomment>Error with the recorder</extracomment>
|
||||
<translation>Erreur avec l'enregistreur</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2038"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2103"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2070"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2135"/>
|
||||
<source>chat_error</source>
|
||||
<translation>Erreur dans le chat</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2036"/>
|
||||
<source>chat_message_forward_error</source>
|
||||
<extracomment>Cannot forward an invalid message</extracomment>
|
||||
<translation>Transfert impossible: message invalide</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2040"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2067"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2105"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2119"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2055"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2072"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2099"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2137"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2151"/>
|
||||
<source>info_popup_error_title</source>
|
||||
<extracomment>Error</extracomment>
|
||||
<translation>Erreur</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2042"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2107"/>
|
||||
<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="2057"/>
|
||||
<source>info_popup_send_forward_message_error_message</source>
|
||||
<extracomment>Failed to create forward message</extracomment>
|
||||
<translation>Le transfert du message a échoué</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2068"/>
|
||||
<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="2074"/>
|
||||
<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="2101"/>
|
||||
<source>info_popup_send_reply_message_error_message</source>
|
||||
<extracomment>Failed to create reply message</extracomment>
|
||||
<translation>La création du message a échoué</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../tool/Utils.cpp" line="2139"/>
|
||||
<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="2069"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2121"/>
|
||||
<location filename="../../tool/Utils.cpp" line="2153"/>
|
||||
<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>
|
||||
|
|
|
|||
|
|
@ -148,6 +148,11 @@ ChatModel::createReplyMessage(const std::shared_ptr<linphone::ChatMessage> &mess
|
|||
return mMonitor->createReplyMessage(message);
|
||||
}
|
||||
|
||||
std::shared_ptr<linphone::ChatMessage>
|
||||
ChatModel::createForwardMessage(const std::shared_ptr<linphone::ChatMessage> &message) {
|
||||
return mMonitor->createForwardMessage(message);
|
||||
}
|
||||
|
||||
std::shared_ptr<linphone::ChatMessage> ChatModel::createTextMessageFromText(QString text) {
|
||||
return mMonitor->createMessageFromUtf8(Utils::appStringToCoreString(text));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -54,6 +54,7 @@ public:
|
|||
createVoiceRecordingMessage(const std::shared_ptr<linphone::Recorder> &recorder);
|
||||
|
||||
std::shared_ptr<linphone::ChatMessage> createReplyMessage(const std::shared_ptr<linphone::ChatMessage> &message);
|
||||
std::shared_ptr<linphone::ChatMessage> createForwardMessage(const std::shared_ptr<linphone::ChatMessage> &message);
|
||||
|
||||
std::shared_ptr<linphone::ChatMessage> createTextMessageFromText(QString text);
|
||||
std::shared_ptr<linphone::ChatMessage> createMessage(QString text,
|
||||
|
|
|
|||
|
|
@ -2028,18 +2028,50 @@ QString Utils::getSafeFilePath(const QString &filePath, bool *soFarSoGood) {
|
|||
return QString("");
|
||||
}
|
||||
|
||||
void Utils::forwardMessageTo(ChatMessageGui *message, ChatGui *chatGui) {
|
||||
auto chatModel = chatGui && chatGui->mCore ? chatGui->mCore->getModel() : nullptr;
|
||||
auto chatMessageModel = message && message->mCore ? message->mCore->getModel() : nullptr;
|
||||
if (!chatModel || !chatMessageModel) {
|
||||
//: Cannot forward an invalid message
|
||||
QString error = !chatMessageModel ? tr("chat_message_forward_error")
|
||||
//: Error creating or opening the chat
|
||||
: tr("chat_error");
|
||||
//: Error
|
||||
showInformationPopup(tr("info_popup_error_title"),
|
||||
//: Could not forward message : %1
|
||||
tr("info_popup_forward_message_error").arg(error));
|
||||
return;
|
||||
}
|
||||
App::postModelAsync([chatModel, chatMessageModel] {
|
||||
mustBeInLinphoneThread(sLog().arg(Q_FUNC_INFO));
|
||||
auto chat = chatModel->getMonitor();
|
||||
auto messageToForward = chatMessageModel->getMonitor();
|
||||
auto linMessage = chatModel->createForwardMessage(messageToForward);
|
||||
if (linMessage) {
|
||||
linMessage->send();
|
||||
} else {
|
||||
App::postCoreAsync([] {
|
||||
//: Error
|
||||
showInformationPopup(tr("info_popup_error_title"),
|
||||
//: Failed to create forward message
|
||||
tr("info_popup_send_forward_message_error_message"));
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
void Utils::sendReplyMessage(ChatMessageGui *message, ChatGui *chatGui, QString text, QVariantList files) {
|
||||
auto chatModel = chatGui && chatGui->mCore ? chatGui->mCore->getModel() : nullptr;
|
||||
auto chatMessageModel = message && message->mCore ? message->mCore->getModel() : nullptr;
|
||||
if (!chatModel || !chatMessageModel) {
|
||||
//: Cannot reply to invalid message
|
||||
QString error = !chatMessageModel ? tr("chatMessage_error")
|
||||
QString error = !chatMessageModel ? tr("chat_message_reply_error")
|
||||
//: Error in the chat
|
||||
: tr("chat_error");
|
||||
//: Error
|
||||
showInformationPopup(tr("info_popup_error_title"),
|
||||
//: Could not send voice message : %1
|
||||
tr("info_popup_send_voice_message_error_message").arg(error));
|
||||
//: Could not send reply message : %1
|
||||
tr("info_popup_reply_message_error").arg(error));
|
||||
return;
|
||||
}
|
||||
QList<std::shared_ptr<ChatMessageContentModel>> filesContent;
|
||||
|
|
@ -2065,8 +2097,8 @@ void Utils::sendReplyMessage(ChatMessageGui *message, ChatGui *chatGui, QString
|
|||
App::postCoreAsync([] {
|
||||
//: Error
|
||||
showInformationPopup(tr("info_popup_error_title"),
|
||||
//: Failed to create message from record
|
||||
tr("info_popup_send_voice_message_sending_error_message"));
|
||||
//: Failed to create reply message
|
||||
tr("info_popup_send_reply_message_error_message"));
|
||||
});
|
||||
}
|
||||
});
|
||||
|
|
|
|||
|
|
@ -180,6 +180,8 @@ public:
|
|||
Q_INVOKABLE static VariantObject *createVoiceRecordingMessage(RecorderGui *recorderGui, ChatGui *chatGui);
|
||||
Q_INVOKABLE static void
|
||||
sendReplyMessage(ChatMessageGui *message, ChatGui *chatGui, QString text, QVariantList files);
|
||||
Q_INVOKABLE static void forwardMessageTo(ChatMessageGui *message, ChatGui *chatGui);
|
||||
|
||||
Q_INVOKABLE static void sendVoiceRecordingMessage(RecorderGui *recorderGui, ChatGui *chatGui);
|
||||
Q_INVOKABLE static QString getEphemeralFormatedTime(int selectedTime);
|
||||
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ ListView {
|
|||
|
||||
signal resultsReceived()
|
||||
signal markAllAsRead()
|
||||
signal chatClicked(ChatGui chat)
|
||||
|
||||
onResultsReceived: {
|
||||
loading = false
|
||||
|
|
@ -411,6 +412,7 @@ ListView {
|
|||
if (pressedButtons & Qt.RightButton) {
|
||||
chatroomPopup.open()
|
||||
} else {
|
||||
mainItem.chatClicked(modelData)
|
||||
mainItem.currentIndex = model.index
|
||||
mainItem.forceActiveFocus()
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ Control.Control {
|
|||
property bool isRemoteMessage: chatMessage? chatMessage.core.isRemoteMessage : false
|
||||
property bool isFromChatGroup: chatMessage? chatMessage.core.isFromChatGroup : false
|
||||
property bool isReply: chatMessage? chatMessage.core.isReply : false
|
||||
property bool isForward: chatMessage? chatMessage.core.isForward : false
|
||||
property string replyText: chatMessage? chatMessage.core.replyText : false
|
||||
property var msgState: chatMessage ? chatMessage.core.messageState : LinphoneEnums.ChatMessageState.StateIdle
|
||||
hoverEnabled: true
|
||||
|
|
@ -34,6 +35,7 @@ Control.Control {
|
|||
signal showReactionsForMessageRequested()
|
||||
signal showImdnStatusForMessageRequested()
|
||||
signal replyToMessageRequested()
|
||||
signal forwardMessageRequested()
|
||||
|
||||
background: Item {
|
||||
anchors.fill: parent
|
||||
|
|
@ -62,6 +64,28 @@ Control.Control {
|
|||
weight: Typography.p4.weight
|
||||
}
|
||||
}
|
||||
RowLayout {
|
||||
id: forwardLayout
|
||||
spacing: Math.round(8 * DefaultStyle.dp)
|
||||
visible: mainItem.isForward
|
||||
Layout.leftMargin: mainItem.isFromChatGroup ? Math.round(9 * DefaultStyle.dp) + avatar.width : 0
|
||||
Layout.alignment: mainItem.isRemoteMessage ? Qt.AlignLeft: Qt.AlignRight
|
||||
EffectImage {
|
||||
imageSource: AppIcons.forward
|
||||
colorizationColor: DefaultStyle.main2_500main
|
||||
Layout.preferredWidth: Math.round(12 * DefaultStyle.dp)
|
||||
Layout.preferredHeight: Math.round(12 * DefaultStyle.dp)
|
||||
}
|
||||
Text {
|
||||
//: Forwarded
|
||||
text: qsTr("chat_message_forwarded")
|
||||
color: DefaultStyle.main2_600
|
||||
font {
|
||||
pixelSize: Typography.p4.pixelSize
|
||||
weight: Typography.p4.weight
|
||||
}
|
||||
}
|
||||
}
|
||||
RowLayout {
|
||||
id: replyLayout
|
||||
visible: mainItem.isReply
|
||||
|
|
@ -377,6 +401,18 @@ Control.Control {
|
|||
optionsMenu.close()
|
||||
}
|
||||
}
|
||||
IconLabelButton {
|
||||
inverseLayout: true
|
||||
//: Forward
|
||||
text: qsTr("chat_message_forward")
|
||||
icon.source: AppIcons.forward
|
||||
Layout.fillWidth: true
|
||||
Layout.preferredHeight: Math.round(45 * DefaultStyle.dp)
|
||||
onClicked: {
|
||||
mainItem.forwardMessageRequested()
|
||||
optionsMenu.close()
|
||||
}
|
||||
}
|
||||
Rectangle {
|
||||
Layout.fillWidth: true
|
||||
Layout.preferredHeight: Math.min(1, Math.round(1 * DefaultStyle.dp))
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ ListView {
|
|||
signal showReactionsForMessageRequested(ChatMessageGui chatMessage)
|
||||
signal showImdnStatusForMessageRequested(ChatMessageGui chatMessage)
|
||||
signal replyToMessageRequested(ChatMessageGui chatMessage)
|
||||
signal forwardMessageRequested(ChatMessageGui chatMessage)
|
||||
|
||||
Component.onCompleted: {
|
||||
Qt.callLater(function() {
|
||||
|
|
@ -64,7 +65,7 @@ ListView {
|
|||
|
||||
header: Item {
|
||||
visible: mainItem.chat && mainItem.chat.core.isEncrypted
|
||||
height: visible ? headerMessage.height + Math.round(50 * DefaultStyle.dp) : 0
|
||||
height: visible ? headerMessage.height + Math.round(50 * DefaultStyle.dp) : Math.round(30 * DefaultStyle.dp)
|
||||
width: headerMessage.width
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
Control.Control {
|
||||
|
|
@ -150,6 +151,7 @@ ListView {
|
|||
onShowReactionsForMessageRequested: mainItem.showReactionsForMessageRequested(modelData)
|
||||
onShowImdnStatusForMessageRequested: mainItem.showImdnStatusForMessageRequested(modelData)
|
||||
onReplyToMessageRequested: mainItem.replyToMessageRequested(modelData)
|
||||
onForwardMessageRequested: mainItem.forwardMessageRequested(modelData)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -40,225 +40,224 @@ FocusScope {
|
|||
signal contactDeletionRequested(FriendGui contact)
|
||||
signal containsMouseChanged(bool containsMouse)
|
||||
|
||||
Text {
|
||||
id: initial
|
||||
anchors.left: parent.left
|
||||
visible: mainItem.showInitials
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
anchors.rightMargin: Math.round(15 * DefaultStyle.dp)
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
width: Math.round(20 * DefaultStyle.dp)
|
||||
opacity: previousInitial != mainItem.initial ? 1 : 0
|
||||
text: mainItem.initial || ""
|
||||
color: DefaultStyle.main2_400
|
||||
font {
|
||||
pixelSize: Math.round(20 * DefaultStyle.dp)
|
||||
weight: Math.round(500 * DefaultStyle.dp)
|
||||
capitalization: Font.AllUppercase
|
||||
}
|
||||
}
|
||||
RowLayout {
|
||||
id: contactDelegate
|
||||
anchors.left: initial.visible ? initial.right : parent.left
|
||||
anchors.right: parent.right
|
||||
anchors.rightMargin: mainItem.itemsRightMargin
|
||||
anchors.top: parent.top
|
||||
anchors.bottom: parent.bottom
|
||||
spacing: Math.round(16 * DefaultStyle.dp)
|
||||
z: 1
|
||||
Avatar {
|
||||
Layout.preferredWidth: Math.round(45 * DefaultStyle.dp)
|
||||
Layout.preferredHeight: Math.round(45 * DefaultStyle.dp)
|
||||
Layout.leftMargin: Math.round(5 * DefaultStyle.dp)
|
||||
contact: searchResultItem
|
||||
shadowEnabled: false
|
||||
}
|
||||
ColumnLayout {
|
||||
spacing: 0
|
||||
Text {
|
||||
text: UtilsCpp.boldTextPart(mainItem.displayName,
|
||||
mainItem.highlightText)
|
||||
font {
|
||||
pixelSize: mainItem.showDefaultAddress ? Typography.h4.pixelSize : Typography.p1.pixelSize
|
||||
capitalization: mainItem.displayNameCapitalization ? Font.Capitalize : Font.MixedCase
|
||||
weight: mainItem.showDefaultAddress ? Typography.h4.weight : Typography.p1.weight
|
||||
}
|
||||
maximumLineCount: 1
|
||||
Layout.fillWidth: true
|
||||
MouseArea {
|
||||
Text {
|
||||
id: initial
|
||||
anchors.left: parent.left
|
||||
visible: mainItem.showInitials
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
anchors.rightMargin: Math.round(15 * DefaultStyle.dp)
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
width: Math.round(20 * DefaultStyle.dp)
|
||||
opacity: previousInitial != mainItem.initial ? 1 : 0
|
||||
text: mainItem.initial || ""
|
||||
color: DefaultStyle.main2_400
|
||||
font {
|
||||
pixelSize: Math.round(20 * DefaultStyle.dp)
|
||||
weight: Math.round(500 * DefaultStyle.dp)
|
||||
capitalization: Font.AllUppercase
|
||||
}
|
||||
Text {
|
||||
Layout.topMargin: Math.round(2 * DefaultStyle.dp)
|
||||
Layout.fillWidth: true
|
||||
visible: mainItem.showDefaultAddress
|
||||
property string address: SettingsCpp.onlyDisplaySipUriUsername
|
||||
? UtilsCpp.getUsername(mainItem.addressFromFilter)
|
||||
: mainItem.addressFromFilter
|
||||
text: UtilsCpp.boldTextPart(address, mainItem.highlightText)
|
||||
maximumLineCount: 1
|
||||
elide: Text.ElideRight
|
||||
font {
|
||||
weight: Math.round(300 * DefaultStyle.dp)
|
||||
pixelSize: Math.round(12 * DefaultStyle.dp)
|
||||
}
|
||||
}
|
||||
}
|
||||
Item {
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
RowLayout {
|
||||
id: actionsRow
|
||||
z: 1
|
||||
visible: mainItem.showActions || actionButtons.visible || mainItem.showContactMenu || mainItem.multiSelectionEnabled
|
||||
spacing: visible ? Math.round(16 * DefaultStyle.dp) : 0
|
||||
enabled: visible
|
||||
Layout.rightMargin: Math.round(5 * DefaultStyle.dp)
|
||||
EffectImage {
|
||||
id: isSelectedCheck
|
||||
visible: mainItem.multiSelectionEnabled
|
||||
&& (mainItem.selectedContacts.indexOf(mainItem.addressFromFilter) != -1)
|
||||
Layout.preferredWidth: Math.round(24 * DefaultStyle.dp)
|
||||
Layout.preferredHeight: Math.round(24 * DefaultStyle.dp)
|
||||
imageSource: AppIcons.check
|
||||
colorizationColor: DefaultStyle.main1_500_main
|
||||
id: contactDelegate
|
||||
anchors.left: initial.visible ? initial.right : parent.left
|
||||
anchors.right: parent.right
|
||||
anchors.rightMargin: mainItem.itemsRightMargin
|
||||
anchors.top: parent.top
|
||||
anchors.bottom: parent.bottom
|
||||
spacing: Math.round(16 * DefaultStyle.dp)
|
||||
z: contactArea.z + 1
|
||||
Avatar {
|
||||
Layout.preferredWidth: Math.round(45 * DefaultStyle.dp)
|
||||
Layout.preferredHeight: Math.round(45 * DefaultStyle.dp)
|
||||
Layout.leftMargin: Math.round(5 * DefaultStyle.dp)
|
||||
contact: searchResultItem
|
||||
shadowEnabled: false
|
||||
}
|
||||
ColumnLayout {
|
||||
spacing: 0
|
||||
Text {
|
||||
text: UtilsCpp.boldTextPart(mainItem.displayName,
|
||||
mainItem.highlightText)
|
||||
font {
|
||||
pixelSize: mainItem.showDefaultAddress ? Typography.h4.pixelSize : Typography.p1.pixelSize
|
||||
capitalization: mainItem.displayNameCapitalization ? Font.Capitalize : Font.MixedCase
|
||||
weight: mainItem.showDefaultAddress ? Typography.h4.weight : Typography.p1.weight
|
||||
}
|
||||
maximumLineCount: 1
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
Text {
|
||||
Layout.topMargin: Math.round(2 * DefaultStyle.dp)
|
||||
Layout.fillWidth: true
|
||||
visible: mainItem.showDefaultAddress
|
||||
property string address: SettingsCpp.onlyDisplaySipUriUsername
|
||||
? UtilsCpp.getUsername(mainItem.addressFromFilter)
|
||||
: mainItem.addressFromFilter
|
||||
text: UtilsCpp.boldTextPart(address, mainItem.highlightText)
|
||||
maximumLineCount: 1
|
||||
elide: Text.ElideRight
|
||||
font {
|
||||
weight: Math.round(300 * DefaultStyle.dp)
|
||||
pixelSize: Math.round(12 * DefaultStyle.dp)
|
||||
}
|
||||
}
|
||||
}
|
||||
Item {
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
RowLayout {
|
||||
id: actionButtons
|
||||
visible: mainItem.showActions
|
||||
spacing: visible ? Math.round(10 * DefaultStyle.dp) : 0
|
||||
IconButton {
|
||||
id: callButton
|
||||
Layout.preferredWidth: Math.round(45 * DefaultStyle.dp)
|
||||
Layout.preferredHeight: Math.round(45 * DefaultStyle.dp)
|
||||
icon.width: Math.round(24 * DefaultStyle.dp)
|
||||
icon.height: Math.round(24 * DefaultStyle.dp)
|
||||
icon.source: AppIcons.phone
|
||||
focus: visible
|
||||
radius: Math.round(40 * DefaultStyle.dp)
|
||||
style: ButtonStyle.grey
|
||||
onClicked: UtilsCpp.createCall(mainItem.addressFromFilter)
|
||||
KeyNavigation.left: chatButton
|
||||
KeyNavigation.right: videoCallButton
|
||||
}
|
||||
IconButton {
|
||||
id: videoCallButton
|
||||
visible: SettingsCpp.videoEnabled
|
||||
Layout.preferredWidth: Math.round(45 * DefaultStyle.dp)
|
||||
Layout.preferredHeight: Math.round(45 * DefaultStyle.dp)
|
||||
icon.width: Math.round(24 * DefaultStyle.dp)
|
||||
icon.height: Math.round(24 * DefaultStyle.dp)
|
||||
icon.source: AppIcons.videoCamera
|
||||
focus: visible && !callButton.visible
|
||||
radius: Math.round(40 * DefaultStyle.dp)
|
||||
style: ButtonStyle.grey
|
||||
onClicked: UtilsCpp.createCall(mainItem.addressFromFilter, {"localVideoEnabled": true})
|
||||
KeyNavigation.left: callButton
|
||||
KeyNavigation.right: chatButton
|
||||
}
|
||||
IconButton {
|
||||
id: chatButton
|
||||
visible: actionButtons.visible
|
||||
&& !SettingsCpp.disableChatFeature
|
||||
Layout.preferredWidth: Math.round(45 * DefaultStyle.dp)
|
||||
Layout.preferredHeight: Math.round(45 * DefaultStyle.dp)
|
||||
icon.width: Math.round(24 * DefaultStyle.dp)
|
||||
icon.height: Math.round(24 * DefaultStyle.dp)
|
||||
icon.source: AppIcons.chatTeardropText
|
||||
focus: visible && !callButton.visible
|
||||
&& !videoCallButton.visible
|
||||
radius: Math.round(40 * DefaultStyle.dp)
|
||||
style: ButtonStyle.grey
|
||||
KeyNavigation.left: videoCallButton
|
||||
KeyNavigation.right: callButton
|
||||
onClicked: {
|
||||
console.debug("[ContactListItem.qml] Open conversation")
|
||||
mainWindow.displayChatPage(mainItem.addressFromFilter)
|
||||
}
|
||||
}
|
||||
}
|
||||
PopupButton {
|
||||
id: friendPopup
|
||||
z: 1
|
||||
popup.x: 0
|
||||
popup.padding: Math.round(10 * DefaultStyle.dp)
|
||||
visible: mainItem.showContactMenu && (contactArea.containsMouse || mainItem.isLastHovered || hovered || popup.opened)
|
||||
id: actionsRow
|
||||
z: contactArea.z + 1
|
||||
visible: mainItem.showActions || actionButtons.visible || mainItem.showContactMenu || mainItem.multiSelectionEnabled
|
||||
spacing: visible ? Math.round(16 * DefaultStyle.dp) : 0
|
||||
enabled: visible
|
||||
Layout.rightMargin: Math.round(5 * DefaultStyle.dp)
|
||||
EffectImage {
|
||||
id: isSelectedCheck
|
||||
visible: mainItem.multiSelectionEnabled
|
||||
&& (mainItem.selectedContacts.indexOf(mainItem.addressFromFilter) != -1)
|
||||
Layout.preferredWidth: Math.round(24 * DefaultStyle.dp)
|
||||
Layout.preferredHeight: Math.round(24 * DefaultStyle.dp)
|
||||
imageSource: AppIcons.check
|
||||
colorizationColor: DefaultStyle.main1_500_main
|
||||
}
|
||||
RowLayout {
|
||||
id: actionButtons
|
||||
visible: mainItem.showActions
|
||||
spacing: visible ? Math.round(10 * DefaultStyle.dp) : 0
|
||||
IconButton {
|
||||
id: callButton
|
||||
Layout.preferredWidth: Math.round(45 * DefaultStyle.dp)
|
||||
Layout.preferredHeight: Math.round(45 * DefaultStyle.dp)
|
||||
icon.width: Math.round(24 * DefaultStyle.dp)
|
||||
icon.height: Math.round(24 * DefaultStyle.dp)
|
||||
icon.source: AppIcons.phone
|
||||
focus: visible
|
||||
radius: Math.round(40 * DefaultStyle.dp)
|
||||
style: ButtonStyle.grey
|
||||
onClicked: UtilsCpp.createCall(mainItem.addressFromFilter)
|
||||
KeyNavigation.left: chatButton
|
||||
KeyNavigation.right: videoCallButton
|
||||
}
|
||||
IconButton {
|
||||
id: videoCallButton
|
||||
visible: SettingsCpp.videoEnabled
|
||||
Layout.preferredWidth: Math.round(45 * DefaultStyle.dp)
|
||||
Layout.preferredHeight: Math.round(45 * DefaultStyle.dp)
|
||||
icon.width: Math.round(24 * DefaultStyle.dp)
|
||||
icon.height: Math.round(24 * DefaultStyle.dp)
|
||||
icon.source: AppIcons.videoCamera
|
||||
focus: visible && !callButton.visible
|
||||
radius: Math.round(40 * DefaultStyle.dp)
|
||||
style: ButtonStyle.grey
|
||||
onClicked: UtilsCpp.createCall(mainItem.addressFromFilter, {"localVideoEnabled": true})
|
||||
KeyNavigation.left: callButton
|
||||
KeyNavigation.right: chatButton
|
||||
}
|
||||
IconButton {
|
||||
id: chatButton
|
||||
visible: actionButtons.visible
|
||||
&& !SettingsCpp.disableChatFeature
|
||||
Layout.preferredWidth: Math.round(45 * DefaultStyle.dp)
|
||||
Layout.preferredHeight: Math.round(45 * DefaultStyle.dp)
|
||||
icon.width: Math.round(24 * DefaultStyle.dp)
|
||||
icon.height: Math.round(24 * DefaultStyle.dp)
|
||||
icon.source: AppIcons.chatTeardropText
|
||||
focus: visible && !callButton.visible
|
||||
&& !videoCallButton.visible
|
||||
radius: Math.round(40 * DefaultStyle.dp)
|
||||
style: ButtonStyle.grey
|
||||
KeyNavigation.left: videoCallButton
|
||||
KeyNavigation.right: callButton
|
||||
onClicked: {
|
||||
console.debug("[ContactListItem.qml] Open conversation")
|
||||
mainWindow.displayChatPage(mainItem.addressFromFilter)
|
||||
}
|
||||
}
|
||||
}
|
||||
PopupButton {
|
||||
id: friendPopup
|
||||
z: contactArea.z + 1
|
||||
popup.x: 0
|
||||
popup.padding: Math.round(10 * DefaultStyle.dp)
|
||||
visible: mainItem.showContactMenu && (contactArea.containsMouse || mainItem.isLastHovered || hovered || popup.opened)
|
||||
enabled: visible
|
||||
|
||||
popup.contentItem: ColumnLayout {
|
||||
IconLabelButton {
|
||||
Layout.fillWidth: true
|
||||
visible: searchResultItem.core.isStored
|
||||
&& !searchResultItem.core.readOnly
|
||||
//: "Enlever des favoris"
|
||||
text: searchResultItem.core.starred ? qsTr("contact_details_remove_from_favourites")
|
||||
//: "Ajouter aux favoris"
|
||||
: qsTr("contact_details_add_to_favourites")
|
||||
icon.source: searchResultItem.core.starred ? AppIcons.heartFill : AppIcons.heart
|
||||
spacing: Math.round(10 * DefaultStyle.dp)
|
||||
textColor: DefaultStyle.main2_500main
|
||||
hoveredImageColor: searchResultItem.core.starred ? DefaultStyle.main1_700 : DefaultStyle.danger_700
|
||||
contentImageColor: searchResultItem.core.starred ? DefaultStyle.danger_500main : DefaultStyle.main2_600
|
||||
onClicked: {
|
||||
searchResultItem.core.lSetStarred(
|
||||
!searchResultItem.core.starred)
|
||||
friendPopup.close()
|
||||
popup.contentItem: ColumnLayout {
|
||||
IconLabelButton {
|
||||
Layout.fillWidth: true
|
||||
visible: searchResultItem.core.isStored
|
||||
&& !searchResultItem.core.readOnly
|
||||
//: "Enlever des favoris"
|
||||
text: searchResultItem.core.starred ? qsTr("contact_details_remove_from_favourites")
|
||||
//: "Ajouter aux favoris"
|
||||
: qsTr("contact_details_add_to_favourites")
|
||||
icon.source: searchResultItem.core.starred ? AppIcons.heartFill : AppIcons.heart
|
||||
spacing: Math.round(10 * DefaultStyle.dp)
|
||||
textColor: DefaultStyle.main2_500main
|
||||
hoveredImageColor: searchResultItem.core.starred ? DefaultStyle.main1_700 : DefaultStyle.danger_700
|
||||
contentImageColor: searchResultItem.core.starred ? DefaultStyle.danger_500main : DefaultStyle.main2_600
|
||||
onClicked: {
|
||||
searchResultItem.core.lSetStarred(
|
||||
!searchResultItem.core.starred)
|
||||
friendPopup.close()
|
||||
}
|
||||
style: ButtonStyle.noBackground
|
||||
}
|
||||
style: ButtonStyle.noBackground
|
||||
}
|
||||
IconLabelButton {
|
||||
text: qsTr("Partager")
|
||||
Layout.fillWidth: true
|
||||
icon.source: AppIcons.shareNetwork
|
||||
spacing: Math.round(10 * DefaultStyle.dp)
|
||||
textColor: DefaultStyle.main2_500main
|
||||
onClicked: {
|
||||
var vcard = searchResultItem.core.getVCard()
|
||||
var username = searchResultItem.core.givenName
|
||||
+ searchResultItem.core.familyName
|
||||
var filepath = UtilsCpp.createVCardFile(
|
||||
username, vcard)
|
||||
if (filepath == "")
|
||||
UtilsCpp.showInformationPopup(
|
||||
qsTr("information_popup_error_title"),
|
||||
//: La création du fichier vcard a échoué
|
||||
qsTr("information_popup_vcard_creation_error"),
|
||||
false)
|
||||
else
|
||||
//: VCard créée
|
||||
mainWindow.showInformationPopup(qsTr("information_popup_vcard_creation_title"),
|
||||
//: "VCard du contact enregistrée dans %1"
|
||||
qsTr("information_popup_vcard_creation_success").arg(filepath))
|
||||
//: Partage de contact
|
||||
UtilsCpp.shareByEmail(qsTr("contact_sharing_email_title"),vcard, filepath)
|
||||
IconLabelButton {
|
||||
text: qsTr("Partager")
|
||||
Layout.fillWidth: true
|
||||
icon.source: AppIcons.shareNetwork
|
||||
spacing: Math.round(10 * DefaultStyle.dp)
|
||||
textColor: DefaultStyle.main2_500main
|
||||
onClicked: {
|
||||
var vcard = searchResultItem.core.getVCard()
|
||||
var username = searchResultItem.core.givenName
|
||||
+ searchResultItem.core.familyName
|
||||
var filepath = UtilsCpp.createVCardFile(
|
||||
username, vcard)
|
||||
if (filepath == "")
|
||||
UtilsCpp.showInformationPopup(
|
||||
qsTr("information_popup_error_title"),
|
||||
//: La création du fichier vcard a échoué
|
||||
qsTr("information_popup_vcard_creation_error"),
|
||||
false)
|
||||
else
|
||||
//: VCard créée
|
||||
mainWindow.showInformationPopup(qsTr("information_popup_vcard_creation_title"),
|
||||
//: "VCard du contact enregistrée dans %1"
|
||||
qsTr("information_popup_vcard_creation_success").arg(filepath))
|
||||
//: Partage de contact
|
||||
UtilsCpp.shareByEmail(qsTr("contact_sharing_email_title"),vcard, filepath)
|
||||
}
|
||||
style: ButtonStyle.noBackground
|
||||
}
|
||||
style: ButtonStyle.noBackground
|
||||
}
|
||||
IconLabelButton {
|
||||
//: "Supprimer"
|
||||
text: qsTr("contact_details_delete")
|
||||
icon.source: AppIcons.trashCan
|
||||
spacing: Math.round(10 * DefaultStyle.dp)
|
||||
visible: !searchResultItem.core.readOnly
|
||||
Layout.fillWidth: true
|
||||
onClicked: {
|
||||
mainItem.contactDeletionRequested(
|
||||
searchResultItem)
|
||||
friendPopup.close()
|
||||
IconLabelButton {
|
||||
//: "Supprimer"
|
||||
text: qsTr("contact_details_delete")
|
||||
icon.source: AppIcons.trashCan
|
||||
spacing: Math.round(10 * DefaultStyle.dp)
|
||||
visible: !searchResultItem.core.readOnly
|
||||
Layout.fillWidth: true
|
||||
onClicked: {
|
||||
mainItem.contactDeletionRequested(
|
||||
searchResultItem)
|
||||
friendPopup.close()
|
||||
}
|
||||
style: ButtonStyle.noBackgroundRed
|
||||
}
|
||||
style: ButtonStyle.noBackgroundRed
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
id: contactArea
|
||||
enabled: mainItem.selectionEnabled
|
||||
anchors.fill: contactDelegate
|
||||
anchors.fill: parent
|
||||
//height: mainItem.height
|
||||
hoverEnabled: true
|
||||
acceptedButtons: Qt.AllButtons
|
||||
z: -1
|
||||
focus: !actionButtons.visible
|
||||
onContainsMouseChanged: {
|
||||
mainItem.containsMouseChanged(containsMouse)
|
||||
|
|
@ -271,21 +270,21 @@ FocusScope {
|
|||
visible: mainItem.isLastHovered || mainItem.isSelected || friendPopup.hovered
|
||||
}
|
||||
Keys.onPressed: event => {
|
||||
if (event.key == Qt.Key_Space
|
||||
|| event.key == Qt.Key_Enter
|
||||
|| event.key == Qt.Key_Return) {
|
||||
contactArea.clicked(undefined)
|
||||
event.accepted = true
|
||||
}
|
||||
}
|
||||
if (event.key == Qt.Key_Space
|
||||
|| event.key == Qt.Key_Enter
|
||||
|| event.key == Qt.Key_Return) {
|
||||
contactArea.clicked(undefined)
|
||||
event.accepted = true
|
||||
}
|
||||
}
|
||||
onClicked: mouse => {
|
||||
forceActiveFocus()
|
||||
if (mouse && mouse.button == Qt.RightButton
|
||||
&& mainItem.showContactMenu) {
|
||||
if (friendPopup) friendPopup.open()
|
||||
} else {
|
||||
mainItem.clicked(mouse)
|
||||
}
|
||||
}
|
||||
forceActiveFocus()
|
||||
if (mouse && mouse.button == Qt.RightButton
|
||||
&& mainItem.showContactMenu) {
|
||||
if (friendPopup) friendPopup.open()
|
||||
} else {
|
||||
mainItem.clicked(mouse)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -170,15 +170,11 @@ ListView {
|
|||
Item {
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
Button {
|
||||
RoundButton {
|
||||
id: headerExpandButton
|
||||
style: ButtonStyle.noBackground
|
||||
icon.source: mainItem.expanded ? AppIcons.upArrow : AppIcons.downArrow
|
||||
Layout.fillHeight: true
|
||||
Layout.preferredWidth: height
|
||||
Layout.rightMargin: Math.round(23 * DefaultStyle.dp)
|
||||
icon.width: Math.round(24 * DefaultStyle.dp)
|
||||
icon.height: Math.round(24 * DefaultStyle.dp)
|
||||
Layout.rightMargin: mainItem.itemsRightMargin
|
||||
focus: true
|
||||
onClicked: mainItem.expanded = !mainItem.expanded
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ RowLayout {
|
|||
property alias callHeaderContent: splitPanel.headerContent
|
||||
property bool replyingToMessage: false
|
||||
spacing: 0
|
||||
enum PanelType { MessageReactions, SharedFiles, Medias, ImdnStatus, ForwardToList, ManageParticipants, EphemeralSettings, None}
|
||||
|
||||
signal oneOneCall(bool video)
|
||||
signal groupCall()
|
||||
|
|
@ -154,18 +155,23 @@ RowLayout {
|
|||
Control.ScrollBar.vertical: scrollbar
|
||||
onShowReactionsForMessageRequested: (chatMessage) => {
|
||||
mainItem.chatMessage = chatMessage
|
||||
contentLoader.showingMessageReactions = true
|
||||
contentLoader.panelType = SelectedChatView.PanelType.MessageReactions
|
||||
detailsPanel.visible = true
|
||||
}
|
||||
onShowImdnStatusForMessageRequested: (chatMessage) => {
|
||||
mainItem.chatMessage = chatMessage
|
||||
contentLoader.showingImdnStatus = true
|
||||
contentLoader.panelType = SelectedChatView.PanelType.ImdnStatus
|
||||
detailsPanel.visible = true
|
||||
}
|
||||
onReplyToMessageRequested: (chatMessage) => {
|
||||
mainItem.chatMessage = chatMessage
|
||||
mainItem.replyingToMessage = true
|
||||
}
|
||||
onForwardMessageRequested: (chatMessage) => {
|
||||
mainItem.chatMessage = chatMessage
|
||||
contentLoader.panelType = SelectedChatView.PanelType.ForwardToList
|
||||
detailsPanel.visible = true
|
||||
}
|
||||
|
||||
Popup {
|
||||
id: emojiPickerPopup
|
||||
|
|
@ -422,8 +428,7 @@ RowLayout {
|
|||
Layout.fillHeight: true
|
||||
Layout.preferredWidth: Math.round(387 * DefaultStyle.dp)
|
||||
onVisibleChanged: if(!visible) {
|
||||
contentLoader.showingMessageReactions = false
|
||||
contentLoader.showingImdnStatus = false
|
||||
contentLoader.panelType = SelectedChatView.PanelType.None
|
||||
}
|
||||
|
||||
background: Rectangle {
|
||||
|
|
@ -433,27 +438,25 @@ RowLayout {
|
|||
|
||||
contentItem: Loader {
|
||||
id: contentLoader
|
||||
property bool showingMessageReactions: false
|
||||
property bool showingSharedFiles: false
|
||||
property bool showingMedias: false
|
||||
property bool showingImdnStatus: false
|
||||
property bool showingManageParticipants: false
|
||||
property bool showingEphemeralSettings: false
|
||||
anchors.top: parent.top
|
||||
property int panelType: SelectedChatView.PanelType.None
|
||||
// anchors.top: parent.top
|
||||
anchors.fill: parent
|
||||
anchors.topMargin: Math.round(39 * DefaultStyle.dp)
|
||||
sourceComponent: showingEphemeralSettings
|
||||
sourceComponent: panelType === SelectedChatView.PanelType.EphemeralSettings
|
||||
? ephemeralSettingsComponent
|
||||
: showingMessageReactions
|
||||
: panelType === SelectedChatView.PanelType.MessageReactions
|
||||
? messageReactionsComponent
|
||||
: showingImdnStatus
|
||||
: panelType === SelectedChatView.PanelType.ImdnStatus
|
||||
? messageImdnStatusComponent
|
||||
: showingSharedFiles
|
||||
: panelType === SelectedChatView.PanelType.SharedFiles || panelType === SelectedChatView.PanelType.Medias
|
||||
? sharedFilesComponent
|
||||
: showingManageParticipants
|
||||
? manageParticipantsComponent
|
||||
: mainItem.chat.core.isGroupChat
|
||||
? groupInfoComponent
|
||||
: oneToOneInfoComponent
|
||||
: panelType === SelectedChatView.PanelType.ForwardToList
|
||||
? forwardToListsComponent
|
||||
: panelType === SelectedChatView.PanelType.ManageParticipants
|
||||
? manageParticipantsComponent
|
||||
: mainItem.chat.core.isGroupChat
|
||||
? groupInfoComponent
|
||||
: oneToOneInfoComponent
|
||||
active: detailsPanel.visible
|
||||
onLoaded: {
|
||||
if (contentLoader.item && contentLoader.item.parentView) {
|
||||
|
|
@ -466,10 +469,9 @@ RowLayout {
|
|||
id: oneToOneInfoComponent
|
||||
OneOneConversationInfos {
|
||||
chatGui: mainItem.chat
|
||||
onEphemeralSettingsRequested: contentLoader.showingEphemeralSettings = true
|
||||
onEphemeralSettingsRequested: contentLoader.panelType = SelectedChatView.PanelType.EphemeralSettings
|
||||
onShowSharedFilesRequested: (showMedias) => {
|
||||
contentLoader.showingSharedFiles = true
|
||||
contentLoader.showingMedias = showMedias
|
||||
contentLoader.panelType = showMedias ? SelectedChatView.PanelType.SharedFiles : SelectedChatView.PanelType.Medias
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -478,12 +480,11 @@ RowLayout {
|
|||
id: groupInfoComponent
|
||||
GroupConversationInfos {
|
||||
chatGui: mainItem.chat
|
||||
onManageParticipantsRequested: contentLoader.showingManageParticipants = true
|
||||
onManageParticipantsRequested: contentLoader.panelType = SelectedChatView.PanelType.ManageParticipants
|
||||
onShowSharedFilesRequested: (showMedias) => {
|
||||
contentLoader.showingSharedFiles = true
|
||||
contentLoader.showingMedias = showMedias
|
||||
contentLoader.panelType = showMedias ? SelectedChatView.PanelType.SharedFiles : SelectedChatView.PanelType.Medias
|
||||
}
|
||||
onEphemeralSettingsRequested: contentLoader.showingEphemeralSettings = true
|
||||
onEphemeralSettingsRequested: contentLoader.panelType = SelectedChatView.PanelType.EphemeralSettings
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -512,15 +513,15 @@ RowLayout {
|
|||
id: sharedFilesComponent
|
||||
MessageSharedFilesInfos {
|
||||
chatGui: mainItem.chat
|
||||
title: contentLoader.showingMedias
|
||||
title: contentLoader.panelType === SelectedChatView.PanelType.Medias
|
||||
//: Shared medias
|
||||
? qsTr("shared_medias_title")
|
||||
//: Shared documents
|
||||
: qsTr("shared_documents_title")
|
||||
filter: contentLoader.showingMedias ? ChatMessageFileProxy.FilterContentType.Medias : ChatMessageFileProxy.FilterContentType.Documents
|
||||
filter: contentLoader.panelType === SelectedChatView.PanelType.Medias ? ChatMessageFileProxy.FilterContentType.Medias : ChatMessageFileProxy.FilterContentType.Documents
|
||||
onGoBackRequested: {
|
||||
// detailsPanel.visible = false
|
||||
contentLoader.showingSharedFiles = false
|
||||
contentLoader.panelType = SelectedChatView.PanelType.SharedFiles
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -529,7 +530,7 @@ RowLayout {
|
|||
id: manageParticipantsComponent
|
||||
ManageParticipants {
|
||||
chatGui: mainItem.chat
|
||||
onDone: contentLoader.showingManageParticipants = false
|
||||
onDone: contentLoader.panelType = SelectedChatView.PanelType.None
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -537,8 +538,98 @@ RowLayout {
|
|||
id: ephemeralSettingsComponent
|
||||
EphemeralSettings {
|
||||
chatGui: mainItem.chat
|
||||
onDone: contentLoader.showingEphemeralSettings = false
|
||||
onDone: contentLoader.panelType = SelectedChatView.PanelType.None
|
||||
}
|
||||
}
|
||||
|
||||
Component {
|
||||
id: forwardToListsComponent
|
||||
MessageInfosLayout {
|
||||
//: Transfer to...
|
||||
title: qsTr("forward_to_title")
|
||||
// width: detailsPanel.width
|
||||
// RectangleTest{anchors.fill: parent}
|
||||
onGoBackRequested: {
|
||||
detailsPanel.visible = false
|
||||
mainItem.chatMessage = null
|
||||
}
|
||||
content: ColumnLayout {
|
||||
spacing: Math.round(31 * DefaultStyle.dp)
|
||||
SearchBar {
|
||||
id: forwardSearchBar
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
Flickable {
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
contentWidth: parent.width
|
||||
// width: parent.width
|
||||
// Control.ScrollBar.vertical: ScrollBar {
|
||||
// id: scrollbar
|
||||
// topPadding: Math.round(24 * DefaultStyle.dp) // Avoid to be on top of collapse button
|
||||
// active: true
|
||||
// interactive: true
|
||||
// visible: parent.contentHeight > parent.height
|
||||
// policy: Control.ScrollBar.AsNeeded
|
||||
// }
|
||||
ColumnLayout {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
spacing: Math.round(8 * DefaultStyle.dp)
|
||||
// width: parent.width //- scrollbar.width - Math.round(5 * DefaultStyle.dp)
|
||||
RowLayout {
|
||||
Text {
|
||||
//: Conversations
|
||||
text: qsTr("conversations_title")
|
||||
font {
|
||||
pixelSize: Typography.h4.pixelSize
|
||||
weight: Typography.h4.weight
|
||||
}
|
||||
}
|
||||
Item{Layout.fillWidth: true}
|
||||
RoundButton {
|
||||
id: expandChatButton
|
||||
style: ButtonStyle.noBackground
|
||||
checkable: true
|
||||
checked: true
|
||||
icon.source: checked ? AppIcons.upArrow : AppIcons.downArrow
|
||||
KeyNavigation.down: contentControl
|
||||
}
|
||||
}
|
||||
ChatListView {
|
||||
visible: expandChatButton.checked
|
||||
searchBar: forwardSearchBar
|
||||
Layout.fillWidth: true
|
||||
Layout.preferredHeight: contentHeight
|
||||
onChatClicked: (chat) => {
|
||||
UtilsCpp.forwardMessageTo(mainItem.chatMessage, chat)
|
||||
mainItem.chat = chat
|
||||
detailsPanel.visible = false
|
||||
}
|
||||
}
|
||||
AllContactListView {
|
||||
visible: expandContactButton.checked
|
||||
Layout.fillWidth: true
|
||||
itemsRightMargin: 0
|
||||
showActions: false
|
||||
showContactMenu: false
|
||||
showFavorites: false
|
||||
searchBarText: forwardSearchBar.text
|
||||
Layout.preferredHeight: contentHeight
|
||||
onContactSelected: contact => selectedFriend = contact
|
||||
property FriendGui selectedFriend
|
||||
property var chatForSelectedAddressObj: selectedFriend ? UtilsCpp.getChatForAddress(selectedFriend.core.defaultAddress) : null
|
||||
property ChatGui chatForAddress: chatForSelectedAddressObj ? chatForSelectedAddressObj.value : null
|
||||
onChatForAddressChanged: if(chatForAddress) {
|
||||
UtilsCpp.forwardMessageTo(mainItem.chatMessage, chatForAddress)
|
||||
mainItem.chat = chatForAddress
|
||||
detailsPanel.visible = false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ MessageInfosLayout {
|
|||
tabbarModel: chatMessageGui ? chatMessageGui.core.imdnStatusListAsString : []
|
||||
listModel: ImdnStatusProxy {
|
||||
imdnStatusList: chatMessageGui ? chatMessageGui.core.imdnStatusList : []
|
||||
filter: chatMessageGui ? chatMessageGui.core.imdnStatusAsSingletons[mainItem.tabbar.currentIndex].state : ""
|
||||
filter: chatMessageGui && chatMessageGui.core.imdnStatusAsSingletons[mainItem.tabbar.currentIndex]?.state || ""
|
||||
}
|
||||
|
||||
listView.delegate: Item {
|
||||
|
|
|
|||
|
|
@ -48,6 +48,7 @@ ColumnLayout {
|
|||
Layout.rightMargin: Math.round(16 * DefaultStyle.dp)
|
||||
TabBar {
|
||||
id: tabbar
|
||||
visible: mainItem.tabbarModel !== undefined
|
||||
Layout.fillWidth: true
|
||||
model: mainItem.tabbarModel
|
||||
pixelSize: Typography.h3m.pixelSize
|
||||
|
|
@ -56,6 +57,7 @@ ColumnLayout {
|
|||
|
||||
ListView {
|
||||
id: listView
|
||||
visible: mainItem.listModel !== undefined
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
spacing: Math.round(11 * DefaultStyle.dp)
|
||||
|
|
|
|||
|
|
@ -196,7 +196,9 @@ AbstractMainPage {
|
|||
|
||||
Connections {
|
||||
target: mainItem
|
||||
onSelectedChatGuiChanged: chatListView.selectChat(mainItem.selectedChatGui)
|
||||
onSelectedChatGuiChanged: {
|
||||
chatListView.selectChat(mainItem.selectedChatGui)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -334,6 +336,7 @@ AbstractMainPage {
|
|||
SelectedChatView {
|
||||
anchors.fill: parent
|
||||
chat: mainItem.selectedChatGui || null
|
||||
onChatChanged: if (mainItem.selectedChatGui !== chat) mainItem.selectedChatGui = chat
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue