fix inifnite loop #LINQT-2002

display name: do not modify username ui if there is not display name set by a user
remove unused signals

fix contact info update chat list #LINQT-1992

send invitations in secured chatrooms #LINQT-1996

extend meeting detail height #LINQT-1999

scrollbar call history #LINQT-1998

do not sort chat list when filtering it #LINQT-2003

remove useless signal which refresh the view for ephemeral messages (fix #LINQT-1989)
This commit is contained in:
Gaelle Braud 2025-09-24 10:05:30 +02:00
parent e901f0046b
commit 013ba607ec
17 changed files with 389 additions and 417 deletions

View file

@ -260,15 +260,6 @@ void AccountCore::setSelf(QSharedPointer<AccountCore> me) {
mAccountModelConnection->makeConnectToCore(&AccountCore::lRefreshNotifications, [this]() {
mAccountModelConnection->invokeToModel([this]() { mAccountModel->refreshUnreadNotifications(); });
});
mAccountModelConnection->makeConnectToCore(&AccountCore::unreadCallNotificationsChanged, [this]() {
mAccountModelConnection->invokeToModel([this]() { CoreModel::getInstance()->unreadNotificationsChanged(); });
});
mAccountModelConnection->makeConnectToCore(&AccountCore::unreadMessageNotificationsChanged, [this]() {
mAccountModelConnection->invokeToModel([this]() { CoreModel::getInstance()->unreadNotificationsChanged(); });
});
mAccountModelConnection->makeConnectToCore(&AccountCore::unreadNotificationsChanged, [this]() {
mAccountModelConnection->invokeToModel([this]() { CoreModel::getInstance()->unreadNotificationsChanged(); });
});
mAccountModelConnection->makeConnectToCore(&AccountCore::lSetDisplayName, [this](QString displayName) {
mAccountModelConnection->invokeToModel([this, displayName]() { mAccountModel->setDisplayName(displayName); });
});

View file

@ -89,24 +89,6 @@ ChatCore::ChatCore(const std::shared_ptr<linphone::ChatRoom> &chatRoom) : QObjec
static_cast<int>(linphone::ChatRoom::HistoryFilter::InfoNoDevice)
: static_cast<int>(linphone::ChatRoom::HistoryFilter::ChatMessage);
// auto history = chatRoom->getHistory(0, filter);
// std::list<std::shared_ptr<linphone::EventLog>> lHistory;
// for (auto &eventLog : history) {
// lHistory.push_back(eventLog);
// }
// QList<QSharedPointer<EventLogCore>> eventList;
// for (auto &event : lHistory) {
// auto eventLogCore = EventLogCore::create(event);
// eventList.append(eventLogCore);
// if (auto isMessage = eventLogCore->getChatMessageCore()) {
// for (auto content : isMessage->getChatMessageContentList()) {
// if (content->isFile() && !content->isVoiceRecording()) {
// mFileList.append(content);
// }
// }
// }
// }
// resetEventLogList(eventList);
mIdentifier = Utils::coreStringToAppString(chatRoom->getIdentifier());
mChatRoomState = LinphoneEnums::fromLinphone(chatRoom->getState());
mIsEncrypted = chatRoom->hasCapability((int)linphone::ChatRoom::Capabilities::Encrypted);
@ -116,25 +98,9 @@ ChatCore::ChatCore(const std::shared_ptr<linphone::ChatRoom> &chatRoom) : QObjec
localAccount && localAccount->getParams() &&
localAccount->getParams()->getInstantMessagingEncryptionMandatory();
mIsReadOnly = chatRoom->isReadOnly() || (!mIsEncrypted && associatedAccountHasIMEncryptionMandatory);
connect(this, &ChatCore::eventListChanged, this, &ChatCore::lUpdateLastMessage);
connect(this, &ChatCore::eventsInserted, this, &ChatCore::lUpdateLastMessage);
connect(this, &ChatCore::eventRemoved, this, &ChatCore::lUpdateLastMessage);
auto resetFileListLambda = [this] {
QList<QSharedPointer<ChatMessageContentCore>> fileList;
// for (auto &eventLogCore : mEventLogList) {
// if (auto isMessage = eventLogCore->getChatMessageCore()) {
// for (auto content : isMessage->getChatMessageContentList()) {
// if (content->isFile() && !content->isVoiceRecording()) {
// fileList.append(content);
// }
// }
// }
// }
resetFileList(fileList);
};
connect(this, &ChatCore::eventListChanged, this, resetFileListLambda);
connect(this, &ChatCore::eventsInserted, this, resetFileListLambda);
connect(this, &ChatCore::eventRemoved, this, resetFileListLambda);
mEphemeralEnabled = chatRoom->ephemeralEnabled();
mEphemeralLifetime = chatRoom->ephemeralEnabled() ? chatRoom->getEphemeralLifetime() : 0;
mIsMuted = chatRoom->getMuted();
@ -674,26 +640,33 @@ void ChatCore::updateInfo(const std::shared_ptr<linphone::Friend> &updatedFriend
auto chatroom = mChatModel->getMonitor();
auto chatRoomAddress = chatroom->getPeerAddress();
if (mChatModel->hasCapability((int)linphone::ChatRoom::Capabilities::Basic)) {
mTitle = ToolModel::getDisplayName(chatRoomAddress);
mAvatarUri = ToolModel::getDisplayName(chatRoomAddress);
emit titleChanged(mTitle);
emit avatarUriChanged();
auto title = ToolModel::getDisplayName(chatRoomAddress);
auto avatarUri = ToolModel::getDisplayName(chatRoomAddress);
mChatModelConnection->invokeToCore([this, title, avatarUri] {
setTitle(title);
setAvatarUri(avatarUri);
});
} else {
if (mChatModel->hasCapability((int)linphone::ChatRoom::Capabilities::OneToOne)) {
auto participants = chatroom->getParticipants();
if (participants.size() > 0) {
auto peer = participants.front();
if (peer) mTitle = ToolModel::getDisplayName(peer->getAddress());
mAvatarUri = ToolModel::getDisplayName(peer->getAddress());
if (participants.size() == 1) {
auto peerAddress = peer->getAddress();
if (peerAddress)
mParticipantAddress = Utils::coreStringToAppString(peerAddress->asStringUriOnly());
if (peer) {
auto title = ToolModel::getDisplayName(peer->getAddress());
auto avatarUri = ToolModel::getDisplayName(peer->getAddress());
mChatModelConnection->invokeToCore([this, title, avatarUri] {
setTitle(title);
setAvatarUri(avatarUri);
});
}
}
} else if (mChatModel->hasCapability((int)linphone::ChatRoom::Capabilities::Conference)) {
mTitle = Utils::coreStringToAppString(chatroom->getSubject());
mAvatarUri = Utils::coreStringToAppString(chatroom->getSubject());
auto title = Utils::coreStringToAppString(chatroom->getSubject());
auto avatarUri = Utils::coreStringToAppString(chatroom->getSubject());
mChatModelConnection->invokeToCore([this, title, avatarUri] {
setTitle(title);
setAvatarUri(avatarUri);
});
}
}
}

View file

@ -161,10 +161,8 @@ signals:
void lastMessageChanged();
void titleChanged(QString title);
void unreadMessagesCountChanged(int count);
void eventListChanged();
void eventListCleared();
void eventsInserted(QList<QSharedPointer<EventLogCore>> list);
void eventRemoved();
void avatarUriChanged();
void deleted();
void composingUserChanged();

View file

@ -75,14 +75,13 @@ void ChatProxy::addChatInList(ChatGui *chatGui) {
}
bool ChatProxy::SortFilterList::filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const {
// auto l = getItemAtSource<ChatList, ChatCore>(sourceRow);
// return l != nullptr;
return true;
}
bool ChatProxy::SortFilterList::lessThan(const QModelIndex &sourceLeft, const QModelIndex &sourceRight) const {
if (!mFilterText.isEmpty()) return false;
auto l = getItemAtSource<ChatList, ChatCore>(sourceLeft.row());
auto r = getItemAtSource<ChatList, ChatCore>(sourceRight.row());
if (l && r) return l->getLastUpdatedTime() >= r->getLastUpdatedTime();
else return true;
return false;
}

View file

@ -78,23 +78,16 @@ void EventLogList::connectItem(const QSharedPointer<EventLogCore> &item) {
if (mChatCore) emit mChatCore->lUpdateLastMessage();
remove(item);
});
connect(message.get(), &ChatMessageCore::ephemeralDurationChanged, this, [this, item](int duration) {
int i;
get(item.get(), &i);
emit dataChanged(index(i), index(i));
});
}
}
void EventLogList::setChatCore(QSharedPointer<ChatCore> core) {
if (mChatCore != core) {
if (mChatCore) {
disconnect(mChatCore.get(), &ChatCore::eventListChanged, this, nullptr);
disconnect(mChatCore.get(), &ChatCore::eventsInserted, this, nullptr);
}
mChatCore = core;
if (mChatCore) {
connect(mChatCore.get(), &ChatCore::eventListChanged, this, &EventLogList::lUpdate);
connect(mChatCore.get(), &ChatCore::eventListCleared, this, [this] { resetData(); });
connect(mChatCore.get(), &ChatCore::eventsInserted, this, [this](QList<QSharedPointer<EventLogCore>> list) {
auto eventsList = getSharedList<EventLogCore>();

View file

@ -27,45 +27,45 @@
<context>
<name>AccountCore</name>
<message>
<location filename="../../core/account/AccountCore.cpp" line="445"/>
<location filename="../../core/account/AccountCore.cpp" line="436"/>
<source>drawer_menu_account_connection_status_connected</source>
<extracomment>&quot;Connecté&quot;</extracomment>
<translation>Verbunden</translation>
</message>
<message>
<location filename="../../core/account/AccountCore.cpp" line="448"/>
<location filename="../../core/account/AccountCore.cpp" line="439"/>
<source>drawer_menu_account_connection_status_refreshing</source>
<translation>Aktualisiere</translation>
</message>
<message>
<location filename="../../core/account/AccountCore.cpp" line="451"/>
<location filename="../../core/account/AccountCore.cpp" line="442"/>
<source>drawer_menu_account_connection_status_progress</source>
<translation>Verbinde</translation>
</message>
<message>
<location filename="../../core/account/AccountCore.cpp" line="454"/>
<location filename="../../core/account/AccountCore.cpp" line="445"/>
<source>drawer_menu_account_connection_status_failed</source>
<translation>Fehler</translation>
</message>
<message>
<location filename="../../core/account/AccountCore.cpp" line="458"/>
<location filename="../../core/account/AccountCore.cpp" line="449"/>
<source>drawer_menu_account_connection_status_cleared</source>
<translation>Deaktiviert</translation>
</message>
<message>
<location filename="../../core/account/AccountCore.cpp" line="492"/>
<location filename="../../core/account/AccountCore.cpp" line="483"/>
<source>manage_account_status_connected_summary</source>
<extracomment>&quot;Vous êtes en ligne et joignable.&quot;</extracomment>
<translation>Sie sind online und erreichbar.</translation>
</message>
<message>
<location filename="../../core/account/AccountCore.cpp" line="495"/>
<location filename="../../core/account/AccountCore.cpp" line="486"/>
<source>manage_account_status_failed_summary</source>
<extracomment>&quot;Erreur de connexion, vérifiez vos paramètres.&quot;</extracomment>
<translation>Verbindungsfehler, überprüfen Sie Ihre Einstellungen.</translation>
</message>
<message>
<location filename="../../core/account/AccountCore.cpp" line="499"/>
<location filename="../../core/account/AccountCore.cpp" line="490"/>
<source>manage_account_status_cleared_summary</source>
<extracomment>&quot;Compte désactivé, vous ne recevrez ni appel ni message.&quot;</extracomment>
<translation>Konto deaktiviert, Sie erhalten keine Anrufe oder Nachrichten.</translation>
@ -867,25 +867,25 @@
<translation type="vanished">Offline</translation>
</message>
<message>
<location filename="../../view/Control/Container/Call/CallHistoryLayout.qml" line="117"/>
<location filename="../../view/Control/Container/Call/CallHistoryLayout.qml" line="116"/>
<source>meeting_info_join_title</source>
<extracomment>&quot;Rejoindre la réunion&quot;</extracomment>
<translation>Besprechung beitreten</translation>
</message>
<message>
<location filename="../../view/Control/Container/Call/CallHistoryLayout.qml" line="135"/>
<location filename="../../view/Control/Container/Call/CallHistoryLayout.qml" line="134"/>
<source>contact_call_action</source>
<extracomment>&quot;Appel&quot;</extracomment>
<translation>Anrufen</translation>
</message>
<message>
<location filename="../../view/Control/Container/Call/CallHistoryLayout.qml" line="149"/>
<location filename="../../view/Control/Container/Call/CallHistoryLayout.qml" line="148"/>
<source>contact_message_action</source>
<extracomment>&quot;Message&quot;</extracomment>
<translation>Nachricht</translation>
</message>
<message>
<location filename="../../view/Control/Container/Call/CallHistoryLayout.qml" line="165"/>
<location filename="../../view/Control/Container/Call/CallHistoryLayout.qml" line="164"/>
<source>contact_video_call_action</source>
<extracomment>&quot;Appel Video&quot;</extracomment>
<translation>Videoanruf</translation>
@ -1077,7 +1077,7 @@
</message>
<message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="168"/>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="529"/>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="527"/>
<source>menu_delete_history</source>
<extracomment>&quot;Supprimer l&apos;historique&quot;</extracomment>
<translation>Verlauf löschen</translation>
@ -1149,7 +1149,7 @@
<message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="410"/>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="414"/>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="505"/>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="503"/>
<source>information_popup_error_title</source>
<translation>Fehler</translation>
</message>
@ -1166,55 +1166,55 @@
<translation>Sie sind nicht verbunden</translation>
</message>
<message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="470"/>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="468"/>
<source>menu_see_existing_contact</source>
<extracomment>&quot;Show contact&quot;</extracomment>
<translation>Kontakt anzeigen</translation>
</message>
<message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="472"/>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="470"/>
<source>menu_add_address_to_contacts</source>
<extracomment>&quot;Add to contacts&quot;</extracomment>
<translation>Zu Kontakten hinzufügen</translation>
</message>
<message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="487"/>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="485"/>
<source>menu_copy_sip_address</source>
<extracomment>&quot;Copier l&apos;adresse SIP&quot;</extracomment>
<translation>SIP-Adresse kopieren</translation>
</message>
<message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="499"/>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="497"/>
<source>sip_address_copied_to_clipboard_toast</source>
<extracomment>Adresse copiée</extracomment>
<translation>SIP-Adresse kopiert</translation>
</message>
<message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="501"/>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="499"/>
<source>sip_address_copied_to_clipboard_message</source>
<extracomment>L&apos;adresse a é copié dans le presse_papiers</extracomment>
<translation>Die Adresse wurde in die Zwischenablage kopiert</translation>
</message>
<message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="507"/>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="505"/>
<source>sip_address_copy_to_clipboard_error</source>
<extracomment>&quot;Erreur lors de la copie de l&apos;adresse&quot;</extracomment>
<translation>Fehler beim Kopieren der Adresse</translation>
</message>
<message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="605"/>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="612"/>
<source>notification_missed_call_title</source>
<extracomment>&quot;Appel manqué&quot;</extracomment>
<translation>Verpasster Anruf</translation>
</message>
<message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="608"/>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="615"/>
<source>call_outgoing</source>
<extracomment>&quot;Appel sortant&quot;</extracomment>
<translation>Ausgehender Anruf</translation>
</message>
<message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="610"/>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="617"/>
<source>call_audio_incoming</source>
<extracomment>&quot;Appel entrant&quot;</extracomment>
<translation>Eingehender Anruf</translation>
@ -1822,13 +1822,13 @@
<context>
<name>ChatCore</name>
<message>
<location filename="../../core/chat/ChatCore.cpp" line="176"/>
<location filename="../../core/chat/ChatCore.cpp" line="142"/>
<source>info_toast_deleted_title</source>
<extracomment>Deleted</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../core/chat/ChatCore.cpp" line="178"/>
<location filename="../../core/chat/ChatCore.cpp" line="144"/>
<source>info_toast_deleted_message_history</source>
<extracomment>Message history has been deleted</extracomment>
<translation type="unfinished"></translation>
@ -1852,65 +1852,65 @@
<context>
<name>ChatListView</name>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="286"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="285"/>
<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="288"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="287"/>
<source>chat_message_draft_sending_text</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="430"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="429"/>
<source>chat_room_delete</source>
<extracomment>&quot;Delete&quot;</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="370"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="369"/>
<source>chat_room_mute</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="369"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="368"/>
<source>chat_room_unmute</source>
<extracomment>&quot;Mute&quot;</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="382"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="381"/>
<source>chat_room_mark_as_read</source>
<extracomment>&quot;Mark as read&quot;</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="401"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="400"/>
<source>chat_room_leave</source>
<extracomment>&quot;leave&quot;</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="407"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="406"/>
<source>chat_list_leave_chat_popup_title</source>
<extracomment>leave the conversation ?</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="409"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="408"/>
<source>chat_list_leave_chat_popup_message</source>
<extracomment>You will not be able to send or receive messages in this conversation anymore. Do You want to continue ?</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="436"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="435"/>
<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="438"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="437"/>
<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>
@ -3244,42 +3244,42 @@ Error</extracomment>
<context>
<name>EphemeralSettings</name>
<message>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="58"/>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="57"/>
<source>title</source>
<translation>Ephemeral messages</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="77"/>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="76"/>
<source>explanations</source>
<translation>By enabling ephemeral messages in this chat, messages sent will be automatically deleted after the defined period.</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="22"/>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="21"/>
<source>one_minute</source>
<translation>1 minute</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="23"/>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="22"/>
<source>one_hour</source>
<translation>1 hour</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="24"/>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="23"/>
<source>one_day</source>
<translation>1 day</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="25"/>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="24"/>
<source>one_week</source>
<translation>1 week</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="26"/>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="25"/>
<source>disabled</source>
<translation>Disabled</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="35"/>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="34"/>
<source>custom</source>
<translation>Custom: </translation>
</message>
@ -4092,110 +4092,110 @@ Error</extracomment>
<translation>Zurück</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="180"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="179"/>
<source>meetings_list_title</source>
<extracomment>Réunions</extracomment>
<translation>Besprechungen</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="219"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="218"/>
<source>meetings_search_hint</source>
<extracomment>&quot;Rechercher une réunion&quot;</extracomment>
<translation>Besprechung suchen</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="236"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="235"/>
<source>list_filter_no_result_found</source>
<extracomment>&quot;Aucun résultat&quot;</extracomment>
<translation>Kein Ergebnis</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="238"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="237"/>
<source>meetings_empty_list</source>
<extracomment>&quot;Aucune réunion&quot;</extracomment>
<translation>Keine Besprechungen</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="308"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="369"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="307"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="368"/>
<source>meeting_schedule_title</source>
<extracomment>&quot;Nouvelle réunion&quot;</extracomment>
<translation>Neue Besprechung</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="319"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="318"/>
<source>create</source>
<translation>Erstellen</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="326"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="330"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="381"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="482"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="485"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="533"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="325"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="329"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="380"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="481"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="484"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="532"/>
<source>information_popup_error_title</source>
<translation>Fehler</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="328"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="483"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="327"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="482"/>
<source>meeting_schedule_mandatory_field_not_filled_toast</source>
<extracomment>Veuillez saisir un titre et sélectionner au moins un participant</extracomment>
<translation>Bitte Titel bestimmen und mindestens einen Teilnehmer auswählen</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="332"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="486"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="331"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="485"/>
<source>meeting_schedule_duration_error_toast</source>
<extracomment>&quot;La fin de la conférence doit être plus récente que son début&quot;</extracomment>
<translation>Das Ende der Besprechung muss nach dem Beginn liegen</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="336"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="376"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="335"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="375"/>
<source>meeting_schedule_creation_in_progress</source>
<extracomment>&quot;Création de la réunion en cours &quot;</extracomment>
<translation>Besprechung wird erstellt</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="371"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="370"/>
<source>meeting_info_created_toast</source>
<extracomment>&quot;Réunion planifiée avec succès&quot;</extracomment>
<translation>Besprechung erfolgreich erstellt</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="383"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="382"/>
<source>meeting_failed_to_schedule_toast</source>
<extracomment>&quot;Échec de création de la réunion !&quot;</extracomment>
<translation>Besprechung konnte nicht erstellt werden!</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="475"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="474"/>
<source>save</source>
<translation>Speichern</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="524"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="758"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="523"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="759"/>
<source>saved</source>
<extracomment>&quot;Enregistré&quot;</extracomment>
<translation>Gespeichert</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="526"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="525"/>
<source>meeting_info_updated_toast</source>
<extracomment>&quot;Réunion mise à jour&quot;</extracomment>
<translation>Besprechung geändert</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="531"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="530"/>
<source>meeting_schedule_edit_in_progress</source>
<extracomment>&quot;Modification de la réunion en cours&quot;</extracomment>
<translation>Bersprechung wird geändert</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="535"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="534"/>
<source>meeting_failed_to_edit_toast</source>
<extracomment>&quot;Échec de la modification de la réunion !&quot;</extracomment>
<translation>Besprechung konnte nicht geändert werden!</translation>
@ -4225,19 +4225,19 @@ Error</extracomment>
</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="688"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="690"/>
<source>meeting_info_delete</source>
<extracomment>&quot;Supprimer la réunion&quot;</extracomment>
<translation>Besprechung löschen</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="760"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="761"/>
<source>meeting_address_copied_to_clipboard_toast</source>
<extracomment>&quot;Adresse de la réunion copiée&quot;</extracomment>
<translation>Besprechungs-URI kopiert</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="796"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="797"/>
<source>meeting_schedule_timezone_title</source>
<extracomment>&quot;Fuseau horaire&quot;</extracomment>
<translation>Zeitzone</translation>
@ -4389,19 +4389,19 @@ Error</extracomment>
<context>
<name>NotificationReceivedCall</name>
<message>
<location filename="../../view/Control/Popup/Notification/NotificationReceivedCall.qml" line="93"/>
<location filename="../../view/Control/Popup/Notification/NotificationReceivedCall.qml" line="94"/>
<source>call_audio_incoming</source>
<extracomment>&quot;Appel entrant&quot;</extracomment>
<translation>Eingehender Anruf</translation>
</message>
<message>
<location filename="../../view/Control/Popup/Notification/NotificationReceivedCall.qml" line="116"/>
<location filename="../../view/Control/Popup/Notification/NotificationReceivedCall.qml" line="117"/>
<source>dialog_accept</source>
<extracomment>&quot;Accepter&quot;</extracomment>
<translation>Akzeptieren</translation>
</message>
<message>
<location filename="../../view/Control/Popup/Notification/NotificationReceivedCall.qml" line="134"/>
<location filename="../../view/Control/Popup/Notification/NotificationReceivedCall.qml" line="135"/>
<source>dialog_deny</source>
<extracomment>&quot;Refuser</extracomment>
<translation>Ablehnen</translation>
@ -5238,49 +5238,49 @@ Pour les activer dans un projet commercial, merci de nous contacter.</source>
<context>
<name>ToolModel</name>
<message>
<location filename="../../model/tool/ToolModel.cpp" line="298"/>
<location filename="../../model/tool/ToolModel.cpp" line="311"/>
<source>call_error_uninterpretable_sip_address</source>
<extracomment>&quot;The calling address is not an interpretable SIP address : %1</extracomment>
<translation>Die Anrufadresse ist keine interpretierbare SIP-Adresse: %1</translation>
</message>
<message>
<location filename="../../model/tool/ToolModel.cpp" line="370"/>
<location filename="../../model/tool/ToolModel.cpp" line="383"/>
<source>group_call_error_no_account</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../model/tool/ToolModel.cpp" line="395"/>
<location filename="../../model/tool/ToolModel.cpp" line="408"/>
<source>group_call_error_participants_invite</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../model/tool/ToolModel.cpp" line="399"/>
<location filename="../../model/tool/ToolModel.cpp" line="412"/>
<source>group_call_error_creation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../model/tool/ToolModel.cpp" line="499"/>
<location filename="../../model/tool/ToolModel.cpp" line="512"/>
<source>voice_recording_duration</source>
<extracomment>&quot;Voice recording (%1)&quot; : %1 is the duration formated in mm:ss</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../model/tool/ToolModel.cpp" line="507"/>
<location filename="../../model/tool/ToolModel.cpp" line="520"/>
<source>conference_invitation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../model/tool/ToolModel.cpp" line="509"/>
<location filename="../../model/tool/ToolModel.cpp" line="522"/>
<source>conference_invitation_updated</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../model/tool/ToolModel.cpp" line="511"/>
<location filename="../../model/tool/ToolModel.cpp" line="524"/>
<source>conference_invitation_cancelled</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../model/tool/ToolModel.cpp" line="572"/>
<location filename="../../model/tool/ToolModel.cpp" line="585"/>
<source>unknown_audio_device_name</source>
<translation>Unbekannter Gerätename</translation>
</message>

View file

@ -27,45 +27,45 @@
<context>
<name>AccountCore</name>
<message>
<location filename="../../core/account/AccountCore.cpp" line="445"/>
<location filename="../../core/account/AccountCore.cpp" line="436"/>
<source>drawer_menu_account_connection_status_connected</source>
<extracomment>&quot;Connecté&quot;</extracomment>
<translation>Connected</translation>
</message>
<message>
<location filename="../../core/account/AccountCore.cpp" line="448"/>
<location filename="../../core/account/AccountCore.cpp" line="439"/>
<source>drawer_menu_account_connection_status_refreshing</source>
<translation>Refreshing</translation>
</message>
<message>
<location filename="../../core/account/AccountCore.cpp" line="451"/>
<location filename="../../core/account/AccountCore.cpp" line="442"/>
<source>drawer_menu_account_connection_status_progress</source>
<translation>Connecting</translation>
</message>
<message>
<location filename="../../core/account/AccountCore.cpp" line="454"/>
<location filename="../../core/account/AccountCore.cpp" line="445"/>
<source>drawer_menu_account_connection_status_failed</source>
<translation>Error</translation>
</message>
<message>
<location filename="../../core/account/AccountCore.cpp" line="458"/>
<location filename="../../core/account/AccountCore.cpp" line="449"/>
<source>drawer_menu_account_connection_status_cleared</source>
<translation>Disabled</translation>
</message>
<message>
<location filename="../../core/account/AccountCore.cpp" line="492"/>
<location filename="../../core/account/AccountCore.cpp" line="483"/>
<source>manage_account_status_connected_summary</source>
<extracomment>&quot;Vous êtes en ligne et joignable.&quot;</extracomment>
<translation>You are online and reachable.</translation>
</message>
<message>
<location filename="../../core/account/AccountCore.cpp" line="495"/>
<location filename="../../core/account/AccountCore.cpp" line="486"/>
<source>manage_account_status_failed_summary</source>
<extracomment>&quot;Erreur de connexion, vérifiez vos paramètres.&quot;</extracomment>
<translation>Connection error, check your settings.</translation>
</message>
<message>
<location filename="../../core/account/AccountCore.cpp" line="499"/>
<location filename="../../core/account/AccountCore.cpp" line="490"/>
<source>manage_account_status_cleared_summary</source>
<extracomment>&quot;Compte désactivé, vous ne recevrez ni appel ni message.&quot;</extracomment>
<translation>Account disabled, you will not receive calls or messages.</translation>
@ -847,25 +847,25 @@
<context>
<name>CallHistoryLayout</name>
<message>
<location filename="../../view/Control/Container/Call/CallHistoryLayout.qml" line="117"/>
<location filename="../../view/Control/Container/Call/CallHistoryLayout.qml" line="116"/>
<source>meeting_info_join_title</source>
<extracomment>&quot;Rejoindre la réunion&quot;</extracomment>
<translation>Join meeting</translation>
</message>
<message>
<location filename="../../view/Control/Container/Call/CallHistoryLayout.qml" line="135"/>
<location filename="../../view/Control/Container/Call/CallHistoryLayout.qml" line="134"/>
<source>contact_call_action</source>
<extracomment>&quot;Appel&quot;</extracomment>
<translation>Call</translation>
</message>
<message>
<location filename="../../view/Control/Container/Call/CallHistoryLayout.qml" line="149"/>
<location filename="../../view/Control/Container/Call/CallHistoryLayout.qml" line="148"/>
<source>contact_message_action</source>
<extracomment>&quot;Message&quot;</extracomment>
<translation>Message</translation>
</message>
<message>
<location filename="../../view/Control/Container/Call/CallHistoryLayout.qml" line="165"/>
<location filename="../../view/Control/Container/Call/CallHistoryLayout.qml" line="164"/>
<source>contact_video_call_action</source>
<extracomment>&quot;Appel Video&quot;</extracomment>
<translation>Video call</translation>
@ -1067,7 +1067,7 @@
</message>
<message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="168"/>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="529"/>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="527"/>
<source>menu_delete_history</source>
<extracomment>&quot;Supprimer l&apos;historique&quot;</extracomment>
<translation>Delete history</translation>
@ -1111,7 +1111,7 @@
<message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="410"/>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="414"/>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="505"/>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="503"/>
<source>information_popup_error_title</source>
<translation>Error</translation>
</message>
@ -1128,55 +1128,55 @@
<translation>You are not connected</translation>
</message>
<message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="470"/>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="468"/>
<source>menu_see_existing_contact</source>
<extracomment>&quot;Show contact&quot;</extracomment>
<translation>Show contact</translation>
</message>
<message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="472"/>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="470"/>
<source>menu_add_address_to_contacts</source>
<extracomment>&quot;Add to contacts&quot;</extracomment>
<translation>Add to contacts</translation>
</message>
<message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="487"/>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="485"/>
<source>menu_copy_sip_address</source>
<extracomment>&quot;Copier l&apos;adresse SIP&quot;</extracomment>
<translation>Copy SIP address</translation>
</message>
<message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="499"/>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="497"/>
<source>sip_address_copied_to_clipboard_toast</source>
<extracomment>Adresse copiée</extracomment>
<translation>SIP address copied</translation>
</message>
<message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="501"/>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="499"/>
<source>sip_address_copied_to_clipboard_message</source>
<extracomment>L&apos;adresse a é copié dans le presse_papiers</extracomment>
<translation>The address has been copied to the clipboard</translation>
</message>
<message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="507"/>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="505"/>
<source>sip_address_copy_to_clipboard_error</source>
<extracomment>&quot;Erreur lors de la copie de l&apos;adresse&quot;</extracomment>
<translation>Error copying address</translation>
</message>
<message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="605"/>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="612"/>
<source>notification_missed_call_title</source>
<extracomment>&quot;Appel manqué&quot;</extracomment>
<translation>Missed call</translation>
</message>
<message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="608"/>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="615"/>
<source>call_outgoing</source>
<extracomment>&quot;Appel sortant&quot;</extracomment>
<translation>Outgoing call</translation>
</message>
<message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="610"/>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="617"/>
<source>call_audio_incoming</source>
<extracomment>&quot;Appel entrant&quot;</extracomment>
<translation>Incoming call</translation>
@ -1784,13 +1784,13 @@
<context>
<name>ChatCore</name>
<message>
<location filename="../../core/chat/ChatCore.cpp" line="176"/>
<location filename="../../core/chat/ChatCore.cpp" line="142"/>
<source>info_toast_deleted_title</source>
<extracomment>Deleted</extracomment>
<translation>Deleted</translation>
</message>
<message>
<location filename="../../core/chat/ChatCore.cpp" line="178"/>
<location filename="../../core/chat/ChatCore.cpp" line="144"/>
<source>info_toast_deleted_message_history</source>
<extracomment>Message history has been deleted</extracomment>
<translation>Message history has been deleted</translation>
@ -1814,65 +1814,65 @@
<context>
<name>ChatListView</name>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="286"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="285"/>
<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="288"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="287"/>
<source>chat_message_draft_sending_text</source>
<translation>Draft : %1</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="430"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="429"/>
<source>chat_room_delete</source>
<extracomment>&quot;Delete&quot;</extracomment>
<translation>Delete</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="370"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="369"/>
<source>chat_room_mute</source>
<translation>Mute</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="369"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="368"/>
<source>chat_room_unmute</source>
<extracomment>&quot;Mute&quot;</extracomment>
<translation>Unmute</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="382"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="381"/>
<source>chat_room_mark_as_read</source>
<extracomment>&quot;Mark as read&quot;</extracomment>
<translation>Mark as read</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="401"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="400"/>
<source>chat_room_leave</source>
<extracomment>&quot;leave&quot;</extracomment>
<translation>Leave</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="407"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="406"/>
<source>chat_list_leave_chat_popup_title</source>
<extracomment>leave the conversation ?</extracomment>
<translation>Leave the conversation ?</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="409"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="408"/>
<source>chat_list_leave_chat_popup_message</source>
<extracomment>You will not be able to send or receive messages in this conversation anymore. Do You want to continue ?</extracomment>
<translation>You will not be able to send or receive messages in this conversation anymore. Do You want to continue ?</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="436"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="435"/>
<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="438"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="437"/>
<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>
@ -3157,42 +3157,42 @@ Only your correspondent can decrypt them.</translation>
<context>
<name>EphemeralSettings</name>
<message>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="58"/>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="57"/>
<source>title</source>
<translation>Ephemeral messages</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="77"/>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="76"/>
<source>explanations</source>
<translation>By enabling ephemeral messages in this chat, messages sent will be automatically deleted after the defined period.</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="22"/>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="21"/>
<source>one_minute</source>
<translation>1 minute</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="23"/>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="22"/>
<source>one_hour</source>
<translation>1 hour</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="24"/>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="23"/>
<source>one_day</source>
<translation>1 day</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="25"/>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="24"/>
<source>one_week</source>
<translation>1 week</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="26"/>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="25"/>
<source>disabled</source>
<translation>Disabled</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="35"/>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="34"/>
<source>custom</source>
<translation>Custom: </translation>
</message>
@ -4002,110 +4002,110 @@ Expiration : %1</translation>
<translation>Back</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="180"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="179"/>
<source>meetings_list_title</source>
<extracomment>Réunions</extracomment>
<translation>Meetings</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="219"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="218"/>
<source>meetings_search_hint</source>
<extracomment>&quot;Rechercher une réunion&quot;</extracomment>
<translation>Find meeting</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="236"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="235"/>
<source>list_filter_no_result_found</source>
<extracomment>&quot;Aucun résultat&quot;</extracomment>
<translation>No result</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="238"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="237"/>
<source>meetings_empty_list</source>
<extracomment>&quot;Aucune réunion&quot;</extracomment>
<translation>No meeting</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="308"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="369"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="307"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="368"/>
<source>meeting_schedule_title</source>
<extracomment>&quot;Nouvelle réunion&quot;</extracomment>
<translation>New meeting</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="319"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="318"/>
<source>create</source>
<translation>Create</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="326"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="330"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="381"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="482"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="485"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="533"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="325"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="329"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="380"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="481"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="484"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="532"/>
<source>information_popup_error_title</source>
<translation>Error</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="328"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="483"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="327"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="482"/>
<source>meeting_schedule_mandatory_field_not_filled_toast</source>
<extracomment>Veuillez saisir un titre et sélectionner au moins un participant</extracomment>
<translation>Please fill the title and select at least one participant</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="332"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="486"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="331"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="485"/>
<source>meeting_schedule_duration_error_toast</source>
<extracomment>&quot;La fin de la conférence doit être plus récente que son début&quot;</extracomment>
<translation>The end of the conference must be more recent than its beginning</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="336"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="376"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="335"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="375"/>
<source>meeting_schedule_creation_in_progress</source>
<extracomment>&quot;Création de la réunion en cours &quot;</extracomment>
<translation>Creation in progress</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="371"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="370"/>
<source>meeting_info_created_toast</source>
<extracomment>&quot;Réunion planifiée avec succès&quot;</extracomment>
<translation>Meeting successfully created</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="383"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="382"/>
<source>meeting_failed_to_schedule_toast</source>
<extracomment>&quot;Échec de création de la réunion !&quot;</extracomment>
<translation>Failed to create meeting!</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="475"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="474"/>
<source>save</source>
<translation>Save</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="524"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="758"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="523"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="759"/>
<source>saved</source>
<extracomment>&quot;Enregistré&quot;</extracomment>
<translation>Saved</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="526"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="525"/>
<source>meeting_info_updated_toast</source>
<extracomment>&quot;Réunion mise à jour&quot;</extracomment>
<translation>Meeting updated</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="531"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="530"/>
<source>meeting_schedule_edit_in_progress</source>
<extracomment>&quot;Modification de la réunion en cours&quot;</extracomment>
<translation>Meeting update in progress</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="535"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="534"/>
<source>meeting_failed_to_edit_toast</source>
<extracomment>&quot;Échec de la modification de la réunion !&quot;</extracomment>
<translation>Failed to update meeting !</translation>
@ -4131,19 +4131,19 @@ Expiration : %1</translation>
</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="688"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="690"/>
<source>meeting_info_delete</source>
<extracomment>&quot;Supprimer la réunion&quot;</extracomment>
<translation>Delete meeting</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="760"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="761"/>
<source>meeting_address_copied_to_clipboard_toast</source>
<extracomment>&quot;Adresse de la réunion copiée&quot;</extracomment>
<translation>Meeting URI copied</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="796"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="797"/>
<source>meeting_schedule_timezone_title</source>
<extracomment>&quot;Fuseau horaire&quot;</extracomment>
<translation>Timezone</translation>
@ -4290,19 +4290,19 @@ Expiration : %1</translation>
<context>
<name>NotificationReceivedCall</name>
<message>
<location filename="../../view/Control/Popup/Notification/NotificationReceivedCall.qml" line="93"/>
<location filename="../../view/Control/Popup/Notification/NotificationReceivedCall.qml" line="94"/>
<source>call_audio_incoming</source>
<extracomment>&quot;Appel entrant&quot;</extracomment>
<translation>Incoming call</translation>
</message>
<message>
<location filename="../../view/Control/Popup/Notification/NotificationReceivedCall.qml" line="116"/>
<location filename="../../view/Control/Popup/Notification/NotificationReceivedCall.qml" line="117"/>
<source>dialog_accept</source>
<extracomment>&quot;Accepter&quot;</extracomment>
<translation>Accept</translation>
</message>
<message>
<location filename="../../view/Control/Popup/Notification/NotificationReceivedCall.qml" line="134"/>
<location filename="../../view/Control/Popup/Notification/NotificationReceivedCall.qml" line="135"/>
<source>dialog_deny</source>
<extracomment>&quot;Refuser</extracomment>
<translation>Decline</translation>
@ -5127,49 +5127,49 @@ To enable them in a commercial project, please contact us.</translation>
<context>
<name>ToolModel</name>
<message>
<location filename="../../model/tool/ToolModel.cpp" line="298"/>
<location filename="../../model/tool/ToolModel.cpp" line="311"/>
<source>call_error_uninterpretable_sip_address</source>
<extracomment>&quot;The calling address is not an interpretable SIP address : %1</extracomment>
<translation>The calling address is not an interpretable SIP address : %1</translation>
</message>
<message>
<location filename="../../model/tool/ToolModel.cpp" line="370"/>
<location filename="../../model/tool/ToolModel.cpp" line="383"/>
<source>group_call_error_no_account</source>
<translation>No default account found, can&apos;t create group call</translation>
</message>
<message>
<location filename="../../model/tool/ToolModel.cpp" line="395"/>
<location filename="../../model/tool/ToolModel.cpp" line="408"/>
<source>group_call_error_participants_invite</source>
<translation>Couldn&apos;t invite participants to group call</translation>
</message>
<message>
<location filename="../../model/tool/ToolModel.cpp" line="399"/>
<location filename="../../model/tool/ToolModel.cpp" line="412"/>
<source>group_call_error_creation</source>
<translation>Group call couldn&apos;t be created</translation>
</message>
<message>
<location filename="../../model/tool/ToolModel.cpp" line="499"/>
<location filename="../../model/tool/ToolModel.cpp" line="512"/>
<source>voice_recording_duration</source>
<extracomment>&quot;Voice recording (%1)&quot; : %1 is the duration formated in mm:ss</extracomment>
<translation>Voice recording (%1)</translation>
</message>
<message>
<location filename="../../model/tool/ToolModel.cpp" line="572"/>
<location filename="../../model/tool/ToolModel.cpp" line="585"/>
<source>unknown_audio_device_name</source>
<translation>Unknown device name</translation>
</message>
<message>
<location filename="../../model/tool/ToolModel.cpp" line="507"/>
<location filename="../../model/tool/ToolModel.cpp" line="520"/>
<source>conference_invitation</source>
<translation>Meeting invitation</translation>
</message>
<message>
<location filename="../../model/tool/ToolModel.cpp" line="511"/>
<location filename="../../model/tool/ToolModel.cpp" line="524"/>
<source>conference_invitation_cancelled</source>
<translation>Meeting cancellation</translation>
</message>
<message>
<location filename="../../model/tool/ToolModel.cpp" line="509"/>
<location filename="../../model/tool/ToolModel.cpp" line="522"/>
<source>conference_invitation_updated</source>
<translation>Meeting modification</translation>
</message>

View file

@ -27,45 +27,45 @@
<context>
<name>AccountCore</name>
<message>
<location filename="../../core/account/AccountCore.cpp" line="445"/>
<location filename="../../core/account/AccountCore.cpp" line="436"/>
<source>drawer_menu_account_connection_status_connected</source>
<extracomment>&quot;Connecté&quot;</extracomment>
<translation>Connecté</translation>
</message>
<message>
<location filename="../../core/account/AccountCore.cpp" line="448"/>
<location filename="../../core/account/AccountCore.cpp" line="439"/>
<source>drawer_menu_account_connection_status_refreshing</source>
<translation>En cours de rafraîchissement</translation>
</message>
<message>
<location filename="../../core/account/AccountCore.cpp" line="451"/>
<location filename="../../core/account/AccountCore.cpp" line="442"/>
<source>drawer_menu_account_connection_status_progress</source>
<translation>Connexion</translation>
</message>
<message>
<location filename="../../core/account/AccountCore.cpp" line="454"/>
<location filename="../../core/account/AccountCore.cpp" line="445"/>
<source>drawer_menu_account_connection_status_failed</source>
<translation>Erreur</translation>
</message>
<message>
<location filename="../../core/account/AccountCore.cpp" line="458"/>
<location filename="../../core/account/AccountCore.cpp" line="449"/>
<source>drawer_menu_account_connection_status_cleared</source>
<translation>Désactivé</translation>
</message>
<message>
<location filename="../../core/account/AccountCore.cpp" line="492"/>
<location filename="../../core/account/AccountCore.cpp" line="483"/>
<source>manage_account_status_connected_summary</source>
<extracomment>&quot;Vous êtes en ligne et joignable.&quot;</extracomment>
<translation>Vous êtes en ligne et joignable.</translation>
</message>
<message>
<location filename="../../core/account/AccountCore.cpp" line="495"/>
<location filename="../../core/account/AccountCore.cpp" line="486"/>
<source>manage_account_status_failed_summary</source>
<extracomment>&quot;Erreur de connexion, vérifiez vos paramètres.&quot;</extracomment>
<translation>Erreur de connexion, vérifiez vos paramètres.</translation>
</message>
<message>
<location filename="../../core/account/AccountCore.cpp" line="499"/>
<location filename="../../core/account/AccountCore.cpp" line="490"/>
<source>manage_account_status_cleared_summary</source>
<extracomment>&quot;Compte désactivé, vous ne recevrez ni appel ni message.&quot;</extracomment>
<translation>Compte désactivé, vous ne recevrez ni appel ni message.</translation>
@ -847,25 +847,25 @@
<context>
<name>CallHistoryLayout</name>
<message>
<location filename="../../view/Control/Container/Call/CallHistoryLayout.qml" line="117"/>
<location filename="../../view/Control/Container/Call/CallHistoryLayout.qml" line="116"/>
<source>meeting_info_join_title</source>
<extracomment>&quot;Rejoindre la réunion&quot;</extracomment>
<translation>Rejoindre la réunion</translation>
</message>
<message>
<location filename="../../view/Control/Container/Call/CallHistoryLayout.qml" line="135"/>
<location filename="../../view/Control/Container/Call/CallHistoryLayout.qml" line="134"/>
<source>contact_call_action</source>
<extracomment>&quot;Appel&quot;</extracomment>
<translation>Appel</translation>
</message>
<message>
<location filename="../../view/Control/Container/Call/CallHistoryLayout.qml" line="149"/>
<location filename="../../view/Control/Container/Call/CallHistoryLayout.qml" line="148"/>
<source>contact_message_action</source>
<extracomment>&quot;Message&quot;</extracomment>
<translation>Message</translation>
</message>
<message>
<location filename="../../view/Control/Container/Call/CallHistoryLayout.qml" line="165"/>
<location filename="../../view/Control/Container/Call/CallHistoryLayout.qml" line="164"/>
<source>contact_video_call_action</source>
<extracomment>&quot;Appel Video&quot;</extracomment>
<translation>Appel Vidéo</translation>
@ -1057,7 +1057,7 @@
</message>
<message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="168"/>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="529"/>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="527"/>
<source>menu_delete_history</source>
<extracomment>&quot;Supprimer l&apos;historique&quot;</extracomment>
<translation>Supprimer l&apos;historique</translation>
@ -1111,7 +1111,7 @@
<message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="410"/>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="414"/>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="505"/>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="503"/>
<source>information_popup_error_title</source>
<translation>Erreur</translation>
</message>
@ -1128,55 +1128,55 @@
<translation>Vous n&apos;etes pas connecté</translation>
</message>
<message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="470"/>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="468"/>
<source>menu_see_existing_contact</source>
<extracomment>&quot;Show contact&quot;</extracomment>
<translation>Voir le contact</translation>
</message>
<message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="472"/>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="470"/>
<source>menu_add_address_to_contacts</source>
<extracomment>&quot;Add to contacts&quot;</extracomment>
<translation>Ajouter aux contacts</translation>
</message>
<message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="487"/>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="485"/>
<source>menu_copy_sip_address</source>
<extracomment>&quot;Copier l&apos;adresse SIP&quot;</extracomment>
<translation>Copier l&apos;adresse SIP</translation>
</message>
<message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="499"/>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="497"/>
<source>sip_address_copied_to_clipboard_toast</source>
<extracomment>Adresse copiée</extracomment>
<translation>Adresse copiée</translation>
</message>
<message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="501"/>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="499"/>
<source>sip_address_copied_to_clipboard_message</source>
<extracomment>L&apos;adresse a é copié dans le presse_papiers</extracomment>
<translation>L&apos;adresse a é copié dans le presse-papiers</translation>
</message>
<message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="507"/>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="505"/>
<source>sip_address_copy_to_clipboard_error</source>
<extracomment>&quot;Erreur lors de la copie de l&apos;adresse&quot;</extracomment>
<translation>Erreur lors de la copie de l&apos;adresse</translation>
</message>
<message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="605"/>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="612"/>
<source>notification_missed_call_title</source>
<extracomment>&quot;Appel manqué&quot;</extracomment>
<translation>Appel manqué</translation>
</message>
<message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="608"/>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="615"/>
<source>call_outgoing</source>
<extracomment>&quot;Appel sortant&quot;</extracomment>
<translation>Appel sortant</translation>
</message>
<message>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="610"/>
<location filename="../../view/Page/Main/Call/CallPage.qml" line="617"/>
<source>call_audio_incoming</source>
<extracomment>&quot;Appel entrant&quot;</extracomment>
<translation>Appel entrant</translation>
@ -1784,13 +1784,13 @@
<context>
<name>ChatCore</name>
<message>
<location filename="../../core/chat/ChatCore.cpp" line="176"/>
<location filename="../../core/chat/ChatCore.cpp" line="142"/>
<source>info_toast_deleted_title</source>
<extracomment>Deleted</extracomment>
<translation>Supprimé</translation>
</message>
<message>
<location filename="../../core/chat/ChatCore.cpp" line="178"/>
<location filename="../../core/chat/ChatCore.cpp" line="144"/>
<source>info_toast_deleted_message_history</source>
<extracomment>Message history has been deleted</extracomment>
<translation>L&apos;historique des messages a é supprimé</translation>
@ -1814,65 +1814,65 @@
<context>
<name>ChatListView</name>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="286"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="285"/>
<source>chat_message_is_writing_info</source>
<extracomment>%1 is writing</extracomment>
<translation>%1 est en train d&apos;écrire</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="288"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="287"/>
<source>chat_message_draft_sending_text</source>
<translation>Brouillon : %1</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="430"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="429"/>
<source>chat_room_delete</source>
<extracomment>&quot;Delete&quot;</extracomment>
<translation>Supprimer</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="370"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="369"/>
<source>chat_room_mute</source>
<translation>Mettre en sourdine</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="369"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="368"/>
<source>chat_room_unmute</source>
<extracomment>&quot;Mute&quot;</extracomment>
<translation>Enlever la sourdine </translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="382"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="381"/>
<source>chat_room_mark_as_read</source>
<extracomment>&quot;Mark as read&quot;</extracomment>
<translation>Marquer comme lu</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="401"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="400"/>
<source>chat_room_leave</source>
<extracomment>&quot;leave&quot;</extracomment>
<translation>Quitter la conversation</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="407"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="406"/>
<source>chat_list_leave_chat_popup_title</source>
<extracomment>leave the conversation ?</extracomment>
<translation>Quitter la conversation ?</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="409"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="408"/>
<source>chat_list_leave_chat_popup_message</source>
<extracomment>You will not be able to send or receive messages in this conversation anymore. Do You want to continue ?</extracomment>
<translation>Vous ne pourrez plus envoyer ou recevoir de messages dans cette conversation. Souhaitez-vous continuer ?</translation>
</message>
<message>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="436"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="435"/>
<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="438"/>
<location filename="../../view/Control/Display/Chat/ChatListView.qml" line="437"/>
<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>
@ -3157,42 +3157,42 @@ en bout. Seul votre correspondant peut les déchiffrer.</translation>
<context>
<name>EphemeralSettings</name>
<message>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="58"/>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="57"/>
<source>title</source>
<translation>Messages éphémères</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="77"/>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="76"/>
<source>explanations</source>
<translation>En activant les messages éphémères dans cette discussion, les messages envoyés seront automatiquement détruits après le délai défini.</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="22"/>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="21"/>
<source>one_minute</source>
<translation>1 minute</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="23"/>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="22"/>
<source>one_hour</source>
<translation>1 heure</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="24"/>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="23"/>
<source>one_day</source>
<translation>1 jour</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="25"/>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="24"/>
<source>one_week</source>
<translation>1 semaine</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="26"/>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="25"/>
<source>disabled</source>
<translation>Désactivé</translation>
</message>
<message>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="35"/>
<location filename="../../view/Page/Layout/Chat/EphemeralSettings.qml" line="34"/>
<source>custom</source>
<translation>Personnalisé: </translation>
</message>
@ -4002,110 +4002,110 @@ Expiration : %1</translation>
<translation>Retour</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="180"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="179"/>
<source>meetings_list_title</source>
<extracomment>Réunions</extracomment>
<translation>Réunions</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="219"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="218"/>
<source>meetings_search_hint</source>
<extracomment>&quot;Rechercher une réunion&quot;</extracomment>
<translation>Rechercher une réunion</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="236"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="235"/>
<source>list_filter_no_result_found</source>
<extracomment>&quot;Aucun résultat&quot;</extracomment>
<translation>Aucun résultat</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="238"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="237"/>
<source>meetings_empty_list</source>
<extracomment>&quot;Aucune réunion&quot;</extracomment>
<translation>Aucune réunion</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="308"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="369"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="307"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="368"/>
<source>meeting_schedule_title</source>
<extracomment>&quot;Nouvelle réunion&quot;</extracomment>
<translation>Nouvelle réunion</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="319"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="318"/>
<source>create</source>
<translation>Créer</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="326"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="330"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="381"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="482"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="485"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="533"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="325"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="329"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="380"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="481"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="484"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="532"/>
<source>information_popup_error_title</source>
<translation>Erreur</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="328"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="483"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="327"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="482"/>
<source>meeting_schedule_mandatory_field_not_filled_toast</source>
<extracomment>Veuillez saisir un titre et sélectionner au moins un participant</extracomment>
<translation>Veuillez saisir un titre et sélectionner au moins un participant</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="332"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="486"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="331"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="485"/>
<source>meeting_schedule_duration_error_toast</source>
<extracomment>&quot;La fin de la conférence doit être plus récente que son début&quot;</extracomment>
<translation>La fin de la conférence doit être plus récente que son début</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="336"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="376"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="335"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="375"/>
<source>meeting_schedule_creation_in_progress</source>
<extracomment>&quot;Création de la réunion en cours &quot;</extracomment>
<translation>Création de la réunion en cours</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="371"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="370"/>
<source>meeting_info_created_toast</source>
<extracomment>&quot;Réunion planifiée avec succès&quot;</extracomment>
<translation>Réunion planifiée avec succès</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="383"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="382"/>
<source>meeting_failed_to_schedule_toast</source>
<extracomment>&quot;Échec de création de la réunion !&quot;</extracomment>
<translation>Échec de création de la réunion !</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="475"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="474"/>
<source>save</source>
<translation>Enregistrer</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="524"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="758"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="523"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="759"/>
<source>saved</source>
<extracomment>&quot;Enregistré&quot;</extracomment>
<translation>Enregistré</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="526"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="525"/>
<source>meeting_info_updated_toast</source>
<extracomment>&quot;Réunion mise à jour&quot;</extracomment>
<translation>Réunion mise à jour</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="531"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="530"/>
<source>meeting_schedule_edit_in_progress</source>
<extracomment>&quot;Modification de la réunion en cours&quot;</extracomment>
<translation>Modification de la réunion en cours</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="535"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="534"/>
<source>meeting_failed_to_edit_toast</source>
<extracomment>&quot;Échec de la modification de la réunion !&quot;</extracomment>
<translation>Échec de la modification de la réunion !</translation>
@ -4131,19 +4131,19 @@ Expiration : %1</translation>
</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="688"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="690"/>
<source>meeting_info_delete</source>
<extracomment>&quot;Supprimer la réunion&quot;</extracomment>
<translation>Supprimer la réunion</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="760"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="761"/>
<source>meeting_address_copied_to_clipboard_toast</source>
<extracomment>&quot;Adresse de la réunion copiée&quot;</extracomment>
<translation>Adresse de la réunion copiée</translation>
</message>
<message>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="796"/>
<location filename="../../view/Page/Main/Meeting/MeetingPage.qml" line="797"/>
<source>meeting_schedule_timezone_title</source>
<extracomment>&quot;Fuseau horaire&quot;</extracomment>
<translation>Fuseau horaire</translation>
@ -4290,19 +4290,19 @@ Expiration : %1</translation>
<context>
<name>NotificationReceivedCall</name>
<message>
<location filename="../../view/Control/Popup/Notification/NotificationReceivedCall.qml" line="93"/>
<location filename="../../view/Control/Popup/Notification/NotificationReceivedCall.qml" line="94"/>
<source>call_audio_incoming</source>
<extracomment>&quot;Appel entrant&quot;</extracomment>
<translation>Appel entrant</translation>
</message>
<message>
<location filename="../../view/Control/Popup/Notification/NotificationReceivedCall.qml" line="116"/>
<location filename="../../view/Control/Popup/Notification/NotificationReceivedCall.qml" line="117"/>
<source>dialog_accept</source>
<extracomment>&quot;Accepter&quot;</extracomment>
<translation>Accepter</translation>
</message>
<message>
<location filename="../../view/Control/Popup/Notification/NotificationReceivedCall.qml" line="134"/>
<location filename="../../view/Control/Popup/Notification/NotificationReceivedCall.qml" line="135"/>
<source>dialog_deny</source>
<extracomment>&quot;Refuser</extracomment>
<translation>Refuser</translation>
@ -5127,49 +5127,49 @@ Pour les activer dans un projet commercial, merci de nous contacter.</translatio
<context>
<name>ToolModel</name>
<message>
<location filename="../../model/tool/ToolModel.cpp" line="298"/>
<location filename="../../model/tool/ToolModel.cpp" line="311"/>
<source>call_error_uninterpretable_sip_address</source>
<extracomment>&quot;The calling address is not an interpretable SIP address : %1</extracomment>
<translation>L&apos;adresse n&apos;est pas interprétable comme une adresse SIP</translation>
</message>
<message>
<location filename="../../model/tool/ToolModel.cpp" line="370"/>
<location filename="../../model/tool/ToolModel.cpp" line="383"/>
<source>group_call_error_no_account</source>
<translation>Impossible de créer l&apos;appel de groupe, le compte par défaut n&apos;est pas défini</translation>
</message>
<message>
<location filename="../../model/tool/ToolModel.cpp" line="395"/>
<location filename="../../model/tool/ToolModel.cpp" line="408"/>
<source>group_call_error_participants_invite</source>
<translation>Impossible d&apos;inviter les participants à l&apos;appel de groupe</translation>
</message>
<message>
<location filename="../../model/tool/ToolModel.cpp" line="399"/>
<location filename="../../model/tool/ToolModel.cpp" line="412"/>
<source>group_call_error_creation</source>
<translation>L&apos;appel de groupe n&apos;a pas pu être créé</translation>
</message>
<message>
<location filename="../../model/tool/ToolModel.cpp" line="499"/>
<location filename="../../model/tool/ToolModel.cpp" line="512"/>
<source>voice_recording_duration</source>
<extracomment>&quot;Voice recording (%1)&quot; : %1 is the duration formated in mm:ss</extracomment>
<translation>Message vocal (%1)</translation>
</message>
<message>
<location filename="../../model/tool/ToolModel.cpp" line="572"/>
<location filename="../../model/tool/ToolModel.cpp" line="585"/>
<source>unknown_audio_device_name</source>
<translation>Appareil inconnu</translation>
</message>
<message>
<location filename="../../model/tool/ToolModel.cpp" line="507"/>
<location filename="../../model/tool/ToolModel.cpp" line="520"/>
<source>conference_invitation</source>
<translation>Invitation à une réunion</translation>
</message>
<message>
<location filename="../../model/tool/ToolModel.cpp" line="511"/>
<location filename="../../model/tool/ToolModel.cpp" line="524"/>
<source>conference_invitation_cancelled</source>
<translation>Annulation d&apos;une réunion</translation>
</message>
<message>
<location filename="../../model/tool/ToolModel.cpp" line="509"/>
<location filename="../../model/tool/ToolModel.cpp" line="522"/>
<source>conference_invitation_updated</source>
<translation>Modification d&apos;une réunion</translation>
</message>

View file

@ -68,10 +68,13 @@ void ConferenceInfoModel::setConferenceScheduler(const std::shared_ptr<Conferenc
params->enableChat(true);
params->enableGroup(false);
params->setAccount(mConferenceSchedulerModel->getMonitor()->getAccount());
// set to basic cause FlexisipChat force to set a subject
params->getChatParams()->setBackend(linphone::ChatRoom::Backend::Basic);
// Lime si chiffré, si non None
params->getChatParams()->setEncryptionBackend(linphone::ChatRoom::EncryptionBackend::None);
params->setSubject("Meeting invitation"); // won't be used but necessary to send in a
// secured chatroom
auto chatParams = params->getChatParams();
if (!chatParams) return;
chatParams->setEphemeralLifetime(0);
chatParams->setBackend(linphone::ChatRoom::Backend::FlexisipChat);
params->setSecurityLevel(linphone::Conference::SecurityLevel::EndToEnd);
mConferenceSchedulerModel->getMonitor()->sendInvitations(params);
}
emit schedulerStateChanged(state);

View file

@ -91,8 +91,21 @@ QString ToolModel::getDisplayName(const std::shared_ptr<const linphone::Address>
if (displayName.isEmpty()) {
displayName = Utils::coreStringToAppString(address->getDisplayName());
if (displayName.isEmpty()) {
displayName = Utils::coreStringToAppString(address->getUsername());
displayName.replace('.', ' ');
auto accounts = CoreModel::getInstance()->getCore()->getAccountList();
auto found = std::find_if(accounts.begin(), accounts.end(),
[address](std::shared_ptr<linphone::Account> account) {
return address->weakEqual(account->getParams()->getIdentityAddress());
});
if (found != accounts.end()) {
displayName =
Utils::coreStringToAppString(found->get()->getParams()->getIdentityAddress()->getDisplayName());
}
if (displayName.isEmpty()) {
displayName = Utils::coreStringToAppString(address->getUsername());
if (displayName.isEmpty()) {
return Utils::coreStringToAppString(address->asStringUriOnly());
}
}
}
}
// TODO

View file

@ -74,7 +74,6 @@ ColumnLayout {
font {
pixelSize: Typography.p1.pixelSize
weight: Typography.p1.weight
capitalization: Font.Capitalize
}
}
Text {

View file

@ -145,14 +145,12 @@ ListView {
Layout.fillWidth: true
spacing: Math.round(5 * DefaultStyle.dp)
Text {
id: friendAddress
Layout.fillWidth: true
maximumLineCount: 1
text: modelData.core.displayName
font {
pixelSize: Typography.p1.pixelSize
weight: Typography.p1.weight
capitalization: Font.Capitalize
}
}
RowLayout {

View file

@ -28,6 +28,9 @@ ListView {
}
onChatClicked: (chat) => {selectChat(chat)}
onCountChanged: {
selectChat(currentChatGui)
}
signal markAllAsRead()
signal chatClicked(ChatGui chat)
@ -38,10 +41,7 @@ ListView {
loading = true
}
filterText: mainItem.searchText
onFilterTextChanged: maxDisplayItems = initialDisplayItems
initialDisplayItems: Math.max(
20,
2 * mainItem.height / (Math.round(56 * DefaultStyle.dp)))
initialDisplayItems: Math.max(20, 2 * mainItem.height / (Math.round(56 * DefaultStyle.dp)))
displayItemsStep: 3 * initialDisplayItems / 2
onModelReset: {
loading = false
@ -205,7 +205,6 @@ ListView {
font {
pixelSize: Typography.p1.pixelSize
weight: unreadCount.unread > 0 ? Typography.p2.weight : Typography.p1.weight
capitalization: Font.Capitalize
}
}

View file

@ -242,7 +242,7 @@ ListView {
Component.onCompleted: {
if (index === 0) mainItem.lastItemVisible = isFullyVisible
}
onYChanged: if (index === 0) mainItem.lastItemVisible = isFullyVisible
// onYChanged: if (index === 0) mainItem.lastItemVisible = isFullyVisible
chat: mainItem.chat
searchedTextPart: mainItem.filterText
maxWidth: Math.round(mainItem.width * (3/4))

View file

@ -13,8 +13,7 @@ ColumnLayout {
id: mainItem
property ChatGui chatGui
property var chatCore: chatGui.core
property int selectedLifetime: chatCore.ephemeralLifetime
property int selectedLifetime: chatGui.core.ephemeralLifetime
spacing: Math.round(5 * DefaultStyle.dp)
signal done()
@ -48,8 +47,8 @@ ColumnLayout {
style: ButtonStyle.noBackground
icon.source: AppIcons.leftArrow
onClicked: {
if (chatCore.ephemeralLifetime != selectedLifetime)
chatCore.ephemeralLifetime = selectedLifetime
if (chatGui.core.ephemeralLifetime != selectedLifetime)
chatGui.core.ephemeralLifetime = selectedLifetime
mainItem.done()
}
}

View file

@ -430,8 +430,6 @@ AbstractMainPage {
Component {
id: contactDetailComp
FocusScope {
// width: parent?.width
// height: parent?.height
CallHistoryLayout {
id: contactDetail
anchors.fill: parent
@ -552,10 +550,9 @@ AbstractMainPage {
Layout.fillHeight: true
RoundedPane {
id: detailControl
visible: detailListView.count > 0
width: parent.width
height: Math.min(
parent.height,
detailListView.contentHeight) + topPadding + bottomPadding
height: Math.min(parent.height, detailListView.contentHeight) + topPadding + bottomPadding
background: Rectangle {
id: detailListBackground
anchors.fill: parent
@ -563,79 +560,90 @@ AbstractMainPage {
radius: Math.round(15 * DefaultStyle.dp)
}
contentItem: CallHistoryListView {
id: detailListView
Layout.fillWidth: true
Layout.fillHeight: true
spacing: Math.round(14 * DefaultStyle.dp)
clip: true
searchText: mainItem.selectedRowHistoryGui ? mainItem.selectedRowHistoryGui.core.remoteAddress : ""
busyIndicatorSize: Math.round(40 * DefaultStyle.dp)
contentItem: Control.ScrollView {
id: historyScrollView
Control.ScrollBar.vertical: ScrollBar {
id: historyScrollBar
visible: historyScrollView.contentHeight > historyScrollView.height
anchors.top: parent.top
anchors.bottom: parent.bottom
anchors.right: parent.right
}
CallHistoryListView {
id: detailListView
Layout.fillWidth: true
Layout.fillHeight: true
Layout.rightMargin: historyScrollBar.width + Math.round(8 * DefaultStyle.dp)
spacing: Math.round(14 * DefaultStyle.dp)
clip: true
searchText: mainItem.selectedRowHistoryGui ? mainItem.selectedRowHistoryGui.core.remoteAddress : ""
busyIndicatorSize: Math.round(40 * DefaultStyle.dp)
delegate: Item {
width: detailListView.width
height: Math.round(56 * DefaultStyle.dp)
RowLayout {
anchors.fill: parent
anchors.leftMargin: Math.round(20 * DefaultStyle.dp)
anchors.rightMargin: Math.round(20 * DefaultStyle.dp)
anchors.verticalCenter: parent.verticalCenter
ColumnLayout {
Layout.alignment: Qt.AlignVCenter
RowLayout {
EffectImage {
id: statusIcon
imageSource: modelData.core.status
=== LinphoneEnums.CallStatus.Declined
|| modelData.core.status === LinphoneEnums.CallStatus.DeclinedElsewhere || modelData.core.status === LinphoneEnums.CallStatus.Aborted || modelData.core.status === LinphoneEnums.CallStatus.EarlyAborted ? AppIcons.arrowElbow : modelData.core.isOutgoing ? AppIcons.arrowUpRight : AppIcons.arrowDownLeft
colorizationColor: modelData.core.status === LinphoneEnums.CallStatus.Declined || modelData.core.status === LinphoneEnums.CallStatus.DeclinedElsewhere || modelData.core.status === LinphoneEnums.CallStatus.Aborted || modelData.core.status === LinphoneEnums.CallStatus.EarlyAborted || modelData.core.status === LinphoneEnums.CallStatus.Missed ? DefaultStyle.danger_500main : modelData.core.isOutgoing ? DefaultStyle.info_500_main : DefaultStyle.success_500main
Layout.preferredWidth: Math.round(16 * DefaultStyle.dp)
Layout.preferredHeight: Math.round(16 * DefaultStyle.dp)
transform: Rotation {
angle: modelData.core.isOutgoing
&& (modelData.core.status === LinphoneEnums.CallStatus.Declined || modelData.core.status === LinphoneEnums.CallStatus.DeclinedElsewhere || modelData.core.status === LinphoneEnums.CallStatus.Aborted || modelData.core.status === LinphoneEnums.CallStatus.EarlyAborted) ? 180 : 0
origin {
x: statusIcon.width / 2
y: statusIcon.height / 2
delegate: Item {
width: detailListView.width
height: Math.round(56 * DefaultStyle.dp)
RowLayout {
anchors.fill: parent
anchors.leftMargin: Math.round(20 * DefaultStyle.dp)
anchors.rightMargin: Math.round(20 * DefaultStyle.dp)
anchors.verticalCenter: parent.verticalCenter
ColumnLayout {
Layout.alignment: Qt.AlignVCenter
RowLayout {
EffectImage {
id: statusIcon
imageSource: modelData.core.status
=== LinphoneEnums.CallStatus.Declined
|| modelData.core.status === LinphoneEnums.CallStatus.DeclinedElsewhere || modelData.core.status === LinphoneEnums.CallStatus.Aborted || modelData.core.status === LinphoneEnums.CallStatus.EarlyAborted ? AppIcons.arrowElbow : modelData.core.isOutgoing ? AppIcons.arrowUpRight : AppIcons.arrowDownLeft
colorizationColor: modelData.core.status === LinphoneEnums.CallStatus.Declined || modelData.core.status === LinphoneEnums.CallStatus.DeclinedElsewhere || modelData.core.status === LinphoneEnums.CallStatus.Aborted || modelData.core.status === LinphoneEnums.CallStatus.EarlyAborted || modelData.core.status === LinphoneEnums.CallStatus.Missed ? DefaultStyle.danger_500main : modelData.core.isOutgoing ? DefaultStyle.info_500_main : DefaultStyle.success_500main
Layout.preferredWidth: Math.round(16 * DefaultStyle.dp)
Layout.preferredHeight: Math.round(16 * DefaultStyle.dp)
transform: Rotation {
angle: modelData.core.isOutgoing
&& (modelData.core.status === LinphoneEnums.CallStatus.Declined || modelData.core.status === LinphoneEnums.CallStatus.DeclinedElsewhere || modelData.core.status === LinphoneEnums.CallStatus.Aborted || modelData.core.status === LinphoneEnums.CallStatus.EarlyAborted) ? 180 : 0
origin {
x: statusIcon.width / 2
y: statusIcon.height / 2
}
}
}
Text {
//: "Appel manqué"
text: modelData.core.status === LinphoneEnums.CallStatus.Missed ? qsTr("notification_missed_call_title")
: modelData.core.isOutgoing
//: "Appel sortant"
? qsTr("call_outgoing")
//: "Appel entrant"
: qsTr("call_audio_incoming")
font {
pixelSize: Typography.p1.pixelSize
weight: Typography.p1.weight
}
}
}
Text {
//: "Appel manqué"
text: modelData.core.status === LinphoneEnums.CallStatus.Missed ? qsTr("notification_missed_call_title")
: modelData.core.isOutgoing
//: "Appel sortant"
? qsTr("call_outgoing")
//: "Appel entrant"
: qsTr("call_audio_incoming")
text: UtilsCpp.formatDate(modelData.core.date)
color: modelData.core.status === LinphoneEnums.CallStatus.Missed ? DefaultStyle.danger_500main : DefaultStyle.main2_500main
font {
pixelSize: Typography.p1.pixelSize
weight: Typography.p1.weight
pixelSize: Math.round(12 * DefaultStyle.dp)
weight: Math.round(300 * DefaultStyle.dp)
}
}
}
Item {
Layout.fillHeight: true
Layout.fillWidth: true
}
Text {
text: UtilsCpp.formatDate(modelData.core.date)
color: modelData.core.status === LinphoneEnums.CallStatus.Missed ? DefaultStyle.danger_500main : DefaultStyle.main2_500main
text: UtilsCpp.formatElapsedTime(
modelData.core.duration,
false)
font {
pixelSize: Math.round(12 * DefaultStyle.dp)
weight: Math.round(300 * DefaultStyle.dp)
}
}
}
Item {
Layout.fillHeight: true
Layout.fillWidth: true
}
Text {
text: UtilsCpp.formatElapsedTime(
modelData.core.duration,
false)
font {
pixelSize: Math.round(12 * DefaultStyle.dp)
weight: Math.round(300 * DefaultStyle.dp)
}
}
}
}
}

View file

@ -132,7 +132,6 @@ AbstractMainPage {
anchors.bottomMargin: Math.round(30 * DefaultStyle.dp)
height: parent.height - anchors.topMargin
anchors.horizontalCenter: parent.horizontalCenter
contentHeight: overridenRightPanelStackView.currentItem ? overridenRightPanelStackView.currentItem.childrenRect.height : 0
contentWidth: width
clip: true
Control.ScrollBar.vertical: ScrollBar {
@ -141,7 +140,7 @@ AbstractMainPage {
anchors.bottom: parent.bottom
anchors.right: parent.right
}
contentChildren: ColumnLayout {
ColumnLayout {
anchors.fill: parent
anchors.rightMargin: Math.round(10 * DefaultStyle.dp)
width: Math.round(393 * DefaultStyle.dp)
@ -149,7 +148,7 @@ AbstractMainPage {
id: overridenRightPanelStackView
Layout.fillWidth: true
Layout.fillHeight: true
height: currentItem ? currentItem.height : 0
Layout.preferredHeight: currentItem ? currentItem.childrenRect.height : 0
}
}
}
@ -551,6 +550,7 @@ AbstractMainPage {
ColumnLayout {
id: addParticipantsLayout
spacing: Math.round(18 * DefaultStyle.dp)
anchors.rightMargin: Math.round(8 * DefaultStyle.dp)
anchors.left: parent.left
anchors.right: parent.right
anchors.top: parent.top
@ -626,13 +626,15 @@ AbstractMainPage {
id: meetingDetail
FocusScope{
width: overridenRightPanelStackView.width
height: meetingDetailsLayout.childrenRect.height
ColumnLayout {
id: meetingDetailsLayout
anchors.left: parent.left
anchors.right: parent.right
anchors.top: parent.top
// anchors.fill: parent
visible: mainItem.selectedConference
spacing: Math.round(25 * DefaultStyle.dp)
spacing: Math.round(16 * DefaultStyle.dp)
Section {
visible: mainItem.selectedConference
Layout.fillWidth: true
@ -752,7 +754,6 @@ AbstractMainPage {
KeyNavigation.right: linkButton
KeyNavigation.up: deletePopup
KeyNavigation.down: joinButton
Layout.preferredWidth: Math.round(24 * DefaultStyle.dp)
onClicked: {
var success = UtilsCpp.copyToClipboard(mainItem.selectedConference.core.uri)
if (success) UtilsCpp.showInformationPopup(qsTr("saved"),
@ -848,9 +849,8 @@ AbstractMainPage {
}
Section {
visible: participantList.count > 0
Layout.fillWidth: true
content: RowLayout {
Layout.preferredHeight: participantList.height
Layout.preferredHeight: participantList.contentHeight
width: Math.round(393 * DefaultStyle.dp)
spacing: Math.round(8 * DefaultStyle.dp)
EffectImage {
@ -863,7 +863,7 @@ AbstractMainPage {
}
ListView {
id: participantList
Layout.preferredHeight: Math.min(Math.round(184 * DefaultStyle.dp), contentHeight)
Layout.preferredHeight: contentHeight
Layout.fillWidth: true
model: mainItem.selectedConference && mainItem.selectedConference.core ? mainItem.selectedConference.core.participants : []
clip: true
@ -928,7 +928,6 @@ AbstractMainPage {
UtilsCpp.smartShowWindow(callsWindow)
}
}
Item { Layout.fillHeight: true}
}
}
}