Remove linden experiences from the blocked list.

master
dolphin 2014-02-04 17:00:03 -08:00
parent d74119ec2b
commit 222337807d
3 changed files with 12 additions and 1 deletions

View File

@ -458,11 +458,16 @@ bool LLFloaterExperiencePicker::FilterOverRating( const LLSD& experience )
return experience[LLExperienceCache::MATURITY].asInteger() > maturity;
}
bool LLFloaterExperiencePicker::FilterWithProperty( const LLSD& experience, S32 prop )
bool LLFloaterExperiencePicker::FilterWithProperty( const LLSD& experience, S32 prop)
{
return (experience[LLExperienceCache::PROPERTIES].asInteger() & prop) != 0;
}
bool LLFloaterExperiencePicker::FilterWithoutProperty( const LLSD& experience, S32 prop )
{
return (experience[LLExperienceCache::PROPERTIES].asInteger() & prop) == 0;
}
void LLFloaterExperiencePicker::setDefaultFilters()
{
mFilters.clear();

View File

@ -57,6 +57,7 @@ public:
void setDefaultFilters();
static bool FilterWithProperty(const LLSD& experience, S32 prop);
static bool FilterWithoutProperty(const LLSD& experience, S32 prop);
bool FilterOverRating(const LLSD& experience);
virtual void draw();

View File

@ -3569,11 +3569,16 @@ bool LLPanelRegionExperiences::refreshFromRegion(LLViewerRegion* region)
mAllowed->loading();
mAllowed->setReadonly(!allow_modify);
// remove grid-wide experiences
mAllowed->addFilter(boost::bind(LLFloaterExperiencePicker::FilterWithProperty, _1, LLExperienceCache::PROPERTY_GRID));
// and stuff only in another list
mAllowed->addFilter(boost::bind(&LLPanelRegionExperiences::FilterExisting, this, _1));
mBlocked->loading();
mBlocked->setReadonly(!allow_modify);
// only grid-wide experiences
mBlocked->addFilter(boost::bind(LLFloaterExperiencePicker::FilterWithoutProperty, _1, LLExperienceCache::PROPERTY_GRID));
// but not privileged ones
mBlocked->addFilter(boost::bind(LLFloaterExperiencePicker::FilterWithProperty, _1, LLExperienceCache::PROPERTY_PRIVILEGED));
mBlocked->addFilter(boost::bind(&LLPanelRegionExperiences::FilterExisting, this, _1));