mirror of
https://gitlab.linphone.org/BC/public/linphone-desktop.git
synced 2026-02-06 22:52:45 +00:00
check if safe connection is being destroyed before trying lock
Add apply button and success/error toast for managing chatroom participants debug logs
This commit is contained in:
parent
bdca7f3f03
commit
d234a6c3d4
9 changed files with 168 additions and 45 deletions
|
|
@ -231,10 +231,8 @@ void ChatCore::setSelf(const QSharedPointer<ChatCore> &me) {
|
|||
return;
|
||||
}
|
||||
if (mChatModel->getMonitor() != chatRoom) return;
|
||||
lDebug() << log().arg("CHAT MESSAGE RECEIVED IN CHATROOM") << this << mChatModel->getTitle();
|
||||
lInfo() << log().arg("Chat message received in chatroom") << this << mChatModel->getTitle();
|
||||
lInfo() << log().arg("Safe Connection =") << mChatModelConnection.get();
|
||||
lInfo() << log().arg("this =") << this;
|
||||
lInfo() << log().arg("Connection =") << mChatModelConnection.get();
|
||||
QList<QSharedPointer<EventLogCore>> list;
|
||||
for (auto &e : eventsLog) {
|
||||
if (!e) {
|
||||
|
|
@ -391,6 +389,15 @@ void ChatCore::setSelf(const QSharedPointer<ChatCore> &me) {
|
|||
setMeAdmin(meAdmin);
|
||||
});
|
||||
});
|
||||
mChatModelConnection->makeConnectToModel(
|
||||
&ChatModel::participantAddressesChanged,
|
||||
[this](const std::shared_ptr<linphone::ChatRoom> &chatRoom, bool success) {
|
||||
if (!success) {
|
||||
auto participants = buildParticipants(chatRoom);
|
||||
mChatModelConnection->invokeToCore([this, participants] { setParticipants(participants); });
|
||||
}
|
||||
mChatModelConnection->invokeToCore([this, success] { emit participantAddressesChanged(success); });
|
||||
});
|
||||
mChatModelConnection->makeConnectToCore(&ChatCore::lRemoveParticipantAtIndex, [this](int index) {
|
||||
mChatModelConnection->invokeToModel([this, index]() { mChatModel->removeParticipantAtIndex(index); });
|
||||
});
|
||||
|
|
|
|||
|
|
@ -175,6 +175,7 @@ signals:
|
|||
void fileListChanged();
|
||||
void isSecuredChanged();
|
||||
void conferenceJoined();
|
||||
void participantAddressesChanged(bool success);
|
||||
|
||||
void lDeleteMessage(ChatMessageGui *message);
|
||||
void lDelete();
|
||||
|
|
|
|||
|
|
@ -2472,44 +2472,44 @@ Error</extracomment>
|
|||
<context>
|
||||
<name>ChatMessagesListView</name>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="110"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="121"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="111"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="122"/>
|
||||
<source>popup_info_find_message_title</source>
|
||||
<extracomment>Find message</extracomment>
|
||||
<translation>Nachricht suchen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="123"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="124"/>
|
||||
<source>info_popup_no_result_message</source>
|
||||
<extracomment>No result found</extracomment>
|
||||
<translation>Keine Ergebnisse gefunden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="115"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="116"/>
|
||||
<source>info_popup_first_result_message</source>
|
||||
<extracomment>First result reached</extracomment>
|
||||
<translation>Erstes Ergebnis erreicht</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="113"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="114"/>
|
||||
<source>info_popup_last_result_message</source>
|
||||
<extracomment>Last result reached</extracomment>
|
||||
<translation>Letztes Ergebnis erreicht</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="160"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="161"/>
|
||||
<source>chat_message_list_encrypted_header_title</source>
|
||||
<extracomment>End to end encrypted chat</extracomment>
|
||||
<translation>Ende-zu-Ende-verschlüsselter Chat</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="162"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="163"/>
|
||||
<source>unencrypted_conversation_warning</source>
|
||||
<extracomment>This conversation is not encrypted !</extracomment>
|
||||
<translation>Dieser Chat ist nicht verschlüsselt!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="173"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="174"/>
|
||||
<source>chat_message_list_encrypted_header_message</source>
|
||||
<extracomment>Messages in this conversation are e2e encrypted.
|
||||
Only your correspondent can decrypt them.</extracomment>
|
||||
|
|
@ -2517,7 +2517,7 @@ Error</extracomment>
|
|||
Nur Ihr Gesprächspartner kann sie entschlüsseln.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="175"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="176"/>
|
||||
<source>chat_message_list_not_encrypted_header_message</source>
|
||||
<extracomment>Messages are not end to end encrypted,
|
||||
may sure you don't share any sensitive information !</extracomment>
|
||||
|
|
@ -2525,7 +2525,7 @@ Nur Ihr Gesprächspartner kann sie entschlüsseln.</translation>
|
|||
Stellen Sie sicher, dass Sie keine sensiblen Informationen teilen!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="215"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="216"/>
|
||||
<source>chat_message_is_writing_info</source>
|
||||
<extracomment>%1 is writing…</extracomment>
|
||||
<translation>%1 schreibt…</translation>
|
||||
|
|
@ -4362,7 +4362,7 @@ Ablauf: %1</translation>
|
|||
<context>
|
||||
<name>MagicSearchList</name>
|
||||
<message>
|
||||
<location filename="../../core/search/MagicSearchList.cpp" line="145"/>
|
||||
<location filename="../../core/search/MagicSearchList.cpp" line="146"/>
|
||||
<source>device_id</source>
|
||||
<translation>Telefon</translation>
|
||||
</message>
|
||||
|
|
@ -4606,10 +4606,38 @@ Ablauf: %1</translation>
|
|||
<context>
|
||||
<name>ManageParticipants</name>
|
||||
<message>
|
||||
<location filename="../../view/Page/Layout/Chat/ManageParticipants.qml" line="44"/>
|
||||
<location filename="../../view/Page/Layout/Chat/ManageParticipants.qml" line="29"/>
|
||||
<source>info_popup_error_title</source>
|
||||
<translation type="unfinished">Fehler</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Page/Layout/Chat/ManageParticipants.qml" line="31"/>
|
||||
<source>info_popup_manage_participant_error_message</source>
|
||||
<extracomment>Error while setting participants !</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Page/Layout/Chat/ManageParticipants.qml" line="34"/>
|
||||
<source>info_popup_success_title</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Page/Layout/Chat/ManageParticipants.qml" line="36"/>
|
||||
<source>info_popup_manage_participant_updated_message</source>
|
||||
<extracomment>Participants updated</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Page/Layout/Chat/ManageParticipants.qml" line="59"/>
|
||||
<source>group_infos_manage_participants</source>
|
||||
<translation>Teilnehmer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Page/Layout/Chat/ManageParticipants.qml" line="68"/>
|
||||
<source>apply_button_text</source>
|
||||
<extracomment>Apply</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MeetingForm</name>
|
||||
|
|
|
|||
|
|
@ -2430,44 +2430,44 @@ Error</extracomment>
|
|||
<context>
|
||||
<name>ChatMessagesListView</name>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="110"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="121"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="111"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="122"/>
|
||||
<source>popup_info_find_message_title</source>
|
||||
<extracomment>Find message</extracomment>
|
||||
<translation>Find message</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="123"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="124"/>
|
||||
<source>info_popup_no_result_message</source>
|
||||
<extracomment>No result found</extracomment>
|
||||
<translation>No result found</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="115"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="116"/>
|
||||
<source>info_popup_first_result_message</source>
|
||||
<extracomment>First result reached</extracomment>
|
||||
<translation>First result reached</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="113"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="114"/>
|
||||
<source>info_popup_last_result_message</source>
|
||||
<extracomment>Last result reached</extracomment>
|
||||
<translation>Last result reached</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="160"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="161"/>
|
||||
<source>chat_message_list_encrypted_header_title</source>
|
||||
<extracomment>End to end encrypted chat</extracomment>
|
||||
<translation>End to end encrypted chat</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="162"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="163"/>
|
||||
<source>unencrypted_conversation_warning</source>
|
||||
<extracomment>This conversation is not encrypted !</extracomment>
|
||||
<translation>This conversation is not encrypted !</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="173"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="174"/>
|
||||
<source>chat_message_list_encrypted_header_message</source>
|
||||
<extracomment>Messages in this conversation are e2e encrypted.
|
||||
Only your correspondent can decrypt them.</extracomment>
|
||||
|
|
@ -2475,7 +2475,7 @@ Error</extracomment>
|
|||
Only your correspondent can decrypt them.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="175"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="176"/>
|
||||
<source>chat_message_list_not_encrypted_header_message</source>
|
||||
<extracomment>Messages are not end to end encrypted,
|
||||
may sure you don't share any sensitive information !</extracomment>
|
||||
|
|
@ -2483,7 +2483,7 @@ Only your correspondent can decrypt them.</translation>
|
|||
may sure you don't share any sensitive information !</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="215"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="216"/>
|
||||
<source>chat_message_is_writing_info</source>
|
||||
<extracomment>%1 is writing…</extracomment>
|
||||
<translation>%1 is writing…</translation>
|
||||
|
|
@ -4260,7 +4260,7 @@ Expiration : %1</translation>
|
|||
<context>
|
||||
<name>MagicSearchList</name>
|
||||
<message>
|
||||
<location filename="../../core/search/MagicSearchList.cpp" line="145"/>
|
||||
<location filename="../../core/search/MagicSearchList.cpp" line="146"/>
|
||||
<source>device_id</source>
|
||||
<translation>Phone</translation>
|
||||
</message>
|
||||
|
|
@ -4504,10 +4504,38 @@ Expiration : %1</translation>
|
|||
<context>
|
||||
<name>ManageParticipants</name>
|
||||
<message>
|
||||
<location filename="../../view/Page/Layout/Chat/ManageParticipants.qml" line="44"/>
|
||||
<location filename="../../view/Page/Layout/Chat/ManageParticipants.qml" line="29"/>
|
||||
<source>info_popup_error_title</source>
|
||||
<translation type="unfinished">Error</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Page/Layout/Chat/ManageParticipants.qml" line="31"/>
|
||||
<source>info_popup_manage_participant_error_message</source>
|
||||
<extracomment>Error while setting participants !</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Page/Layout/Chat/ManageParticipants.qml" line="34"/>
|
||||
<source>info_popup_success_title</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Page/Layout/Chat/ManageParticipants.qml" line="36"/>
|
||||
<source>info_popup_manage_participant_updated_message</source>
|
||||
<extracomment>Participants updated</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Page/Layout/Chat/ManageParticipants.qml" line="59"/>
|
||||
<source>group_infos_manage_participants</source>
|
||||
<translation>Participants</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Page/Layout/Chat/ManageParticipants.qml" line="68"/>
|
||||
<source>apply_button_text</source>
|
||||
<extracomment>Apply</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MeetingForm</name>
|
||||
|
|
|
|||
|
|
@ -2405,44 +2405,44 @@ Error</extracomment>
|
|||
<context>
|
||||
<name>ChatMessagesListView</name>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="110"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="121"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="111"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="122"/>
|
||||
<source>popup_info_find_message_title</source>
|
||||
<extracomment>Find message</extracomment>
|
||||
<translation>Trouver un message</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="123"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="124"/>
|
||||
<source>info_popup_no_result_message</source>
|
||||
<extracomment>No result found</extracomment>
|
||||
<translation>Aucun résultat trouvé</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="115"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="116"/>
|
||||
<source>info_popup_first_result_message</source>
|
||||
<extracomment>First result reached</extracomment>
|
||||
<translation>Premier résultat atteint</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="113"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="114"/>
|
||||
<source>info_popup_last_result_message</source>
|
||||
<extracomment>Last result reached</extracomment>
|
||||
<translation>Dernier résultat atteint</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="160"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="161"/>
|
||||
<source>chat_message_list_encrypted_header_title</source>
|
||||
<extracomment>End to end encrypted chat</extracomment>
|
||||
<translation>Conversation chiffrée de bout en bout</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="162"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="163"/>
|
||||
<source>unencrypted_conversation_warning</source>
|
||||
<extracomment>This conversation is not encrypted !</extracomment>
|
||||
<translation>Cette conversation n'est pas chiffrée !</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="173"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="174"/>
|
||||
<source>chat_message_list_encrypted_header_message</source>
|
||||
<extracomment>Messages in this conversation are e2e encrypted.
|
||||
Only your correspondent can decrypt them.</extracomment>
|
||||
|
|
@ -2450,7 +2450,7 @@ Error</extracomment>
|
|||
en bout. Seul votre correspondant peut les déchiffrer.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="175"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="176"/>
|
||||
<source>chat_message_list_not_encrypted_header_message</source>
|
||||
<extracomment>Messages are not end to end encrypted,
|
||||
may sure you don't share any sensitive information !</extracomment>
|
||||
|
|
@ -2458,7 +2458,7 @@ en bout. Seul votre correspondant peut les déchiffrer.</translation>
|
|||
assurez-vous de ne pas partager d’informations sensibles !</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="215"/>
|
||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="216"/>
|
||||
<source>chat_message_is_writing_info</source>
|
||||
<extracomment>%1 is writing…</extracomment>
|
||||
<translation>%1 est en train d'écrire…</translation>
|
||||
|
|
@ -4235,7 +4235,7 @@ Expiration : %1</translation>
|
|||
<context>
|
||||
<name>MagicSearchList</name>
|
||||
<message>
|
||||
<location filename="../../core/search/MagicSearchList.cpp" line="145"/>
|
||||
<location filename="../../core/search/MagicSearchList.cpp" line="146"/>
|
||||
<source>device_id</source>
|
||||
<translation>Téléphone</translation>
|
||||
</message>
|
||||
|
|
@ -4475,10 +4475,38 @@ Expiration : %1</translation>
|
|||
<context>
|
||||
<name>ManageParticipants</name>
|
||||
<message>
|
||||
<location filename="../../view/Page/Layout/Chat/ManageParticipants.qml" line="44"/>
|
||||
<location filename="../../view/Page/Layout/Chat/ManageParticipants.qml" line="29"/>
|
||||
<source>info_popup_error_title</source>
|
||||
<translation>Erreur</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Page/Layout/Chat/ManageParticipants.qml" line="31"/>
|
||||
<source>info_popup_manage_participant_error_message</source>
|
||||
<extracomment>Error while setting participants !</extracomment>
|
||||
<translation>Erreur lors de la modification des participants !</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Page/Layout/Chat/ManageParticipants.qml" line="34"/>
|
||||
<source>info_popup_success_title</source>
|
||||
<translation>Enregistré</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Page/Layout/Chat/ManageParticipants.qml" line="36"/>
|
||||
<source>info_popup_manage_participant_updated_message</source>
|
||||
<extracomment>Participants updated</extracomment>
|
||||
<translation>Participants mis à jour</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Page/Layout/Chat/ManageParticipants.qml" line="59"/>
|
||||
<source>group_infos_manage_participants</source>
|
||||
<translation>Participants</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Page/Layout/Chat/ManageParticipants.qml" line="68"/>
|
||||
<source>apply_button_text</source>
|
||||
<extracomment>Apply</extracomment>
|
||||
<translation>Appliquer</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MeetingForm</name>
|
||||
|
|
|
|||
|
|
@ -232,17 +232,23 @@ void ChatModel::toggleParticipantAdminStatusAtIndex(int index) const {
|
|||
mMonitor->setParticipantAdminStatus(participant, !participant->isAdmin());
|
||||
}
|
||||
|
||||
void ChatModel::setParticipantAddresses(const QStringList &addresses) const {
|
||||
void ChatModel::setParticipantAddresses(const QStringList &addresses) {
|
||||
QSet<QString> s{addresses.cbegin(), addresses.cend()};
|
||||
bool soFarSoGood = true;
|
||||
for (auto p : mMonitor->getParticipants()) {
|
||||
auto address = Utils::coreStringToAppString(p->getAddress()->asStringUriOnly());
|
||||
if (s.contains(address)) s.remove(address);
|
||||
else mMonitor->removeParticipant(p);
|
||||
else {
|
||||
mMonitor->removeParticipants({p});
|
||||
}
|
||||
}
|
||||
for (const auto &a : s) {
|
||||
auto address = linphone::Factory::get()->createAddress(Utils::appStringToCoreString(a));
|
||||
if (address) mMonitor->addParticipant(address);
|
||||
if (address) {
|
||||
soFarSoGood &= mMonitor->addParticipants({address});
|
||||
}
|
||||
}
|
||||
emit participantAddressesChanged(mMonitor, soFarSoGood);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------//
|
||||
|
|
|
|||
|
|
@ -83,7 +83,7 @@ public:
|
|||
void setEphemeralLifetime(int time);
|
||||
void setSubject(QString subject) const;
|
||||
void removeParticipantAtIndex(int index) const;
|
||||
void setParticipantAddresses(const QStringList &addresses) const;
|
||||
void setParticipantAddresses(const QStringList &addresses);
|
||||
void toggleParticipantAdminStatusAtIndex(int index) const;
|
||||
|
||||
signals:
|
||||
|
|
@ -93,6 +93,7 @@ signals:
|
|||
void mutedChanged(bool muted);
|
||||
void ephemeralEnableChanged(bool enable);
|
||||
void ephemeralLifetimeChanged(int time);
|
||||
void participantAddressesChanged(const std::shared_ptr<linphone::ChatRoom> &chatRoom, bool success);
|
||||
|
||||
private:
|
||||
DECLARE_ABSTRACT_OBJECT
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@ template <class A, class B>
|
|||
class SafeConnection : public QObject {
|
||||
// Use create functions.
|
||||
protected:
|
||||
SafeConnection(const QSharedPointer<A> &a, std::shared_ptr<B> b)
|
||||
SafeConnection(QSharedPointer<A> a, std::shared_ptr<B> b)
|
||||
: mCore(a), mModel(b), mCoreObject(a.get()), mModelObject(b.get()) {
|
||||
}
|
||||
SafeConnection(QSharedPointer<A> a, QSharedPointer<B> b)
|
||||
|
|
@ -150,6 +150,7 @@ public:
|
|||
}
|
||||
|
||||
bool tryLock() {
|
||||
if (!this) return false;
|
||||
mLocker.lock();
|
||||
auto coreLocked = mCore.lock();
|
||||
auto modelLocked = mModel.lock();
|
||||
|
|
|
|||
|
|
@ -22,6 +22,22 @@ Rectangle {
|
|||
height: participantAddColumn.implicitHeight
|
||||
signal done()
|
||||
|
||||
Connections {
|
||||
enabled: chatGui !== null
|
||||
target: chatGui.core
|
||||
function onParticipantAddressesChanged(success) {
|
||||
if (!success) UtilsCpp.showInformationPopup(qsTr("info_popup_error_title"),
|
||||
//: Error while setting participants !
|
||||
qsTr("info_popup_manage_participant_error_message"), false)
|
||||
else {
|
||||
mainItem.done()
|
||||
UtilsCpp.showInformationPopup(qsTr("info_popup_success_title"),
|
||||
//: Participants updated
|
||||
qsTr("info_popup_manage_participant_updated_message"), true)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
id: participantAddColumn
|
||||
anchors.fill: parent
|
||||
|
|
@ -36,7 +52,6 @@ Rectangle {
|
|||
style: ButtonStyle.noBackground
|
||||
icon.source: AppIcons.leftArrow
|
||||
onClicked: {
|
||||
mainItem.chatGui.core.lSetParticipantsAddresses(manageParticipantsLayout.selectedParticipants)
|
||||
mainItem.done()
|
||||
}
|
||||
}
|
||||
|
|
@ -47,6 +62,14 @@ Rectangle {
|
|||
font: Typography.h4
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
MediumButton {
|
||||
id: manageParticipantsApplyButton
|
||||
//: Apply
|
||||
text: qsTr("apply_button_text")
|
||||
onClicked: {
|
||||
mainItem.chatGui.core.lSetParticipantsAddresses(manageParticipantsLayout.selectedParticipants)
|
||||
}
|
||||
}
|
||||
}
|
||||
AddParticipantsForm {
|
||||
id: manageParticipantsLayout
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue