Improve/fix EventImage size handling

This commit is contained in:
miruka 2019-10-27 13:26:00 -04:00
parent bf4517b146
commit 040bfe37f8
3 changed files with 16 additions and 42 deletions

View File

@ -19,10 +19,7 @@
- Video: missing buttons and small size problems
- Audio: online playback is buggy, must download+play file
- Shrinking the window near its minimum size (seen at 262px) makes
image preview position/padding wrong
- In the "Leave me" room, "join > Hi > left" aren't combined
- GIF glitchy border
- Combined pure media events time looks bad
- RoomMessageNotice

View File

@ -145,38 +145,25 @@ HRowLayout {
transform: Translate { x: xOffset }
Layout.bottomMargin: contentLabel.bottomPadding * multiply
Layout.leftMargin: contentLabel.leftPadding * multiply
Layout.rightMargin: contentLabel.rightPadding * multiply
Layout.bottomMargin: pureMedia ? 0 : contentLabel.bottomPadding
Layout.leftMargin: pureMedia ? 0 : contentLabel.leftPadding
Layout.rightMargin: pureMedia ? 0 : contentLabel.rightPadding
Layout.minimumWidth:
type === EventDelegate.Media.File ?
theme.chat.message.fileMinWidth : -1
// Layout.minimumWidth:
// type === EventDelegate.Media.File ?
// theme.chat.message.fileMinWidth : -1
Layout.preferredWidth:
type === EventDelegate.Media.Image ?
(item ? item.fitSize.width : 0) :
// Layout.preferredWidth:
// type === EventDelegate.Media.Video ?
// theme.chat.message.videoWidth :
type === EventDelegate.Media.Video ?
theme.chat.message.videoWidth :
// type === EventDelegate.Media.Audio ?
// theme.chat.message.audioWidth :
type === EventDelegate.Media.Audio ?
theme.chat.message.audioWidth :
// -1
-1
Layout.maximumWidth:
messageBodyWidth - Layout.leftMargin - Layout.rightMargin
Layout.maximumHeight:
type === EventDelegate.Media.Image && item ?
Utils.fitSize(
Layout.maximumWidth,
item.fitSize.height,
Layout.maximumWidth
).height : -1
readonly property int multiply: pureMedia ? 0 : 1
Layout.maximumWidth: messageBodyWidth
Layout.maximumHeight: eventList.height / 1.5
}
}
}

View File

@ -4,23 +4,13 @@ import "../../utils.js" as Utils
HImage {
id: image
sourceSize.width: theme.chat.message.thumbnailWidth
sourceSize.height: theme.chat.message.thumbnailWidth
width: fitSize.width
height: fitSize.height
// Leaving PreserveAspectFit creates a binding loop, and is uneeded
// since we calculate ourself the right size.
fillMode: Image.Pad
horizontalAlignment: Image.AlignLeft
sourceSize.width: theme.chat.message.thumbnailWidth // FIXME
// source = thumbnail, fullSource = full original image
property url fullSource: source
readonly property size fitSize: Utils.fitSize(
implicitWidth, implicitHeight, theme.chat.message.thumbnailWidth,
)
TapHandler {
onTapped: if (! image.animated) Qt.openUrlExternally(fullSource)