From 467ec757b3a4f4a418a6267ad2738d1ce6f92a04 Mon Sep 17 00:00:00 2001 From: Andreas Traczyk <andreas.traczyk@savoirfairelinux.com> Date: Tue, 1 May 2018 17:08:17 -0400 Subject: [PATCH] convsersationmodel: add getConversation Change-Id: If21cc0585152def69a3dd8be73fef01f834505b3 Reviewed-by: Kateryna Kostiuk <kateryna.kostiuk@savoirfairelinux.com> --- src/api/conversationmodel.h | 6 ++++++ src/conversationmodel.cpp | 13 +++++++++++++ 2 files changed, 19 insertions(+) diff --git a/src/api/conversationmodel.h b/src/api/conversationmodel.h index fb3bfe27..b49b2b7b 100644 --- a/src/api/conversationmodel.h +++ b/src/api/conversationmodel.h @@ -79,6 +79,12 @@ public: * @return conversations filtered */ const ConversationQueue& getFilteredConversations(const profile::Type& filter = profile::Type::INVALID, bool forceUpdate = false, const bool includeBanned = false) const; + /** + * Get a conversation copy + * @param uid of the conversation + * @return a copy of the conversation + */ + const conversation::Info getConversation(const std::string& uid) const; /** * Get the conversation at row in the filtered conversations * @param row diff --git a/src/conversationmodel.cpp b/src/conversationmodel.cpp index 92f05029..c0cee725 100644 --- a/src/conversationmodel.cpp +++ b/src/conversationmodel.cpp @@ -346,6 +346,19 @@ ConversationModel::getFilteredConversations(const profile::Type& filter, bool fo return pimpl_->customFilteredConversations; } +const conversation::Info +ConversationModel::getConversation(const std::string& uid) const +{ + auto row = pimpl_->indexOf(uid); + if (row >= pimpl_->conversations.size()) + return conversation::Info(); + + auto conversationInfo = pimpl_->conversations.at(row); + conversationInfo.unreadMessages = pimpl_->getNumberOfUnreadMessagesFor(conversationInfo.uid); + + return conversationInfo; +} + conversation::Info ConversationModel::filteredConversation(const unsigned int row) const { -- GitLab