diff --git a/resources/qml/delegates/ImageMessage.qml b/resources/qml/delegates/ImageMessage.qml
index c7e6d127..62d9de60 100644
--- a/resources/qml/delegates/ImageMessage.qml
+++ b/resources/qml/delegates/ImageMessage.qml
@@ -6,10 +6,11 @@ Item {
property double tempWidth: Math.min(parent ? parent.width : undefined, model.data.width < 1 ? parent.width : model.data.width)
property double tempHeight: tempWidth * model.data.proportionalHeight
- property bool tooHigh: tempHeight > timelineRoot.height / 2
+ property double divisor: model.isReply ? 4 : 2
+ property bool tooHigh: tempHeight > timelineRoot.height / divisor
- height: tooHigh ? timelineRoot.height / 2 : tempHeight
- width: tooHigh ? (timelineRoot.height / 2) / model.data.proportionalHeight : tempWidth
+ height: tooHigh ? timelineRoot.height / divisor : tempHeight
+ width: tooHigh ? (timelineRoot.height / divisor) / model.data.proportionalHeight : tempWidth
Image {
id: blurhash
diff --git a/resources/qml/delegates/MessageDelegate.qml b/resources/qml/delegates/MessageDelegate.qml
index ff103459..17fe7360 100644
--- a/resources/qml/delegates/MessageDelegate.qml
+++ b/resources/qml/delegates/MessageDelegate.qml
@@ -6,9 +6,11 @@ Item {
Item {
id: model
property var data;
+ property bool isReply: false
}
property alias modelData: model.data
+ property alias isReply: model.isReply
height: chooser.childrenRect.height
property real implicitWidth: (chooser.child && chooser.child.implicitWidth) ? chooser.child.implicitWidth : width
diff --git a/resources/qml/delegates/NoticeMessage.qml b/resources/qml/delegates/NoticeMessage.qml
index 62ada6d1..be348329 100644
--- a/resources/qml/delegates/NoticeMessage.qml
+++ b/resources/qml/delegates/NoticeMessage.qml
@@ -1,4 +1,6 @@
TextMessage {
font.italic: true
color: colors.buttonText
+ height: isReply ? Math.min(chat.height / 8, implicitHeight) : undefined
+ clip: true
}
diff --git a/resources/qml/delegates/PlayableMediaMessage.qml b/resources/qml/delegates/PlayableMediaMessage.qml
index 20177a04..bab524eb 100644
--- a/resources/qml/delegates/PlayableMediaMessage.qml
+++ b/resources/qml/delegates/PlayableMediaMessage.qml
@@ -20,8 +20,14 @@ Rectangle {
Rectangle {
id: videoContainer
visible: model.data.type == MtxEvent.VideoMessage
- width: Math.min(parent.width, model.data.width ? model.data.width : 400) // some media has 0 as size...
- height: width*model.data.proportionalHeight
+ property double tempWidth: Math.min(parent ? parent.width : undefined, model.data.width < 1 ? 400 : model.data.width)
+ property double tempHeight: tempWidth * model.data.proportionalHeight
+
+ property double divisor: model.isReply ? 4 : 2
+ property bool tooHigh: tempHeight > timelineRoot.height / divisor
+
+ height: tooHigh ? timelineRoot.height / divisor : tempHeight
+ width: tooHigh ? (timelineRoot.height / divisor) / model.data.proportionalHeight : tempWidth
Image {
anchors.fill: parent
source: model.data.thumbnailUrl.replace("mxc://", "image://MxcImage/")
diff --git a/resources/qml/delegates/Reply.qml b/resources/qml/delegates/Reply.qml
index 90013de9..f9fd3f11 100644
--- a/resources/qml/delegates/Reply.qml
+++ b/resources/qml/delegates/Reply.qml
@@ -51,6 +51,7 @@ Item {
MessageDelegate {
id: reply
width: parent.width
+ isReply: true
}
}
diff --git a/resources/qml/delegates/TextMessage.qml b/resources/qml/delegates/TextMessage.qml
index 7e4b1f29..bef4f76d 100644
--- a/resources/qml/delegates/TextMessage.qml
+++ b/resources/qml/delegates/TextMessage.qml
@@ -4,4 +4,6 @@ MatrixText {
property string formatted: model.data.formattedBody
text: "<style type=\"text/css\">a { color:"+colors.link+";}</style>" + formatted.replace("<pre>", "<pre style='white-space: pre-wrap'>")
width: parent ? parent.width : undefined
+ height: isReply ? Math.min(chat.height / 8, implicitHeight) : undefined
+ clip: true
}
|