diff --git a/src/conversationmodel.cpp b/src/conversationmodel.cpp index f02fd3652fc9b147773240b24422a1cdf4a038d3..c5b17cd015e95f22fce72ff2026316751808eaec 100644 --- a/src/conversationmodel.cpp +++ b/src/conversationmodel.cpp @@ -2199,11 +2199,11 @@ ConversationModelPimpl::slotConversationLoaded(uint32_t requestId, if (accountId != linked.owner.id) { return; } + try { auto& conversation = getConversationForUid(conversationId).get(); auto size = messages.size(); for (int i = size - 1; i >= 0; --i) { - // for (int i = 0; i < size; ++i) { auto message = messages[i]; if (message["type"].isEmpty() || message["type"] == "application/update-profile") { continue; @@ -2258,6 +2258,15 @@ ConversationModelPimpl::slotConversationLoaded(uint32_t requestId, break; } } + if (conversation.lastMessageUid.isEmpty() && !conversation.allMessagesLoaded) { + // In this case, we only have loaded merge commits. Load more messages + ConfigurationManager::instance().loadConversationMessages(linked.owner.id, + conversationId, + messages.rbegin()->value( + "id"), + 2); + return; + } invalidateModel(); emit linked.modelChanged(); emit linked.newMessagesAvailable(linked.owner.id, conversationId); @@ -2468,10 +2477,10 @@ ConversationModelPimpl::slotConversationReady(const QString& accountId, conversation.needsSyncing = false; Q_EMIT linked.conversationUpdated(conversationId); Q_EMIT linked.dataChanged(conversationIdx); - auto id = ConfigurationManager::instance().loadConversationMessages(linked.owner.id, - conversationId, - "", - 0); + ConfigurationManager::instance().loadConversationMessages(linked.owner.id, + conversationId, + "", + 0); auto& peers = peersForConversation(conversation); if (peers.size() == 1) emit linked.conversationReady(conversationId, peers.front()); @@ -2878,10 +2887,7 @@ ConversationModelPimpl::addSwarmConversation(const QString& convId) Q_EMIT linked.dataChanged(indexOf(conversation.uid)); } emplaceBackConversation(std::move(conversation)); - auto id = ConfigurationManager::instance().loadConversationMessages(linked.owner.id, - convId, - "", - 1); + ConfigurationManager::instance().loadConversationMessages(linked.owner.id, convId, "", 1); } void