summary refs log tree commit diff
path: root/src/timeline
diff options
context:
space:
mode:
authorKonstantinos Sideris <sideris.konstantin@gmail.com>2018-07-07 23:59:23 +0300
committerKonstantinos Sideris <sideris.konstantin@gmail.com>2018-07-07 23:59:23 +0300
commit278eccc04086f3033c71a753f0fc0ab35a3cbb66 (patch)
treef246fc75066150e2901a4be33dc6a604ac4a2505 /src/timeline
parentAdd a timeline message when encryption is enabled (diff)
downloadnheko-278eccc04086f3033c71a753f0fc0ab35a3cbb66.tar.xz
Add context menu action to request encryption keys
Diffstat (limited to 'src/timeline')
-rw-r--r--src/timeline/TimelineItem.cc14
-rw-r--r--src/timeline/TimelineView.cc2
2 files changed, 16 insertions, 0 deletions
diff --git a/src/timeline/TimelineItem.cc b/src/timeline/TimelineItem.cc

index 7fc54962..274c1d43 100644 --- a/src/timeline/TimelineItem.cc +++ b/src/timeline/TimelineItem.cc
@@ -24,6 +24,7 @@ #include "ChatPage.h" #include "Config.h" #include "Logging.hpp" +#include "Olm.hpp" #include "Painter.h" #include "timeline/TimelineItem.h" @@ -683,6 +684,19 @@ TimelineItem::addReplyAction() } void +TimelineItem::addKeyRequestAction() +{ + if (contextMenu_) { + auto requestKeys = new QAction("Request encryption keys", this); + contextMenu_->addAction(requestKeys); + + connect(requestKeys, &QAction::triggered, this, [this]() { + olm::request_keys(room_id_.toStdString(), event_id_.toStdString()); + }); + } +} + +void TimelineItem::addAvatar() { if (userAvatar_) diff --git a/src/timeline/TimelineView.cc b/src/timeline/TimelineView.cc
index 35140df0..ee7b9a86 100644 --- a/src/timeline/TimelineView.cc +++ b/src/timeline/TimelineView.cc
@@ -261,6 +261,8 @@ TimelineView::parseMessageEvent(const mtx::events::collections::TimelineEvents & if (item && res.isDecrypted) item->markReceived(true); + else if (item && !res.isDecrypted) + item->addKeyRequestAction(); return widget; }