diff --git a/interface/resources/qml/hifi/commerce/inventory/Inventory.qml b/interface/resources/qml/hifi/commerce/inventory/Inventory.qml index 44b5a60729..acb3028e1f 100644 --- a/interface/resources/qml/hifi/commerce/inventory/Inventory.qml +++ b/interface/resources/qml/hifi/commerce/inventory/Inventory.qml @@ -53,6 +53,7 @@ Rectangle { console.log("Failed to get inventory", result.message); } else { inventoryModel.append(result.data.assets); + filteredInventoryModel.append(result.data.assets); } } } @@ -148,6 +149,24 @@ Rectangle { property int previousLength: 0; anchors.fill: parent; placeholderText: "Filter"; + + onTextChanged: { + if (filterBar.text.length < previousLength) { + filteredInventoryModel.clear(); + + for (var i = 0; i < inventoryModel.count; i++) { + filteredInventoryModel.append(inventoryModel.get(i)); + } + } + + for (var i = 0; i < filteredInventoryModel.count; i++) { + if (filteredInventoryModel.get(i).title.toLowerCase().indexOf(filterBar.text.toLowerCase()) === -1) { + filteredInventoryModel.remove(i); + i--; + } + } + previousLength = filterBar.text.length; + } } } // @@ -157,11 +176,14 @@ Rectangle { ListModel { id: inventoryModel; } + ListModel { + id: filteredInventoryModel; + } ListView { id: inventoryContentsList; clip: true; - model: inventoryModel; + model: filteredInventoryModel; // Anchors anchors.top: filterBarContainer.bottom; anchors.topMargin: 12; @@ -172,7 +194,6 @@ Rectangle { itemName: title; itemId: id; itemPreviewImageUrl: preview; - filterText: filterBar.text; anchors.topMargin: 12; anchors.bottomMargin: 12; diff --git a/interface/resources/qml/hifi/commerce/inventory/InventoryItem.qml b/interface/resources/qml/hifi/commerce/inventory/InventoryItem.qml index 4b5c0b9ba0..cfb6e96093 100644 --- a/interface/resources/qml/hifi/commerce/inventory/InventoryItem.qml +++ b/interface/resources/qml/hifi/commerce/inventory/InventoryItem.qml @@ -29,18 +29,12 @@ Rectangle { property string itemId: ""; property string itemPreviewImageUrl: ""; property string itemHref: ""; - property string filterText: ""; // Style color: hifi.colors.white; // Size width: parent.width; height: 120; - visible: passesFilter(); - onFilterTextChanged: { - root.visible = passesFilter(); - } - Image { id: itemPreviewImage; source: root.itemPreviewImageUrl; @@ -143,10 +137,6 @@ Rectangle { // FUNCTION DEFINITIONS START // signal sendToInventory(var message); - - function passesFilter() { - return root.itemName.toLowerCase().indexOf(root.filterText.toLowerCase()) !== -1; - } // // FUNCTION DEFINITIONS END //