Fix/improve image sizes

This commit is contained in:
miruka
2019-11-05 09:19:48 -04:00
parent e4b784b407
commit 7408322fbe
6 changed files with 47 additions and 22 deletions

View File

@@ -156,15 +156,18 @@ HRowLayout {
Layout.leftMargin: pureMedia ? 0 : contentLabel.leftPadding
Layout.rightMargin: pureMedia ? 0 : contentLabel.rightPadding
Layout.minimumWidth:
type === EventDelegate.Media.Image ?
(singleMediaInfo.media_width ||
(item ? item.loadingLabel.implicitWidth : -1)) : -1
Layout.preferredWidth: item ? item.width : -1
Layout.preferredHeight: item ? item.height : -1
Layout.minimumHeight:
type === EventDelegate.Media.Image ?
(singleMediaInfo.media_height ||
(item ? item.loadingLabel.implicitHeight : -1)) : -1
// Layout.minimumWidth:
// type === EventDelegate.Media.Image ?
// (singleMediaInfo.media_width ||
// (item ? item.loadingLabel.implicitWidth : -1)) : -1
// Layout.minimumHeight:
// type === EventDelegate.Media.Image ?
// (singleMediaInfo.media_height ||
// (item ? item.loadingLabel.implicitHeight : -1)) : -1
// Layout.minimumWidth:
// type === EventDelegate.Media.File ?
@@ -179,8 +182,8 @@ HRowLayout {
// -1
Layout.maximumWidth: messageBodyWidth
Layout.maximumHeight: eventList.height / 2
// Layout.maximumWidth: messageBodyWidth
// Layout.maximumHeight: eventList.height / 2
}
}
}

View File

@@ -4,9 +4,9 @@ import "../../utils.js" as Utils
HMxcImage {
id: image
width: fitSize.width
height: fitSize.height
horizontalAlignment: Image.AlignLeft
sourceSize.width: 640 // FIXME
sourceSize.height: 480 // FIXME
animated: loader.singleMediaInfo.media_mime === "image/gif" ||
Utils.urlExtension(loader.mediaUrl) === "gif"
clientUserId: chatPage.userId
@@ -23,6 +23,27 @@ HMxcImage {
readonly property bool isEncrypted: ! Utils.isEmptyObject(cryptDict)
readonly property string openUrl: isEncrypted ? cachedPath : image.httpUrl
readonly property size fitSize: Utils.fitSize(
// Minimum display size
192,
192,
// Real size
loader.singleMediaInfo.thumbnail_width ||
loader.singleMediaInfo.media_width ||
implicitWidth ||
800,
loader.singleMediaInfo.thumbnail_height ||
loader.singleMediaInfo.media_height ||
implicitHeight ||
600,
// Maximum display size
Math.min(eventList.height / 3, eventContent.messageBodyWidth),
eventList.height / 3,
)
TapHandler {
onTapped: if (! image.animated) Qt.openUrlExternally(openUrl)