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: "" + formatted.replace("
", "
")
 	width: parent ? parent.width : undefined
+	height: isReply ? Math.min(chat.height / 8, implicitHeight) : undefined
+	clip: true
 }