summary refs log tree commit diff
path: root/src/timeline
diff options
context:
space:
mode:
authorDeepBlueV7.X <nicolas.werner@hotmail.de>2020-03-05 21:07:18 +0000
committerGitHub <noreply@github.com>2020-03-05 21:07:18 +0000
commitfc2f08a186c2712ae50891fa4f09fda91f6c3b19 (patch)
treef0048dc4af5ce5d62b9ab7e186d52c4baeed2047 /src/timeline
parentMerge pull request #131 from adasauce/shh (diff)
parentUpdate mtxclient in flatpak for blurhash (diff)
downloadnheko-fc2f08a186c2712ae50891fa4f09fda91f6c3b19.tar.xz
Merge pull request #137 from Nheko-Reborn/blurhash
Experimental Blurhash support
Diffstat (limited to 'src/timeline')
-rw-r--r--src/timeline/TimelineModel.cpp4
-rw-r--r--src/timeline/TimelineModel.h1
-rw-r--r--src/timeline/TimelineViewManager.cpp5
-rw-r--r--src/timeline/TimelineViewManager.h3
4 files changed, 13 insertions, 0 deletions
diff --git a/src/timeline/TimelineModel.cpp b/src/timeline/TimelineModel.cpp

index 2c03937a..e1d2e822 100644 --- a/src/timeline/TimelineModel.cpp +++ b/src/timeline/TimelineModel.cpp
@@ -212,6 +212,7 @@ TimelineModel::roleNames() const {Timestamp, "timestamp"}, {Url, "url"}, {ThumbnailUrl, "thumbnailUrl"}, + {Blurhash, "blurhash"}, {Filename, "filename"}, {Filesize, "filesize"}, {MimeType, "mimetype"}, @@ -297,6 +298,8 @@ TimelineModel::data(const QString &id, int role) const return QVariant(QString::fromStdString(url(event))); case ThumbnailUrl: return QVariant(QString::fromStdString(thumbnail_url(event))); + case Blurhash: + return QVariant(QString::fromStdString(blurhash(event))); case Filename: return QVariant(QString::fromStdString(filename(event))); case Filesize: @@ -356,6 +359,7 @@ TimelineModel::data(const QString &id, int role) const m.insert(names[Timestamp], data(id, static_cast<int>(Timestamp))); m.insert(names[Url], data(id, static_cast<int>(Url))); m.insert(names[ThumbnailUrl], data(id, static_cast<int>(ThumbnailUrl))); + m.insert(names[Blurhash], data(id, static_cast<int>(Blurhash))); m.insert(names[Filename], data(id, static_cast<int>(Filename))); m.insert(names[Filesize], data(id, static_cast<int>(Filesize))); m.insert(names[MimeType], data(id, static_cast<int>(MimeType))); diff --git a/src/timeline/TimelineModel.h b/src/timeline/TimelineModel.h
index 15111f0a..1f3ef5cf 100644 --- a/src/timeline/TimelineModel.h +++ b/src/timeline/TimelineModel.h
@@ -142,6 +142,7 @@ public: Timestamp, Url, ThumbnailUrl, + Blurhash, Filename, Filesize, MimeType, diff --git a/src/timeline/TimelineViewManager.cpp b/src/timeline/TimelineViewManager.cpp
index a3827501..44e26921 100644 --- a/src/timeline/TimelineViewManager.cpp +++ b/src/timeline/TimelineViewManager.cpp
@@ -4,6 +4,7 @@ #include <QPalette> #include <QQmlContext> +#include "BlurhashProvider.h" #include "ChatPage.h" #include "ColorImageProvider.h" #include "DelegateChooser.h" @@ -69,6 +70,7 @@ TimelineViewManager::userColor(QString id, QColor background) TimelineViewManager::TimelineViewManager(QSharedPointer<UserSettings> userSettings, QWidget *parent) : imgProvider(new MxcImageProvider()) , colorImgProvider(new ColorImageProvider()) + , blurhashProvider(new BlurhashProvider()) , settings(userSettings) { qmlRegisterUncreatableMetaObject(qml_mtx_events::staticMetaObject, @@ -99,6 +101,7 @@ TimelineViewManager::TimelineViewManager(QSharedPointer<UserSettings> userSettin updateColorPalette(); view->engine()->addImageProvider("MxcImage", imgProvider); view->engine()->addImageProvider("colorimage", colorImgProvider); + view->engine()->addImageProvider("blurhash", blurhashProvider); view->setSource(QUrl("qrc:///qml/TimelineView.qml")); connect(dynamic_cast<ChatPage *>(parent), @@ -270,11 +273,13 @@ TimelineViewManager::queueImageMessage(const QString &roomid, const QString &mime, uint64_t dsize, const QSize &dimensions, + const QString &blurhash, const std::optional<RelatedInfo> &related) { mtx::events::msg::Image image; image.info.mimetype = mime.toStdString(); image.info.size = dsize; + image.info.blurhash = blurhash.toStdString(); image.body = filename.toStdString(); image.url = url.toStdString(); image.info.h = dimensions.height(); diff --git a/src/timeline/TimelineViewManager.h b/src/timeline/TimelineViewManager.h
index 338101c7..0c516e7f 100644 --- a/src/timeline/TimelineViewManager.h +++ b/src/timeline/TimelineViewManager.h
@@ -14,6 +14,7 @@ #include "Utils.h" class MxcImageProvider; +class BlurhashProvider; class ColorImageProvider; class UserSettings; @@ -79,6 +80,7 @@ public slots: const QString &mime, uint64_t dsize, const QSize &dimensions, + const QString &blurhash, const std::optional<RelatedInfo> &related); void queueFileMessage(const QString &roomid, const QString &filename, @@ -112,6 +114,7 @@ private: MxcImageProvider *imgProvider; ColorImageProvider *colorImgProvider; + BlurhashProvider *blurhashProvider; QHash<QString, QSharedPointer<TimelineModel>> models; TimelineModel *timeline_ = nullptr;