summary refs log tree commit diff
diff options
context:
space:
mode:
authorAlexander Bantyev <balsoft@balsoft.ru>2021-06-19 23:26:21 +0300
committerAlexander Bantyev <balsoft@balsoft.ru>2021-06-19 23:26:21 +0300
commit358a39e6d2a5db9181a6dac1cb000ac8b85e15f2 (patch)
treed7ffafdaa27ed985f6c60dfe125b373e2bd7d8ff
parentfixup! Allow editing unsent messages (diff)
downloadnheko-358a39e6d2a5db9181a6dac1cb000ac8b85e15f2.tar.xz
fixup! Allow editing unsent messages
-rw-r--r--src/timeline/EventStore.cpp6
-rw-r--r--src/timeline/TimelineModel.cpp2
2 files changed, 7 insertions, 1 deletions
diff --git a/src/timeline/EventStore.cpp b/src/timeline/EventStore.cpp
index 956698da..04f7ef76 100644
--- a/src/timeline/EventStore.cpp
+++ b/src/timeline/EventStore.cpp
@@ -186,7 +186,11 @@ EventStore::EventStore(std::string room_id, QObject *)
                   nhlog::ui()->debug("sent {}", txn_id);
 
                   // Replace the event_id in pending edits/replies/redactions with the actual
-                  // event_id of this event
+                  // event_id of this event. This allows one to edit and reply to events that are
+                  // currently pending.
+
+                  // FIXME (introduced by balsoft): this doesn't work for encrypted events, but
+                  // allegedly it's hard to fix so I'll leave my first contribution at that
                   for (auto related_event_id : cache::client()->relatedEvents(room_id_, txn_id)) {
                           if (cache::client()->getEvent(room_id_, related_event_id)) {
                                   auto related_event =
diff --git a/src/timeline/TimelineModel.cpp b/src/timeline/TimelineModel.cpp
index 4bff15eb..99547b15 100644
--- a/src/timeline/TimelineModel.cpp
+++ b/src/timeline/TimelineModel.cpp
@@ -375,6 +375,8 @@ TimelineModel::TimelineModel(TimelineViewManager *manager, QString room_id, QObj
         connect(&events, &EventStore::updateFlowEventId, this, [this](std::string event_id) {
                 this->updateFlowEventId(event_id);
         });
+        // When a message is sent, check if the current edit/reply relates to that message,
+        // and update the event_id so that it points to the sent message and not the pending one.
         connect(&events,
                 &EventStore::messageSent,
                 this,