diff options
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/llmessage/llregionflags.h | 3 | ||||
| -rw-r--r-- | indra/llprimitive/object_flags.h | 3 | ||||
| -rw-r--r-- | indra/newview/llagent.cpp | 71 | ||||
| -rw-r--r-- | indra/newview/llagent.h | 3 | ||||
| -rw-r--r-- | indra/newview/llfloaterland.cpp | 70 | ||||
| -rw-r--r-- | indra/newview/llfloaterland.h | 1 | ||||
| -rw-r--r-- | indra/newview/llfloaterregioninfo.cpp | 95 | ||||
| -rw-r--r-- | indra/newview/llgroupmgr.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/llgroupmgr.h | 1 | ||||
| -rw-r--r-- | indra/newview/llpanelavatar.cpp | 28 | ||||
| -rw-r--r-- | indra/newview/llpanelgroup.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/llpanelgroupgeneral.cpp | 173 | ||||
| -rw-r--r-- | indra/newview/llpanelgroupgeneral.h | 3 | ||||
| -rw-r--r-- | indra/newview/llpanelpermissions.cpp | 25 | ||||
| -rw-r--r-- | indra/newview/llpanelpermissions.h | 1 | ||||
| -rw-r--r-- | indra/newview/llselectmgr.cpp | 44 | ||||
| -rw-r--r-- | indra/newview/llselectmgr.h | 3 | ||||
| -rw-r--r-- | indra/newview/llviewerobject.cpp | 17 | ||||
| -rw-r--r-- | indra/newview/llviewerobject.h | 3 | ||||
| -rw-r--r-- | indra/newview/llviewerregion.cpp | 1 | 
20 files changed, 392 insertions, 157 deletions
| diff --git a/indra/llmessage/llregionflags.h b/indra/llmessage/llregionflags.h index 28a741789c..6d603e1e69 100644 --- a/indra/llmessage/llregionflags.h +++ b/indra/llmessage/llregionflags.h @@ -70,6 +70,8 @@ const U32 REGION_FLAGS_ABUSE_EMAIL_TO_ESTATE_OWNER = (1 << 27);  const U32 REGION_FLAGS_ALLOW_VOICE = (1 << 28); +const U32 REGION_FLAGS_BLOCK_PARCEL_SEARCH = (1 << 29); +  const U32 REGION_FLAGS_DEFAULT = REGION_FLAGS_ALLOW_LANDMARK |  								 REGION_FLAGS_ALLOW_SET_HOME | @@ -159,3 +161,4 @@ const U32 SWD_SCRIPTED_ONLY			= (1 << 2);  #endif + diff --git a/indra/llprimitive/object_flags.h b/indra/llprimitive/object_flags.h index b410171742..b52037109e 100644 --- a/indra/llprimitive/object_flags.h +++ b/indra/llprimitive/object_flags.h @@ -26,7 +26,8 @@ const U32	FLAGS_INVENTORY_EMPTY		= 0x00000800;  const U32	FLAGS_JOINT_HINGE			= 0x00001000;  const U32	FLAGS_JOINT_P2P				= 0x00002000;  const U32	FLAGS_JOINT_LP2P			= 0x00004000; -//const U32	FLAGS_JOINT_WHEEL			= 0x00008000; +// const U32	FLAGS_JOINT_WHEEL		= 0x00008000; +const U32	FLAGS_INCLUDE_IN_SEARCH		= 0x00008000;  const U32	FLAGS_ALLOW_INVENTORY_DROP	= 0x00010000;  const U32	FLAGS_OBJECT_TRANSFER		= 0x00020000; diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp index e12904ef43..3000cce4f9 100644 --- a/indra/newview/llagent.cpp +++ b/indra/newview/llagent.cpp @@ -28,6 +28,7 @@  #include "llquaternion.h"  #include "v3math.h"  #include "v4math.h" +#include "llsdutil.h"  //#include "vmath.h"  #include "imageids.h" @@ -4808,7 +4809,7 @@ BOOL LLAgent::setGroupContribution(const LLUUID& group_id, S32 contribution)  	return FALSE;  } -BOOL LLAgent::setGroupAcceptNotices(const LLUUID& group_id, BOOL accept_notices) +BOOL LLAgent::setUserGroupFlags(const LLUUID& group_id, BOOL accept_notices, BOOL list_in_profile)  {  	S32 count = mGroups.count();  	for(S32 i = 0; i < count; ++i) @@ -4816,6 +4817,7 @@ BOOL LLAgent::setGroupAcceptNotices(const LLUUID& group_id, BOOL accept_notices)  		if(mGroups.get(i).mID == group_id)  		{  			mGroups.get(i).mAcceptNotices = accept_notices; +			mGroups.get(i).mListInProfile = list_in_profile;  			LLMessageSystem* msg = gMessageSystem;  			msg->newMessage("SetGroupAcceptNotices");  			msg->nextBlock("AgentData"); @@ -4824,6 +4826,8 @@ BOOL LLAgent::setGroupAcceptNotices(const LLUUID& group_id, BOOL accept_notices)  			msg->nextBlock("Data");  			msg->addUUID("GroupID", group_id);  			msg->addBOOL("AcceptNotices", accept_notices); +			msg->nextBlock("NewData"); +			msg->addBOOL("ListInProfile", list_in_profile);  			sendReliableMessage();  			return TRUE;  		} @@ -5177,6 +5181,70 @@ void LLAgent::processAgentGroupDataUpdate(LLMessageSystem *msg, void **)  } +class LLAgentGroupDataUpdateViewerNode : public LLHTTPNode +{ +	virtual void post( +		LLHTTPNode::ResponsePtr response, +		const LLSD& context, +		const LLSD& input) const +	{ +		LLSD body = input["body"]; +		if(body.has("body")) +			body = body["body"]; +		LLUUID agent_id = body["AgentData"][0]["AgentID"].asUUID(); + +		if (agent_id != gAgentID) +		{ +			llwarns << "processAgentGroupDataUpdate for agent other than me" << llendl; +			return; +		}	 + +		LLSD group_data = body["GroupData"]; + +		LLSD::array_iterator iter_group = +			group_data.beginArray(); +		LLSD::array_iterator end_group = +			group_data.endArray(); +		int group_index = 0; +		for(; iter_group != end_group; ++iter_group) +		{ + +			LLGroupData group; +			S32 index = -1; +			bool need_floater_update = false; + +			group.mID = (*iter_group)["GroupID"].asUUID(); +			group.mPowers = ll_U64_from_sd((*iter_group)["GroupPowers"]); +			group.mAcceptNotices = (*iter_group)["AcceptNotices"].asBoolean(); +			group.mListInProfile = body["NewGroupData"][group_index]["ListInProfile"].asBoolean(); +			group.mInsigniaID = (*iter_group)["GroupInsigniaID"].asUUID(); +			group.mName = (*iter_group)["GroupName"].asString(); +			group.mContribution = (*iter_group)["Contribution"].asInteger(); + +			group_index++; + +			if(group.mID.notNull()) +			{ +				need_floater_update = true; +				// Remove the group if it already exists remove it and add the new data to pick up changes. +				index = gAgent.mGroups.find(group); +				if (index != -1) +				{ +					gAgent.mGroups.remove(index); +				} +				gAgent.mGroups.put(group); +			} +			if (need_floater_update) +			{ +				update_group_floaters(group.mID); +			} +		} +	} +}; + +LLHTTPRegistration<LLAgentGroupDataUpdateViewerNode > +	gHTTPRegistrationAgentGroupDataUpdateViewerNode ("/message/AgentGroupDataUpdate");  +  // static  void LLAgent::processAgentDataUpdate(LLMessageSystem *msg, void **)  { @@ -7269,5 +7337,4 @@ void LLAgent::parseTeleportMessages(const LLString& xml_filename)  	}//end for (all message sets in xml file)  } -  // EOF diff --git a/indra/newview/llagent.h b/indra/newview/llagent.h index 8b6e1c33a4..053d27728f 100644 --- a/indra/newview/llagent.h +++ b/indra/newview/llagent.h @@ -78,6 +78,7 @@ struct LLGroupData  	LLUUID mInsigniaID;  	U64 mPowers;  	BOOL mAcceptNotices; +	BOOL mListInProfile;  	S32 mContribution;  	std::string mName;  }; @@ -197,7 +198,7 @@ public:  	// new contribution level. Returns true if the group id was found  	// and contribution could be set.  	BOOL setGroupContribution(const LLUUID& group_id, S32 contribution); -	BOOL setGroupAcceptNotices(const LLUUID& group_id, BOOL accept_notices); +	BOOL setUserGroupFlags(const LLUUID& group_id, BOOL accept_notices, BOOL list_in_profile);  	void			setHideGroupTitle(BOOL hide)	{ mHideGroupTitle = hide; }  	// diff --git a/indra/newview/llfloaterland.cpp b/indra/newview/llfloaterland.cpp index 421066688e..aa9a06555c 100644 --- a/indra/newview/llfloaterland.cpp +++ b/indra/newview/llfloaterland.cpp @@ -1957,10 +1957,6 @@ BOOL LLPanelLandOptions::postBuild()  	mCategoryCombo = LLUICtrlFactory::getComboBoxByName(this, "land category");  	childSetCommitCallback("land category", onCommitAny, this); -	mAllowPublishCtrl = LLUICtrlFactory::getCheckBoxByName(this, "PublishCheck"); -	childSetCommitCallback("PublishCheck", onCommitAny, this); - -	  	mMatureCtrl = LLUICtrlFactory::getCheckBoxByName(this, "MatureCheck");  	childSetCommitCallback("MatureCheck", onCommitAny, this); @@ -1971,8 +1967,6 @@ BOOL LLPanelLandOptions::postBuild()  	if (gAgent.mAccess < SIM_ACCESS_MATURE)  	{  		// Disable these buttons if they are PG (Teen) users -		mAllowPublishCtrl->setVisible(FALSE); -		mAllowPublishCtrl->setEnabled(FALSE);  		mPublishHelpButton->setVisible(FALSE);  		mPublishHelpButton->setEnabled(FALSE);  		mMatureCtrl->setVisible(FALSE); @@ -2094,7 +2088,6 @@ void LLPanelLandOptions::refresh()  		mSetBtn->setEnabled(FALSE);  		mClearBtn->setEnabled(FALSE); -		mAllowPublishCtrl->setEnabled(FALSE);  		mMatureCtrl->setEnabled(FALSE);  		mPublishHelpButton->setEnabled(FALSE);  	} @@ -2135,11 +2128,6 @@ void LLPanelLandOptions::refresh()  		mCheckOtherScripts	->set( parcel->getAllowOtherScripts() );  		mCheckOtherScripts	->setEnabled( can_change_options ); -		BOOL can_change_identity = LLViewerParcelMgr::isParcelModifiableByAgent(parcel,  -														GP_LAND_CHANGE_IDENTITY); -		mCheckShowDirectory	->set( parcel->getParcelFlag(PF_SHOW_DIRECTORY)); -		mCheckShowDirectory	->setEnabled( can_change_identity ); -  		mPushRestrictionCtrl->set( parcel->getRestrictPushObject() );  		if(parcel->getRegionPushOverride())  		{ @@ -2153,6 +2141,9 @@ void LLPanelLandOptions::refresh()  			mPushRestrictionCtrl->setEnabled(can_change_options);  		} +		BOOL can_change_identity =  +			LLViewerParcelMgr::isParcelModifiableByAgent(parcel, GP_LAND_CHANGE_IDENTITY); +  		// Set by string in case the order in UI doesn't match the order  		// by index.  		LLParcel::ECategory cat = parcel->getCategory(); @@ -2186,8 +2177,6 @@ void LLPanelLandOptions::refresh()  		mSetBtn->setEnabled( can_change_landing_point );  		mClearBtn->setEnabled( can_change_landing_point ); -		mAllowPublishCtrl->set(parcel->getAllowPublish()); -		mAllowPublishCtrl->setEnabled( can_change_identity );  		mMatureCtrl->set(parcel->getMaturePublish());  		mMatureCtrl->setEnabled( can_change_identity );  		mPublishHelpButton->setEnabled( can_change_identity ); @@ -2195,8 +2184,6 @@ void LLPanelLandOptions::refresh()  		if (gAgent.mAccess < SIM_ACCESS_MATURE)  		{  			// Disable these buttons if they are PG (Teen) users -			mAllowPublishCtrl->setVisible(FALSE); -			mAllowPublishCtrl->setEnabled(FALSE);  			mPublishHelpButton->setVisible(FALSE);  			mPublishHelpButton->setEnabled(FALSE);  			mMatureCtrl->setVisible(FALSE); @@ -2205,7 +2192,39 @@ void LLPanelLandOptions::refresh()  	}  } +// virtual +void LLPanelLandOptions::draw() +{ +	LLParcel *parcel = gParcelMgr->getFloatingParcelSelection()->getParcel(); +	 +	if(parcel) +	{ +		LLViewerRegion* region; +		region = gParcelMgr->getSelectionRegion(); +		llassert(region); // Region should never be null. + +		BOOL can_change_identity = region ?  +			LLViewerParcelMgr::isParcelModifiableByAgent(parcel, GP_LAND_CHANGE_IDENTITY) && +			! (region->getRegionFlags() & REGION_FLAGS_BLOCK_PARCEL_SEARCH) : false; + +		// There is a bug with this panel whereby the Show Directory bit can be  +		// slammed off by the Region based on an override.  Since this data is cached +		// locally the change will not reflect in the panel, which could cause confusion +		// A workaround for this is to flip the bit off in the locally cached version +		// when we detect a mismatch case. +		if(! can_change_identity && parcel->getParcelFlag(PF_SHOW_DIRECTORY)) +		{ +			parcel->setParcelFlag(PF_SHOW_DIRECTORY, FALSE); +		} +		mCheckShowDirectory	->set(parcel->getParcelFlag(PF_SHOW_DIRECTORY)); +		mCheckShowDirectory	->setEnabled(can_change_identity); +		mCategoryCombo->setEnabled(can_change_identity); +	} + +	LLPanel::draw(); + +}  // static  void LLPanelLandOptions::onCommitAny(LLUICtrl *ctrl, void *userdata)  { @@ -2228,7 +2247,7 @@ void LLPanelLandOptions::onCommitAny(LLUICtrl *ctrl, void *userdata)  	BOOL allow_landmark		= self->mCheckLandmark->get();  	BOOL allow_group_scripts	= self->mCheckGroupScripts->get() || self->mCheckOtherScripts->get();  	BOOL allow_other_scripts	= self->mCheckOtherScripts->get(); -	BOOL allow_publish		= self->mAllowPublishCtrl->get(); +	BOOL allow_publish		= FALSE;  	BOOL mature_publish		= self->mMatureCtrl->get();  	BOOL push_restriction	= self->mPushRestrictionCtrl->get();  	BOOL show_directory		= self->mCheckShowDirectory->get(); @@ -2318,7 +2337,22 @@ void LLPanelLandOptions::onClickClear(void* userdata)  // static  void LLPanelLandOptions::onClickPublishHelp(void*)  { -	gViewerWindow->alertXml("ClickPublishHelpLand"); +	LLViewerRegion* region = gParcelMgr->getSelectionRegion(); +	LLParcel *parcel = gParcelMgr->getFloatingParcelSelection()->getParcel(); +	llassert(region); // Region should never be null. + +	bool can_change_identity = region && parcel ?  +		LLViewerParcelMgr::isParcelModifiableByAgent(parcel, GP_LAND_CHANGE_IDENTITY) && +		! (region->getRegionFlags() & REGION_FLAGS_BLOCK_PARCEL_SEARCH) : false; + +	if(! can_change_identity) +	{ +		gViewerWindow->alertXml("ClickPublishHelpLandDisabled"); +	} +	else +	{ +		gViewerWindow->alertXml("ClickPublishHelpLand"); +	}  }  //--------------------------------------------------------------------------- diff --git a/indra/newview/llfloaterland.h b/indra/newview/llfloaterland.h index ab7ff3921c..6e8e525e0d 100644 --- a/indra/newview/llfloaterland.h +++ b/indra/newview/llfloaterland.h @@ -301,6 +301,7 @@ public:  	static void onClickPublishHelp(void*);  	virtual BOOL postBuild(); +	virtual void draw();  protected:  	LLCheckBoxCtrl*	mCheckEditObjects; diff --git a/indra/newview/llfloaterregioninfo.cpp b/indra/newview/llfloaterregioninfo.cpp index f61f43fd5e..d88af396df 100644 --- a/indra/newview/llfloaterregioninfo.cpp +++ b/indra/newview/llfloaterregioninfo.cpp @@ -181,6 +181,7 @@ LLFloaterRegionInfo::LLFloaterRegionInfo(const LLRect& rect) :  	mInfoPanels.push_back((LLPanelRegionInfo*)panel);  	gUICtrlFactory->buildPanel(panel, "panel_region_covenant.xml");  	mTab->addTabPanel(panel, panel->getLabel(), FALSE); +  }  LLFloaterRegionInfo::~LLFloaterRegionInfo() @@ -214,6 +215,7 @@ void LLFloaterRegionInfo::show(LLViewerRegion* region)  	msg->addUUID("AgentID", gAgent.getID());  	msg->addUUID("SessionID", gAgent.getSessionID());  	gAgent.sendReliableMessage(); +  }  // static @@ -305,6 +307,7 @@ void LLFloaterRegionInfo::processRegionInfo(LLMessageSystem* msg)  	panel->childSetValue("restrict_pushobject", (region_flags & REGION_FLAGS_RESTRICT_PUSHOBJECT) ? TRUE : FALSE );  	panel->childSetValue("allow_land_resell_check", (region_flags & REGION_FLAGS_BLOCK_LAND_RESELL) ? FALSE : TRUE );  	panel->childSetValue("allow_parcel_changes_check", (region_flags & REGION_FLAGS_ALLOW_PARCEL_CHANGES) ? TRUE : FALSE ); +	panel->childSetValue("block_parcel_search_check", (region_flags & REGION_FLAGS_BLOCK_PARCEL_SEARCH) ? TRUE : FALSE );  	panel->childSetValue("agent_limit_spin", LLSD((F32)agent_limit) );  	panel->childSetValue("object_bonus_spin", LLSD(object_bonus_factor) );  	panel->childSetValue("access_combo", LLSD(LLViewerRegion::accessToString(sim_access)) ); @@ -537,6 +540,7 @@ BOOL LLPanelRegionGeneralInfo::postBuild()  	initCtrl("object_bonus_spin");  	initCtrl("access_combo");  	initCtrl("restrict_pushobject"); +	initCtrl("block_parcel_search_check");  	initHelpBtn("terraform_help",		"HelpRegionBlockTerraform");  	initHelpBtn("fly_help",				"HelpRegionBlockFly"); @@ -547,6 +551,7 @@ BOOL LLPanelRegionGeneralInfo::postBuild()  	initHelpBtn("restrict_pushobject_help",		"HelpRegionRestrictPushObject");  	initHelpBtn("land_resell_help",	"HelpRegionLandResell");  	initHelpBtn("parcel_changes_help", "HelpParcelChanges"); +	initHelpBtn("parcel_search_help", "HelpRegionSearch");  	childSetAction("kick_btn", onClickKick, this);  	childSetAction("kick_all_btn", onClickKickAll, this); @@ -672,52 +677,78 @@ void LLPanelRegionGeneralInfo::onClickManageTelehub(void* data)  // strings[6] = sim access (0 = unknown, 13 = PG, 21 = Mature)  // strings[7] = restrict pushobject  // strings[8] = 'Y' - allow parcel subdivide, 'N' - not +// strings[9] = 'Y' - block parcel search, 'N' - allow  BOOL LLPanelRegionGeneralInfo::sendUpdate()  {  	llinfos << "LLPanelRegionGeneralInfo::sendUpdate()" << llendl; -	strings_t strings; -	//integers_t integers; -	char buffer[MAX_STRING];		/* Flawfinder: ignore*/ -	snprintf(buffer, MAX_STRING, "%s", (childGetValue("block_terraform_check").asBoolean() ? "Y" : "N"));			/* Flawfinder: ignore */ -	strings.push_back(strings_t::value_type(buffer)); -	 -	snprintf(buffer, MAX_STRING, "%s", (childGetValue("block_fly_check").asBoolean() ? "Y" : "N"));			/* Flawfinder: ignore */ -	strings.push_back(strings_t::value_type(buffer)); -	snprintf(buffer, MAX_STRING, "%s", (childGetValue("allow_damage_check").asBoolean() ? "Y" : "N"));			/* Flawfinder: ignore */ -	strings.push_back(strings_t::value_type(buffer)); +	// First try using a Cap.  If that fails use the old method. +	LLSD body; +	std::string url = gAgent.getRegion()->getCapability("DispatchRegionInfo"); +	if (!url.empty()) +	{ +		body["block_terraform"] = childGetValue("block_terraform_check"); +		body["block_fly"] = childGetValue("block_fly_check"); +		body["allow_damage"] = childGetValue("allow_damage_check"); +		body["allow_land_resell"] = childGetValue("allow_land_resell_check"); +		body["agent_limit"] = childGetValue("agent_limit_spin"); +		body["prim_bonus"] = childGetValue("object_bonus_spin"); +		body["sim_access"] = childGetValue("access_combo"); +		body["restrict_pushobject"] = childGetValue("restrict_pushobject"); +		body["allow_parcel_changes"] = childGetValue("allow_parcel_changes_check"); +		body["block_parcel_search"] = childGetValue("block_parcel_search_check"); +		LLHTTPClient::post(url, body, new LLHTTPClient::Responder()); +	} +	else +	{ +		strings_t strings; +		char buffer[MAX_STRING];		/* Flawfinder: ignore*/ -	snprintf(buffer, MAX_STRING, "%s", (childGetValue("allow_land_resell_check").asBoolean() ? "Y" : "N"));			/* Flawfinder: ignore */ -	strings.push_back(strings_t::value_type(buffer)); +		snprintf(buffer, MAX_STRING, "%s", (childGetValue("block_terraform_check").asBoolean() ? "Y" : "N"));			/* Flawfinder: ignore */ +		strings.push_back(strings_t::value_type(buffer)); -	F32 value = (F32)childGetValue("agent_limit_spin").asReal(); -	snprintf(buffer, MAX_STRING, "%f", value);			/* Flawfinder: ignore */ -	strings.push_back(strings_t::value_type(buffer)); +		snprintf(buffer, MAX_STRING, "%s", (childGetValue("block_fly_check").asBoolean() ? "Y" : "N"));			/* Flawfinder: ignore */ +		strings.push_back(strings_t::value_type(buffer)); -	value = (F32)childGetValue("object_bonus_spin").asReal(); -	snprintf(buffer, MAX_STRING, "%f", value);			/* Flawfinder: ignore */ -	strings.push_back(strings_t::value_type(buffer)); +		snprintf(buffer, MAX_STRING, "%s", (childGetValue("allow_damage_check").asBoolean() ? "Y" : "N"));			/* Flawfinder: ignore */ +		strings.push_back(strings_t::value_type(buffer)); -	U8 access = LLViewerRegion::stringToAccess(childGetValue("access_combo").asString().c_str()); -	snprintf(buffer, MAX_STRING, "%d", (S32)access);			/* Flawfinder: ignore */ -	strings.push_back(strings_t::value_type(buffer)); +		snprintf(buffer, MAX_STRING, "%s", (childGetValue("allow_land_resell_check").asBoolean() ? "Y" : "N"));			/* Flawfinder: ignore */ +		strings.push_back(strings_t::value_type(buffer)); -	snprintf(buffer, MAX_STRING, "%s", (childGetValue("restrict_pushobject").asBoolean() ? "Y" : "N"));			/* Flawfinder: ignore */ -	strings.push_back(strings_t::value_type(buffer)); +		F32 value = (F32)childGetValue("agent_limit_spin").asReal(); +		snprintf(buffer, MAX_STRING, "%f", value);			/* Flawfinder: ignore */ +		strings.push_back(strings_t::value_type(buffer)); -	snprintf(buffer, MAX_STRING, "%s", (childGetValue("allow_parcel_changes_check").asBoolean() ? "Y" : "N"));			/* Flawfinder: ignore */ -	strings.push_back(strings_t::value_type(buffer)); +		value = (F32)childGetValue("object_bonus_spin").asReal(); +		snprintf(buffer, MAX_STRING, "%f", value);			/* Flawfinder: ignore */ +		strings.push_back(strings_t::value_type(buffer)); -	LLUUID invoice(LLFloaterRegionInfo::getLastInvoice()); -	sendEstateOwnerMessage(gMessageSystem, "setregioninfo", invoice, strings); +		U8 access = LLViewerRegion::stringToAccess(childGetValue("access_combo").asString().c_str()); +		snprintf(buffer, MAX_STRING, "%d", (S32)access);			/* Flawfinder: ignore */ +		strings.push_back(strings_t::value_type(buffer)); -	LLViewerRegion* region = gAgent.getRegion(); -	if (region -		&& access != region->getSimAccess() )		/* Flawfinder: ignore */ -	{ -		gViewerWindow->alertXml("RegionMaturityChange"); +		snprintf(buffer, MAX_STRING, "%s", (childGetValue("restrict_pushobject").asBoolean() ? "Y" : "N"));			/* Flawfinder: ignore */ +		strings.push_back(strings_t::value_type(buffer)); + +		snprintf(buffer, MAX_STRING, "%s", (childGetValue("allow_parcel_changes_check").asBoolean() ? "Y" : "N"));			/* Flawfinder: ignore */ +		strings.push_back(strings_t::value_type(buffer)); + +		LLUUID invoice(LLFloaterRegionInfo::getLastInvoice()); +		sendEstateOwnerMessage(gMessageSystem, "setregioninfo", invoice, strings); + +		LLViewerRegion* region = gAgent.getRegion(); +		if (region +			&& access != region->getSimAccess() )		/* Flawfinder: ignore */ +		{ +			gViewerWindow->alertXml("RegionMaturityChange"); +		}  	} + +	//integers_t integers; + +  	return TRUE;  } diff --git a/indra/newview/llgroupmgr.cpp b/indra/newview/llgroupmgr.cpp index 18993e56fa..249012195f 100644 --- a/indra/newview/llgroupmgr.cpp +++ b/indra/newview/llgroupmgr.cpp @@ -195,6 +195,7 @@ LLGroupMgrGroupData::LLGroupMgrGroupData(const LLUUID& id) :  	mOpenEnrollment(FALSE),   	mMembershipFee(0),  	mAllowPublish(FALSE), +	mListInProfile(FALSE),  	mMaturePublish(FALSE),  	mChanged(FALSE),  	mMemberCount(0), @@ -1240,6 +1241,7 @@ void LLGroupMgr::processCreateGroupReply(LLMessageSystem* msg, void ** data)  		// This isn't actually too bad because real data will come down in 2 or 3 miliseconds and replace this.  		LLGroupData gd;  		gd.mAcceptNotices = TRUE; +		gd.mListInProfile = TRUE;  		gd.mContribution = 0;  		gd.mID = group_id;  		gd.mName = "new group"; diff --git a/indra/newview/llgroupmgr.h b/indra/newview/llgroupmgr.h index 7c06acbc1f..2d0dda9e68 100644 --- a/indra/newview/llgroupmgr.h +++ b/indra/newview/llgroupmgr.h @@ -232,6 +232,7 @@ public:  	BOOL				mOpenEnrollment;  	S32					mMembershipFee;  	BOOL				mAllowPublish; +	BOOL				mListInProfile;  	BOOL				mMaturePublish;  	BOOL				mChanged;  	S32					mMemberCount; diff --git a/indra/newview/llpanelavatar.cpp b/indra/newview/llpanelavatar.cpp index ab2e30014d..e0f19c10d1 100644 --- a/indra/newview/llpanelavatar.cpp +++ b/indra/newview/llpanelavatar.cpp @@ -1836,11 +1836,6 @@ void LLPanelAvatar::processAvatarPropertiesReply(LLMessageSystem *msg, void**)  		allow_publish = (flags & AVATAR_ALLOW_PUBLISH);  		online = (flags & AVATAR_ONLINE); -		EOnlineStatus online_status = (online) ? ONLINE_STATUS_YES : ONLINE_STATUS_NO; - -		self->setOnlineStatus(online_status); - -		self->mPanelWeb->setWebURL(std::string(profile_url));  		U8 caption_index = 0;  		LLString caption_text;  		charter_member_size = msg->getSize("PropertiesData", "CharterMember"); @@ -1855,12 +1850,6 @@ void LLPanelAvatar::processAvatarPropertiesReply(LLMessageSystem *msg, void**)  			caption_text = caption;  		} -		LLTextureCtrl*	image_ctrl = LLUICtrlFactory::getTexturePickerByName(self->mPanelSecondLife,"img"); -		if(image_ctrl) -		{ -			image_ctrl->setImageAssetID(image_id); -		} -		self->childSetValue("about", about_text);  		if(caption_text.empty())  		{ @@ -1903,10 +1892,23 @@ void LLPanelAvatar::processAvatarPropertiesReply(LLMessageSystem *msg, void**)  		self->mPanelSecondLife->childSetValue("acct", caption_text);  		self->mPanelSecondLife->childSetValue("born", born_on); -		 + +		EOnlineStatus online_status = (online) ? ONLINE_STATUS_YES : ONLINE_STATUS_NO; + +		self->setOnlineStatus(online_status); + +		self->mPanelWeb->setWebURL(std::string(profile_url)); + +		LLTextureCtrl*	image_ctrl = LLUICtrlFactory::getTexturePickerByName(self->mPanelSecondLife,"img"); +		if(image_ctrl) +		{ +			image_ctrl->setImageAssetID(image_id); +		} +		self->childSetValue("about", about_text); +  		self->mPanelSecondLife->setPartnerID(partner_id);  		self->mPanelSecondLife->updatePartnerName(); -		 +  		if (self->mPanelFirstLife)  		{  			// Teens don't get these diff --git a/indra/newview/llpanelgroup.cpp b/indra/newview/llpanelgroup.cpp index 7a288a1730..8a10ef0ea4 100644 --- a/indra/newview/llpanelgroup.cpp +++ b/indra/newview/llpanelgroup.cpp @@ -322,7 +322,7 @@ void LLPanelGroup::tabChanged()  	if ( mApplyBtn )  	{  		LLString mesg; -		mApplyBtn->setEnabled(mAllowEdit && mCurrentTab->needsApply(mesg)); +		mApplyBtn->setEnabled(mCurrentTab->needsApply(mesg));  	}  } diff --git a/indra/newview/llpanelgroupgeneral.cpp b/indra/newview/llpanelgroupgeneral.cpp index ce51c59413..ca62790147 100644 --- a/indra/newview/llpanelgroupgeneral.cpp +++ b/indra/newview/llpanelgroupgeneral.cpp @@ -53,12 +53,12 @@ LLPanelGroupGeneral::LLPanelGroupGeneral(const std::string& name,  	mBtnJoinGroup(NULL),  	mListVisibleMembers(NULL),  	mCtrlShowInGroupList(NULL), -	mCtrlPublishOnWeb(NULL),  	mCtrlMature(NULL),  	mCtrlOpenEnrollment(NULL),  	mCtrlEnrollmentFee(NULL),  	mSpinEnrollmentFee(NULL),  	mCtrlReceiveNotices(NULL), +	mCtrlListGroup(NULL),  	mActiveTitleLabel(NULL),  	mComboActiveTitle(NULL)  { @@ -133,13 +133,6 @@ BOOL LLPanelGroupGeneral::postBuild()  		mCtrlShowInGroupList->setCallbackUserData(this);  	} -	mCtrlPublishOnWeb = (LLCheckBoxCtrl*) getChildByName("publish_on_web", recurse); -	if (mCtrlPublishOnWeb) -	{ -		mCtrlPublishOnWeb->setCommitCallback(onCommitAny); -		mCtrlPublishOnWeb->setCallbackUserData(this); -	} -  	mCtrlMature = (LLCheckBoxCtrl*) getChildByName("mature", recurse);  	if (mCtrlMature)  	{ @@ -170,20 +163,31 @@ BOOL LLPanelGroupGeneral::postBuild()  	}  	BOOL accept_notices = FALSE; +	BOOL list_in_profile = FALSE;  	LLGroupData data;  	if(gAgent.getGroupData(mGroupID,data))  	{  		accept_notices = data.mAcceptNotices; +		list_in_profile = data.mListInProfile;  	}  	mCtrlReceiveNotices = (LLCheckBoxCtrl*) getChildByName("receive_notices", recurse);  	if (mCtrlReceiveNotices)  	{ -		mCtrlReceiveNotices->setCommitCallback(onReceiveNotices); +		mCtrlReceiveNotices->setCommitCallback(onCommitUserOnly);  		mCtrlReceiveNotices->setCallbackUserData(this);  		mCtrlReceiveNotices->set(accept_notices);  		mCtrlReceiveNotices->setEnabled(data.mID.notNull());  	} +	mCtrlListGroup = (LLCheckBoxCtrl*) getChildByName("list_groups_in_profile", recurse); +	if (mCtrlListGroup) +	{ +		mCtrlListGroup->setCommitCallback(onCommitUserOnly); +		mCtrlListGroup->setCallbackUserData(this); +		mCtrlListGroup->set(list_in_profile); +		mCtrlListGroup->setEnabled(data.mID.notNull()); +	} +  	mActiveTitleLabel = (LLTextBox*) getChildByName("active_title_label", recurse);  	mComboActiveTitle = (LLComboBox*) getChildByName("active_title", recurse); @@ -217,7 +221,6 @@ BOOL LLPanelGroupGeneral::postBuild()  		mEditCharter->setEnabled(TRUE);  		mCtrlShowInGroupList->setEnabled(TRUE); -		mCtrlPublishOnWeb->setEnabled(TRUE);  		mCtrlMature->setEnabled(TRUE);  		mCtrlOpenEnrollment->setEnabled(TRUE);  		mCtrlEnrollmentFee->setEnabled(TRUE); @@ -240,6 +243,15 @@ void LLPanelGroupGeneral::onCommitAny(LLUICtrl* ctrl, void* data)  }  // static +void LLPanelGroupGeneral::onCommitUserOnly(LLUICtrl* ctrl, void* data) +{ +	LLPanelGroupGeneral* self = (LLPanelGroupGeneral*)data; +	self->mChanged = TRUE; +	self->notifyObservers(); +} + + +// static  void LLPanelGroupGeneral::onCommitEnrollment(LLUICtrl* ctrl, void* data)  {  	onCommitAny(ctrl, data); @@ -340,16 +352,6 @@ void LLPanelGroupGeneral::joinDlgCB(S32 which, void *userdata)  }  // static -void LLPanelGroupGeneral::onReceiveNotices(LLUICtrl* ctrl, void* data) -{ -	LLPanelGroupGeneral* self = (LLPanelGroupGeneral*)data; -	LLCheckBoxCtrl* check = (LLCheckBoxCtrl*)ctrl; - -	if(!self) return; -	gAgent.setGroupAcceptNotices(self->mGroupID, check->get()); -} - -// static  void LLPanelGroupGeneral::openProfile(void* data)  {  	LLPanelGroupGeneral* self = (LLPanelGroupGeneral*)data; @@ -406,88 +408,90 @@ void LLPanelGroupGeneral::draw()  bool LLPanelGroupGeneral::apply(LLString& mesg)  { -	if (!mAllowEdit) -	{ -		llwarns << "LLPanelGroupGeneral::apply() called with false mAllowEdit" -				<< llendl; -		return true; -	} +	BOOL has_power_in_group = gAgent.hasPowerInGroup(mGroupID,GP_GROUP_CHANGE_IDENTITY); -	llinfos << "LLPanelGroupGeneral::apply" << llendl; -	if (mGroupID.isNull()) +	if (has_power_in_group || mGroupID.isNull())  	{ -		// Validate the group name length. -		S32 group_name_len = mGroupNameEditor->getText().size(); -		if ( group_name_len < DB_GROUP_NAME_MIN_LEN  -			|| group_name_len > DB_GROUP_NAME_STR_LEN) +		llinfos << "LLPanelGroupGeneral::apply" << llendl; +		if (mGroupID.isNull())  		{ -			std::ostringstream temp_error; -			temp_error << "A group name must be between " << DB_GROUP_NAME_MIN_LEN -					   << " and " << DB_GROUP_NAME_STR_LEN << " characters."; -			mesg = temp_error.str(); -			return false; -		} - -		LLString::format_map_t args; -		args["[MESSAGE]"] = mConfirmGroupCreateStr; -		gViewerWindow->alertXml("GenericAlertYesCancel", args, -								createGroupCallback,this); +			// Validate the group name length. +			S32 group_name_len = mGroupNameEditor->getText().size(); +			if ( group_name_len < DB_GROUP_NAME_MIN_LEN  +				|| group_name_len > DB_GROUP_NAME_STR_LEN) +			{ +				std::ostringstream temp_error; +				temp_error << "A group name must be between " << DB_GROUP_NAME_MIN_LEN +					<< " and " << DB_GROUP_NAME_STR_LEN << " characters."; +				mesg = temp_error.str(); +				return false; +			} -        return false; -	} +			LLString::format_map_t args; +			args["[MESSAGE]"] = mConfirmGroupCreateStr; +			gViewerWindow->alertXml("GenericAlertYesCancel", args, +				createGroupCallback,this); -	LLGroupMgrGroupData* gdatap = gGroupMgr->getGroupData(mGroupID); +			return false; +		} -	if (!gdatap) -	{ -		mesg = "No group data found for group "; -		mesg.append(mGroupID.asString()); -		return false; -	} +		LLGroupMgrGroupData* gdatap = gGroupMgr->getGroupData(mGroupID); -	bool can_change_ident = false; -	bool can_change_member_opts = false; -	can_change_ident = gAgent.hasPowerInGroup(mGroupID,GP_GROUP_CHANGE_IDENTITY); -	can_change_member_opts = gAgent.hasPowerInGroup(mGroupID,GP_MEMBER_OPTIONS); +		if (!gdatap) +		{ +			mesg = "No group data found for group "; +			mesg.append(mGroupID.asString()); +			return false; +		} +		bool can_change_ident = false; +		bool can_change_member_opts = false; +		can_change_ident = gAgent.hasPowerInGroup(mGroupID,GP_GROUP_CHANGE_IDENTITY); +		can_change_member_opts = gAgent.hasPowerInGroup(mGroupID,GP_MEMBER_OPTIONS); -	if (can_change_ident) -	{ -		if (mCtrlPublishOnWeb) gdatap->mAllowPublish = mCtrlPublishOnWeb->get(); -		if (mEditCharter) gdatap->mCharter = mEditCharter->getText(); -		if (mInsignia) gdatap->mInsigniaID = mInsignia->getImageAssetID(); -		if (mCtrlMature) +		if (can_change_ident)  		{ -			if (gAgent.mAccess > SIM_ACCESS_PG) +			if (mEditCharter) gdatap->mCharter = mEditCharter->getText(); +			if (mInsignia) gdatap->mInsigniaID = mInsignia->getImageAssetID(); +			if (mCtrlMature)  			{ -				gdatap->mMaturePublish = mCtrlMature->get(); +				if (gAgent.mAccess > SIM_ACCESS_PG) +				{ +					gdatap->mMaturePublish = mCtrlMature->get(); +				} +				else +				{ +					gdatap->mMaturePublish = FALSE; +				}  			} -			else +			if (mCtrlShowInGroupList) gdatap->mShowInList = mCtrlShowInGroupList->get(); +		} + +		if (can_change_member_opts) +		{ +			if (mCtrlOpenEnrollment) gdatap->mOpenEnrollment = mCtrlOpenEnrollment->get(); +			if (mCtrlEnrollmentFee && mSpinEnrollmentFee)  			{ -				gdatap->mMaturePublish = FALSE; +				gdatap->mMembershipFee = (mCtrlEnrollmentFee->get()) ?  +					(S32) mSpinEnrollmentFee->get() : 0;  			}  		} -		if (mCtrlShowInGroupList) gdatap->mShowInList = mCtrlShowInGroupList->get(); -	} -	if (can_change_member_opts) -	{ -		if (mCtrlOpenEnrollment) gdatap->mOpenEnrollment = mCtrlOpenEnrollment->get(); -		if (mCtrlEnrollmentFee && mSpinEnrollmentFee) +		if (can_change_ident || can_change_member_opts)  		{ -			gdatap->mMembershipFee = (mCtrlEnrollmentFee->get()) ?  -										 (S32) mSpinEnrollmentFee->get() : 0; +			gGroupMgr->sendUpdateGroupInfo(mGroupID);  		} +		notifyObservers();  	} -	if (can_change_ident || can_change_member_opts) -	{ -		gGroupMgr->sendUpdateGroupInfo(mGroupID); -	} - -	if (mCtrlReceiveNotices) gAgent.setGroupAcceptNotices(mGroupID, mCtrlReceiveNotices->get()); +	BOOL receive_notices = false; +	BOOL list_in_profile = false; +	if (mCtrlReceiveNotices) +		receive_notices = mCtrlReceiveNotices->get(); +	if (mCtrlListGroup)  +		list_in_profile = mCtrlListGroup->get(); +	gAgent.setUserGroupFlags(mGroupID, receive_notices, list_in_profile);  	mChanged = FALSE; -	notifyObservers();  	return true;  } @@ -521,7 +525,7 @@ void LLPanelGroupGeneral::createGroupCallback(S32 option, void* userdata)  												self->mInsignia->getImageAssetID(),  												enrollment_fee,  												self->mCtrlOpenEnrollment->get(), -												self->mCtrlPublishOnWeb->get(), +												false,  												self->mCtrlMature->get());  		} @@ -607,11 +611,6 @@ void LLPanelGroupGeneral::update(LLGroupChange gc)  		mCtrlShowInGroupList->set(gdatap->mShowInList);  		mCtrlShowInGroupList->setEnabled(mAllowEdit && can_change_ident);  	} -	if (mCtrlPublishOnWeb)  -	{ -		mCtrlPublishOnWeb->set(gdatap->mAllowPublish); -		mCtrlPublishOnWeb->setEnabled(mAllowEdit && can_change_ident); -	}  	if (mCtrlMature)  	{  		mCtrlMature->set(gdatap->mMaturePublish); diff --git a/indra/newview/llpanelgroupgeneral.h b/indra/newview/llpanelgroupgeneral.h index 76a4d791e1..a8f10b04ef 100644 --- a/indra/newview/llpanelgroupgeneral.h +++ b/indra/newview/llpanelgroupgeneral.h @@ -44,6 +44,7 @@ public:  private:  	static void onCommitAny(LLUICtrl* ctrl, void* data); +	static void onCommitUserOnly(LLUICtrl* ctrl, void* data);  	static void onCommitTitle(LLUICtrl* ctrl, void* data);  	static void onCommitEnrollment(LLUICtrl* ctrl, void* data);  	static void onClickJoin(void* userdata); @@ -76,12 +77,12 @@ private:  	// Options  	LLCheckBoxCtrl	*mCtrlShowInGroupList; -	LLCheckBoxCtrl	*mCtrlPublishOnWeb;  	LLCheckBoxCtrl	*mCtrlMature;  	LLCheckBoxCtrl	*mCtrlOpenEnrollment;  	LLCheckBoxCtrl	*mCtrlEnrollmentFee;  	LLSpinCtrl      *mSpinEnrollmentFee;  	LLCheckBoxCtrl	*mCtrlReceiveNotices; +	LLCheckBoxCtrl  *mCtrlListGroup;  	LLTextBox       *mActiveTitleLabel;  	LLComboBox		*mComboActiveTitle; diff --git a/indra/newview/llpanelpermissions.cpp b/indra/newview/llpanelpermissions.cpp index d0061e281e..133173b02d 100644 --- a/indra/newview/llpanelpermissions.cpp +++ b/indra/newview/llpanelpermissions.cpp @@ -84,6 +84,8 @@ BOOL	LLPanelPermissions::postBuild()  	this->childSetCommitCallback("checkbox next owner can copy",LLPanelPermissions::onCommitNextOwnerCopy,this);  	this->childSetCommitCallback("checkbox next owner can transfer",LLPanelPermissions::onCommitNextOwnerTransfer,this);  	this->childSetCommitCallback("clickaction",LLPanelPermissions::onCommitClickAction,this); +	this->childSetCommitCallback("search_check",LLPanelPermissions::onCommitIncludeInSearch,this); +	  	LLTextBox*	LabelGroupNameRectProxy = gUICtrlFactory->getTextBoxByName(this,"Group Name Proxy");  	if(LabelGroupNameRectProxy ) @@ -197,6 +199,10 @@ void LLPanelPermissions::refresh()  		//checkbox for sale  		childSetValue("checkbox for sale",FALSE);  		childSetEnabled("checkbox for sale",false); + +		//checkbox include in search +		childSetValue("search_check", FALSE); +		childSetEnabled("search_check", false);  		LLRadioGroup*	RadioSaleType = gUICtrlFactory->getRadioGroupByName(this,"sale type");  		if(RadioSaleType) @@ -730,8 +736,15 @@ void LLPanelPermissions::refresh()  		childSetTentative("checkbox for sale",false);  	} -	// Click action (touch, sit, buy) +	// Check search status of objects  	BOOL all_volume = gSelectMgr->selectionAllPCode( LL_PCODE_VOLUME ); +	bool include_in_search; +	bool all_include_in_search = gSelectMgr->selectionGetIncludeInSearch(&include_in_search); +	childSetEnabled("search_check", is_perm_modify && all_volume); +	childSetValue("search_check", include_in_search); +	childSetTentative("search_check", ! all_include_in_search); + +	// Click action (touch, sit, buy)  	U8 click_action = 0;  	if (gSelectMgr->selectionGetClickAction(&click_action))  	{ @@ -1044,3 +1057,13 @@ void LLPanelPermissions::onCommitClickAction(LLUICtrl* ctrl, void*)  	}  	gSelectMgr->selectionSetClickAction(click_action);  } + +// static +void LLPanelPermissions::onCommitIncludeInSearch(LLUICtrl* ctrl, void*) +{ +	LLCheckBoxCtrl* box = (LLCheckBoxCtrl*)ctrl; +	llassert(box); + +	gSelectMgr->selectionSetIncludeInSearch(box->get()); +} + diff --git a/indra/newview/llpanelpermissions.h b/indra/newview/llpanelpermissions.h index 286a66f397..48c52b56b9 100644 --- a/indra/newview/llpanelpermissions.h +++ b/indra/newview/llpanelpermissions.h @@ -75,6 +75,7 @@ protected:  	void setAllSaleInfo();  	static void	onCommitClickAction(LLUICtrl* ctrl, void*); +	static void onCommitIncludeInSearch(LLUICtrl* ctrl, void*);  protected:  	LLNameBox*		mLabelGroupName;		// group name diff --git a/indra/newview/llselectmgr.cpp b/indra/newview/llselectmgr.cpp index 341dec4115..2e67112e3e 100644 --- a/indra/newview/llselectmgr.cpp +++ b/indra/newview/llselectmgr.cpp @@ -1997,6 +1997,43 @@ BOOL LLSelectMgr::selectionGetMaterial(U8 *out_material)  	return identical;  } + +bool LLSelectMgr::selectionGetIncludeInSearch(bool* include_in_search_out) +{ +	LLViewerObject *object = mSelectedObjects->getFirstRootObject(); +	if (!object) return FALSE; + +	bool include_in_search = object->getIncludeInSearch(); + +	bool identical = true; +	for ( object = mSelectedObjects->getFirstRootObject(); object; object = mSelectedObjects->getNextRootObject() ) +	{ +		if ( include_in_search != object->getIncludeInSearch()) +		{ +			identical = false; +			break; +		} +	} + +	*include_in_search_out = include_in_search; +	return identical; +} + +void LLSelectMgr::selectionSetIncludeInSearch(bool include_in_search) +{ +	LLViewerObject* object = NULL; +	for ( object = mSelectedObjects->getFirstRootObject(); object; object = mSelectedObjects->getNextRootObject() ) +	{ +		object->setIncludeInSearch(include_in_search); +	} +	sendListToRegions( +		"ObjectIncludeInSearch", +		packAgentAndSessionID, +		packObjectIncludeInSearch,  +		&include_in_search, +		SEND_ONLY_ROOTS); +} +  BOOL LLSelectMgr::selectionGetClickAction(U8 *out_action)  {  	LLViewerObject *object = mSelectedObjects->getFirstObject(); @@ -4022,6 +4059,13 @@ void LLSelectMgr::packObjectClickAction(LLSelectNode* node, void *user_data)  	gMessageSystem->addU8("ClickAction", node->getObject()->getClickAction());  } +void LLSelectMgr::packObjectIncludeInSearch(LLSelectNode* node, void *user_data) +{ +	gMessageSystem->nextBlockFast(_PREHASH_ObjectData); +	gMessageSystem->addU32Fast(_PREHASH_ObjectLocalID, node->getObject()->getLocalID() ); +	gMessageSystem->addBOOL("IncludeInSearch", node->getObject()->getIncludeInSearch()); +} +  // static  void LLSelectMgr::packObjectLocalID(LLSelectNode* node, void *)  { diff --git a/indra/newview/llselectmgr.h b/indra/newview/llselectmgr.h index 4986843798..1dc9bce4d5 100644 --- a/indra/newview/llselectmgr.h +++ b/indra/newview/llselectmgr.h @@ -334,6 +334,7 @@ public:  	BOOL selectionGetFullbright(U8 *fullbright);// true if all selected tes have same  	bool selectionGetMediaType(U8 *media_type);	// true if all selected tes have same  	BOOL selectionGetClickAction(U8* action); +	bool selectionGetIncludeInSearch(bool* include_in_search_out); // true if all selected objects have same  	void selectionSetMaterial(U8 material);  	void selectionSetImage(const LLUUID& imageid); // could be item or asset id @@ -348,6 +349,7 @@ public:  	void selectionSetFullbright( U8 fullbright );  	void selectionSetMediaTypeAndURL( U8 media_type, const std::string& media_url );  	void selectionSetClickAction(U8 action); +	void selectionSetIncludeInSearch(bool include_in_search);  	void selectionSetObjectPermissions(U8 perm_field, BOOL set, U32 perm_mask, BOOL override = FALSE);  	void selectionSetObjectName(const LLString& name); @@ -498,6 +500,7 @@ private:  	static void packObjectIDAndRotation(	LLSelectNode* node, void *);  	static void packObjectLocalID(LLSelectNode* node, void *);  	static void packObjectClickAction(LLSelectNode* node, void* data); +	static void packObjectIncludeInSearch(LLSelectNode* node, void* data);  	static void packObjectName(LLSelectNode* node, void* user_data);  	static void packObjectDescription(LLSelectNode* node, void* user_data);  	static void packObjectCategory(LLSelectNode* node, void* user_data); diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp index 2d39bec6a7..fb8d7af004 100644 --- a/indra/newview/llviewerobject.cpp +++ b/indra/newview/llviewerobject.cpp @@ -4671,6 +4671,23 @@ void LLViewerObject::markForUpdate(BOOL priority)  	}  } +bool LLViewerObject::getIncludeInSearch() const +{ +	return ((mFlags & FLAGS_INCLUDE_IN_SEARCH) != 0); +} + +void LLViewerObject::setIncludeInSearch(bool include_in_search) +{ +	if (include_in_search) +	{ +		mFlags |= FLAGS_INCLUDE_IN_SEARCH; +	} +	else +	{ +		mFlags &= ~FLAGS_INCLUDE_IN_SEARCH; +	} +} +  void LLViewerObject::setRegion(LLViewerRegion *regionp)  {  	llassert(regionp); diff --git a/indra/newview/llviewerobject.h b/indra/newview/llviewerobject.h index a7cc4c818c..1ec3c4c6bc 100644 --- a/indra/newview/llviewerobject.h +++ b/indra/newview/llviewerobject.h @@ -407,6 +407,9 @@ public:  	inline BOOL		flagCameraSource() const		{ return ((mFlags & FLAGS_CAMERA_SOURCE) != 0); }  	inline BOOL		flagCameraDecoupled() const		{ return ((mFlags & FLAGS_CAMERA_DECOUPLED) != 0); } +	bool getIncludeInSearch() const; +	void setIncludeInSearch(bool include_in_search); +  	// Does "open" object menu item apply?  	BOOL allowOpen() const; diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp index b7167b7170..8f2362015b 100644 --- a/indra/newview/llviewerregion.cpp +++ b/indra/newview/llviewerregion.cpp @@ -1258,6 +1258,7 @@ void LLViewerRegion::setSeedCapability(const std::string& url)  	capabilityNames.append("ProvisionVoiceAccountRequest");  	capabilityNames.append("ServerReleaseNotes");  	capabilityNames.append("CopyInventoryFromNotecard"); +	capabilityNames.append("DispatchRegionInfo");  	llinfos << "posting to seed " << url << llendl; | 
