summary refs log tree commit diff
path: root/src/TimelineItem.cc
diff options
context:
space:
mode:
authorKonstantinos Sideris <sideris.konstantin@gmail.com>2017-11-28 02:01:37 +0200
committerKonstantinos Sideris <sideris.konstantin@gmail.com>2017-11-28 02:01:37 +0200
commitb21942a3e3db3e425155c58483a99bc2789de241 (patch)
tree860ffe40a5028b78df79de37a9b866a772885b1f /src/TimelineItem.cc
parentRemove another /messages call (#139) (diff)
downloadnheko-b21942a3e3db3e425155c58483a99bc2789de241.tar.xz
Add read support for m.file messages (#24)
Diffstat (limited to 'src/TimelineItem.cc')
-rw-r--r--src/TimelineItem.cc41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/TimelineItem.cc b/src/TimelineItem.cc

index 03d375c3..b57f5118 100644 --- a/src/TimelineItem.cc +++ b/src/TimelineItem.cc
@@ -24,6 +24,7 @@ #include "Avatar.h" #include "AvatarProvider.h" #include "Config.h" +#include "FileItem.h" #include "ImageItem.h" #include "Sync.h" #include "TimelineItem.h" @@ -186,6 +187,46 @@ TimelineItem::TimelineItem(ImageItem *image, mainLayout_->addLayout(imageLayout); } +TimelineItem::TimelineItem(FileItem *file, + const events::MessageEvent<msgs::File> &event, + bool with_sender, + QWidget *parent) + : QWidget(parent) +{ + init(); + + event_id_ = event.eventId(); + + auto timestamp = QDateTime::fromMSecsSinceEpoch(event.timestamp()); + auto displayName = TimelineViewManager::displayName(event.sender()); + + QSettings settings; + descriptionMsg_ = {event.sender() == settings.value("auth/user_id") ? "You" : displayName, + event.sender(), + " sent a file", + descriptiveTime(QDateTime::fromMSecsSinceEpoch(event.timestamp()))}; + + generateTimestamp(timestamp); + + auto fileLayout = new QHBoxLayout(); + fileLayout->setContentsMargins(0, 5, 0, 0); + fileLayout->addWidget(file); + fileLayout->addStretch(1); + + if (with_sender) { + generateBody(displayName, ""); + setupAvatarLayout(displayName); + + mainLayout_->addLayout(headerLayout_); + + AvatarProvider::resolve(event.sender(), this); + } else { + setupSimpleLayout(); + } + + mainLayout_->addLayout(fileLayout); +} + /* * Used to display remote notice messages. */