summaryrefslogtreecommitdiff
path: root/indra/newview/llinventoryfunctions.cpp
diff options
context:
space:
mode:
authorMerov Linden <merov@lindenlab.com>2015-06-09 15:41:11 -0700
committerMerov Linden <merov@lindenlab.com>2015-06-09 15:41:11 -0700
commit2cc3ce72b3f7abf037e554b04850e627a9d8eb5f (patch)
treea5247d04bb2f951c61d2db535d28835c8d5a77d2 /indra/newview/llinventoryfunctions.cpp
parent4f9bf22d5fc473aa15dc7f298a93b89ddc30f415 (diff)
DD-359 : Improve performance by caching display data while updating and preventing refreshing the whole marketplace (never useful)
Diffstat (limited to 'indra/newview/llinventoryfunctions.cpp')
-rwxr-xr-xindra/newview/llinventoryfunctions.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/indra/newview/llinventoryfunctions.cpp b/indra/newview/llinventoryfunctions.cpp
index 4feb697af9..e245fd2d59 100755
--- a/indra/newview/llinventoryfunctions.cpp
+++ b/indra/newview/llinventoryfunctions.cpp
@@ -2576,6 +2576,7 @@ void LLInventoryAction::buildMarketplaceFolders(LLFolderView* root)
// containing folder will need to be updated as well as their initially containing folder. For
// instance, moving a stock folder from a listed folder to another will require an update of the
// target listing *and* the original listing. So we need to keep track of both.
+ // Note: do not however put the marketplace listings root itself in this list or the whole marketplace data will be rebuilt.
sMarketplaceFolders.clear();
const LLUUID &marketplacelistings_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_MARKETPLACE_LISTINGS, false);
std::set<LLFolderViewItem*> selected_items = root->getSelectionList();
@@ -2586,8 +2587,16 @@ void LLInventoryAction::buildMarketplaceFolders(LLFolderView* root)
viewModel = dynamic_cast<LLFolderViewModelItemInventory *>((*set_iter)->getViewModelItem());
if (viewModel && gInventory.isObjectDescendentOf(viewModel->getInventoryObject()->getParentUUID(), marketplacelistings_id))
{
- sMarketplaceFolders.push_back(viewModel->getInventoryObject()->getParentUUID());
- sMarketplaceFolders.push_back(viewModel->getInventoryObject()->getUUID());
+ const LLUUID &parent_id = viewModel->getInventoryObject()->getParentUUID();
+ if (parent_id != marketplacelistings_id)
+ {
+ sMarketplaceFolders.push_back(parent_id);
+ }
+ const LLUUID &curr_id = viewModel->getInventoryObject()->getUUID();
+ if (curr_id != marketplacelistings_id)
+ {
+ sMarketplaceFolders.push_back(curr_id);
+ }
}
}
// Suppress dupes in the list so we won't update listings twice