Fix which EventImage url gets opened/copied

This commit is contained in:
miruka 2019-11-16 08:06:56 -04:00
parent fc2fb605e3
commit 25ce08891d
2 changed files with 27 additions and 18 deletions

View File

@ -7,17 +7,7 @@ HImage {
onWidthChanged: Qt.callLater(update)
onHeightChanged: Qt.callLater(update)
onVisibleChanged: Qt.callLater(update)
onMxcChanged: {
Qt.callLater(update)
if (isMxc) {
py.callCoro("mxc_to_http", [mxc], http => {
image.httpUrl = http || ""
})
} else {
httpUrl = mxc
}
}
onMxcChanged: Qt.callLater(update)
property string mxc
@ -27,7 +17,6 @@ HImage {
property bool show: false
property string cachedPath: ""
property string httpUrl: ""
readonly property bool isMxc: mxc.startsWith("mxc://")

View File

@ -21,7 +21,6 @@ HMxcImage {
property EventMediaLoader loader
readonly property bool isEncrypted: ! Utils.isEmptyObject(cryptDict)
readonly property string openUrl: isEncrypted ? cachedPath : image.httpUrl
readonly property real maxHeight:
theme.chat.message.thumbnailMaxHeightRatio
@ -48,16 +47,37 @@ HMxcImage {
)
function getOpenUrl(callback) {
if (image.isEncrypted) {
callback(image.cachedPath)
return
}
let toOpen = loader.mediaUrl || loader.thumbnailMxc
let isMxc = toOpen.startsWith("mxc://")
isMxc ?
py.callCoro("mxc_to_http", [toOpen], callback) : callback(toOpen)
}
TapHandler {
onTapped: if (! image.animated) Qt.openUrlExternally(openUrl)
onDoubleTapped: Qt.openUrlExternally(openUrl)
onTapped: if (! image.animated) getOpenUrl(Qt.openUrlExternally)
onDoubleTapped: getOpenUrl(Qt.openUrlExternally)
}
HoverHandler {
id: hover
onHoveredChanged:
onHoveredChanged: {
if (hovered) {
getOpenUrl(url => {
eventDelegate.hoveredMediaTypeUrl =
hovered ? [EventDelegate.Media.Image, openUrl] : []
[EventDelegate.Media.Image, url]
})
} else {
eventDelegate.hoveredMediaTypeUrl = []
}
}
}
EventImageTextBubble {