diff --git a/src/Cache.cpp b/src/Cache.cpp index 65e703e0..84cad3ab 100644 --- a/src/Cache.cpp +++ b/src/Cache.cpp @@ -4292,7 +4292,7 @@ Cache::saveOldMessages(const std::string &room_id, const mtx::responses::Message orderDb.put(txn, lmdb::to_sv(index), orderEntry.dump()); txn.commit(); } - return index; + return msgIndex; } std::string event_id_val; diff --git a/src/timeline/EventStore.cpp b/src/timeline/EventStore.cpp index 68089ceb..da0e77a4 100644 --- a/src/timeline/EventStore.cpp +++ b/src/timeline/EventStore.cpp @@ -69,9 +69,9 @@ EventStore::EventStore(std::string room_id, QObject *) } uint64_t newFirst = cache::client()->saveOldMessages(room_id_, res); - if (newFirst == first) + if (newFirst == first) { fetchMore(); - else { + } else { if (this->last != std::numeric_limits::max()) { auto oldFirst = this->first; emit beginInsertRows(toExternalIdx(newFirst), toExternalIdx(this->first - 1)); @@ -323,6 +323,7 @@ EventStore::clearTimeline() decryptedEvents_.clear(); events_.clear(); + noMoreMessages = false; emit endResetModel(); } @@ -428,6 +429,7 @@ EventStore::handleSync(const mtx::responses::Timeline &events) decryptedEvents_.clear(); events_.clear(); + noMoreMessages = false; emit endResetModel(); return; } @@ -439,6 +441,7 @@ EventStore::handleSync(const mtx::responses::Timeline &events) decryptedEvents_.clear(); events_.clear(); + noMoreMessages = false; emit endResetModel(); } else if (range->last > this->last) { emit beginInsertRows(toExternalIdx(this->last + 1), toExternalIdx(range->last));