2 files changed, 22 insertions, 5 deletions
diff --git a/src/timeline2/TimelineModel.cpp b/src/timeline2/TimelineModel.cpp
index db9ce555..83d1e417 100644
--- a/src/timeline2/TimelineModel.cpp
+++ b/src/timeline2/TimelineModel.cpp
@@ -585,6 +585,27 @@ TimelineModel::fetchHistory()
}
void
+TimelineModel::setCurrentIndex(int index)
+{
+ auto oldIndex = idToIndex(currentId);
+ currentId = indexToId(index);
+ emit currentIndexChanged(index);
+
+ if (oldIndex < index) {
+ http::client()->read_event(room_id_.toStdString(),
+ currentId.toStdString(),
+ [this](mtx::http::RequestErr err) {
+ if (err) {
+ nhlog::net()->warn(
+ "failed to read_event ({}, {})",
+ room_id_.toStdString(),
+ currentId.toStdString());
+ }
+ });
+ }
+}
+
+void
TimelineModel::addBackwardsEvents(const mtx::responses::Messages &msgs)
{
std::vector<QString> ids = internalAddEvents(msgs.chunk);
diff --git a/src/timeline2/TimelineModel.h b/src/timeline2/TimelineModel.h
index 9b861010..10f3c490 100644
--- a/src/timeline2/TimelineModel.h
+++ b/src/timeline2/TimelineModel.h
@@ -162,11 +162,7 @@ public:
public slots:
void fetchHistory();
- void setCurrentIndex(int index)
- {
- currentId = indexToId(index);
- emit currentIndexChanged(index);
- }
+ void setCurrentIndex(int index);
int currentIndex() const { return idToIndex(currentId); }
void markEventsAsRead(const std::vector<QString> &event_ids);
|