diff options
32 files changed, 179 insertions, 84 deletions
diff --git a/indra/llaudio/llaudiodecodemgr.cpp b/indra/llaudio/llaudiodecodemgr.cpp index 6bbaad9cef..290206ee22 100644 --- a/indra/llaudio/llaudiodecodemgr.cpp +++ b/indra/llaudio/llaudiodecodemgr.cpp @@ -181,6 +181,8 @@ LLVorbisDecodeState::LLVorbisDecodeState(const LLUUID &uuid, const std::string &  	mFileHandle = LLLFSThread::nullHandle();  #endif  	// No default value for mVF, it's an ogg structure? +	// Hey, let's zero it anyway, for predictability. +	memset(&mVF, 0, sizeof(mVF));  }  LLVorbisDecodeState::~LLVorbisDecodeState() diff --git a/indra/llcommon/llfasttimer_class.cpp b/indra/llcommon/llfasttimer_class.cpp index fae0a66873..6d8d81e114 100644 --- a/indra/llcommon/llfasttimer_class.cpp +++ b/indra/llcommon/llfasttimer_class.cpp @@ -114,7 +114,11 @@ static timer_tree_dfs_iterator_t end_timer_tree()  class NamedTimerFactory : public LLSingleton<NamedTimerFactory>  {  public: -	NamedTimerFactory()  +	NamedTimerFactory() +		: mActiveTimerRoot(NULL), +		  mTimerRoot(NULL), +		  mAppTimer(NULL), +		  mRootFrameState(NULL)  	{}  	/*virtual */ void initSingleton() diff --git a/indra/llcommon/lltreeiterators.h b/indra/llcommon/lltreeiterators.h index c946566e84..cb1304c54e 100644 --- a/indra/llcommon/lltreeiterators.h +++ b/indra/llcommon/lltreeiterators.h @@ -343,20 +343,20 @@ public:      /// Instantiate an LLTreeDFSIter to start a depth-first walk. Pass      /// functors to extract the 'child begin' and 'child end' iterators from      /// each node. -    LLTreeDFSIter(const ptr_type& node, const func_type& beginfunc, const func_type& endfunc): -        mBeginFunc(beginfunc), -        mEndFunc(endfunc), -		mSkipChildren(false) +    LLTreeDFSIter(const ptr_type& node, const func_type& beginfunc, const func_type& endfunc) +	    : mBeginFunc(beginfunc), +	    mEndFunc(endfunc), +	    mSkipChildren(false)      {          // Only push back this node if it's non-NULL!          if (node)              mPending.push_back(node);      }      /// Instantiate an LLTreeDFSIter to mark the end of the walk -    LLTreeDFSIter() {} +    LLTreeDFSIter() : mSkipChildren(false) {} -	/// flags iterator logic to skip traversing children of current node on next increment -	void skipDescendants(bool skip = true) { mSkipChildren = skip; } +    /// flags iterator logic to skip traversing children of current node on next increment +    void skipDescendants(bool skip = true) { mSkipChildren = skip; }  private:      /// leverage boost::iterator_facade @@ -405,8 +405,8 @@ private:      func_type mBeginFunc;      /// functor to extract end() child iterator      func_type mEndFunc; -	/// flag which controls traversal of children (skip children of current node if true) -	bool	mSkipChildren; +    /// flag which controls traversal of children (skip children of current node if true) +    bool	mSkipChildren;  };  /** @@ -451,21 +451,21 @@ public:      /// Instantiate an LLTreeDFSPostIter to start a depth-first walk. Pass      /// functors to extract the 'child begin' and 'child end' iterators from      /// each node. -    LLTreeDFSPostIter(const ptr_type& node, const func_type& beginfunc, const func_type& endfunc): -        mBeginFunc(beginfunc), -        mEndFunc(endfunc), -		mSkipAncestors(false) -    { +    LLTreeDFSPostIter(const ptr_type& node, const func_type& beginfunc, const func_type& endfunc) +	    : mBeginFunc(beginfunc), +	    mEndFunc(endfunc), +	    mSkipAncestors(false) +	    {          if (! node)              return;          mPending.push_back(typename list_type::value_type(node, false));          makeCurrent();      }      /// Instantiate an LLTreeDFSPostIter to mark the end of the walk -    LLTreeDFSPostIter() {} +    LLTreeDFSPostIter() : mSkipAncestors(false) {} -	/// flags iterator logic to skip traversing ancestors of current node on next increment -	void skipAncestors(bool skip = true) { mSkipAncestors = skip; } +    /// flags iterator logic to skip traversing ancestors of current node on next increment +    void skipAncestors(bool skip = true) { mSkipAncestors = skip; }  private:      /// leverage boost::iterator_facade diff --git a/indra/llcommon/llworkerthread.cpp b/indra/llcommon/llworkerthread.cpp index 82c736266d..1b0e03cb2a 100644 --- a/indra/llcommon/llworkerthread.cpp +++ b/indra/llcommon/llworkerthread.cpp @@ -188,6 +188,7 @@ LLWorkerClass::LLWorkerClass(LLWorkerThread* workerthread, const std::string& na  	: mWorkerThread(workerthread),  	  mWorkerClassName(name),  	  mRequestHandle(LLWorkerThread::nullHandle()), +	  mRequestPriority(LLWorkerThread::PRIORITY_NORMAL),  	  mMutex(NULL),  	  mWorkFlags(0)  { diff --git a/indra/llimagej2coj/llimagej2coj.cpp b/indra/llimagej2coj/llimagej2coj.cpp index e71429b18d..3af31da083 100644 --- a/indra/llimagej2coj/llimagej2coj.cpp +++ b/indra/llimagej2coj/llimagej2coj.cpp @@ -97,7 +97,8 @@ void info_callback(const char* msg, void*)  } -LLImageJ2COJ::LLImageJ2COJ() : LLImageJ2CImpl() +LLImageJ2COJ::LLImageJ2COJ() +	: LLImageJ2CImpl()  {  } diff --git a/indra/llimagej2coj/llimagej2coj.h b/indra/llimagej2coj/llimagej2coj.h index 73cb074f1f..8255d5225f 100644 --- a/indra/llimagej2coj/llimagej2coj.h +++ b/indra/llimagej2coj/llimagej2coj.h @@ -51,9 +51,6 @@ protected:  		// Divide a by b to the power of 2 and round upwards.  		return (a + (1 << b) - 1) >> b;  	} - -	// Temporary variables for in-progress decodes... -	LLImageRaw *mRawImagep;  };  #endif diff --git a/indra/llmessage/llpacketbuffer.cpp b/indra/llmessage/llpacketbuffer.cpp index 027d35cf89..441e8ddd27 100644 --- a/indra/llmessage/llpacketbuffer.cpp +++ b/indra/llmessage/llpacketbuffer.cpp @@ -42,11 +42,14 @@  LLPacketBuffer::LLPacketBuffer(const LLHost &host, const char *datap, const S32 size) : mHost(host)  { +	mSize = 0; +	mData[0] = '!'; +  	if (size > NET_BUFFER_SIZE)  	{  		llerrs << "Sending packet > " << NET_BUFFER_SIZE << " of size " << size << llendl;  	} -	else // we previously relied on llerrs being fatal to not get here... +	else  	{  		if (datap != NULL)  		{ diff --git a/indra/llmessage/lltransfermanager.cpp b/indra/llmessage/lltransfermanager.cpp index 0a71ad95f2..d64b666ede 100644 --- a/indra/llmessage/lltransfermanager.cpp +++ b/indra/llmessage/lltransfermanager.cpp @@ -1196,6 +1196,7 @@ LLTransferTarget::LLTransferTarget(  	mType(type),  	mSourceType(source_type),  	mID(transfer_id), +	mChannelp(NULL),  	mGotInfo(FALSE),  	mSize(0),  	mLastPacketID(-1) diff --git a/indra/llmessage/lltransfersourceasset.cpp b/indra/llmessage/lltransfersourceasset.cpp index 7332f5c954..8f36d516d7 100644 --- a/indra/llmessage/lltransfersourceasset.cpp +++ b/indra/llmessage/lltransfersourceasset.cpp @@ -226,7 +226,10 @@ void LLTransferSourceAsset::responderCallback(LLVFS *vfs, const LLUUID& uuid, LL -LLTransferSourceParamsAsset::LLTransferSourceParamsAsset() : LLTransferSourceParams(LLTST_ASSET) +LLTransferSourceParamsAsset::LLTransferSourceParamsAsset() +	: LLTransferSourceParams(LLTST_ASSET), + +	  mAssetType(LLAssetType::AT_NONE)  {  } diff --git a/indra/llmessage/lltransfertargetfile.h b/indra/llmessage/lltransfertargetfile.h index 18b9b52062..92fb8f807c 100644 --- a/indra/llmessage/lltransfertargetfile.h +++ b/indra/llmessage/lltransfertargetfile.h @@ -40,7 +40,12 @@ typedef void (*LLTTFCompleteCallback)(const LLTSCode status, void *user_data);  class LLTransferTargetParamsFile : public LLTransferTargetParams  {  public: -	LLTransferTargetParamsFile() : LLTransferTargetParams(LLTTT_FILE) {} +	LLTransferTargetParamsFile() +		: LLTransferTargetParams(LLTTT_FILE), + +		mCompleteCallback(NULL), +		mUserData(NULL) +	{}  	void setFilename(const std::string& filename)	{ mFilename = filename; }  	void setCallback(LLTTFCompleteCallback cb, void *user_data)		{ mCompleteCallback = cb; mUserData = user_data; } diff --git a/indra/llmessage/lltransfertargetvfile.h b/indra/llmessage/lltransfertargetvfile.h index 8c2bc7e8bb..cd18d8ce3f 100644 --- a/indra/llmessage/lltransfertargetvfile.h +++ b/indra/llmessage/lltransfertargetvfile.h @@ -68,7 +68,6 @@ protected:  	LLTTVFCompleteCallback	mCompleteCallback;  	void*					mUserDatap;  	S32						mErrCode; -	LLVFSThread::handle_t	mHandle;  }; diff --git a/indra/llplugin/llpluginclassmedia.cpp b/indra/llplugin/llpluginclassmedia.cpp index 3d2eaed5c5..91c796a9e6 100644 --- a/indra/llplugin/llpluginclassmedia.cpp +++ b/indra/llplugin/llpluginclassmedia.cpp @@ -104,6 +104,8 @@ void LLPluginClassMedia::reset()  	mSetMediaHeight = -1;  	mRequestedMediaWidth = 0;  	mRequestedMediaHeight = 0; +	mRequestedTextureWidth = 0; +	mRequestedTextureHeight = 0;  	mFullMediaWidth = 0;  	mFullMediaHeight = 0;  	mTextureWidth = 0; diff --git a/indra/llplugin/llpluginprocesschild.cpp b/indra/llplugin/llpluginprocesschild.cpp index 11c924cadf..0f3254d78d 100644 --- a/indra/llplugin/llpluginprocesschild.cpp +++ b/indra/llplugin/llpluginprocesschild.cpp @@ -43,6 +43,7 @@ static const F32 PLUGIN_IDLE_SECONDS = 1.0f / 100.0f;  // Each call to idle will  LLPluginProcessChild::LLPluginProcessChild()  { +	mState = STATE_UNINITIALIZED;  	mInstance = NULL;  	mSocket = LLSocket::create(gAPRPoolp, LLSocket::STREAM_TCP);  	mSleepTime = PLUGIN_IDLE_SECONDS;	// default: send idle messages at 100Hz diff --git a/indra/llplugin/llpluginprocesschild.h b/indra/llplugin/llpluginprocesschild.h index 1cfd9dcaf9..58f8935ed1 100644 --- a/indra/llplugin/llpluginprocesschild.h +++ b/indra/llplugin/llpluginprocesschild.h @@ -89,8 +89,9 @@ private:  		STATE_ERROR,				// generic bailout state  		STATE_DONE					// state machine will sit in this state after either error or normal termination.  	}; -	EState mState;  	void setState(EState state); + +	EState mState;  	LLHost mLauncherHost;  	LLSocket::ptr_t mSocket; diff --git a/indra/llplugin/llpluginprocessparent.cpp b/indra/llplugin/llpluginprocessparent.cpp index 49f9783824..efd5df687e 100644 --- a/indra/llplugin/llpluginprocessparent.cpp +++ b/indra/llplugin/llpluginprocessparent.cpp @@ -50,6 +50,8 @@ LLPluginProcessParent::LLPluginProcessParent(LLPluginProcessParentOwner *owner)  	mOwner = owner;  	mBoundPort = 0;  	mState = STATE_UNINITIALIZED; +	mSleepTime = 0.0; +	mCPUUsage = 0.0;  	mDisableTimeout = false;  	mDebug = false; diff --git a/indra/llui/lltextbase.cpp b/indra/llui/lltextbase.cpp index 75ca6d8895..2b1e2b8226 100644 --- a/indra/llui/lltextbase.cpp +++ b/indra/llui/lltextbase.cpp @@ -2333,8 +2333,6 @@ F32 LLNormalTextSegment::drawClippedSegment(S32 seg_start, S32 seg_end, S32 sele  	LLColor4 color = (mEditor.getReadOnly() ? mStyle->getReadOnlyColor() : mStyle->getColor())  % alpha; -	font = mStyle->getFont(); -    	if( selection_start > seg_start )  	{  		// Draw normally diff --git a/indra/llui/llurlentry.cpp b/indra/llui/llurlentry.cpp index b20de914a0..92b7816bdd 100644 --- a/indra/llui/llurlentry.cpp +++ b/indra/llui/llurlentry.cpp @@ -232,7 +232,7 @@ std::string LLUrlEntryHTTPNoProtocol::getUrl(const std::string &string) const  LLUrlEntrySLURL::LLUrlEntrySLURL()  {  	// see http://slurl.com/about.php for details on the SLURL format -	mPattern = boost::regex("http://slurl.com/secondlife/\\S+/?(\\d+)?/?(\\d+)?/?(\\d+)?/?\\S*", +	mPattern = boost::regex("http://(maps.secondlife.com|slurl.com)/secondlife/\\S+/?(\\d+)?/?(\\d+)?/?(\\d+)?/?\\S*",  							boost::regex::perl|boost::regex::icase);  	mMenuName = "menu_url_slurl.xml";  	mTooltip = LLTrans::getString("TooltipSLURL"); diff --git a/indra/llvfs/llpidlock.cpp b/indra/llvfs/llpidlock.cpp index 95e3692e10..28cee29405 100755 --- a/indra/llvfs/llpidlock.cpp +++ b/indra/llvfs/llpidlock.cpp @@ -68,8 +68,12 @@ class LLPidLockFile  {  	public:  		LLPidLockFile( ) : -			mSaving(FALSE), mWaiting(FALSE),  -			mClean(TRUE), mPID(getpid()) +			mAutosave(false), +			mSaving(false), +			mWaiting(false), +			mPID(getpid()), +			mNameTable(NULL), +			mClean(true)  		{  			mLockName = gDirUtilp->getTempDir() + gDirUtilp->getDirDelimiter() + "savelock";  		} diff --git a/indra/llvfs/llvfile.h b/indra/llvfs/llvfile.h index 5f69a41040..c3bca8c737 100644 --- a/indra/llvfs/llvfile.h +++ b/indra/llvfs/llvfile.h @@ -88,7 +88,6 @@ protected:  	S32		mMode;  	LLVFS	*mVFS;  	F32		mPriority; -	BOOL	mOnReadQueue;  	S32		mBytesRead;  	LLVFSThread::handle_t mHandle; diff --git a/indra/llxml/llxmlnode.cpp b/indra/llxml/llxmlnode.cpp index 07cc612a0a..e4f6482fae 100644 --- a/indra/llxml/llxmlnode.cpp +++ b/indra/llxml/llxmlnode.cpp @@ -131,6 +131,8 @@ LLXMLNode::LLXMLNode(const LLXMLNode& rhs) :  	mPrecision(rhs.mPrecision),  	mType(rhs.mType),  	mEncoding(rhs.mEncoding), +	mLineNumber(0), +	mParser(NULL),  	mParent(NULL),  	mChildren(NULL),  	mAttributes(), diff --git a/indra/llxml/llxmltree.cpp b/indra/llxml/llxmltree.cpp index 1bce5d29f7..bc2690deff 100644 --- a/indra/llxml/llxmltree.cpp +++ b/indra/llxml/llxmltree.cpp @@ -510,7 +510,8 @@ LLXmlTreeParser::LLXmlTreeParser(LLXmlTree* tree)  	: mTree(tree),  	  mRoot( NULL ),  	  mCurrent( NULL ), -	  mDump( FALSE ) +	  mDump( FALSE ), +	  mKeepContents(FALSE)  {  } diff --git a/indra/newview/llfavoritesbar.cpp b/indra/newview/llfavoritesbar.cpp index f5bb777419..a5b62439f4 100644 --- a/indra/newview/llfavoritesbar.cpp +++ b/indra/newview/llfavoritesbar.cpp @@ -370,7 +370,8 @@ struct LLFavoritesSort  LLFavoritesBarCtrl::Params::Params()  : image_drag_indication("image_drag_indication"), -  chevron_button("chevron_button") +  chevron_button("chevron_button"), +  label("label")  {  } @@ -401,6 +402,10 @@ LLFavoritesBarCtrl::LLFavoritesBarCtrl(const LLFavoritesBarCtrl::Params& p)  	chevron_button_params.click_callback.function(boost::bind(&LLFavoritesBarCtrl::showDropDownMenu, this));       	mChevronButton = LLUICtrlFactory::create<LLButton> (chevron_button_params);  	addChild(mChevronButton);  + +	LLTextBox::Params label_param(p.label); +	mBarLabel = LLUICtrlFactory::create<LLTextBox> (label_param); +	addChild(mBarLabel);  }  LLFavoritesBarCtrl::~LLFavoritesBarCtrl() diff --git a/indra/newview/llfavoritesbar.h b/indra/newview/llfavoritesbar.h index 40dd551eef..2c6d8d1580 100644 --- a/indra/newview/llfavoritesbar.h +++ b/indra/newview/llfavoritesbar.h @@ -35,6 +35,7 @@  #include "llbutton.h"  #include "lluictrl.h" +#include "lltextbox.h"  #include "llinventoryobserver.h"  #include "llinventorymodel.h" @@ -46,6 +47,7 @@ public:  	{  		Optional<LLUIImage*> image_drag_indication;  		Optional<LLButton::Params> chevron_button; +		Optional<LLTextBox::Params> label;  		Params();  	}; @@ -139,6 +141,7 @@ private:  	LLUICtrl* mLandingTab;  	LLUICtrl* mLastTab;  	LLButton* mChevronButton; +	LLTextBox* mBarLabel;  	LLUUID mDragItemId;  	BOOL mStartDrag; diff --git a/indra/newview/llslurl.cpp b/indra/newview/llslurl.cpp index 37e268ad34..3343ee88bd 100644 --- a/indra/newview/llslurl.cpp +++ b/indra/newview/llslurl.cpp @@ -39,7 +39,8 @@  const std::string LLSLURL::PREFIX_SL_HELP		= "secondlife://app.";  const std::string LLSLURL::PREFIX_SL			= "sl://";  const std::string LLSLURL::PREFIX_SECONDLIFE	= "secondlife://"; -const std::string LLSLURL::PREFIX_SLURL			= "http://slurl.com/secondlife/"; +const std::string LLSLURL::PREFIX_SLURL_OLD		= "http://slurl.com/secondlife/"; +const std::string LLSLURL::PREFIX_SLURL			= "http://maps.secondlife.com/secondlife/";  const std::string LLSLURL::APP_TOKEN = "app/"; @@ -63,6 +64,11 @@ std::string LLSLURL::stripProtocol(const std::string& url)  	{  		stripped.erase(0, PREFIX_SLURL.length());  	} +	else if (matchPrefix(stripped, PREFIX_SLURL_OLD)) +	{ +		stripped.erase(0, PREFIX_SLURL_OLD.length()); +	} +  	return stripped;  } @@ -74,6 +80,7 @@ bool LLSLURL::isSLURL(const std::string& url)  	if (matchPrefix(url, PREFIX_SL))			return true;  	if (matchPrefix(url, PREFIX_SECONDLIFE))	return true;  	if (matchPrefix(url, PREFIX_SLURL))			return true; +	if (matchPrefix(url, PREFIX_SLURL_OLD))		return true;  	return false;  } @@ -83,7 +90,8 @@ bool LLSLURL::isSLURLCommand(const std::string& url)  {   	if (matchPrefix(url, PREFIX_SL + APP_TOKEN) ||  		matchPrefix(url, PREFIX_SECONDLIFE + "/" + APP_TOKEN) || -		matchPrefix(url, PREFIX_SLURL + APP_TOKEN) ) +		matchPrefix(url, PREFIX_SLURL + APP_TOKEN) || +		matchPrefix(url, PREFIX_SLURL_OLD + APP_TOKEN) )  	{  		return true;  	} diff --git a/indra/newview/llslurl.h b/indra/newview/llslurl.h index 05b0143e72..21b32ce409 100644 --- a/indra/newview/llslurl.h +++ b/indra/newview/llslurl.h @@ -50,6 +50,7 @@ public:  	static const std::string PREFIX_SL;  	static const std::string PREFIX_SECONDLIFE;  	static const std::string PREFIX_SLURL; +	static const std::string PREFIX_SLURL_OLD;  	static const std::string APP_TOKEN; diff --git a/indra/newview/lltoastimpanel.cpp b/indra/newview/lltoastimpanel.cpp index a436dc0546..7ae2404203 100644 --- a/indra/newview/lltoastimpanel.cpp +++ b/indra/newview/lltoastimpanel.cpp @@ -37,6 +37,7 @@  #include "llfloaterreg.h"  #include "llgroupactions.h"  #include "llgroupiconctrl.h" +#include "llimview.h"  #include "llnotifications.h"  #include "llinstantmessage.h"  #include "lltooltip.h" @@ -52,9 +53,9 @@ LLToastIMPanel::LLToastIMPanel(LLToastIMPanel::Params &p) :	LLToastPanel(p.notif  {  	LLUICtrlFactory::getInstance()->buildPanel(this, "panel_instant_message.xml"); -	LLIconCtrl* sys_msg_icon = getChild<LLIconCtrl>("sys_msg_icon");  	mGroupIcon = getChild<LLGroupIconCtrl>("group_icon");  	mAvatarIcon = getChild<LLAvatarIconCtrl>("avatar_icon"); +	mAdhocIcon = getChild<LLAvatarIconCtrl>("adhoc_icon");  	mAvatarName = getChild<LLTextBox>("user_name");  	mTime = getChild<LLTextBox>("time_box");  	mMessage = getChild<LLTextBox>("message"); @@ -90,27 +91,7 @@ LLToastIMPanel::LLToastIMPanel(LLToastIMPanel::Params &p) :	LLToastPanel(p.notif  	mAvatarID = p.avatar_id;  	mNotification = p.notification; -	mAvatarIcon->setVisible(FALSE); -	mGroupIcon->setVisible(FALSE); -	sys_msg_icon->setVisible(FALSE); - -	if(p.from == SYSTEM_FROM) -	{ -		sys_msg_icon->setVisible(TRUE); -	} -	else -	{ -		if(LLGroupActions::isInGroup(mSessionID)) -		{ -			mGroupIcon->setVisible(TRUE); -			mGroupIcon->setValue(p.session_id); -		} -		else -		{ -			mAvatarIcon->setVisible(TRUE); -			mAvatarIcon->setValue(p.avatar_id); -		} -	} +	initIcon();  	S32 maxLinesCount;  	std::istringstream ss( getString("message_max_lines_count") ); @@ -162,13 +143,27 @@ BOOL LLToastIMPanel::handleToolTip(S32 x, S32 y, MASK mask)  void LLToastIMPanel::showInspector()  { -	if(LLGroupActions::isInGroup(mSessionID)) +	LLIMModel::LLIMSession* im_session = LLIMModel::getInstance()->findIMSession(mSessionID); +	if(!im_session)  	{ -		LLFloaterReg::showInstance("inspect_group", LLSD().with("group_id", mSessionID)); +		llwarns << "Invalid IM session" << llendl; +		return;  	} -	else + +	switch(im_session->mSessionType)  	{ +	case LLIMModel::LLIMSession::P2P_SESSION:  		LLFloaterReg::showInstance("inspect_avatar", LLSD().with("avatar_id", mAvatarID)); +		break; +	case LLIMModel::LLIMSession::GROUP_SESSION: +		LLFloaterReg::showInstance("inspect_group", LLSD().with("group_id", mSessionID)); +		break; +	case LLIMModel::LLIMSession::ADHOC_SESSION: +		LLFloaterReg::showInstance("inspect_avatar", LLSD().with("avatar_id", im_session->mOtherParticipantID)); +		break; +	default: +		llwarns << "Unknown IM session type" << llendl; +		break;  	}  } @@ -217,4 +212,48 @@ void LLToastIMPanel::spawnGroupIconToolTip()  	LLToolTipMgr::getInstance()->show(params);  } +void LLToastIMPanel::initIcon() +{ +	LLIconCtrl* sys_msg_icon = getChild<LLIconCtrl>("sys_msg_icon"); + +	mAvatarIcon->setVisible(FALSE); +	mGroupIcon->setVisible(FALSE); +	sys_msg_icon->setVisible(FALSE); +	mAdhocIcon->setVisible(FALSE); + +	if(mAvatarName->getValue().asString() == SYSTEM_FROM) +	{ +		sys_msg_icon->setVisible(TRUE); +	} +	else +	{ +		LLIMModel::LLIMSession* im_session = LLIMModel::getInstance()->findIMSession(mSessionID); +		if(!im_session) +		{ +			llwarns << "Invalid IM session" << llendl; +			return; +		} + +		switch(im_session->mSessionType) +		{ +		case LLIMModel::LLIMSession::P2P_SESSION: +			mAvatarIcon->setVisible(TRUE); +			mAvatarIcon->setValue(mAvatarID); +			break; +		case LLIMModel::LLIMSession::GROUP_SESSION: +			mGroupIcon->setVisible(TRUE); +			mGroupIcon->setValue(mSessionID); +			break; +		case LLIMModel::LLIMSession::ADHOC_SESSION: +			mAdhocIcon->setVisible(TRUE); +			mAdhocIcon->setValue(im_session->mOtherParticipantID); +			mAdhocIcon->setToolTip(im_session->mName); +			break; +		default: +			llwarns << "Unknown IM session type" << llendl; +			break; +		} +	} +} +  // EOF diff --git a/indra/newview/lltoastimpanel.h b/indra/newview/lltoastimpanel.h index 444c0af144..cf4ad80637 100644 --- a/indra/newview/lltoastimpanel.h +++ b/indra/newview/lltoastimpanel.h @@ -66,6 +66,8 @@ private:  	void spawnNameToolTip();  	void spawnGroupIconToolTip(); +	void initIcon(); +  	static const S32 DEFAULT_MESSAGE_MAX_LINE_COUNT;  	LLNotificationPtr	mNotification; @@ -73,6 +75,7 @@ private:  	LLUUID				mAvatarID;  	LLAvatarIconCtrl*	mAvatarIcon;  	LLGroupIconCtrl*	mGroupIcon; +	LLAvatarIconCtrl*	mAdhocIcon;  	LLTextBox*			mAvatarName;  	LLTextBox*			mTime;  	LLTextBox*			mMessage; diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index e525561b7d..143d95d27e 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -1478,6 +1478,11 @@ void inventory_offer_handler(LLOfferInfo* info)  	// Strip any SLURL from the message display. (DEV-2754)  	std::string msg = info->mDesc;  	int indx = msg.find(" ( http://slurl.com/secondlife/"); +	if(indx == std::string::npos) +	{ +		// try to find new slurl host +		indx = msg.find(" ( http://maps.secondlife.com/secondlife/"); +	}  	if(indx >= 0)  	{  		LLStringUtil::truncate(msg, indx); diff --git a/indra/newview/llviewerparcelmgr.cpp b/indra/newview/llviewerparcelmgr.cpp index 7ec650629d..a075a706e1 100644 --- a/indra/newview/llviewerparcelmgr.cpp +++ b/indra/newview/llviewerparcelmgr.cpp @@ -1597,14 +1597,6 @@ void LLViewerParcelMgr::processParcelProperties(LLMessageSystem *msg, void **use  				instance->mTeleportInProgress = FALSE;  				instance->mTeleportFinishedSignal(gAgent.getPositionGlobal());  			} - -			// HACK: This makes agents drop from the sky if they enter a parcel -			// which is set to no fly. -			BOOL was_flying = gAgent.getFlying(); -			if (was_flying && !parcel->getAllowFly()) -			{ -				gAgent.setFlying(gAgent.canFly()); -			}  		}  	} diff --git a/indra/newview/skins/default/xui/en/floater_buy_currency.xml b/indra/newview/skins/default/xui/en/floater_buy_currency.xml index 703a02d995..961bd6b5e4 100644 --- a/indra/newview/skins/default/xui/en/floater_buy_currency.xml +++ b/indra/newview/skins/default/xui/en/floater_buy_currency.xml @@ -178,8 +178,8 @@       follows="top|left"       height="16"       halign="right" -     left="150" -     width="170" +     left="140" +     width="180"       layout="topleft"       name="buy_action">          [NAME] L$ [PRICE] diff --git a/indra/newview/skins/default/xui/en/panel_instant_message.xml b/indra/newview/skins/default/xui/en/panel_instant_message.xml index 5a1bc32db0..a0ad38cf76 100644 --- a/indra/newview/skins/default/xui/en/panel_instant_message.xml +++ b/indra/newview/skins/default/xui/en/panel_instant_message.xml @@ -45,6 +45,17 @@           name="group_icon"           top="3"           width="18" /> +        <avatar_icon +         color="Green" +         follows="right" +         height="18" +         image_name="Generic_Person" +         layout="topleft" +         left="3" +         mouse_opaque="false" +         name="adhoc_icon" +         top="3" +         width="18" />          <!--<icon           follows="right"           height="20" diff --git a/indra/newview/skins/default/xui/en/panel_navigation_bar.xml b/indra/newview/skins/default/xui/en/panel_navigation_bar.xml index 02eddc9212..b2ed51abf3 100644 --- a/indra/newview/skins/default/xui/en/panel_navigation_bar.xml +++ b/indra/newview/skins/default/xui/en/panel_navigation_bar.xml @@ -141,12 +141,25 @@       font="SansSerifSmall"       height="15"       layout="topleft" -     left="102" +     left="0"       name="favorite"       image_drag_indication="Accordion_ArrowOpened_Off"       bottom="55"       tool_tip="Drag Landmarks here for quick access to your favorite places in Second Life!"                 width="590"> +        <label +         follows="left|top" +         font.style="BOLD" +         height="15" +         layout="topleft" +         left="10" +         name="favorites_bar_label" +         text_color="LtGray" +         tool_tip="Drag Landmarks here for quick access to your favorite places in Second Life!" +         top="12" +         width="102"> +          Favorites Bar +        </label>      <chevron_button name=">>"                       image_unselected="TabIcon_Close_Off"                       image_selected="TabIcon_Close_Off" @@ -157,15 +170,4 @@  		     top="15"                       height="15"/>    </favorites_bar> -     <text -               follows="left|top" -         font.style="BOLD" -               height="15" -               layout="topleft" -               left="10" -               top_pad="-12" -               name="favorites_bar_label" -               text_color="LtGray" -               tool_tip="Drag Landmarks here for quick access to your favorite places in Second Life!" -               width="102">Favorites Bar</text>  </panel>  | 
