From ee8f5d6e7bdf9174c6cbcf23026078bfa36971ce Mon Sep 17 00:00:00 2001 From: Zach Fox Date: Fri, 25 Aug 2017 16:08:32 -0700 Subject: [PATCH] Filter --- .../qml/hifi/commerce/inventory/Inventory.qml | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/interface/resources/qml/hifi/commerce/inventory/Inventory.qml b/interface/resources/qml/hifi/commerce/inventory/Inventory.qml index f1e83856f3..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); } } } @@ -145,8 +146,27 @@ Rectangle { HifiControlsUit.TextField { id: filterBar; + 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; + } } } // @@ -156,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;