Blurhash images when the privacy screen is active

This commit is contained in:
Loren Burkholder 2023-02-13 20:44:42 -05:00
parent 07707e1558
commit 66d8a38c80
5 changed files with 24 additions and 17 deletions

View file

@ -128,6 +128,7 @@ Rectangle {
TimelineView { TimelineView {
id: timeline id: timeline
privacyScreen: privacyScreen
showBackButton: adaptiveView.singlePageMode showBackButton: adaptiveView.singlePageMode
room: Rooms.currentRoom room: Rooms.currentRoom
roomPreview: Rooms.currentRoomPreview.roomid ? Rooms.currentRoomPreview : null roomPreview: Rooms.currentRoomPreview.roomid ? Rooms.currentRoomPreview : null
@ -140,6 +141,8 @@ Rectangle {
} }
PrivacyScreen { PrivacyScreen {
id: privacyScreen
anchors.fill: parent anchors.fill: parent
visible: Settings.privacyScreen visible: Settings.privacyScreen
screenTimeout: Settings.privacyScreenTimeout screenTimeout: Settings.privacyScreenTimeout

View file

@ -12,6 +12,7 @@ import im.nheko 1.0
Item { Item {
id: privacyScreen id: privacyScreen
readonly property bool active: screenSaver.state === "Visible"
property var timelineRoot property var timelineRoot
property int screenTimeout property int screenTimeout
@ -61,7 +62,6 @@ Item {
target: screenSaver target: screenSaver
opacity: 1 opacity: 1
} }
}, },
State { State {
name: "Invisible" name: "Invisible"
@ -75,7 +75,6 @@ Item {
target: screenSaver target: screenSaver
visible: false visible: false
} }
} }
] ]
transitions: [ transitions: [

View file

@ -110,17 +110,21 @@ Page {
} }
TimelineView { TimelineView {
id: timelineView id: timeline
privacyScreen: privacyScreen
anchors.fill: parent anchors.fill: parent
room: roomWindowW.room room: roomWindowW.room
roomPreview: roomWindowW.roomPreview.roomid ? roomWindowW.roomPreview : null roomPreview: roomWindowW.roomPreview.roomid ? roomWindowW.roomPreview : null
} }
PrivacyScreen { PrivacyScreen {
id: privacyScreen
anchors.fill: parent anchors.fill: parent
visible: Settings.privacyScreen visible: Settings.privacyScreen
screenTimeout: Settings.privacyScreenTimeout screenTimeout: Settings.privacyScreenTimeout
timelineRoot: timelineView timelineRoot: timeline
windowTarget: roomWindowW windowTarget: roomWindowW
} }

View file

@ -26,6 +26,7 @@ Item {
property var roomPreview: null property var roomPreview: null
property bool showBackButton: false property bool showBackButton: false
property bool shouldEffectsRun: false property bool shouldEffectsRun: false
required property PrivacyScreen privacyScreen
clip: true clip: true
onRoomChanged: if (room != null) room.triggerSpecialEffects() onRoomChanged: if (room != null) room.triggerSpecialEffects()

View file

@ -31,18 +31,6 @@ AbstractButton {
property int metadataWidth property int metadataWidth
property bool fitsMetadata: (parent.width - width) > metadataWidth+4 property bool fitsMetadata: (parent.width - width) > metadataWidth+4
Image {
id: blurhash_
anchors.fill: parent
visible: img.status != Image.Ready
source: blurhash ? ("image://blurhash/" + blurhash) : ("image://colorimage/:/icons/icons/ui/image-failed.svg?" + Nheko.colors.buttonText)
asynchronous: true
fillMode: Image.PreserveAspectFit
sourceSize.width: parent.width * Screen.devicePixelRatio
sourceSize.height: parent.height * Screen.devicePixelRatio
}
Image { Image {
id: img id: img
@ -68,7 +56,19 @@ AbstractButton {
eventId: parent.eventId eventId: parent.eventId
} }
onClicked :Settings.openImageExternal ? room.openMedia(eventId) : TimelineManager.openImageOverlay(room, url, eventId, originalWidth, proportionalHeight); Image {
id: blurhash_
anchors.fill: parent
visible: img.status != Image.Ready || timeline.privacyScreen.active
source: blurhash ? ("image://blurhash/" + blurhash) : ("image://colorimage/:/icons/icons/ui/image-failed.svg?" + Nheko.colors.buttonText)
asynchronous: true
fillMode: Image.PreserveAspectFit
sourceSize.width: parent.width * Screen.devicePixelRatio
sourceSize.height: parent.height * Screen.devicePixelRatio
}
onClicked: Settings.openImageExternal ? room.openMedia(eventId) : TimelineManager.openImageOverlay(room, url, eventId, originalWidth, proportionalHeight);
Item { Item {
id: overlay id: overlay