summaryrefslogtreecommitdiff
path: root/indra/newview/llinventoryfilter.cpp
diff options
context:
space:
mode:
authorMerov Linden <merov@lindenlab.com>2014-03-20 09:31:35 -0700
committerMerov Linden <merov@lindenlab.com>2014-03-20 09:31:35 -0700
commit03622e0833fd2d2bdcc9ed3ed0c009ad9e9fee3e (patch)
tree5f6dca211b3b175b24941c538355f4820435685b /indra/newview/llinventoryfilter.cpp
parentb502e596af25b5f6f93e766b473a1ee2eed0b3ec (diff)
DD-50 : Adding new filter code for marketplace filtered tabs (active, unactive and unassociated)
Diffstat (limited to 'indra/newview/llinventoryfilter.cpp')
-rwxr-xr-xindra/newview/llinventoryfilter.cpp58
1 files changed, 58 insertions, 0 deletions
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)