mirror of
https://github.com/status-im/status-desktop.git
synced 2025-01-09 22:06:25 +00:00
c01300a3bb
We were only resetting the `Image` source but not the consumer facing `imageSource` property when removing a selected image from the image area. This cause the `imageSource` to practically never change after an image has been selected the first time. Selecting an image another time would open the image area, but if the image happens to be the same as the first time, the `imageSource` practically didn't change, causing the app to render an "empty" image.
94 lines
2.4 KiB
QML
94 lines
2.4 KiB
QML
import QtQuick 2.13
|
|
import QtGraphicalEffects 1.13
|
|
import QtQuick.Controls 2.13
|
|
import "../../imports"
|
|
import "../../shared"
|
|
|
|
Rectangle {
|
|
id: imageArea
|
|
height: chatImage.height
|
|
|
|
signal imageRemoved()
|
|
property url imageSource: ""
|
|
color: "transparent"
|
|
|
|
Image {
|
|
id: chatImage
|
|
property bool hovered: false
|
|
height: 64
|
|
anchors.left: parent.left
|
|
anchors.top: parent.top
|
|
fillMode: Image.PreserveAspectFit
|
|
mipmap: true
|
|
smooth: false
|
|
antialiasing: true
|
|
source: parent.imageSource
|
|
MouseArea {
|
|
cursorShape: Qt.PointingHandCursor
|
|
anchors.fill: parent
|
|
hoverEnabled: true
|
|
onEntered: {
|
|
chatImage.hovered = true
|
|
}
|
|
onExited: {
|
|
chatImage.hovered = false
|
|
}
|
|
}
|
|
|
|
layer.enabled: true
|
|
layer.effect: OpacityMask {
|
|
maskSource: Item {
|
|
width: chatImage.width
|
|
height: chatImage.height
|
|
|
|
Rectangle {
|
|
anchors.top: parent.top
|
|
anchors.left: parent.left
|
|
width: chatImage.width
|
|
height: chatImage.height
|
|
radius: 16
|
|
}
|
|
Rectangle {
|
|
anchors.bottom: parent.bottom
|
|
anchors.right: parent.right
|
|
width: 32
|
|
height: 32
|
|
radius: 4
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
RoundButton {
|
|
id: closeBtn
|
|
implicitWidth: 24
|
|
implicitHeight: 24
|
|
padding: 0
|
|
anchors.top: chatImage.top
|
|
anchors.topMargin: -5
|
|
anchors.right: chatImage.right
|
|
anchors.rightMargin: -Style.current.halfPadding
|
|
visible: chatImage.hovered || hovered
|
|
contentItem: SVGImage {
|
|
source: !closeBtn.hovered ?
|
|
"../../app/img/close-filled.svg" : "../../app/img/close-filled-hovered.svg"
|
|
width: closeBtn.width
|
|
height: closeBtn.height
|
|
}
|
|
background: Rectangle {
|
|
color: "transparent"
|
|
}
|
|
onClicked: {
|
|
imageArea.imageRemoved()
|
|
imageArea.imageSource = ""
|
|
}
|
|
MouseArea {
|
|
cursorShape: Qt.PointingHandCursor
|
|
anchors.fill: parent
|
|
onPressed: mouse.accepted = false
|
|
}
|
|
}
|
|
|
|
|
|
}
|