diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/timeline2/TimelineModel.cpp | 21 | ||||
-rw-r--r-- | src/timeline2/TimelineModel.h | 6 |
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); |