summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordolphin <dolphin@lindenlab.com>2014-09-05 10:58:39 -0700
committerdolphin <dolphin@lindenlab.com>2014-09-05 10:58:39 -0700
commite7645eb995c291ebbbd05bab796639306545d2ad (patch)
tree14994eb1e78034a152a00a7bec243cb3f4e23905
parent51e65a4b5254aadb90660a237b47b9f90875d889 (diff)
Allow non-grid-wide experiences in the parcel block list to block estate allowed
experiences.
-rwxr-xr-xindra/newview/llfloaterland.cpp6
-rw-r--r--indra/newview/llpanelexperiencepicker.cpp5
-rw-r--r--indra/newview/llpanelexperiencepicker.h1
3 files changed, 8 insertions, 4 deletions
diff --git a/indra/newview/llfloaterland.cpp b/indra/newview/llfloaterland.cpp
index 4fda1ebb7d..bf6bf584d9 100755
--- a/indra/newview/llfloaterland.cpp
+++ b/indra/newview/llfloaterland.cpp
@@ -2958,10 +2958,8 @@ BOOL LLPanelLandExperiences::postBuild()
// only non-grid-wide experiences
mAllowed->addFilter(boost::bind(LLPanelExperiencePicker::FilterWithProperty, _1, LLExperienceCache::PROPERTY_GRID));
- // only grid-wide experiences
- mBlocked->addFilter(boost::bind(LLPanelExperiencePicker::FilterWithoutProperty, _1, LLExperienceCache::PROPERTY_GRID));
- // but not privileged ones
- mBlocked->addFilter(boost::bind(LLPanelExperiencePicker::FilterWithProperty, _1, LLExperienceCache::PROPERTY_PRIVILEGED));
+ // no privileged ones
+ mBlocked->addFilter(boost::bind(LLPanelExperiencePicker::FilterWithProperties, _1, LLExperienceCache::PROPERTY_PRIVILEGED|LLExperienceCache::PROPERTY_GRID));
getChild<LLLayoutPanel>("trusted_layout_panel")->setVisible(FALSE);
getChild<LLTextBox>("experiences_help_text")->setVisible(FALSE);
diff --git a/indra/newview/llpanelexperiencepicker.cpp b/indra/newview/llpanelexperiencepicker.cpp
index b804899e63..e3fe3c3332 100644
--- a/indra/newview/llpanelexperiencepicker.cpp
+++ b/indra/newview/llpanelexperiencepicker.cpp
@@ -407,6 +407,11 @@ bool LLPanelExperiencePicker::FilterWithProperty( const LLSD& experience, S32 pr
return (experience[LLExperienceCache::PROPERTIES].asInteger() & prop) != 0;
}
+bool LLPanelExperiencePicker::FilterWithProperties( const LLSD& experience, S32 prop)
+{
+ return ! ((experience[LLExperienceCache::PROPERTIES].asInteger() & prop) == prop);
+}
+
bool LLPanelExperiencePicker::FilterWithoutProperty( const LLSD& experience, S32 prop )
{
return (experience[LLExperienceCache::PROPERTIES].asInteger() & prop) == 0;
diff --git a/indra/newview/llpanelexperiencepicker.h b/indra/newview/llpanelexperiencepicker.h
index b2ba7f26ee..2a0731f34c 100644
--- a/indra/newview/llpanelexperiencepicker.h
+++ b/indra/newview/llpanelexperiencepicker.h
@@ -55,6 +55,7 @@ public:
void setDefaultFilters();
static bool FilterWithProperty(const LLSD& experience, S32 prop);
+ static bool FilterWithProperties(const LLSD& experience, S32 prop);
static bool FilterWithoutProperty(const LLSD& experience, S32 prop);
static bool FilterMatching(const LLSD& experience, const LLUUID& id);
bool FilterOverRating(const LLSD& experience);