summary refs log tree commit diff
path: root/src/timeline/TimelineItem.cc
diff options
context:
space:
mode:
authorKonstantinos Sideris <sideris.konstantin@gmail.com>2017-12-01 15:39:50 +0200
committerKonstantinos Sideris <sideris.konstantin@gmail.com>2017-12-01 15:39:50 +0200
commit432a2e13548b00bbacee1f06da8e605e26006379 (patch)
treecfbbb0819dd6364a0ee11e4159a3c44b909ee7a7 /src/timeline/TimelineItem.cc
parentGroup emoji and dialogs with namespaces (diff)
downloadnheko-432a2e13548b00bbacee1f06da8e605e26006379.tar.xz
Add inline audio clip player (m.audio) (#143)
Diffstat (limited to 'src/timeline/TimelineItem.cc')
-rw-r--r--src/timeline/TimelineItem.cc92
1 files changed, 25 insertions, 67 deletions
diff --git a/src/timeline/TimelineItem.cc b/src/timeline/TimelineItem.cc

index f7dd0f6e..f55e5f4c 100644 --- a/src/timeline/TimelineItem.cc +++ b/src/timeline/TimelineItem.cc
@@ -17,7 +17,6 @@ #include <QFontDatabase> #include <QRegExp> -#include <QSettings> #include <QTextEdit> #include "Avatar.h" @@ -25,6 +24,7 @@ #include "Sync.h" #include "timeline/TimelineItem.h" +#include "timeline/widgets/AudioItem.h" #include "timeline/widgets/FileItem.h" #include "timeline/widgets/ImageItem.h" @@ -128,47 +128,25 @@ TimelineItem::TimelineItem(FileItem *file, const QString &userid, bool withSende setupLocalWidgetLayout<FileItem>(file, userid, "sent a file", withSender); } -/* - * Used to display images. The avatar and the username are displayed. - */ +TimelineItem::TimelineItem(AudioItem *audio, + const QString &userid, + bool withSender, + QWidget *parent) + : QWidget{parent} +{ + init(); + + setupLocalWidgetLayout<AudioItem>(audio, userid, "sent an audio clip", withSender); +} + TimelineItem::TimelineItem(ImageItem *image, const events::MessageEvent<msgs::Image> &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 an image", - descriptiveTime(QDateTime::fromMSecsSinceEpoch(event.timestamp()))}; - - generateTimestamp(timestamp); - - auto imageLayout = new QHBoxLayout(); - imageLayout->setContentsMargins(0, 5, 0, 0); - imageLayout->addWidget(image); - imageLayout->addStretch(1); - - if (with_sender) { - generateBody(displayName, ""); - setupAvatarLayout(displayName); - - mainLayout_->addLayout(headerLayout_); - - AvatarProvider::resolve(event.sender(), this); - } else { - setupSimpleLayout(); - } - - mainLayout_->addLayout(imageLayout); + setupWidgetLayout<events::MessageEvent<msgs::Image>, ImageItem>( + image, event, " sent an image", with_sender); } TimelineItem::TimelineItem(FileItem *file, @@ -177,38 +155,18 @@ TimelineItem::TimelineItem(FileItem *file, 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(); - } + setupWidgetLayout<events::MessageEvent<msgs::File>, FileItem>( + file, event, " sent a file", with_sender); +} - mainLayout_->addLayout(fileLayout); +TimelineItem::TimelineItem(AudioItem *audio, + const events::MessageEvent<msgs::Audio> &event, + bool with_sender, + QWidget *parent) + : QWidget(parent) +{ + setupWidgetLayout<events::MessageEvent<msgs::Audio>, AudioItem>( + audio, event, " sent an audio clip", with_sender); } /*