diff options
author | Nicolas Werner <nicolas.werner@hotmail.de> | 2019-10-09 00:36:03 +0200 |
---|---|---|
committer | Nicolas Werner <nicolas.werner@hotmail.de> | 2019-11-23 20:06:15 +0100 |
commit | 8ebef4eed2134179e5609104eb72fe8f055a35f1 (patch) | |
tree | 7941398fe157409e3c0cb2a9663604ec12d0b72c /src | |
parent | d90038cf20fb6ba9c9d47c2f6fe689de71ea89a7 (diff) |
Size images/videos by timeline width
Diffstat (limited to 'src')
-rw-r--r-- | src/AvatarProvider.cpp | 4 | ||||
-rw-r--r-- | src/MxcImageProvider.cpp | 3 | ||||
-rw-r--r-- | src/timeline2/TimelineModel.cpp | 19 | ||||
-rw-r--r-- | src/timeline2/TimelineModel.h | 1 |
4 files changed, 24 insertions, 3 deletions
diff --git a/src/AvatarProvider.cpp b/src/AvatarProvider.cpp index c83ffe0f..68b6901e 100644 --- a/src/AvatarProvider.cpp +++ b/src/AvatarProvider.cpp @@ -67,8 +67,8 @@ resolve(const QString &avatarUrl, int size, QObject *receiver, AvatarCallback ca }); mtx::http::ThumbOpts opts; - opts.width = 256; - opts.height = 256; + opts.width = size; + opts.height = size; opts.mxc_url = avatarUrl.toStdString(); http::client()->get_thumbnail( diff --git a/src/MxcImageProvider.cpp b/src/MxcImageProvider.cpp index 305439fc..86dbcabc 100644 --- a/src/MxcImageProvider.cpp +++ b/src/MxcImageProvider.cpp @@ -38,7 +38,8 @@ MxcImageResponse::run() auto data = QByteArray(res.data(), res.size()); cache::client()->saveImage(fileName, data); m_image.loadFromData(data); - m_image = m_image.scaled(m_requestedSize, Qt::KeepAspectRatio); + m_image = m_image.scaled( + m_requestedSize, Qt::KeepAspectRatio, Qt::SmoothTransformation); m_image.setText("mxc url", "mxc://" + m_id); emit finished(); diff --git a/src/timeline2/TimelineModel.cpp b/src/timeline2/TimelineModel.cpp index b3ddf899..27bd09b6 100644 --- a/src/timeline2/TimelineModel.cpp +++ b/src/timeline2/TimelineModel.cpp @@ -108,6 +108,21 @@ eventUrl(const mtx::events::RoomEvent<T> &e) template<class T> QString +eventThumbnailUrl(const mtx::events::Event<T> &) +{ + return ""; +} +template<class T> +auto +eventThumbnailUrl(const mtx::events::RoomEvent<T> &e) + -> std::enable_if_t<std::is_same<decltype(e.content.info.thumbnail_url), std::string>::value, + QString> +{ + return QString::fromStdString(e.content.info.thumbnail_url); +} + +template<class T> +QString eventFilename(const mtx::events::Event<T> &) { return ""; @@ -355,6 +370,7 @@ TimelineModel::roleNames() const {UserName, "userName"}, {Timestamp, "timestamp"}, {Url, "url"}, + {ThumbnailUrl, "thumbnailUrl"}, {Filename, "filename"}, {Filesize, "filesize"}, {MimeType, "mimetype"}, @@ -436,6 +452,9 @@ TimelineModel::data(const QModelIndex &index, int role) const case Url: return QVariant(boost::apply_visitor( [](const auto &e) -> QString { return eventUrl(e); }, event)); + case ThumbnailUrl: + return QVariant(boost::apply_visitor( + [](const auto &e) -> QString { return eventThumbnailUrl(e); }, event)); case Filename: return QVariant(boost::apply_visitor( [](const auto &e) -> QString { return eventFilename(e); }, event)); diff --git a/src/timeline2/TimelineModel.h b/src/timeline2/TimelineModel.h index 35ec325d..b7ff546b 100644 --- a/src/timeline2/TimelineModel.h +++ b/src/timeline2/TimelineModel.h @@ -129,6 +129,7 @@ public: UserName, Timestamp, Url, + ThumbnailUrl, Filename, Filesize, MimeType, |