From 8eb328bae7568c542d7035e39b47b55f8bf993d0 Mon Sep 17 00:00:00 2001 From: Khushboo Mehta Date: Thu, 18 Aug 2022 09:38:47 +0200 Subject: [PATCH] fix(@desktop/sugnup): Profile omage chosen during signup sould be saved for the user and squish test for the same fixes #6861 --- src/app/modules/startup/module.nim | 4 +- test/ui-test/fixtures/images/doggo.jpeg | Bin 0 -> 4669 bytes test/ui-test/src/drivers/SquishDriver.py | 5 + .../src/drivers/SquishDriverVerification.py | 3 + test/ui-test/src/screens/StatusMainScreen.py | 3 +- .../src/screens/StatusWelcomeScreen.py | 76 ++++++- test/ui-test/src/utils/FileManager.py | 15 +- .../global_shared/scripts/bdd_hooks.py | 2 + .../global_shared/scripts/global_names.py | 5 +- .../scripts}/login_names.py | 1 + .../global_shared/scripts/onboarding_names.py | 3 + .../suite_onboarding/shared/scripts/names.py | 1 + .../shared/searchImages/.gitkeep | 0 .../shared/steps/signUpSteps.py | 27 +++ .../tst_statusSignUp/test.feature | 13 +- .../suite_status/shared/scripts/names.py | 2 +- .../shared/scripts/sections/settings_names.py | 4 +- .../Onboarding/views/InsertDetailsView.qml | 1 + .../AppLayouts/Onboarding/views/LoginView.qml | 1 + .../Profile/popups/ChangeProfilePicModal.qml | 115 ---------- ui/app/AppLayouts/Profile/popups/qmldir | 1 - ui/imports/shared/controls/ImageCropper.qml | 213 ------------------ .../shared/controls/chat/ProfileHeader.qml | 1 + ui/imports/shared/controls/qmldir | 1 - .../shared/panels/CropCornerRectangle.qml | 29 --- ui/imports/shared/panels/qmldir | 1 - .../shared/popups/ImageCropWorkflow.qml | 21 +- .../shared/popups/ImageCropperModal.qml | 88 -------- .../shared/popups/UserStatusContextMenu.qml | 1 + ui/imports/shared/popups/qmldir | 1 - 30 files changed, 172 insertions(+), 466 deletions(-) create mode 100644 test/ui-test/fixtures/images/doggo.jpeg rename test/ui-test/testSuites/{suite_status/shared/scripts/sections => global_shared/scripts}/login_names.py (85%) create mode 100644 test/ui-test/testSuites/suite_onboarding/shared/searchImages/.gitkeep delete mode 100644 ui/app/AppLayouts/Profile/popups/ChangeProfilePicModal.qml delete mode 100644 ui/imports/shared/controls/ImageCropper.qml delete mode 100644 ui/imports/shared/panels/CropCornerRectangle.qml delete mode 100644 ui/imports/shared/popups/ImageCropperModal.qml diff --git a/src/app/modules/startup/module.nim b/src/app/modules/startup/module.nim index 3aa337a8c5f..4acf827ce78 100644 --- a/src/app/modules/startup/module.nim +++ b/src/app/modules/startup/module.nim @@ -241,10 +241,10 @@ method onNodeLogin*[T](self: Module[T], error: string) = quit() # quit the app if error.len == 0: - self.controller.cleanTmpData() self.delegate.userLoggedIn() if currStateObj.flowType() != FlowType.AppLogin: self.controller.storeIdentityImage() + self.controller.cleanTmpData() else: self.view.setAppState(AppState.StartupState) if currStateObj.flowType() == FlowType.AppLogin: @@ -300,4 +300,4 @@ method onSharedKeycarModuleFlowTerminated*[T](self: Module[T], lastStepInTheCurr self.keycardSharedModule = nil if lastStepInTheCurrentFlow: self.controller.cleanTmpData() - self.view.setCurrentStartupState(newWelcomeState(FlowType.General, nil)) \ No newline at end of file + self.view.setCurrentStartupState(newWelcomeState(FlowType.General, nil)) diff --git a/test/ui-test/fixtures/images/doggo.jpeg b/test/ui-test/fixtures/images/doggo.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..a6da3c26918bf45f496e311bf0f2392b5d9d5bd2 GIT binary patch literal 4669 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 selectorRectangle.height)) { - selectorRectangle.width = (selectorRectangle.height/heightRatio) * widthRatio - } else { - selectorRectangle.height = (selectorRectangle.width/widthRatio) * heightRatio - } - } - } - - function initialSetup() { - selectorRectangle.width = image.width - selectorRectangle.height = image.height - - fitRatio() - topLeftCorner.x = 0 - topLeftCorner.y = 0 - topRightCorner.x = selectorRectangle.width - topRightCorner.width - topRightCorner.y = 0 - bottomLeftCorner.x = 0 - bottomLeftCorner.y = selectorRectangle.height - topRightCorner.height - bottomRightCorner.x = selectorRectangle.width - topRightCorner.width - bottomRightCorner.y = selectorRectangle.height - topRightCorner.height - } - - - function adjustRectangleSize() { - if (!selectorRectangle.visible) { - return - } - - selectorRectangle.width = bottomRightCorner.x + bottomRightCorner.width - topLeftCorner.x - selectorRectangle.height = bottomRightCorner.y + bottomRightCorner.height - topLeftCorner.y - selectorRectangle.x = topLeftCorner.x - selectorRectangle.y = topLeftCorner.y - - if (!!ratio) { - // FIXME with a ratio that is not 1:1, the rectangle can go out of bounds - fitRatio() - - switch(draggedCorner) { - case topLeft: - selectorRectangle.x = topLeftCorner.x - selectorRectangle.y = topLeftCorner.y - break - case topRight: - selectorRectangle.x = topRightCorner.x - selectorRectangle.width + topRightCorner.width - selectorRectangle.y = topRightCorner.y - break - case bottomLeft: - selectorRectangle.x = bottomLeftCorner.x - selectorRectangle.y = bottomLeftCorner.y - selectorRectangle.height + bottomLeftCorner.height - break - case bottomRight: - selectorRectangle.x = bottomRightCorner.x - selectorRectangle.width + bottomRightCorner.width - selectorRectangle.y = bottomRightCorner.y - selectorRectangle.height + bottomRightCorner.height - break - } - } - } - - Connections { - target: image - onStatusChanged: { - if (image.status === Image.Ready) { - selectorRectangle.initialSetup() - selectorRectangle.visible = true - root.ready = true - } - } - } - } - function putCorners() { - settingCorners = true - - topLeftCorner.x = selectorRectangle.x - topLeftCorner.y = selectorRectangle.y - topRightCorner.x = selectorRectangle.x + selectorRectangle.width - topRightCorner.width - topRightCorner.y = selectorRectangle.y - bottomLeftCorner.x = selectorRectangle.x - bottomLeftCorner.y = selectorRectangle.y + selectorRectangle.height - topRightCorner.height - bottomRightCorner.x = selectorRectangle.x + selectorRectangle.width - topRightCorner.width - bottomRightCorner.y = selectorRectangle.y + selectorRectangle.height - topRightCorner.height - - settingCorners = false - } - - - // Size calculations are only done on top-left and bottom-right, because the other two corners follow them - CropCornerRectangle { - id: topLeftCorner - onXChanged: { - if (settingCorners) return - if (x < 0) x = 0 - if (x > topRightCorner.x - width) x = topRightCorner.x - width - - bottomLeftCorner.x = x - selectorRectangle.adjustRectangleSize() - } - onYChanged: { - if (settingCorners) return - if (y < 0) y = 0 - if (y > bottomRightCorner.y - height) y = bottomRightCorner.y - height - - topRightCorner.y = y - selectorRectangle.adjustRectangleSize() - } - onPressed: { - draggedCorner = topLeft - } - - onReleased: { - putCorners() - } - } - - CropCornerRectangle { - id: topRightCorner - onXChanged: { - if (settingCorners) return - bottomRightCorner.x = x - } - onYChanged: { - if (settingCorners) return - topLeftCorner.y = y - } - onPressed: { - draggedCorner = topRight - } - onReleased: { - putCorners() - } - } - - CropCornerRectangle { - id: bottomLeftCorner - onXChanged: { - if (settingCorners) return - topLeftCorner.x = x - } - onYChanged: { - if (settingCorners) return - bottomRightCorner.y = y - } - onPressed: { - draggedCorner = bottomLeft - } - onReleased: { - putCorners() - } - } - - CropCornerRectangle { - id: bottomRightCorner - onXChanged: { - if (settingCorners) return - if (x < topLeftCorner.x + topLeftCorner.width) x = topLeftCorner.x + topLeftCorner.width - if (x > image.width - width) x = image.width - width - topRightCorner.x = x - - selectorRectangle.adjustRectangleSize() - } - onYChanged: { - if (settingCorners) return - if (y < topRightCorner.y + topRightCorner.height) y = topRightCorner.y + topRightCorner.height - if (y > image.height - height) y = image.height - height - bottomLeftCorner.y = y - - selectorRectangle.adjustRectangleSize() - } - onPressed: { - draggedCorner = bottomRight - } - onReleased: { - putCorners() - } - } -} diff --git a/ui/imports/shared/controls/chat/ProfileHeader.qml b/ui/imports/shared/controls/chat/ProfileHeader.qml index 429135de0c3..0388fc4e467 100644 --- a/ui/imports/shared/controls/chat/ProfileHeader.qml +++ b/ui/imports/shared/controls/chat/ProfileHeader.qml @@ -72,6 +72,7 @@ Item { UserImage { id: userImage + objectName: "myProfileModalUserImage" name: root.displayName pubkey: root.pubkey image: root.icon diff --git a/ui/imports/shared/controls/qmldir b/ui/imports/shared/controls/qmldir index 8ae2b0199a8..e89bd65eb86 100644 --- a/ui/imports/shared/controls/qmldir +++ b/ui/imports/shared/controls/qmldir @@ -8,7 +8,6 @@ FormGroup 1.0 FormGroup.qml GasSelector 1.0 GasSelector.qml GasSelectorButton 1.0 GasSelectorButton.qml GasValidator 1.0 GasValidator.qml -ImageCropper 1.0 ImageCropper.qml Input 1.0 Input.qml RadioButtonSelector 1.0 RadioButtonSelector.qml RecipientSelector 1.0 RecipientSelector.qml diff --git a/ui/imports/shared/panels/CropCornerRectangle.qml b/ui/imports/shared/panels/CropCornerRectangle.qml deleted file mode 100644 index ca38e4ec2bf..00000000000 --- a/ui/imports/shared/panels/CropCornerRectangle.qml +++ /dev/null @@ -1,29 +0,0 @@ -import QtQuick 2.13 - -import utils 1.0 - -Rectangle { - signal released() - signal pressed() - - id: root - width: 25 - height: 25 - border.width: 2 - border.color: Style.current.orange - color: Utils.setColorAlpha(Style.current.orange, 0.5) - - Drag.active: dragArea.drag.active - - MouseArea { - id: dragArea - property int oldX - property int oldY - - anchors.fill: parent - drag.target: parent - cursorShape: Qt.PointingHandCursor - onReleased: root.released() - onPressed: root.pressed() - } -} diff --git a/ui/imports/shared/panels/qmldir b/ui/imports/shared/panels/qmldir index 96521389e8c..c02304ed1d0 100644 --- a/ui/imports/shared/panels/qmldir +++ b/ui/imports/shared/panels/qmldir @@ -1,7 +1,6 @@ Address 1.0 Address.qml AddressRequiredValidator 1.0 AddressRequiredValidator.qml BalanceValidator 1.0 BalanceValidator.qml -CropCornerRectangle 1.0 CropCornerRectangle.qml GlossaryEntry 1.0 GlossaryEntry.qml GlossaryLetter 1.0 GlossaryLetter.qml ImageLoader 1.0 ImageLoader.qml diff --git a/ui/imports/shared/popups/ImageCropWorkflow.qml b/ui/imports/shared/popups/ImageCropWorkflow.qml index fc93586f4c7..cce773e5e83 100644 --- a/ui/imports/shared/popups/ImageCropWorkflow.qml +++ b/ui/imports/shared/popups/ImageCropWorkflow.qml @@ -12,6 +12,7 @@ import utils 1.0 Item { id: root + objectName: "imageCropWorkflow" property alias aspectRatio: imageCropper.aspectRatio property alias windowStyle: imageCropper.windowStyle @@ -26,6 +27,11 @@ Item { fileDialog.open() } + function cropImage(imageUrl) { + imageCropper.source = imageUrl + imageCropperModal.open() + } + FileDialog { id: fileDialog @@ -34,8 +40,7 @@ Item { nameFilters: [qsTr("Supported image formats (%1)").arg("*.jpg *.jpeg *.jfif *.webp *.png *.heif")] onAccepted: { if (fileDialog.fileUrls.length > 0) { - imageCropper.source = fileDialog.fileUrls[0] - imageCropperModal.open() + cropImage(fileDialog.fileUrls[0]) } } } // FileDialog @@ -51,15 +56,16 @@ Item { StatusImageCropPanel { id: imageCropper + objectName: "profileImageCropper" implicitHeight: root.roundedImage ? 350 : 370 anchors { - fill: parent - leftMargin: Style.current.bigPadding + Style.current.halfPadding / 2 - rightMargin: Style.current.bigPadding + Style.current.halfPadding / 2 - topMargin: Style.current.bigPadding - bottomMargin: Style.current.bigPadding + fill: parent + leftMargin: Style.current.bigPadding + Style.current.halfPadding / 2 + rightMargin: Style.current.bigPadding + Style.current.halfPadding / 2 + topMargin: Style.current.bigPadding + bottomMargin: Style.current.bigPadding } margins: root.roundedImage ? 10 : 20 @@ -69,6 +75,7 @@ Item { rightButtons: [ StatusButton { + objectName: "imageCropperAcceptButton" text: root.acceptButtonText enabled: imageCropper.sourceSize.width > 0 && imageCropper.sourceSize.height > 0 diff --git a/ui/imports/shared/popups/ImageCropperModal.qml b/ui/imports/shared/popups/ImageCropperModal.qml deleted file mode 100644 index 429a7e42eda..00000000000 --- a/ui/imports/shared/popups/ImageCropperModal.qml +++ /dev/null @@ -1,88 +0,0 @@ -import QtQuick 2.13 -import QtQuick.Controls 2.13 -import QtQuick.Layouts 1.13 - -import utils 1.0 - -import StatusQ.Controls 0.1 - -import "../controls" -import "." - -// TODO: replace with StatusModal -ModalPopup { - property string selectedImage - property string ratio: "1:1" - property int aX: 0 - property int aY: 0 - property int bX: 0 - property int bY: 0 - signal cropFinished(aX: int, aY: int, bX: int, bY: int) - - id: cropImageModal - width: image.width + 50 - height: image.height + 170 - title: qsTr("Crop your image (optional)") - - Image { - id: image - width: 400 - source: cropImageModal.selectedImage - anchors.verticalCenter: parent.verticalCenter - anchors.horizontalCenter: parent.horizontalCenter - fillMode: Image.PreserveAspectFit - } - - ImageCropper { - id: imageCropper - x: image.x - y: image.y - image: image - ratio: cropImageModal.ratio - onReadyChanged: { - if (ready) { - // cropImageModal.calculateCrop() - cropImageModal.aX = Qt.binding(function() { - const aXPercent = imageCropper.selectorRectangle.x / image.width - return Math.round(aXPercent * image.sourceSize.width) - }) - cropImageModal.aY = Qt.binding(function() { - const aYPercent = imageCropper.selectorRectangle.y / image.height - return Math.round(aYPercent * image.sourceSize.height) - }) - cropImageModal.bX = Qt.binding(function() { - const bXPercent = (imageCropper.selectorRectangle.x + imageCropper.selectorRectangle.width) / image.width - return Math.round(bXPercent * image.sourceSize.width) - }) - cropImageModal.bY = Qt.binding(function() { - const bYPercent = (imageCropper.selectorRectangle.y + imageCropper.selectorRectangle.height) / image.height - return Math.round(bYPercent * image.sourceSize.height) - }) - } - } - - } - - footer: StatusButton { - id: doneBtn - text: qsTr("Finish") - anchors.right: parent.right - anchors.bottom: parent.bottom - onClicked: { - const aXPercent = imageCropper.selectorRectangle.x / image.width - const aYPercent = imageCropper.selectorRectangle.y / image.height - const bXPercent = (imageCropper.selectorRectangle.x + imageCropper.selectorRectangle.width) / image.width - const bYPercent = (imageCropper.selectorRectangle.y + imageCropper.selectorRectangle.height) / image.height - - - const aX = Math.round(aXPercent * image.sourceSize.width) - const aY = Math.round(aYPercent * image.sourceSize.height) - - const bX = Math.round(bXPercent * image.sourceSize.width) - const bY = Math.round(bYPercent * image.sourceSize.height) - - cropImageModal.cropFinished(aX, aY, bX, bY) - cropImageModal.close() - } - } -} diff --git a/ui/imports/shared/popups/UserStatusContextMenu.qml b/ui/imports/shared/popups/UserStatusContextMenu.qml index 3c6153c63b8..c34e8091f27 100644 --- a/ui/imports/shared/popups/UserStatusContextMenu.qml +++ b/ui/imports/shared/popups/UserStatusContextMenu.qml @@ -29,6 +29,7 @@ StatusPopupMenu { } StatusMenuItem { + objectName: "userStatusViewMyProfileAction" text: qsTr("View My Profile") icon.name: "profile" onTriggered: { diff --git a/ui/imports/shared/popups/qmldir b/ui/imports/shared/popups/qmldir index a3ed9ea5063..42b0b008149 100644 --- a/ui/imports/shared/popups/qmldir +++ b/ui/imports/shared/popups/qmldir @@ -6,7 +6,6 @@ CommunityIntroDialog 1.0 CommunityIntroDialog.qml ContactVerificationRequestPopup 1.0 ContactVerificationRequestPopup.qml DownloadModal 1.0 DownloadModal.qml DownloadPage 1.0 DownloadPage.qml -ImageCropperModal 1.0 ImageCropperModal.qml InviteFriendsPopup 1.0 InviteFriendsPopup.qml NicknamePopup 1.0 NicknamePopup.qml ModalPopup 1.0 ModalPopup.qml