From ca1da9c830d8c3bab0a5ea65dda5cc4c3d1c3f32 Mon Sep 17 00:00:00 2001 From: Kerry Ivan Kurian Date: Mon, 24 Sep 2018 23:07:44 -0700 Subject: [PATCH] Implement delete-from-list functionality in marketplace item tester --- .../MarketplaceItemTester.qml | 8 +++++-- scripts/system/marketplaces/marketplaces.js | 24 +++++++------------ 2 files changed, 14 insertions(+), 18 deletions(-) diff --git a/interface/resources/qml/hifi/commerce/marketplaceItemTester/MarketplaceItemTester.qml b/interface/resources/qml/hifi/commerce/marketplaceItemTester/MarketplaceItemTester.qml index 0a852780b4..c962c84c31 100644 --- a/interface/resources/qml/hifi/commerce/marketplaceItemTester/MarketplaceItemTester.qml +++ b/interface/resources/qml/hifi/commerce/marketplaceItemTester/MarketplaceItemTester.qml @@ -136,6 +136,9 @@ Rectangle { if ("application" == assetType) { Commerce.uninstallApp(resource); } + sendToScript({ + method: "tester_deleteResourceObject", + objectId: resourceListModel.get(index).id}); resourceListModel.remove(index); } } @@ -174,13 +177,14 @@ Rectangle { "unknown" ] - currentIndex: ("entity or wearable" == assetType) ? model.indexOf("unknown") : model.indexOf(assetType) + currentIndex: (("entity or wearable" == assetType) ? + model.indexOf("unknown") : model.indexOf(assetType)) Component.onCompleted: { onCurrentIndexChanged.connect(function() { assetType = model[currentIndex]; sendToScript({ - method: 'tester_updateResourceObjectAssetType', + method: "tester_updateResourceObjectAssetType", objectId: resourceListModel.get(index)["id"], assetType: assetType }); }); diff --git a/scripts/system/marketplaces/marketplaces.js b/scripts/system/marketplaces/marketplaces.js index c279e76b16..aba4ba5f7d 100644 --- a/scripts/system/marketplaces/marketplaces.js +++ b/scripts/system/marketplaces/marketplaces.js @@ -770,18 +770,13 @@ function maybeEnableHMDPreview() { }, UI_FADE_TIMEOUT_MS); } +var resourceObjectsInTest = []; function signalNewResourceObjectInTest(resourceObject) { ui.tablet.sendToQml({ method: "newResourceObjectInTest", resourceObject: resourceObject }); } -var resourceObjectsInTest = []; -function storeResourceObjectInTest(resourceObject) { - resourceObjectsInTest.push(resourceObject); - signalNewResourceObjectInTest(resourceObject); -} - var onQmlMessageReceived = function onQmlMessageReceived(message) { if (message.messageSrc === "HTML") { return; @@ -835,18 +830,15 @@ var onQmlMessageReceived = function onQmlMessageReceived(message) { rezEntity(message.itemHref, message.itemType); break; case 'tester_newResourceObject': - storeResourceObjectInTest(message.resourceObject); + var resourceObject = message.resourceObject; + resourceObjectsInTest[resourceObject.id] = resourceObject; + signalNewResourceObjectInTest(resourceObject); break; case 'tester_updateResourceObjectAssetType': - var objectId = message.objectId; - for (var i = 0, size = resourceObjectsInTest.length; i < size; ++i) { - if (i in resourceObjectsInTest && - objectId === resourceObjectsInTest[i]["id"] - ) { - resourceObjectsInTest[i]["assetType"] = message.assetType; - break; - } - } + resourceObjectsInTest[message.objectId].assetType = message.assetType; + break; + case 'tester_deleteResourceObject': + delete resourceObjectsInTest[message.objectId]; break; case 'header_marketplaceImageClicked': case 'purchases_backClicked':