From 5573548fb1adbaef6ef8e30fd76855b90c0fe26c Mon Sep 17 00:00:00 2001 From: Konstantinos Sideris Date: Fri, 1 Dec 2017 17:33:49 +0200 Subject: Allow audio clip uploads --- src/timeline/TimelineView.cc | 12 +++++++++--- src/timeline/TimelineViewManager.cc | 16 ++++++++++++++++ src/timeline/widgets/AudioItem.cc | 3 +++ src/timeline/widgets/FileItem.cc | 3 +++ 4 files changed, 31 insertions(+), 3 deletions(-) (limited to 'src/timeline') diff --git a/src/timeline/TimelineView.cc b/src/timeline/TimelineView.cc index e5fd7f88..af7c0f7f 100644 --- a/src/timeline/TimelineView.cc +++ b/src/timeline/TimelineView.cc @@ -436,13 +436,19 @@ TimelineView::sendNextPendingMessage() PendingMessage &m = pending_msgs_.head(); switch (m.ty) { + case matrix::events::MessageEventType::Audio: case matrix::events::MessageEventType::Image: case matrix::events::MessageEventType::File: - client_->sendRoomMessage( - m.ty, m.txn_id, room_id_, QFileInfo(m.filename).fileName(), m.body); + // FIXME: Improve the API + client_->sendRoomMessage(m.ty, + m.txn_id, + room_id_, + QFileInfo(m.filename).fileName(), + QFileInfo(m.filename), + m.body); break; default: - client_->sendRoomMessage(m.ty, m.txn_id, room_id_, m.body); + client_->sendRoomMessage(m.ty, m.txn_id, room_id_, m.body, QFileInfo()); break; } } diff --git a/src/timeline/TimelineViewManager.cc b/src/timeline/TimelineViewManager.cc index 39f07639..281cafcd 100644 --- a/src/timeline/TimelineViewManager.cc +++ b/src/timeline/TimelineViewManager.cc @@ -27,6 +27,7 @@ #include "timeline/TimelineView.h" #include "timeline/TimelineViewManager.h" +#include "timeline/widgets/AudioItem.h" #include "timeline/widgets/FileItem.h" #include "timeline/widgets/ImageItem.h" @@ -113,6 +114,21 @@ TimelineViewManager::queueFileMessage(const QString &roomid, view->addUserMessage(url, filename); } +void +TimelineViewManager::queueAudioMessage(const QString &roomid, + const QString &filename, + const QString &url) +{ + if (!views_.contains(roomid)) { + qDebug() << "Cannot send m.audio message to a non-managed view"; + return; + } + + auto view = views_[roomid]; + + view->addUserMessage(url, filename); +} + void TimelineViewManager::clearAll() { diff --git a/src/timeline/widgets/AudioItem.cc b/src/timeline/widgets/AudioItem.cc index 7c4b2d48..2a417b3e 100644 --- a/src/timeline/widgets/AudioItem.cc +++ b/src/timeline/widgets/AudioItem.cc @@ -107,6 +107,9 @@ AudioItem::AudioItem(QSharedPointer client, QString AudioItem::calculateFileSize(int nbytes) const { + if (nbytes == 0) + return QString(""); + if (nbytes < 1024) return QString("%1 B").arg(nbytes); diff --git a/src/timeline/widgets/FileItem.cc b/src/timeline/widgets/FileItem.cc index e70be9da..e4cc02b2 100644 --- a/src/timeline/widgets/FileItem.cc +++ b/src/timeline/widgets/FileItem.cc @@ -94,6 +94,9 @@ FileItem::FileItem(QSharedPointer client, QString FileItem::calculateFileSize(int nbytes) const { + if (nbytes == 0) + return QString(""); + if (nbytes < 1024) return QString("%1 B").arg(nbytes); -- cgit 1.5.1