summary refs log tree commit diff
path: root/src/timeline
diff options
context:
space:
mode:
authorKonstantinos Sideris <sideris.konstantin@gmail.com>2018-06-30 15:13:15 +0300
committerKonstantinos Sideris <sideris.konstantin@gmail.com>2018-06-30 15:13:15 +0300
commit5b5d35fd1f33555f6dacecacaf53a18517218b79 (patch)
treea0c9dbba27ff5826c906fd6bbc5b6587c2d149ea /src/timeline
parentAllow arbitrary resizing of the main window & restore sidebar's size (diff)
downloadnheko-5b5d35fd1f33555f6dacecacaf53a18517218b79.tar.xz
Add basic support for replies (#292)
Diffstat (limited to 'src/timeline')
-rw-r--r--src/timeline/TimelineItem.cc22
-rw-r--r--src/timeline/TimelineView.cc2
2 files changed, 23 insertions, 1 deletions
diff --git a/src/timeline/TimelineItem.cc b/src/timeline/TimelineItem.cc

index c104801d..bbe3ff34 100644 --- a/src/timeline/TimelineItem.cc +++ b/src/timeline/TimelineItem.cc
@@ -125,6 +125,7 @@ TimelineItem::TimelineItem(mtx::events::MessageType ty, , room_id_{room_id} { init(); + addReplyAction(); auto displayName = Cache::displayName(room_id_, userid); auto timestamp = QDateTime::currentDateTime(); @@ -290,6 +291,7 @@ TimelineItem::TimelineItem(const mtx::events::RoomEvent<mtx::events::msg::Notice , room_id_{room_id} { init(); + addReplyAction(); event_id_ = QString::fromStdString(event.event_id); const auto sender = QString::fromStdString(event.sender); @@ -341,6 +343,7 @@ TimelineItem::TimelineItem(const mtx::events::RoomEvent<mtx::events::msg::Emote> , room_id_{room_id} { init(); + addReplyAction(); event_id_ = QString::fromStdString(event.event_id); const auto sender = QString::fromStdString(event.sender); @@ -388,6 +391,7 @@ TimelineItem::TimelineItem(const mtx::events::RoomEvent<mtx::events::msg::Text> , room_id_{room_id} { init(); + addReplyAction(); event_id_ = QString::fromStdString(event.event_id); const auto sender = QString::fromStdString(event.sender); @@ -611,6 +615,24 @@ TimelineItem::addSaveImageAction(ImageItem *image) } void +TimelineItem::addReplyAction() +{ + if (contextMenu_) { + auto replyAction = new QAction("Reply", this); + contextMenu_->addAction(replyAction); + + connect(replyAction, &QAction::triggered, this, [this]() { + if (!body_) + return; + + emit ChatPage::instance()->messageReply( + Cache::displayName(room_id_, descriptionMsg_.userid), + body_->toPlainText()); + }); + } +} + +void TimelineItem::addAvatar() { if (userAvatar_) diff --git a/src/timeline/TimelineView.cc b/src/timeline/TimelineView.cc
index 98ff0983..47e92a3b 100644 --- a/src/timeline/TimelineView.cc +++ b/src/timeline/TimelineView.cc
@@ -143,7 +143,7 @@ TimelineView::fetchHistory() isPaginationInProgress_ = true; getMessages(); - paginationTimer_->start(5000); + paginationTimer_->start(2000); return; }