diff --git a/interface/resources/qml/hifi/commerce/purchases/Purchases.qml b/interface/resources/qml/hifi/commerce/purchases/Purchases.qml index 4c10bdc097..26865a553d 100644 --- a/interface/resources/qml/hifi/commerce/purchases/Purchases.qml +++ b/interface/resources/qml/hifi/commerce/purchases/Purchases.qml @@ -343,6 +343,9 @@ Rectangle { ListModel { id: previousPurchasesModel; } + HifiCommerceCommon.SortableListModel { + id: tempPurchasesModel; + } HifiCommerceCommon.SortableListModel { id: filteredPurchasesModel; } @@ -635,20 +638,41 @@ Rectangle { } function buildFilteredPurchasesModel() { - filteredPurchasesModel.clear(); + var sameItemCount = 0; + + tempPurchasesModel.clear(); for (var i = 0; i < purchasesModel.count; i++) { if (purchasesModel.get(i).title.toLowerCase().indexOf(filterBar.text.toLowerCase()) !== -1) { if (purchasesModel.get(i).status !== "confirmed" && !root.isShowingMyItems) { - filteredPurchasesModel.insert(0, purchasesModel.get(i)); + tempPurchasesModel.insert(0, purchasesModel.get(i)); } else if ((root.isShowingMyItems && purchasesModel.get(i).edition_number === "0") || (!root.isShowingMyItems && purchasesModel.get(i).edition_number !== "0")) { - filteredPurchasesModel.append(purchasesModel.get(i)); + tempPurchasesModel.append(purchasesModel.get(i)); } } } + + for (var i = 0; i < tempPurchasesModel.count; i++) { + if (!filteredPurchasesModel.get(i)) { + break; + } else if (tempPurchasesModel.get(i).itemId === filteredPurchasesModel.get(i).itemId && + tempPurchasesModel.get(i).edition_number === filteredPurchasesModel.get(i).edition_number && + tempPurchasesModel.get(i).status === filteredPurchasesModel.get(i).status) { + sameItemCount++; + } + } - populateDisplayedItemCounts(); - sortByDate(); + if (sameItemCount !== tempPurchasesModel.count) { + filteredPurchasesModel.clear(); + for (var i = 0; i < tempPurchasesModel.count; i++) { + filteredPurchasesModel.append(tempPurchasesModel.get(i)); + } + + populateDisplayedItemCounts(); + sortByDate(); + } else { + console.log("ZRF HERE NOT REFRESHING"); + } } function checkIfAnyItemStatusChanged() {