From 6b07a0299c802c10f6d25df491c3f640245917fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Blin?= <sebastien.blin@savoirfairelinux.com> Date: Wed, 23 Feb 2022 16:26:56 -0500 Subject: [PATCH] conversationmodel: use declineConversationRequest on requests This avoid to do any logic in the client, like discardTrustRequest https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/340 Change-Id: Iea92009693aea9ca30f42e2f5caf7ad7d27b188f --- src/api/conversationmodel.h | 6 ------ src/conversationmodel.cpp | 26 +++++--------------------- 2 files changed, 5 insertions(+), 27 deletions(-) diff --git a/src/api/conversationmodel.h b/src/api/conversationmodel.h index 9ac2b50c..7b4c3236 100644 --- a/src/api/conversationmodel.h +++ b/src/api/conversationmodel.h @@ -320,12 +320,6 @@ public: * @param conversationId conversation's id */ void acceptConversationRequest(const QString& conversationId); - /** - * decline request for conversation - * @param conversationId conversation's id - * @param banned. Used for non-swarm and one-to-one conversation to remove contact - */ - void declineConversationRequest(const QString& conversationId, bool banned = false); /** * add member to conversation * @param conversationId conversation's id diff --git a/src/conversationmodel.cpp b/src/conversationmodel.cpp index dea57721..c191ce59 100644 --- a/src/conversationmodel.cpp +++ b/src/conversationmodel.cpp @@ -813,10 +813,10 @@ ConversationModel::removeConversation(const QString& uid, bool banned) return; } if (conversation.isSwarm()) { - ConfigurationManager::instance().removeConversation(owner.id, uid); - pimpl_->eraseConversation(conversationIdx); - pimpl_->invalidateModel(); - emit conversationRemoved(uid); + if (conversation.isRequest) + ConfigurationManager::instance().declineConversationRequest(owner.id, uid); + else + ConfigurationManager::instance().removeConversation(owner.id, uid); // Still some other conversation, do nothing else if (!banned && getConversationForPeerUri(peers.front()) != std::nullopt) @@ -1649,23 +1649,6 @@ ConversationModel::acceptConversationRequest(const QString& conversationId) ConfigurationManager::instance().acceptConversationRequest(owner.id, conversationId); } -void -ConversationModel::declineConversationRequest(const QString& conversationId, bool banned) -{ - auto conversationOpt = getConversationForUid(conversationId); - if (!conversationOpt.has_value()) { - return; - } - auto& conversation = conversationOpt->get(); - // for non-swarm and one-to-one conversation remove contact. - if (conversation.mode == conversation::Mode::ONE_TO_ONE - || conversation.mode == conversation::Mode::NON_SWARM) { - removeConversation(conversationId, banned); - } else { - ConfigurationManager::instance().declineConversationRequest(owner.id, conversationId); - } -} - const VectorString ConversationModel::peersForConversation(const QString& conversationId) { @@ -2560,6 +2543,7 @@ ConversationModelPimpl::slotConversationRemoved(const QString& accountId, auto removeConversation = [&]() { // remove swarm conversation eraseConversation(conversationIndex); + invalidateModel(); Q_EMIT linked.conversationRemoved(conversationId); }; -- GitLab