diff options
author | Nicolas Werner <nicolas.werner@hotmail.de> | 2019-10-03 22:39:56 +0200 |
---|---|---|
committer | Nicolas Werner <nicolas.werner@hotmail.de> | 2019-11-23 20:06:15 +0100 |
commit | ea12c9f9bc9918884da8f7a930484412b93f9426 (patch) | |
tree | e4607a95ee5ec87a3c2f672222806c695334c1c2 /src | |
parent | Update roomlist on new messages (diff) | |
download | nheko-ea12c9f9bc9918884da8f7a930484412b93f9426.tar.xz |
Add basic read_event support (qml)
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); |