summaryrefslogtreecommitdiffstats
path: root/src/TimelineItem.cc
diff options
context:
space:
mode:
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.
*/