diff --git a/src/qml/Desktop/HeaderBar.qml b/src/qml/Desktop/HeaderBar.qml index ab8d822f..eeb47fe2 100644 --- a/src/qml/Desktop/HeaderBar.qml +++ b/src/qml/Desktop/HeaderBar.qml @@ -56,11 +56,13 @@ FocusScope { } function openFullScreenImage() { - const dialog = fullScreenImage.createObject(parent, { + fullScreenImageLoader.setSource("qrc:/FullScreenImage.qml", { "image": headerMetaData.image, - "description": headerMetaData.title + "description": headerMetaData.title, + "loader": fullScreenImageLoader }); - dialog.open(); + fullScreenImageLoader.active = true; + fullScreenImageLoader.item.open(); } Rectangle { diff --git a/src/qml/FullScreenImage.qml b/src/qml/FullScreenImage.qml index 8bff1412..8f80b91e 100644 --- a/src/qml/FullScreenImage.qml +++ b/src/qml/FullScreenImage.qml @@ -15,6 +15,7 @@ Controls.Popup { id: root required property var image + required property QtObject loader property string description: undefined property int imageWidth: -1 @@ -201,5 +202,6 @@ Controls.Popup { onClosed: { imageItem.scaleFactor = 1; imageItem.rotationAngle = 0; + loader.active = false; } } diff --git a/src/qml/GenericHeader.qml b/src/qml/GenericHeader.qml index 11713976..040f72a8 100644 --- a/src/qml/GenericHeader.qml +++ b/src/qml/GenericHeader.qml @@ -74,11 +74,13 @@ Item { anchors.fill: parent cursorShape: Qt.PointingHandCursor onClicked: { - const dialog = fullScreenImage.createObject(parent, { + fullScreenImageLoader.setSource("qrc:/FullScreenImage.qml", { "image": root.image, - "description": root.title + "description": root.title, + "loader": fullScreenImageLoader }); - dialog.open(); + fullScreenImageLoader.active = true; + fullScreenImageLoader.item.open(); } } } diff --git a/src/qml/main.qml b/src/qml/main.qml index 53a3c915..5c793058 100644 --- a/src/qml/main.qml +++ b/src/qml/main.qml @@ -478,9 +478,10 @@ Kirigami.ApplicationWindow { id: syncPasswordOverlay } - Component { - id: fullScreenImage - FullScreenImage { } + Loader { + id: fullScreenImageLoader + active: false + visible: active } //Global Shortcuts