summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorNicolas Werner <nicolas.werner@hotmail.de>2019-10-09 00:36:03 +0200
committerNicolas Werner <nicolas.werner@hotmail.de>2019-11-23 20:06:15 +0100
commit8ebef4eed2134179e5609104eb72fe8f055a35f1 (patch)
tree7941398fe157409e3c0cb2a9663604ec12d0b72c /src
parentd90038cf20fb6ba9c9d47c2f6fe689de71ea89a7 (diff)
Size images/videos by timeline width
Diffstat (limited to 'src')
-rw-r--r--src/AvatarProvider.cpp4
-rw-r--r--src/MxcImageProvider.cpp3
-rw-r--r--src/timeline2/TimelineModel.cpp19
-rw-r--r--src/timeline2/TimelineModel.h1
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,