diff --git a/resources/qml/TimelineView.qml b/resources/qml/TimelineView.qml index 4d8c22b8..b641992d 100644 --- a/resources/qml/TimelineView.qml +++ b/resources/qml/TimelineView.qml @@ -110,7 +110,9 @@ Rectangle { //case MtxEvent.Topic: return "delegates/Topic.qml" case MtxEvent.NoticeMessage: return "delegates/NoticeMessage.qml" case MtxEvent.TextMessage: return "delegates/TextMessage.qml" + case MtxEvent.EmoteMessage: return "delegates/TextMessage.qml" case MtxEvent.ImageMessage: return "delegates/ImageMessage.qml" + case MtxEvent.Sticker: return "delegates/ImageMessage.qml" case MtxEvent.FileMessage: return "delegates/FileMessage.qml" case MtxEvent.VideoMessage: return "delegates/PlayableMediaMessage.qml" case MtxEvent.AudioMessage: return "delegates/PlayableMediaMessage.qml" @@ -204,7 +206,7 @@ Rectangle { onTriggered: chat.model.redactEvent(model.id) } MenuItem { - visible: model.type == MtxEvent.ImageMessage || model.type == MtxEvent.VideoMessage || model.type == MtxEvent.AudioMessage || model.type == MtxEvent.FileMessage + visible: model.type == MtxEvent.ImageMessage || model.type == MtxEvent.VideoMessage || model.type == MtxEvent.AudioMessage || model.type == MtxEvent.FileMessage || model.type == MtxEvent.Sticker text: qsTr("Save as") onTriggered: timelineManager.saveMedia(model.url, model.filename, model.mimetype, model.type) } diff --git a/resources/qml/delegates/ImageMessage.qml b/resources/qml/delegates/ImageMessage.qml index 3f5c00bf..2ed41a17 100644 --- a/resources/qml/delegates/ImageMessage.qml +++ b/resources/qml/delegates/ImageMessage.qml @@ -1,5 +1,7 @@ import QtQuick 2.6 +import com.github.nheko 1.0 + Item { width: 300 height: 300 * eventData.proportionalHeight @@ -13,6 +15,7 @@ Item { fillMode: Image.PreserveAspectFit MouseArea { + enabled: eventData.type == MtxEvent.ImageMessage anchors.fill: parent onClicked: timelineManager.openImageOverlay(eventData.url, eventData.filename, eventData.mimetype, eventData.type) } diff --git a/src/timeline2/TimelineModel.cpp b/src/timeline2/TimelineModel.cpp index d624c938..2d1a79c2 100644 --- a/src/timeline2/TimelineModel.cpp +++ b/src/timeline2/TimelineModel.cpp @@ -16,26 +16,26 @@ namespace { template QString -eventId(const T &event) +eventId(const mtx::events::RoomEvent &event) { return QString::fromStdString(event.event_id); } template QString -roomId(const T &event) +roomId(const mtx::events::Event &event) { return QString::fromStdString(event.room_id); } template QString -senderId(const T &event) +senderId(const mtx::events::RoomEvent &event) { return QString::fromStdString(event.sender); } template QDateTime -eventTimestamp(const T &event) +eventTimestamp(const mtx::events::RoomEvent &event) { return QDateTime::fromMSecsSinceEpoch(event.origin_server_ts); } @@ -94,7 +94,7 @@ eventFormattedBody(const mtx::events::RoomEvent &e) template QString -eventUrl(const T &) +eventUrl(const mtx::events::Event &) { return ""; } @@ -108,7 +108,7 @@ eventUrl(const mtx::events::RoomEvent &e) template QString -eventFilename(const T &) +eventFilename(const mtx::events::Event &) { return ""; } @@ -148,14 +148,14 @@ eventFilesize(const mtx::events::RoomEvent &e) -> decltype(e.content.info.siz template int64_t -eventFilesize(const T &) +eventFilesize(const mtx::events::Event &) { return 0; } template QString -eventMimeType(const T &) +eventMimeType(const mtx::events::Event &) { return QString(); }