diff --git a/interface/resources/qml/hifi/commerce/Checkout.qml b/interface/resources/qml/hifi/commerce/Checkout.qml index 865bb72921..e33cf872cf 100644 --- a/interface/resources/qml/hifi/commerce/Checkout.qml +++ b/interface/resources/qml/hifi/commerce/Checkout.qml @@ -68,6 +68,11 @@ Rectangle { } } + SecurityImageSelection { + id: securityImageSelection; + referrerURL: checkoutRoot.itemHref; + } + // // TITLE BAR START // diff --git a/interface/resources/qml/hifi/commerce/Inventory.qml b/interface/resources/qml/hifi/commerce/Inventory.qml index 7a5696e1d7..df4907e8b9 100644 --- a/interface/resources/qml/hifi/commerce/Inventory.qml +++ b/interface/resources/qml/hifi/commerce/Inventory.qml @@ -47,7 +47,6 @@ Rectangle { SecurityImageSelection { id: securityImageSelection; - visible: true; referrerURL: inventoryRoot.referrerURL; } diff --git a/interface/resources/qml/hifi/commerce/SecurityImageSelection.qml b/interface/resources/qml/hifi/commerce/SecurityImageSelection.qml index be6b15173e..33bb9edba2 100644 --- a/interface/resources/qml/hifi/commerce/SecurityImageSelection.qml +++ b/interface/resources/qml/hifi/commerce/SecurityImageSelection.qml @@ -32,8 +32,13 @@ Rectangle { Hifi.QmlCommerce { id: commerce; + onSecurityImageChosen: { + securityImageSelectionRoot.visible = (imageID == 0); + } } + visible: commerce.getSecurityImage() == 0; + // // TITLE BAR START // @@ -248,7 +253,7 @@ Rectangle { width: parent.width/2 - anchors.rightMargin*2; text: "Confirm"; onClicked: { - commerce.chooseSecurityImage(securityImageGrid.currentIndex); + commerce.chooseSecurityImage(securityImageGrid.currentIndex + 1); } } } diff --git a/interface/src/commerce/QmlCommerce.cpp b/interface/src/commerce/QmlCommerce.cpp index 4eebb0fc39..d49ee8aaf3 100644 --- a/interface/src/commerce/QmlCommerce.cpp +++ b/interface/src/commerce/QmlCommerce.cpp @@ -49,9 +49,3 @@ void QmlCommerce::inventory() { auto wallet = DependencyManager::get(); ledger->inventory(wallet->listPublicKeys()); } - -void QmlCommerce::chooseSecurityImage(QmlCommerce::SecurityImage imageID) { - auto ledger = DependencyManager::get(); - auto wallet = DependencyManager::get(); - ledger->inventory(wallet->listPublicKeys()); -} \ No newline at end of file diff --git a/interface/src/commerce/QmlCommerce.h b/interface/src/commerce/QmlCommerce.h index 5653e4ec98..7422277631 100644 --- a/interface/src/commerce/QmlCommerce.h +++ b/interface/src/commerce/QmlCommerce.h @@ -30,6 +30,7 @@ signals: // because we can't scalably know of out-of-band changes (e.g., another machine interacting with the block chain). void balanceResult(int balance, const QString& failureMessage); void inventoryResult(QJsonObject inventory, const QString& failureMessage); + void securityImageChosen(uint imageID); protected: Q_INVOKABLE void buy(const QString& assetId, int cost, const QString& buyerUsername = ""); @@ -38,10 +39,15 @@ protected: enum SecurityImage { NONE = 0, - Cat + Cat, + Car, + Dog, + Stars, + Plane, + Gingerbread }; - Q_INVOKABLE void chooseSecurityImage(SecurityImage imageID); - Q_INVOKABLE bool hasChosenSecurityImage() { return (QmlCommerce::_chosenSecurityImage != SecurityImage::NONE); } + Q_INVOKABLE void chooseSecurityImage(uint imageID) { QmlCommerce::_chosenSecurityImage = (SecurityImage)imageID; emit securityImageChosen(imageID); } + Q_INVOKABLE uint getSecurityImage() { return (uint)QmlCommerce::_chosenSecurityImage; } private: SecurityImage _chosenSecurityImage = SecurityImage::NONE;