summary refs log tree commit diff
path: root/src/timeline
diff options
context:
space:
mode:
authorKonstantinos Sideris <sideris.konstantin@gmail.com>2017-12-01 17:33:49 +0200
committerKonstantinos Sideris <sideris.konstantin@gmail.com>2017-12-01 17:33:49 +0200
commit5573548fb1adbaef6ef8e30fd76855b90c0fe26c (patch)
tree2204a70a9de4c565ad9ab1c49a97ef90bc1e059d /src/timeline
parentInstall qt-multimedia on travis (diff)
downloadnheko-5573548fb1adbaef6ef8e30fd76855b90c0fe26c.tar.xz
Allow audio clip uploads
Diffstat (limited to 'src/timeline')
-rw-r--r--src/timeline/TimelineView.cc12
-rw-r--r--src/timeline/TimelineViewManager.cc16
-rw-r--r--src/timeline/widgets/AudioItem.cc3
-rw-r--r--src/timeline/widgets/FileItem.cc3
4 files changed, 31 insertions, 3 deletions
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" @@ -114,6 +115,21 @@ TimelineViewManager::queueFileMessage(const QString &roomid, } 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<AudioItem, matrix::events::MessageEventType::Audio>(url, filename); +} + +void TimelineViewManager::clearAll() { for (auto view : views_) 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<MatrixClient> 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<MatrixClient> client, QString FileItem::calculateFileSize(int nbytes) const { + if (nbytes == 0) + return QString(""); + if (nbytes < 1024) return QString("%1 B").arg(nbytes);