From 0b94c2b541e76dab712fef45403ac7f61a5f4e05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Tinkl?= Date: Tue, 6 Jun 2023 18:45:05 +0200 Subject: [PATCH] fix: revert to not destroy popups on close by default - causing too many regressions along the way - most of our popups are already destroyed properly inside Popups.qml - in general, a Popup (Dialog, Menu, etc.) can be manually destroyed iff it had been created using `Component.createObject()`, otherwise it's gone for good until restart - manually enabled the destroy-on-close in verified cases Fixes #10948 (maybe some other dupes) --- ui/StatusQ/src/StatusQ/Popups/Dialog/StatusDialog.qml | 6 +++--- ui/StatusQ/src/StatusQ/Popups/StatusModal.qml | 6 ------ ui/app/AppLayouts/Chat/panels/InlineSelectorPanel.qml | 3 --- .../Chat/popups/community/CommunityProfilePopup.qml | 2 +- ui/app/AppLayouts/Profile/popups/AddWakuNodeModal.qml | 5 ++--- ui/app/AppLayouts/Profile/views/EnsListView.qml | 1 + ui/imports/shared/panels/qmldir | 1 - ui/imports/shared/popups/ConfirmationDialog.qml | 1 - ui/imports/shared/popups/ImageCropWorkflow.qml | 3 --- ui/imports/shared/popups/ModalPopup.qml | 2 +- ui/imports/shared/popups/keycard/KeycardPopup.qml | 1 - .../shared/status/StatusGifPopup/ConfirmationPopup.qml | 4 ---- ui/main.qml | 4 ---- 13 files changed, 8 insertions(+), 31 deletions(-) diff --git a/ui/StatusQ/src/StatusQ/Popups/Dialog/StatusDialog.qml b/ui/StatusQ/src/StatusQ/Popups/Dialog/StatusDialog.qml index 3189854ec3..46ebd91b5b 100644 --- a/ui/StatusQ/src/StatusQ/Popups/Dialog/StatusDialog.qml +++ b/ui/StatusQ/src/StatusQ/Popups/Dialog/StatusDialog.qml @@ -13,9 +13,9 @@ Dialog { property string subtitle /*! \qmlproperty destroyOnClose - This property decides whether the popup component should be destroyed when closed. Default value is true. + This property decides whether the popup component should be destroyed when closed. Default value is false. */ - property bool destroyOnClose: true + property bool destroyOnClose: false /*! \qmlproperty color backgroundColor This property decides the modal background color @@ -88,7 +88,7 @@ Dialog { if (root.standardButtons & Dialog.SaveAll) return qsTr("Save all") if (root.standardButtons & Dialog.Retry) return qsTr("Retry") if (root.standardButtons & Dialog.Ignore) return qsTr("Ignore") - return qsTr("Ok") + return qsTr("OK") } onClicked: root.accept() diff --git a/ui/StatusQ/src/StatusQ/Popups/StatusModal.qml b/ui/StatusQ/src/StatusQ/Popups/StatusModal.qml index 1a0a852f98..fd02a9f8c3 100644 --- a/ui/StatusQ/src/StatusQ/Popups/StatusModal.qml +++ b/ui/StatusQ/src/StatusQ/Popups/StatusModal.qml @@ -182,12 +182,6 @@ StatusDialog { */ property bool hasFloatingButtons: false - /*! - \qmlproperty destroyOnClose - This property decides whether the popup component should be destroyed when closed. Default value is true. - */ - property bool destroyOnClose: true - signal editButtonClicked() signal headerImageClicked() diff --git a/ui/app/AppLayouts/Chat/panels/InlineSelectorPanel.qml b/ui/app/AppLayouts/Chat/panels/InlineSelectorPanel.qml index 8c0be4635d..1b61833e02 100644 --- a/ui/app/AppLayouts/Chat/panels/InlineSelectorPanel.qml +++ b/ui/app/AppLayouts/Chat/panels/InlineSelectorPanel.qml @@ -286,8 +286,5 @@ Item { onCountChanged: currentIndex = 0 } } - onClosed: { - suggestionsDialog.destroy(); - } } } diff --git a/ui/app/AppLayouts/Chat/popups/community/CommunityProfilePopup.qml b/ui/app/AppLayouts/Chat/popups/community/CommunityProfilePopup.qml index e0ee3e705a..97ae779786 100644 --- a/ui/app/AppLayouts/Chat/popups/community/CommunityProfilePopup.qml +++ b/ui/app/AppLayouts/Chat/popups/community/CommunityProfilePopup.qml @@ -76,7 +76,7 @@ StatusModal { Component { id: transferOwnershiproot TransferOwnershipPopup { - anchors.centerIn: parent + destroyOnClose: true } } diff --git a/ui/app/AppLayouts/Profile/popups/AddWakuNodeModal.qml b/ui/app/AppLayouts/Profile/popups/AddWakuNodeModal.qml index 125940039d..641ffaf8ee 100644 --- a/ui/app/AppLayouts/Profile/popups/AddWakuNodeModal.qml +++ b/ui/app/AppLayouts/Profile/popups/AddWakuNodeModal.qml @@ -12,12 +12,11 @@ import StatusQ.Popups 0.1 import utils 1.0 StatusModal { - id: popup + id: root property var messagingStore property var advancedStore - anchors.centerIn: parent height: 560 padding: 8 headerSettings.title: qsTr("Waku nodes") @@ -64,7 +63,7 @@ StatusModal { enabled: addrInput.valid onClicked: { root.messagingStore.saveNewWakuNode(addrInput.text) - popup.close() + root.close() } } ] diff --git a/ui/app/AppLayouts/Profile/views/EnsListView.qml b/ui/app/AppLayouts/Profile/views/EnsListView.qml index 4760e4d9be..98f65cf6ad 100644 --- a/ui/app/AppLayouts/Profile/views/EnsListView.qml +++ b/ui/app/AppLayouts/Profile/views/EnsListView.qml @@ -249,6 +249,7 @@ Item { ENSPopup { ensUsernamesStore: root.ensUsernamesStore + destroyOnClose: true } } } diff --git a/ui/imports/shared/panels/qmldir b/ui/imports/shared/panels/qmldir index db527718e0..ebb44bb5df 100644 --- a/ui/imports/shared/panels/qmldir +++ b/ui/imports/shared/panels/qmldir @@ -13,7 +13,6 @@ ImageLoader 1.0 ImageLoader.qml LabelValueRow 1.0 LabelValueRow.qml ModuleWarning 1.0 ModuleWarning.qml NoImageUploadedPanel 1.0 NoImageUploadedPanel.qml -NotificationWindow 1.0 NotificationWindow.qml ProfileBioSocialsPanel 1.0 ProfileBioSocialsPanel.qml RoundedIcon 1.0 RoundedIcon.qml RoundedImage 1.0 RoundedImage.qml diff --git a/ui/imports/shared/popups/ConfirmationDialog.qml b/ui/imports/shared/popups/ConfirmationDialog.qml index ea85e85db7..7bcec334c7 100644 --- a/ui/imports/shared/popups/ConfirmationDialog.qml +++ b/ui/imports/shared/popups/ConfirmationDialog.qml @@ -9,7 +9,6 @@ import StatusQ.Popups 0.1 StatusModal { id: confirmationDialog - anchors.centerIn: parent property var parentPopup property var value diff --git a/ui/imports/shared/popups/ImageCropWorkflow.qml b/ui/imports/shared/popups/ImageCropWorkflow.qml index 67ff0fb090..878e5ecad6 100644 --- a/ui/imports/shared/popups/ImageCropWorkflow.qml +++ b/ui/imports/shared/popups/ImageCropWorkflow.qml @@ -52,10 +52,7 @@ Item { headerSettings.title: root.title - anchors.centerIn: Overlay.overlay - width: root.roundedImage ? 480 : 580 - destroyOnClose: false StatusImageCropPanel { id: imageCropper objectName: "profileImageCropper" diff --git a/ui/imports/shared/popups/ModalPopup.qml b/ui/imports/shared/popups/ModalPopup.qml index 09f09da9bb..84111cad39 100644 --- a/ui/imports/shared/popups/ModalPopup.qml +++ b/ui/imports/shared/popups/ModalPopup.qml @@ -14,7 +14,7 @@ Popup { default property alias content: popupContent.children property alias contentWrapper: popupContent property alias header: headerContent.children - property bool destroyOnClose: true + property bool destroyOnClose: false id: popup modal: true diff --git a/ui/imports/shared/popups/keycard/KeycardPopup.qml b/ui/imports/shared/popups/keycard/KeycardPopup.qml index 1b8d406e10..0e80ec6dca 100644 --- a/ui/imports/shared/popups/keycard/KeycardPopup.qml +++ b/ui/imports/shared/popups/keycard/KeycardPopup.qml @@ -14,7 +14,6 @@ StatusModal { closePolicy: d.disableActionPopupButtons || d.disableCloseButton? Popup.NoAutoClose : Popup.CloseOnEscape | Popup.CloseOnPressOutside hasCloseButton: !d.disableActionPopupButtons && !d.disableCloseButton - destroyOnClose: false headerSettings.title: { switch (root.sharedKeycardModule.currentState.flowType) { diff --git a/ui/imports/shared/status/StatusGifPopup/ConfirmationPopup.qml b/ui/imports/shared/status/StatusGifPopup/ConfirmationPopup.qml index f97d9ab4ba..390b945abb 100644 --- a/ui/imports/shared/status/StatusGifPopup/ConfirmationPopup.qml +++ b/ui/imports/shared/status/StatusGifPopup/ConfirmationPopup.qml @@ -85,8 +85,4 @@ Popup { root.close() } } - - onClosed: { - root.destroy(); - } } diff --git a/ui/main.qml b/ui/main.qml index 8ec78b52bf..ae8c5567dc 100644 --- a/ui/main.qml +++ b/ui/main.qml @@ -347,10 +347,6 @@ StatusWindow { anchors.fill: parent } - NotificationWindow { - id: notificationWindow - } - MacTrafficLights { // FIXME should be a direct part of StatusAppNavBar anchors.left: parent.left anchors.top: parent.top