From 03622e0833fd2d2bdcc9ed3ed0c009ad9e9fee3e Mon Sep 17 00:00:00 2001 From: Merov Linden Date: Thu, 20 Mar 2014 09:31:35 -0700 Subject: DD-50 : Adding new filter code for marketplace filtered tabs (active, unactive and unassociated) --- indra/newview/llinventoryfilter.cpp | 58 +++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) (limited to 'indra/newview/llinventoryfilter.cpp') diff --git a/indra/newview/llinventoryfilter.cpp b/indra/newview/llinventoryfilter.cpp index 3c6974cf6d..284c354fc6 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 "llmarketplacefunctions.h" #include "llviewercontrol.h" #include "llfolderview.h" #include "llinventorybridge.h" @@ -243,6 +244,48 @@ bool LLInventoryFilter::checkAgainstFilterType(const LLFolderViewModelItemInvent } } } + + //////////////////////////////////////////////////////////////////////////////// + // FILTERTYPE_MARKETPLACE_ACTIVE + // Pass if this item is a folder and is active + if (filterTypes & FILTERTYPE_MARKETPLACE_ACTIVE) + { + if (object_type == LLInventoryType::IT_CATEGORY) + { + if (LLMarketplaceData::instance().getActivationState(object_id)) + { + return FALSE; + } + } + } + + //////////////////////////////////////////////////////////////////////////////// + // FILTERTYPE_MARKETPLACE_INACTIVE + // Pass if this item is a folder and is not active + if (filterTypes & FILTERTYPE_MARKETPLACE_INACTIVE) + { + if (object_type == LLInventoryType::IT_CATEGORY) + { + if (!LLMarketplaceData::instance().getActivationState(object_id)) + { + return FALSE; + } + } + } + + //////////////////////////////////////////////////////////////////////////////// + // FILTERTYPE_MARKETPLACE_UNASSOCIATED + // Pass if this item is a folder and is active + if (filterTypes & FILTERTYPE_MARKETPLACE_UNASSOCIATED) + { + if (object_type == LLInventoryType::IT_CATEGORY) + { + if (LLMarketplaceData::instance().getListingID(object_id).empty()) + { + return FALSE; + } + } + } return TRUE; } @@ -468,6 +511,21 @@ void LLInventoryFilter::setFilterEmptySystemFolders() mFilterOps.mFilterTypes |= FILTERTYPE_EMPTYFOLDERS; } +void LLInventoryFilter::setFilterMarketplaceActiveFolders() +{ + mFilterOps.mFilterTypes |= FILTERTYPE_MARKETPLACE_ACTIVE; +} + +void LLInventoryFilter::setFilterMarketplaceInactiveFolders() +{ + mFilterOps.mFilterTypes |= FILTERTYPE_MARKETPLACE_INACTIVE; +} + +void LLInventoryFilter::setFilterMarketplaceUnassociatedFolders() +{ + mFilterOps.mFilterTypes |= FILTERTYPE_MARKETPLACE_UNASSOCIATED; +} + void LLInventoryFilter::setFilterUUID(const LLUUID& object_id) { if (mFilterOps.mFilterUUID == LLUUID::null) -- cgit v1.2.3