diff options
| author | Steven Bennetts <steve@lindenlab.com> | 2007-01-31 19:36:32 +0000 | 
|---|---|---|
| committer | Steven Bennetts <steve@lindenlab.com> | 2007-01-31 19:36:32 +0000 | 
| commit | 934e15973ea86e0e863123d4c5eabeae44d6c763 (patch) | |
| tree | c4d9ff93e1d9283c4807981ecf1973babf620143 | |
| parent | 565e6873decfaadf9eda2d0109132eb64c0ad325 (diff) | |
merge release@57486 release-candidate@57503
| -rw-r--r-- | indra/llcommon/llassettype.cpp | 16 | ||||
| -rw-r--r-- | indra/llcommon/llassettype.h | 8 | ||||
| -rw-r--r-- | indra/llcommon/llavatarconstants.h | 12 | ||||
| -rw-r--r-- | indra/llcommon/llsdutil.cpp | 11 | ||||
| -rw-r--r-- | indra/llcommon/llsdutil.h | 3 | ||||
| -rw-r--r-- | indra/llcommon/lluri.cpp | 84 | ||||
| -rw-r--r-- | indra/llcommon/lluri.h | 7 | ||||
| -rw-r--r-- | indra/llmessage/llhttpclient.cpp | 9 | ||||
| -rw-r--r-- | indra/llmessage/llhttpclient.h | 4 | ||||
| -rw-r--r-- | indra/newview/English.lproj/InfoPlist.strings | 4 | ||||
| -rw-r--r-- | indra/newview/Info-SecondLife.plist | 2 | ||||
| -rw-r--r-- | indra/newview/llfloaterland.cpp | 6 | ||||
| -rw-r--r-- | indra/newview/llfloaterproperties.cpp | 1 | ||||
| -rw-r--r-- | indra/newview/llhudeffect.cpp | 1 | ||||
| -rw-r--r-- | indra/newview/llhudmanager.cpp | 10 | ||||
| -rw-r--r-- | indra/newview/llpanelavatar.cpp | 81 | ||||
| -rw-r--r-- | indra/newview/llpanelavatar.h | 3 | ||||
| -rw-r--r-- | indra/newview/llviewermenu.cpp | 48 | ||||
| -rw-r--r-- | indra/newview/llviewermessage.cpp | 2 | ||||
| -rw-r--r-- | scripts/messages/message_template.msg | 16 | 
20 files changed, 225 insertions, 103 deletions
| diff --git a/indra/llcommon/llassettype.cpp b/indra/llcommon/llassettype.cpp index f6d9f166e1..628ebb7aec 100644 --- a/indra/llcommon/llassettype.cpp +++ b/indra/llcommon/llassettype.cpp @@ -8,9 +8,11 @@  #include "linden_common.h" +#include "llassettype.h" +  #include <time.h> -#include "llassettype.h" +#include "llstring.h"  #include "lltimer.h"  // I added lookups for exact text of asset type enums in addition to the ones below, so shoot me. -Steve @@ -49,9 +51,9 @@ asset_info_t asset_types[] =  	{ LLAssetType::AT_NONE, "NONE" },  }; -LLAssetType::EType LLAssetType::getType(const LLString& sin) +LLAssetType::EType LLAssetType::getType(const std::string& sin)  { -	LLString s = sin; +	std::string s = sin;  	LLString::toUpper(s);  	for (S32 idx = 0; ;idx++)  	{ @@ -64,17 +66,17 @@ LLAssetType::EType LLAssetType::getType(const LLString& sin)  	return LLAssetType::AT_NONE;  } -LLString LLAssetType::getDesc(LLAssetType::EType type) +std::string LLAssetType::getDesc(LLAssetType::EType type)  {  	for (S32 idx = 0; ;idx++)  	{  		asset_info_t* info = asset_types + idx;  		if (type == info->type) -			return LLString(info->desc); +			return info->desc;  		if (info->type == LLAssetType::AT_NONE)  			break;  	} -	return LLString("BAD TYPE"); +	return "BAD TYPE";  }  //============================================================================ @@ -206,7 +208,7 @@ EDragAndDropType LLAssetType::lookupDragAndDropType( EType asset )  // static. Generate a good default description  void LLAssetType::generateDescriptionFor(LLAssetType::EType type, -										 LLString& desc) +										 std::string& desc)  {  	const S32 BUF_SIZE = 30;  	char time_str[BUF_SIZE];	/* Flawfinder: ignore */ diff --git a/indra/llcommon/llassettype.h b/indra/llcommon/llassettype.h index 2b5aadf078..abc118fe9c 100644 --- a/indra/llcommon/llassettype.h +++ b/indra/llcommon/llassettype.h @@ -9,6 +9,8 @@  #ifndef LL_LLASSETTYPE  #define LL_LLASSETTYPE +#include <string> +  #include "stdenums.h" 	// for EDragAndDropType  class LLAssetType @@ -131,10 +133,10 @@ public:  	// Generate a good default description. You may want to add a verb  	// or agent name after this depending on your application.  	static void generateDescriptionFor(LLAssetType::EType type, -									   LLString& desc); +									   std::string& desc); -	static EType getType(const LLString& sin); -	static LLString getDesc(EType type); +	static EType getType(const std::string& sin); +	static std::string getDesc(EType type);  private:  	// don't instantiate or derive one of these objects diff --git a/indra/llcommon/llavatarconstants.h b/indra/llcommon/llavatarconstants.h index ccfec63b83..67bd329732 100644 --- a/indra/llcommon/llavatarconstants.h +++ b/indra/llcommon/llavatarconstants.h @@ -20,5 +20,17 @@ const char* const BLACKLIST_PROFILE_WEB_URL = "http://secondlife.com/app/webdisa  // Maximum number of avatar picks  const S32 MAX_AVATAR_PICKS = 10; +// For Flags in AvatarPropertiesReply
 +const U32 AVATAR_ALLOW_PUBLISH			= 0x1 << 0;	// whether profile is externally visible or not
 +const U32 AVATAR_MATURE_PUBLISH			= 0x1 << 1;	// profile is "mature"
 +const U32 AVATAR_IDENTIFIED				= 0x1 << 2;	// whether avatar has provided payment info
 +const U32 AVATAR_TRANSACTED				= 0x1 << 3;	// whether avatar has actively used payment info +const U32 AVATAR_ONLINE					= 0x1 << 4; // the online status of this avatar, if known. + +static const std::string VISIBILITY_DEFAULT("default");
 +static const std::string VISIBILITY_HIDDEN("hidden"); +static const std::string VISIBILITY_VISIBLE("visible");
 +static const std::string VISIBILITY_INVISIBLE("invisible"); +  #endif diff --git a/indra/llcommon/llsdutil.cpp b/indra/llcommon/llsdutil.cpp index 7cd0ed4c08..a6ac2fb12b 100644 --- a/indra/llcommon/llsdutil.cpp +++ b/indra/llcommon/llsdutil.cpp @@ -203,3 +203,14 @@ U32 ll_ipaddr_from_sd(const LLSD& sd)  	memcpy(&ret, &(v[0]), 4);		/* Flawfinder: ignore */  	return ret;  } + +// Converts an LLSD binary to an LLSD string +LLSD ll_string_from_binary(const LLSD& sd) +{ +	std::vector<U8> value = sd.asBinary(); +	char* c_str = new char[value.size() + 1]; +	memcpy(c_str, &value[0], value.size()); +	c_str[value.size()] = '\0'; + +	return c_str; +} diff --git a/indra/llcommon/llsdutil.h b/indra/llcommon/llsdutil.h index 79961c5311..44e9429d7f 100644 --- a/indra/llcommon/llsdutil.h +++ b/indra/llcommon/llsdutil.h @@ -51,4 +51,7 @@ U64 ll_U64_from_sd(const LLSD& sd);  LLSD ll_sd_from_ipaddr(const U32);  U32 ll_ipaddr_from_sd(const LLSD& sd); +// Binary to string +LLSD ll_string_from_binary(const LLSD& sd); +  #endif // LL_LLSDUTIL_H diff --git a/indra/llcommon/lluri.cpp b/indra/llcommon/lluri.cpp index 1b66173399..5ecba4420d 100644 --- a/indra/llcommon/lluri.cpp +++ b/indra/llcommon/lluri.cpp @@ -9,9 +9,13 @@   */  #include "linden_common.h" + +#include "llapp.h"  #include "lluri.h"  #include "llsd.h" +#include "../llmath/lluuid.h" +  // uric = reserved | unreserved | escaped  // reserved = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" | "$" | ","  // unreserved = alphanum | mark @@ -353,9 +357,21 @@ LLURI LLURI::buildHTTP(const std::string& host_port,  					   const LLSD& path)  {  	LLURI result; -	result.mScheme = "HTTP"; +	  	// TODO: deal with '/' '?' '#' in host_port -	result.mEscapedAuthority = "//" + escape(host_port); +	S32 index = host_port.find("://"); +	if (index != host_port.npos) +	{ +		// The scheme is part of the host_port +		result.mScheme = ""; +		result.mEscapedAuthority = escape(host_port); +	} +	else +	{ +		result.mScheme = "HTTP"; +		result.mEscapedAuthority = "//" + escape(host_port); +	} +  	if (path.isArray())  	{  		// break out and escape each path component @@ -397,6 +413,70 @@ LLURI LLURI::buildHTTP(const std::string& host_port,  	return result;  } +// static +LLURI LLURI::buildAgentPresenceURI(const LLUUID& agent_id, LLApp* app) +{ +	std::string host = "localhost:12040"; + +	if (app) +	{ +		host = app->getOption("backbone-host-port").asString(); +	} + +	LLSD path = LLSD::emptyArray(); +	path.append("agent"); +	path.append(agent_id); +	path.append("presence"); + +	return buildHTTP(host, path); +} + +// static +LLURI LLURI::buildBulkAgentPresenceURI(LLApp* app) +{ +	std::string host = "localhost:12040"; + +	if (app) +	{ +		host = app->getOption("backbone-host-port").asString(); +	} + +	LLSD path = LLSD::emptyArray(); +	path.append("agent"); +	path.append("presence"); + +	return buildHTTP(host, path); +} + +// static +LLURI LLURI::buildAgentSessionURI(const LLUUID& agent_id, LLApp* app) +{ +	std::string host = "localhost:12040"; + +	if (app) +	{ +		host = app->getOption("backbone-host-port").asString(); +	} + +	LLSD path = LLSD::emptyArray(); +	path.append("agent"); +	path.append(agent_id); +	path.append("session"); + +	return buildHTTP(host, path); +} + +// static +LLURI LLURI::buildAgentLoginInfoURI(const LLUUID& agent_id, const std::string& dataserver) +{ +	LLSD path = LLSD::emptyArray(); +	path.append("agent"); +	path.append(agent_id); +	path.append("logininfo"); + +	return buildHTTP(dataserver, path); +} +  std::string LLURI::asString() const  {  	if (mScheme.empty()) diff --git a/indra/llcommon/lluri.h b/indra/llcommon/lluri.h index 3fc62aeb98..b1ac0bca2b 100644 --- a/indra/llcommon/lluri.h +++ b/indra/llcommon/lluri.h @@ -14,6 +14,8 @@  #include <string>  class LLSD; +class LLUUID; +class LLApp;  /**    * @@ -61,6 +63,11 @@ public:  	static std::string escape(const std::string& str);  	static std::string unescape(const std::string& str); +	// Functions for building specific URIs for web services +	static LLURI buildAgentPresenceURI(const LLUUID& agent_id, LLApp* app); +	static LLURI buildBulkAgentPresenceURI(LLApp* app); +	static LLURI buildAgentSessionURI(const LLUUID& agent_id, LLApp* app); +	static LLURI buildAgentLoginInfoURI(const LLUUID& agent_id, const std::string& dataserver);  private:  	std::string mScheme;  	std::string mEscapedOpaque; diff --git a/indra/llmessage/llhttpclient.cpp b/indra/llmessage/llhttpclient.cpp index 38dee26723..7d51b6c722 100644 --- a/indra/llmessage/llhttpclient.cpp +++ b/indra/llmessage/llhttpclient.cpp @@ -7,8 +7,10 @@   */  #include "linden_common.h" -#include "llassetstorage.h" +  #include "llhttpclient.h" + +#include "llassetstorage.h"  #include "lliopipe.h"  #include "llurlrequest.h"  #include "llbufferstream.h" @@ -232,6 +234,11 @@ void LLHTTPClient::post(const std::string& url, const LLSD& body, ResponderPtr r  	request(url, LLURLRequest::HTTP_POST, new LLSDInjector(body), responder);  } +void LLHTTPClient::del(const std::string& url, ResponderPtr responder) +{ +	request(url, LLURLRequest::HTTP_DELETE, NULL, responder); +} +  #if 1  void LLHTTPClient::postFile(const std::string& url, const std::string& filename, ResponderPtr responder)  { diff --git a/indra/llmessage/llhttpclient.h b/indra/llmessage/llhttpclient.h index 563450f07e..41ccb1fad9 100644 --- a/indra/llmessage/llhttpclient.h +++ b/indra/llmessage/llhttpclient.h @@ -16,8 +16,10 @@  #include <string>  #include <boost/intrusive_ptr.hpp> -#include "llassetstorage.h" +#include "llassettype.h" + +class LLUUID;  class LLPumpIO;  class LLSD; diff --git a/indra/newview/English.lproj/InfoPlist.strings b/indra/newview/English.lproj/InfoPlist.strings index 2f68a020ca..6ef64e4b4b 100644 --- a/indra/newview/English.lproj/InfoPlist.strings +++ b/indra/newview/English.lproj/InfoPlist.strings @@ -1,5 +1,5 @@  /* Localized versions of Info.plist keys */  CFBundleName = "Second Life"; -CFBundleShortVersionString = "Second Life version 1.13.2.15"; -CFBundleGetInfoString = "Second Life version 1.13.2.15, Copyright 2004-2006 Linden Research, Inc."; +CFBundleShortVersionString = "Second Life version 1.13.3.2"; +CFBundleGetInfoString = "Second Life version 1.13.3.2, Copyright 2004-2006 Linden Research, Inc."; diff --git a/indra/newview/Info-SecondLife.plist b/indra/newview/Info-SecondLife.plist index 3e6c65e953..6e1de8bb07 100644 --- a/indra/newview/Info-SecondLife.plist +++ b/indra/newview/Info-SecondLife.plist @@ -32,7 +32,7 @@  		</dict>  	</array>  	<key>CFBundleVersion</key> -	<string>1.13.2.15</string> +	<string>1.13.3.2</string>  	<key>CSResourcesFileMapped</key>  	<true/>  </dict> diff --git a/indra/newview/llfloaterland.cpp b/indra/newview/llfloaterland.cpp index 3b4c7c2f59..be06154c29 100644 --- a/indra/newview/llfloaterland.cpp +++ b/indra/newview/llfloaterland.cpp @@ -999,8 +999,8 @@ void LLPanelLandGeneral::onCommitAny(LLUICtrl *ctrl, void *userdata)  	}  	// Extract data from UI -	std::string name		= panelp->mEditName->getText(); -	std::string desc		= panelp->mEditDesc->getText(); +	std::string name = panelp->mEditName->getText(); +	std::string desc = panelp->mEditDesc->getText();  	// Valid data from UI @@ -1104,7 +1104,7 @@ BOOL LLPanelLandObjects::postBuild()  	mCleanOtherObjectsTime = LLUICtrlFactory::getLineEditorByName(this, "clean other time");  	mCleanOtherObjectsTime->setFocusLostCallback(onLostFocus);	 -	childSetPrevalidate("clean other time", LLLineEditor::prevalidatePrintableNotPipe); +	childSetPrevalidate("clean other time", LLLineEditor::prevalidateNonNegativeS32);  	childSetUserData("clean other time", this);  	mOwnerListText = LLUICtrlFactory::getTextBoxByName(this, "Object Owners:"); diff --git a/indra/newview/llfloaterproperties.cpp b/indra/newview/llfloaterproperties.cpp index 4311a899c4..76a387556e 100644 --- a/indra/newview/llfloaterproperties.cpp +++ b/indra/newview/llfloaterproperties.cpp @@ -145,6 +145,7 @@ LLFloaterProperties::LLFloaterProperties(const std::string& name, const LLRect&  	childSetPrevalidate("LabelItemName",&LLLineEditor::prevalidatePrintableNotPipe);  	childSetCommitCallback("LabelItemName",onCommitName,this);  	childSetPrevalidate("LabelItemDesc",&LLLineEditor::prevalidatePrintableNotPipe); +	childSetCommitCallback("LabelItemDesc", onCommitDescription, this);  	// Creator information  	childSetAction("BtnCreator",onClickCreator,this);  	// owner information diff --git a/indra/newview/llhudeffect.cpp b/indra/newview/llhudeffect.cpp index 4f80fffb01..8fbfcb65e7 100644 --- a/indra/newview/llhudeffect.cpp +++ b/indra/newview/llhudeffect.cpp @@ -38,6 +38,7 @@ LLHUDEffect::~LLHUDEffect()  void LLHUDEffect::packData(LLMessageSystem *mesgsys)  {  	mesgsys->addUUIDFast(_PREHASH_ID, mID); +	mesgsys->addUUIDFast(_PREHASH_AgentID, gAgent.getID());  	mesgsys->addU8Fast(_PREHASH_Type, mType);  	mesgsys->addF32Fast(_PREHASH_Duration, mDuration);  	mesgsys->addBinaryData(_PREHASH_Color, mColor.mV, 4); diff --git a/indra/newview/llhudmanager.cpp b/indra/newview/llhudmanager.cpp index 40e140253e..31e6318d25 100644 --- a/indra/newview/llhudmanager.cpp +++ b/indra/newview/llhudmanager.cpp @@ -176,9 +176,13 @@ void LLHUDManager::sendEffects()  		}  		if (hep->getNeedsSendToSim() && hep->getOriginatedHere())  		{ -			gMessageSystem->newMessageFast(_PREHASH_ViewerEffect); -			gMessageSystem->nextBlockFast(_PREHASH_Effect); -			hep->packData(gMessageSystem); +			LLMessageSystem* msg = gMessageSystem; +			msg->newMessageFast(_PREHASH_ViewerEffect); +			msg->nextBlockFast(_PREHASH_AgentData); +			msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); +			msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); +			msg->nextBlockFast(_PREHASH_Effect); +			hep->packData(msg);  			hep->setNeedsSendToSim(FALSE);  			gAgent.sendMessage();  		} diff --git a/indra/newview/llpanelavatar.cpp b/indra/newview/llpanelavatar.cpp index 9b1a6caf0e..615086e7d4 100644 --- a/indra/newview/llpanelavatar.cpp +++ b/indra/newview/llpanelavatar.cpp @@ -400,8 +400,11 @@ BOOL LLPanelAvatarSecondLife::postBuild(void)  	childSetVisible("allow_publish",LLPanelAvatar::sAllowFirstLife);  	childSetVisible("?",LLPanelAvatar::sAllowFirstLife); -	childSetVisible("online_unknown",TRUE);  	childSetVisible("online_yes",FALSE); + +	// These are cruft but may still exist in some xml files +	// TODO: remove the following 2 lines once translators grab these changes +	childSetVisible("online_unknown",FALSE);  	childSetVisible("online_no",FALSE);  	childSetAction("Show on Map", LLPanelAvatar::onClickTrack, mPanelAvatar); @@ -1279,6 +1282,19 @@ void LLPanelAvatar::setAvatar(LLViewerObject *avatarp)  	setAvatarID(avatarp->getID(), name, ONLINE_STATUS_YES);  } +void LLPanelAvatar::setOnlineStatus(EOnlineStatus online_status) +{ +	// Online status NO could be because they are hidden +	// If they are a friend, we may know the truth! +	if ((ONLINE_STATUS_YES != online_status) +		&& mIsFriend +		&& (LLAvatarTracker::instance().isBuddyOnline( mAvatarID ))) +	{ +		online_status = ONLINE_STATUS_YES; +	} + +	mPanelSecondLife->childSetVisible("online_yes", (online_status == ONLINE_STATUS_YES)); +}  void LLPanelAvatar::setAvatarID(const LLUUID &avatar_id, const LLString &name,  								EOnlineStatus online_status) @@ -1295,50 +1311,8 @@ void LLPanelAvatar::setAvatarID(const LLUUID &avatar_id, const LLString &name,  	// Determine if we have their calling card.  	mIsFriend = is_agent_friend(mAvatarID);  -	if (ONLINE_STATUS_UNKNOWN == online_status) -	{ -		// Determine if we know that they are online.  If we can see them, -		// we know they're online.  Likewise, if we have a calling card, -		// we know.  Otherwise we don't. -		LLViewerObject* object = gObjectList.findObject( mAvatarID ); -		if (object && !object->isDead()) -		{ -			online_status = ONLINE_STATUS_YES; -		} -		else if (mIsFriend) -		{ -			if (LLAvatarTracker::instance().isBuddyOnline( mAvatarID )) -			{ -				online_status = ONLINE_STATUS_YES; -			} -			else -			{ -				online_status = ONLINE_STATUS_NO; -			} -		} -		else -		{ -			// Don't actually know if they are online. -		} -	} - -	mPanelSecondLife->childSetVisible("online_unknown",FALSE); -	mPanelSecondLife->childSetVisible("online_yes",FALSE); -	mPanelSecondLife->childSetVisible("online_no",FALSE); - -	switch(online_status) -	{ -	  case ONLINE_STATUS_YES: -		mPanelSecondLife->childSetVisible("online_yes",TRUE); -		break; -	  case ONLINE_STATUS_NO: -		mPanelSecondLife->childSetVisible("online_no",TRUE); -		break; -	  case ONLINE_STATUS_UNKNOWN: -	  default: -		mPanelSecondLife->childSetVisible("online_unknown",TRUE); -		break; -	} +	// setOnlineStatus uses mIsFriend +	setOnlineStatus(online_status);  	BOOL own_avatar = (mAvatarID == gAgent.getID() ); @@ -1736,8 +1710,11 @@ void LLPanelAvatar::processAvatarPropertiesReply(LLMessageSystem *msg, void**)  	//BOOL	mature = FALSE;  	BOOL	identified = FALSE;  	BOOL	transacted = FALSE; +	BOOL	online = FALSE;  	char	profile_url[DB_USER_PROFILE_URL_BUF_SIZE]; +	U32		flags = 0x0; +  	//llinfos << "properties packet size " << msg->getReceiveSize() << llendl;  	msg->getUUIDFast(_PREHASH_AgentData, _PREHASH_AgentID, agent_id); @@ -1757,7 +1734,6 @@ void LLPanelAvatar::processAvatarPropertiesReply(LLMessageSystem *msg, void**)  		{  			self->childSetEnabled("Rate...",TRUE);  		} -		lldebugs << "!!!!!!!!!!!!!!!!!!!!!!Enabling drop target" << llendl;  		self->childSetEnabled("drop target",TRUE);  		self->mHaveProperties = TRUE; @@ -1769,9 +1745,17 @@ void LLPanelAvatar::processAvatarPropertiesReply(LLMessageSystem *msg, void**)  		msg->getStringFast(_PREHASH_PropertiesData, _PREHASH_AboutText,	DB_USER_ABOUT_BUF_SIZE,		about_text );  		msg->getStringFast(_PREHASH_PropertiesData, _PREHASH_FLAboutText,	DB_USER_FL_ABOUT_BUF_SIZE,		fl_about_text );  		msg->getStringFast(_PREHASH_PropertiesData, _PREHASH_BornOn, DB_BORN_BUF_SIZE, born_on); -		msg->getBOOLFast(_PREHASH_PropertiesData, _PREHASH_Identified,  identified); -		msg->getBOOLFast(_PREHASH_PropertiesData, _PREHASH_Transacted,  transacted);  		msg->getString("PropertiesData","ProfileURL", DB_USER_PROFILE_URL_BUF_SIZE, profile_url); +		msg->getU32Fast(_PREHASH_PropertiesData, _PREHASH_Flags, flags); +		 +		identified = (flags & AVATAR_IDENTIFIED); +		transacted = (flags & AVATAR_TRANSACTED); +		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; @@ -1849,7 +1833,6 @@ void LLPanelAvatar::processAvatarPropertiesReply(LLMessageSystem *msg, void**)  			{  				image_ctrl->setImageAssetID(fl_image_id);  			} -			msg->getBOOL("PropertiesData", "AllowPublish", allow_publish);  			self->mPanelSecondLife->childSetValue("allow_publish", allow_publish); diff --git a/indra/newview/llpanelavatar.h b/indra/newview/llpanelavatar.h index 0cdcdf938b..713750ad06 100644 --- a/indra/newview/llpanelavatar.h +++ b/indra/newview/llpanelavatar.h @@ -36,7 +36,6 @@ class LLWebBrowserCtrl;  enum EOnlineStatus  { -	ONLINE_STATUS_UNKNOWN = -1,  	ONLINE_STATUS_NO      = 0,  	ONLINE_STATUS_YES     = 1  }; @@ -243,6 +242,8 @@ public:  	// Pass one of the ONLINE_STATUS_foo constants above.  	void setAvatarID(const LLUUID &avatar_id, const LLString &name, EOnlineStatus online_status); +	void setOnlineStatus(EOnlineStatus online_status); +  	const LLUUID& getAvatarID() const { return mAvatarID; }  	void disableRate(); diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index b2889f961a..05e3159864 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -562,21 +562,21 @@ void init_menus()  	// flash when an item is triggered (the flash occurs in the holder)  	gViewerWindow->getRootView()->addChild(gMenuHolder); -		gMenuHolder->childSetLabelArg("Upload Image", "[COST]", "10"); -		gMenuHolder->childSetLabelArg("Upload Sound", "[COST]", "10"); -		gMenuHolder->childSetLabelArg("Upload Animation", "[COST]", "10"); -		gMenuHolder->childSetLabelArg("Bulk Upload", "[COST]", "10"); +	gMenuHolder->childSetLabelArg("Upload Image", "[COST]", "10"); +	gMenuHolder->childSetLabelArg("Upload Sound", "[COST]", "10"); +	gMenuHolder->childSetLabelArg("Upload Animation", "[COST]", "10"); +	gMenuHolder->childSetLabelArg("Bulk Upload", "[COST]", "10"); -		gAFKMenu = (LLMenuItemCallGL*)gMenuBarView->getChildByName("Set Away", TRUE); -		gBusyMenu = (LLMenuItemCallGL*)gMenuBarView->getChildByName("Set Busy", TRUE); -		gAttachSubMenu = gMenuBarView->getChildMenuByName("Attach Object", TRUE); -		gDetachSubMenu = gMenuBarView->getChildMenuByName("Detach Object", TRUE); +	gAFKMenu = (LLMenuItemCallGL*)gMenuBarView->getChildByName("Set Away", TRUE); +	gBusyMenu = (LLMenuItemCallGL*)gMenuBarView->getChildByName("Set Busy", TRUE); +	gAttachSubMenu = gMenuBarView->getChildMenuByName("Attach Object", TRUE); +	gDetachSubMenu = gMenuBarView->getChildMenuByName("Detach Object", TRUE); -		if (gAgent.mAccess < SIM_ACCESS_MATURE) -		{ -			gMenuBarView->getChildByName("Menu Underpants", TRUE)->setVisible(FALSE); -			gMenuBarView->getChildByName("Menu Undershirt", TRUE)->setVisible(FALSE); -		} +	if (gAgent.mAccess < SIM_ACCESS_MATURE) +	{ +		gMenuBarView->getChildByName("Menu Underpants", TRUE)->setVisible(FALSE); +		gMenuBarView->getChildByName("Menu Undershirt", TRUE)->setVisible(FALSE); +	}  	// TomY TODO convert these two  	LLMenuGL*menu; @@ -607,23 +607,23 @@ void init_menus()  	///  	gPieSelf = gUICtrlFactory->buildPieMenu("menu_pie_self.xml", gMenuHolder); -		// TomY TODO: what shall we do about these? -		gDetachScreenPieMenu = (LLPieMenu*)gMenuHolder->getChildByName("Object Detach HUD", true); -		gDetachPieMenu = (LLPieMenu*)gMenuHolder->getChildByName("Object Detach", true); +	// TomY TODO: what shall we do about these? +	gDetachScreenPieMenu = (LLPieMenu*)gMenuHolder->getChildByName("Object Detach HUD", true); +	gDetachPieMenu = (LLPieMenu*)gMenuHolder->getChildByName("Object Detach", true); -		if (gAgent.mAccess < SIM_ACCESS_MATURE) -		{ -			gMenuHolder->getChildByName("Self Underpants", TRUE)->setVisible(FALSE); -			gMenuHolder->getChildByName("Self Undershirt", TRUE)->setVisible(FALSE); -		} +	if (gAgent.mAccess < SIM_ACCESS_MATURE) +	{ +		gMenuHolder->getChildByName("Self Underpants", TRUE)->setVisible(FALSE); +		gMenuHolder->getChildByName("Self Undershirt", TRUE)->setVisible(FALSE); +	}  	gPieAvatar = gUICtrlFactory->buildPieMenu("menu_pie_avatar.xml", gMenuHolder);  	gPieObject = gUICtrlFactory->buildPieMenu("menu_pie_object.xml", gMenuHolder); -		gAttachScreenPieMenu = (LLPieMenu*)gMenuHolder->getChildByName("Object Attach HUD", true); -		gAttachPieMenu = (LLPieMenu*)gMenuHolder->getChildByName("Object Attach", true); -		gPieRate = (LLPieMenu*)gMenuHolder->getChildByName("Rate Menu", true); +	gAttachScreenPieMenu = (LLPieMenu*)gMenuHolder->getChildByName("Object Attach HUD", true); +	gAttachPieMenu = (LLPieMenu*)gMenuHolder->getChildByName("Object Attach", true); +	gPieRate = (LLPieMenu*)gMenuHolder->getChildByName("Rate Menu", true);  	gPieAttachment = gUICtrlFactory->buildPieMenu("menu_pie_attachment.xml", gMenuHolder); diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index dff2a6c9e0..f95ec9e3cc 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -3887,7 +3887,7 @@ void process_alert_core(const char* buffer, BOOL modal)  	{  		//XUI:translate  		LLString::format_map_t args; -		args["[BUFFER]"] = buffer; +		args["[ERROR_MESSAGE]"] = buffer;  		gViewerWindow->alertXml("ErrorMessage", args);  	}  	else diff --git a/scripts/messages/message_template.msg b/scripts/messages/message_template.msg index b44b099c33..32a514502f 100644 --- a/scripts/messages/message_template.msg +++ b/scripts/messages/message_template.msg @@ -4260,10 +4260,7 @@ sim -> dataserver  		{	BornOn			Variable 1	}	// string  		{	ProfileURL		Variable 1	}	// string  		{	CharterMember	Variable 1	}	// special - usually U8 -		{	AllowPublish	BOOL		}	// whether profile is externally visible or not -		{	MaturePublish	BOOL		}	// profile is "mature" -		{	Identified		BOOL		}	// whether avatar has provided payment info -		{	Transacted		BOOL		}	// whether avatar has actively used payment info +		{	Flags			U32			}  	}  } @@ -9196,11 +9193,20 @@ sim -> dataserver  // ViewerEffect  // Viewer side effect that's sent from one viewer, and broadcast to other agents nearby +// viewer-->sim (single effect created by viewer) +// sim-->viewer (multiple effects that can be seen by viewer) +// the AgentData block used for authentication for viewer-->sim messages  {  	ViewerEffect Medium NotTrusted Zerocoded  	{ +		AgentData		Single +		{	AgentID		LLUUID	} +		{	SessionID	LLUUID	} +	} +	{  		Effect Variable -		{	ID			LLUUID	} // UUID of the effect +		{	ID			LLUUID	} // unique UUID of the effect +		{	AgentID		LLUUID	} // yes, pack AgentID again (note this block is variable)  		{	Type		U8	} // Type of the effect  		{	Duration	F32	} // F32 time (seconds)  		{	Color		Fixed		4	} // Color4U | 
