diff --git a/include/timeline/TimelineItem.h b/include/timeline/TimelineItem.h index 15cbc714..525cd6e1 100644 --- a/include/timeline/TimelineItem.h +++ b/include/timeline/TimelineItem.h @@ -84,6 +84,7 @@ public: DescInfo descriptionMessage() const { return descriptionMsg_; } QString eventId() const { return event_id_; } void setEventId(const QString &event_id) { event_id_ = event_id; } + void markReceived(); ~TimelineItem(); diff --git a/src/timeline/TimelineItem.cc b/src/timeline/TimelineItem.cc index a7c73535..d2720600 100644 --- a/src/timeline/TimelineItem.cc +++ b/src/timeline/TimelineItem.cc @@ -340,6 +340,16 @@ TimelineItem::TimelineItem(const mtx::events::RoomEvent mainLayout_->addLayout(messageLayout_); } +void +TimelineItem::markReceived() +{ + auto checkmark = new QLabel("✓", this); + checkmark->setStyleSheet(QString("font-size: %1px;").arg(conf::timeline::fonts::timestamp)); + checkmark->setAlignment(Qt::AlignTop); + + messageLayout_->insertWidget(1, checkmark); +} + // Only the body is displayed. void TimelineItem::generateBody(const QString &body) diff --git a/src/timeline/TimelineView.cc b/src/timeline/TimelineView.cc index 75ce8141..f4cc2d2e 100644 --- a/src/timeline/TimelineView.cc +++ b/src/timeline/TimelineView.cc @@ -461,8 +461,10 @@ TimelineView::updatePendingMessage(int txn_id, QString event_id) auto msg = pending_msgs_.dequeue(); msg.event_id = event_id; - if (msg.widget) + if (msg.widget) { msg.widget->setEventId(event_id); + msg.widget->markReceived(); + } pending_sent_msgs_.append(msg); }