From a0f5a63a661d3ebc03e82463897c63dd35918749 Mon Sep 17 00:00:00 2001 From: Merov Linden Date: Wed, 9 Apr 2014 15:51:28 -0700 Subject: DD-16 : WIP : Fix filtering on menu and tabs. Sort still not done --- indra/newview/llinventoryfilter.cpp | 38 +++++++++++++--------- .../skins/default/xui/en/menu_marketplace_view.xml | 2 +- 2 files changed, 23 insertions(+), 17 deletions(-) diff --git a/indra/newview/llinventoryfilter.cpp b/indra/newview/llinventoryfilter.cpp index 6a800cf5ba..cf5e87c717 100755 --- a/indra/newview/llinventoryfilter.cpp +++ b/indra/newview/llinventoryfilter.cpp @@ -33,6 +33,7 @@ #include "llfolderviewitem.h" #include "llinventorymodel.h" #include "llinventorymodelbackgroundfetch.h" +#include "llinventoryfunctions.h" #include "llmarketplacefunctions.h" #include "llviewercontrol.h" #include "llfolderview.h" @@ -133,29 +134,34 @@ bool LLInventoryFilter::checkFolder(const LLUUID& folder_id) const } // Marketplace folder filtering - const U32 filterTypes = mFilterOps.mFilterTypes; - if (filterTypes & FILTERTYPE_MARKETPLACE_ACTIVE) - { - if (!LLMarketplaceData::instance().getActivationState(folder_id)) + S32 depth = depth_nesting_in_marketplace(folder_id); + if (depth > 0) + { + const U32 filterTypes = mFilterOps.mFilterTypes; + LLUUID listing_uuid = nested_parent_id(folder_id, depth); + if (filterTypes & FILTERTYPE_MARKETPLACE_ACTIVE) { - return false; + if (!LLMarketplaceData::instance().getActivationState(listing_uuid)) + { + return false; + } } - } - if (filterTypes & FILTERTYPE_MARKETPLACE_INACTIVE) - { - if (LLMarketplaceData::instance().getActivationState(folder_id)) + else if (filterTypes & FILTERTYPE_MARKETPLACE_INACTIVE) { - return false; + if (!LLMarketplaceData::instance().isListed(listing_uuid) || LLMarketplaceData::instance().getActivationState(listing_uuid)) + { + return false; + } } - } - if (filterTypes & FILTERTYPE_MARKETPLACE_UNASSOCIATED) - { - if (!LLMarketplaceData::instance().getListingID(folder_id).empty()) + else if (filterTypes & FILTERTYPE_MARKETPLACE_UNASSOCIATED) { - return false; + if (LLMarketplaceData::instance().isListed(listing_uuid)) + { + return false; + } } } - + // Always check against the clipboard const BOOL passed_clipboard = checkAgainstClipboard(folder_id); diff --git a/indra/newview/skins/default/xui/en/menu_marketplace_view.xml b/indra/newview/skins/default/xui/en/menu_marketplace_view.xml index 4043c5c93d..d08cb23483 100755 --- a/indra/newview/skins/default/xui/en/menu_marketplace_view.xml +++ b/indra/newview/skins/default/xui/en/menu_marketplace_view.xml @@ -30,7 +30,7 @@ function="Marketplace.ViewSort.CheckItem" parameter="show_unassociated" /> - + -- cgit v1.2.3