diff --git a/resources/qml/Avatar.qml b/resources/qml/Avatar.qml
index 131e6b46..a53f057b 100644
--- a/resources/qml/Avatar.qml
+++ b/resources/qml/Avatar.qml
@@ -31,6 +31,11 @@ Rectangle {
anchors.fill: parent
asynchronous: true
fillMode: Image.PreserveAspectCrop
+ mipmap: true
+ smooth: false
+
+ sourceSize.width: avatar.width
+ sourceSize.height: avatar.height
layer.enabled: true
layer.effect: OpacityMask {
diff --git a/resources/qml/TimelineRow.qml b/resources/qml/TimelineRow.qml
index 66d44622..b9fa6f40 100644
--- a/resources/qml/TimelineRow.qml
+++ b/resources/qml/TimelineRow.qml
@@ -12,7 +12,6 @@ RowLayout {
property var view: chat
anchors.leftMargin: avatarSize + 4
- anchors.rightMargin: scrollbar.width
anchors.left: parent.left
anchors.right: parent.right
diff --git a/resources/qml/TimelineView.qml b/resources/qml/TimelineView.qml
index e5c1bda6..8f64637e 100644
--- a/resources/qml/TimelineView.qml
+++ b/resources/qml/TimelineView.qml
@@ -14,7 +14,7 @@ Rectangle {
property var colors: currentActivePalette
property var systemInactive: SystemPalette { colorGroup: SystemPalette.Disabled }
property var inactiveColors: currentInactivePalette ? currentInactivePalette : systemInactive
- property int avatarSize: 32
+ property int avatarSize: 40
color: colors.window
@@ -34,6 +34,9 @@ Rectangle {
visible: timelineManager.timeline != null
anchors.fill: parent
+ anchors.leftMargin: 4
+ anchors.rightMargin: scrollbar.width
+
model: timelineManager.timeline
onModelChanged: {
@@ -54,7 +57,7 @@ Rectangle {
ScrollBar.vertical: ScrollBar {
id: scrollbar
anchors.top: parent.top
- anchors.right: parent.right
+ anchors.left: parent.right
anchors.bottom: parent.bottom
onPressedChanged: if (!pressed) chat.updatePosition()
}
diff --git a/resources/qml/delegates/MessageDelegate.qml b/resources/qml/delegates/MessageDelegate.qml
index 3d892b76..49209f68 100644
--- a/resources/qml/delegates/MessageDelegate.qml
+++ b/resources/qml/delegates/MessageDelegate.qml
@@ -5,8 +5,6 @@ DelegateChooser {
//role: "type" //< not supported in our custom implementation, have to use roleValue
roleValue: model.type
- width: parent.width
-
DelegateChoice {
roleValue: MtxEvent.TextMessage
TextMessage {}
diff --git a/src/MxcImageProvider.cpp b/src/MxcImageProvider.cpp
index 86dbcabc..556b019b 100644
--- a/src/MxcImageProvider.cpp
+++ b/src/MxcImageProvider.cpp
@@ -6,7 +6,7 @@ void
MxcImageResponse::run()
{
if (m_requestedSize.isValid()) {
- QString fileName = QString("%1_%2x%3")
+ QString fileName = QString("%1_%2x%3_crop")
.arg(m_id)
.arg(m_requestedSize.width())
.arg(m_requestedSize.height());
@@ -23,7 +23,7 @@ MxcImageResponse::run()
opts.mxc_url = "mxc://" + m_id.toStdString();
opts.width = m_requestedSize.width() > 0 ? m_requestedSize.width() : -1;
opts.height = m_requestedSize.height() > 0 ? m_requestedSize.height() : -1;
- opts.method = "scale";
+ opts.method = "crop";
http::client()->get_thumbnail(
opts, [this, fileName](const std::string &res, mtx::http::RequestErr err) {
if (err) {
@@ -38,8 +38,6 @@ 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, Qt::SmoothTransformation);
m_image.setText("mxc url", "mxc://" + m_id);
emit finished();
|