Add a checkmark to messages that have been received by the server (#93)
3 files changed, 14 insertions, 1 deletions
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<mtx::events::msg::Text>
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);
}
|