summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorNicolas Werner <nicolas.werner@hotmail.de>2019-10-03 22:39:56 +0200
committerNicolas Werner <nicolas.werner@hotmail.de>2019-11-23 20:06:15 +0100
commitea12c9f9bc9918884da8f7a930484412b93f9426 (patch)
treee4607a95ee5ec87a3c2f672222806c695334c1c2 /src
parentUpdate roomlist on new messages (diff)
downloadnheko-ea12c9f9bc9918884da8f7a930484412b93f9426.tar.xz
Add basic read_event support (qml)
Diffstat (limited to 'src')
-rw-r--r--src/timeline2/TimelineModel.cpp21
-rw-r--r--src/timeline2/TimelineModel.h6
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);