mirror of
https://github.com/lubosz/overte.git
synced 2025-04-24 14:03:17 +02:00
MUCH faster filter!
This commit is contained in:
parent
ee8f5d6e7b
commit
5173774db0
2 changed files with 12 additions and 23 deletions
|
@ -53,7 +53,6 @@ Rectangle {
|
|||
console.log("Failed to get inventory", result.message);
|
||||
} else {
|
||||
inventoryModel.append(result.data.assets);
|
||||
filteredInventoryModel.append(result.data.assets);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -149,24 +148,6 @@ 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
//
|
||||
|
@ -176,14 +157,11 @@ Rectangle {
|
|||
ListModel {
|
||||
id: inventoryModel;
|
||||
}
|
||||
ListModel {
|
||||
id: filteredInventoryModel;
|
||||
}
|
||||
|
||||
ListView {
|
||||
id: inventoryContentsList;
|
||||
clip: true;
|
||||
model: filteredInventoryModel;
|
||||
model: inventoryModel;
|
||||
// Anchors
|
||||
anchors.top: filterBarContainer.bottom;
|
||||
anchors.topMargin: 12;
|
||||
|
@ -194,6 +172,7 @@ Rectangle {
|
|||
itemName: title;
|
||||
itemId: id;
|
||||
itemPreviewImageUrl: preview;
|
||||
filterText: filterBar.text;
|
||||
anchors.topMargin: 12;
|
||||
anchors.bottomMargin: 12;
|
||||
|
||||
|
|
|
@ -29,12 +29,18 @@ 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;
|
||||
|
@ -137,6 +143,10 @@ Rectangle {
|
|||
// FUNCTION DEFINITIONS START
|
||||
//
|
||||
signal sendToInventory(var message);
|
||||
|
||||
function passesFilter() {
|
||||
return root.itemName.toLowerCase().indexOf(root.filterText.toLowerCase()) !== -1;
|
||||
}
|
||||
//
|
||||
// FUNCTION DEFINITIONS END
|
||||
//
|
||||
|
|
Loading…
Reference in a new issue