diff options
Diffstat (limited to 'indra')
46 files changed, 236 insertions, 83 deletions
| diff --git a/indra/llmath/llinterp.h b/indra/llmath/llinterp.h index 36ca2e9865..88af004170 100644 --- a/indra/llmath/llinterp.h +++ b/indra/llmath/llinterp.h @@ -54,7 +54,7 @@ template <typename Type>  class LLInterp  {  public: -	LLInterp(); +        LLInterp();  	virtual ~LLInterp() {}  	virtual void start(); @@ -151,6 +151,7 @@ protected:  template <typename Type>  LLInterp<Type>::LLInterp() +: mStartVal(Type()), mEndVal(Type()), mCurVal(Type())  {  	mStartTime = 0.f;  	mEndTime = 1.f; diff --git a/indra/llprimitive/llprimitive.cpp b/indra/llprimitive/llprimitive.cpp index 5ad758072c..b75d1b0f67 100644 --- a/indra/llprimitive/llprimitive.cpp +++ b/indra/llprimitive/llprimitive.cpp @@ -154,6 +154,7 @@ bool LLPrimitive::cleanupVolumeManager()  //===============================================================  LLPrimitive::LLPrimitive()  :	mTextureList(), +	mNumTEs(0),  	mMiscFlags(0)  {  	mPrimitiveCode = 0; diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp index 79d8f90fec..de46d89d6f 100644 --- a/indra/llui/llfloater.cpp +++ b/indra/llui/llfloater.cpp @@ -1916,9 +1916,10 @@ static LLDefaultChildRegistry::Register<LLFloaterView> r("floater_view");  LLFloaterView::LLFloaterView (const Params& p)  :	LLUICtrl (p), +  	mFocusCycleMode(FALSE), -	mSnapOffsetBottom(0) -	,mSnapOffsetRight(0) +	mSnapOffsetBottom(0), +	mSnapOffsetRight(0)  {  } diff --git a/indra/llui/llfloater.h b/indra/llui/llfloater.h index f70495c0f0..8c9dacbd20 100644 --- a/indra/llui/llfloater.h +++ b/indra/llui/llfloater.h @@ -468,9 +468,6 @@ public:  	void setSnapOffsetRight(S32 offset) { mSnapOffsetRight = offset; }  private: -	S32				mColumn; -	S32				mNextLeft; -	S32				mNextTop;  	BOOL			mFocusCycleMode;  	S32				mSnapOffsetBottom;  	S32				mSnapOffsetRight; diff --git a/indra/llui/llmenugl.cpp b/indra/llui/llmenugl.cpp index ceb1e9820e..7fa9a88059 100644 --- a/indra/llui/llmenugl.cpp +++ b/indra/llui/llmenugl.cpp @@ -1651,6 +1651,7 @@ LLMenuGL::LLMenuGL(const LLMenuGL::Params& p)  	mBackgroundColor( p.bg_color() ),  	mBgVisible( p.bg_visible ),  	mDropShadowed( p.drop_shadow ), +	mHasSelection(false),  	mHorizontalLayout( p.horizontal_layout ),  	mScrollable(mHorizontalLayout ? FALSE : p.scrollable), // Scrolling is supported only for vertical layout  	mMaxScrollableItems(p.max_scrollable_items), @@ -2813,7 +2814,7 @@ BOOL LLMenuGL::handleHover( S32 x, S32 y, MASK mask )  					((LLMenuItemGL*)viewp)->setHighlight(TRUE);  					LLMenuGL::setKeyboardMode(FALSE);  				} -				mHasSelection = TRUE; +				mHasSelection = true;  			}  		}  	} @@ -2892,7 +2893,7 @@ void LLMenuGL::setVisible(BOOL visible)  		}  		else  		{ -			mHasSelection = FALSE; +			mHasSelection = true;  			mFadeTimer.stop();  		} diff --git a/indra/llui/llmenugl.h b/indra/llui/llmenugl.h index 61e06f9e5f..8441aaadd4 100644 --- a/indra/llui/llmenugl.h +++ b/indra/llui/llmenugl.h @@ -546,7 +546,7 @@ private:  	LLHandle<LLView> mParentMenuItem;  	LLUIString		mLabel;  	BOOL mDropShadowed; 	//  Whether to drop shadow  -	BOOL			mHasSelection; +	bool			mHasSelection;  	LLFrameTimer	mFadeTimer;  	LLTimer			mScrollItemsTimer;  	BOOL			mTornOff; diff --git a/indra/llui/llstyle.cpp b/indra/llui/llstyle.cpp index 71511f69a4..b8f93b6a0e 100644 --- a/indra/llui/llstyle.cpp +++ b/indra/llui/llstyle.cpp @@ -49,7 +49,10 @@ LLStyle::Params::Params()  LLStyle::LLStyle(const LLStyle::Params& p) -:	mVisible(p.visible), +:	mItalic(FALSE), +	mBold(FALSE), +	mUnderline(FALSE), +	mVisible(p.visible),  	mColor(p.color()),  	mReadOnlyColor(p.readonly_color()),  	mFont(p.font()), diff --git a/indra/llui/lltooltip.cpp b/indra/llui/lltooltip.cpp index 01c7a81309..173fde8e76 100644 --- a/indra/llui/lltooltip.cpp +++ b/indra/llui/lltooltip.cpp @@ -400,7 +400,8 @@ bool LLToolTip::hasClickCallback()  //  LLToolTipMgr::LLToolTipMgr() -:	mToolTip(NULL), +:       mToolTipsBlocked(false), +	mToolTip(NULL),  	mNeedsToolTip(false)  {} diff --git a/indra/llui/lluistring.h b/indra/llui/lluistring.h index 7ec0fd603a..32cfc0d9cd 100644 --- a/indra/llui/lluistring.h +++ b/indra/llui/lluistring.h @@ -64,7 +64,7 @@ class LLUIString  public:  	// These methods all perform appropriate argument substitution  	// and modify mOrig where appropriate -	LLUIString() {} +        LLUIString() : mNeedsResult(false), mNeedsWResult(false) {}  	LLUIString(const std::string& instring, const LLStringUtil::format_map_t& args);  	LLUIString(const std::string& instring) { assign(instring); } diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 1ef79aeec0..f3bda19ed1 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -2377,6 +2377,17 @@        <key>Value</key>        <integer>0</integer>      </map> +    <key>DisableMouseWarp</key> +    <map> +      <key>Comment</key> +      <string>Disable warping of the mouse to the center of the screen during alt-zoom and mouse look. Useful with certain input devices, mouse sharing programs like Synergy, or running under Parallels.</string> +      <key>Persist</key> +      <integer>1</integer> +      <key>Type</key> +      <string>Boolean</string> +      <key>Value</key> +      <integer>0</integer> +    </map>      <key>DisableRendering</key>      <map>        <key>Comment</key> diff --git a/indra/newview/llchathistory.cpp b/indra/newview/llchathistory.cpp index 2cdbd18996..f1e7e622b3 100644 --- a/indra/newview/llchathistory.cpp +++ b/indra/newview/llchathistory.cpp @@ -36,6 +36,7 @@  #include "llimview.h"  #include "llchathistory.h" +#include "llcommandhandler.h"  #include "llpanel.h"  #include "lluictrlfactory.h"  #include "llscrollcontainer.h" @@ -47,8 +48,11 @@  #include "llfloaterreg.h"  #include "llmutelist.h"  #include "llstylemap.h" +#include "llslurl.h"  #include "lllayoutstack.h"  #include "llagent.h" +#include "llviewerregion.h" +#include "llworld.h"  #include "llsidetray.h"//for blocked objects panel @@ -56,6 +60,38 @@ static LLDefaultChildRegistry::Register<LLChatHistory> r("chat_history");  const static std::string NEW_LINE(rawstr_to_utf8("\n")); +// support for secondlife:///app/objectim/{UUID}/ SLapps +class LLObjectIMHandler : public LLCommandHandler +{ +public: +	// requests will be throttled from a non-trusted browser +	LLObjectIMHandler() : LLCommandHandler("objectim", UNTRUSTED_THROTTLE) {} + +	bool handle(const LLSD& params, const LLSD& query_map, LLMediaCtrl* web) +	{ +		if (params.size() < 1) +		{ +			return false; +		} + +		LLUUID object_id; +		if (!object_id.set(params[0], FALSE)) +		{ +			return false; +		} + +		LLSD payload; +		payload["object_id"] = object_id; +		payload["owner_id"] = query_map["owner"]; +		payload["name"] = query_map["name"]; +		payload["slurl"] = query_map["slurl"]; +		payload["group_owned"] = query_map["groupowned"]; +		LLFloaterReg::showInstance("inspect_remote_object", payload); +		return true; +	} +}; +LLObjectIMHandler gObjectIMHandler; +  class LLChatHistoryHeader: public LLPanel  {  public: @@ -465,8 +501,9 @@ void LLChatHistory::clear()  	mLastFromID = LLUUID::null;  } -void LLChatHistory::appendMessage(const LLChat& chat, const bool use_plain_text_chat_history, const LLStyle::Params& input_append_params) +void LLChatHistory::appendMessage(const LLChat& chat, const LLSD &args, const LLStyle::Params& input_append_params)  { +	bool use_plain_text_chat_history = args["use_plain_text_chat_history"].asBoolean();  	if (!mEditor->scrolledToEnd() && chat.mFromID != gAgent.getID() && !chat.mFromName.empty())  	{  		mUnreadChatSources.insert(chat.mFromName); @@ -532,7 +569,28 @@ void LLChatHistory::appendMessage(const LLChat& chat, const bool use_plain_text_  		if (utf8str_trim(chat.mFromName).size() != 0)  		{  			// Don't hotlink any messages from the system (e.g. "Second Life:"), so just add those in plain text. -			if ( chat.mFromName != SYSTEM_FROM && chat.mFromID.notNull() ) +			if ( chat.mSourceType == CHAT_SOURCE_OBJECT ) +			{ +				// for object IMs, create a secondlife:///app/objectim SLapp +				std::string url = LLSLURL::buildCommand("objectim", chat.mFromID, ""); +				url += "?name=" + chat.mFromName; +				url += "&owner=" + args["owner_id"].asString(); + +				LLViewerRegion *region = LLWorld::getInstance()->getRegionFromPosAgent(chat.mPosAgent); +				if (region) +				{ +					S32 x, y, z; +					LLSLURL::globalPosToXYZ(LLVector3d(chat.mPosAgent), x, y, z); +					url += "&slurl=" + region->getName() + llformat("/%d/%d/%d", x, y, z); +				} + +				// set the link for the object name to be the objectim SLapp +				LLStyle::Params link_params(style_params); +				link_params.color.control = "HTMLLinkColor"; +				link_params.link_href = url; +				mEditor->appendText(chat.mFromName + delimiter, false, link_params); +			} +			else if ( chat.mFromName != SYSTEM_FROM && chat.mFromID.notNull() )  			{  				LLStyle::Params link_params(style_params);  				link_params.fillFrom(LLStyleMap::instance().lookupAgent(chat.mFromID)); diff --git a/indra/newview/llchathistory.h b/indra/newview/llchathistory.h index c2c60e60cf..32600bb71d 100644 --- a/indra/newview/llchathistory.h +++ b/indra/newview/llchathistory.h @@ -113,11 +113,14 @@ class LLChatHistory : public LLUICtrl  		 * Appends a widget message.  		 * If last user appended message, concurs with current user,  		 * separator is added before the message, otherwise header is added. +		 * The args LLSD contains: +		 * - use_plain_text_chat_history (bool) - whether to add message as plain text. +		 * - owner_id (LLUUID) - the owner ID for object chat  		 * @param chat - base chat message. -		 * @param use_plain_text_chat_history  - whether to add message as plain text. +		 * @param args - additional arguments  		 * @param input_append_params - font style.  		 */ -		void appendMessage(const LLChat& chat, const bool use_plain_text_chat_history = false, const LLStyle::Params& input_append_params = LLStyle::Params()); +		void appendMessage(const LLChat& chat, const LLSD &args = LLSD(), const LLStyle::Params& input_append_params = LLStyle::Params());  		/*virtual*/ void clear();  		/*virtual*/ void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE); diff --git a/indra/newview/llcompilequeue.cpp b/indra/newview/llcompilequeue.cpp index 5c05a54120..a96981a108 100644 --- a/indra/newview/llcompilequeue.cpp +++ b/indra/newview/llcompilequeue.cpp @@ -92,7 +92,8 @@ struct LLScriptQueueData  // Default constructor  LLFloaterScriptQueue::LLFloaterScriptQueue(const LLSD& key) :  	LLFloater(key), -	mDone(FALSE) +	mDone(false), +	mMono(false)  {  	//Called from floater reg: LLUICtrlFactory::getInstance()->buildFloater(this,"floater_script_queue.xml", FALSE);  } @@ -216,7 +217,7 @@ BOOL LLFloaterScriptQueue::nextObject()  	} while((mObjectIDs.count() > 0) && !successful_start);  	if(isDone() && !mDone)  	{ -		mDone = TRUE; +		mDone = true;  		getChild<LLScrollListCtrl>("queue output")->setCommentText(getString("Done"));  		childSetEnabled("close",TRUE);  	} diff --git a/indra/newview/llcompilequeue.h b/indra/newview/llcompilequeue.h index 063d573239..2d061f5d8a 100644 --- a/indra/newview/llcompilequeue.h +++ b/indra/newview/llcompilequeue.h @@ -104,10 +104,10 @@ protected:  	// Object Queue  	LLDynamicArray<LLUUID> mObjectIDs;  	LLUUID mCurrentObjectID; -	BOOL mDone; +	bool mDone;  	std::string mStartString; -	BOOL mMono; +	bool mMono;  };  //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/indra/newview/lleventnotifier.cpp b/indra/newview/lleventnotifier.cpp index edfb9dc864..f096ba604f 100644 --- a/indra/newview/lleventnotifier.cpp +++ b/indra/newview/lleventnotifier.cpp @@ -174,6 +174,7 @@ void LLEventNotifier::remove(const U32 event_id)  LLEventNotification::LLEventNotification() :  	mEventID(0), +	mEventDate(0),  	mEventName("")  {  } diff --git a/indra/newview/llfloateranimpreview.h b/indra/newview/llfloateranimpreview.h index dd2c0b809a..3ee1f419ab 100644 --- a/indra/newview/llfloateranimpreview.h +++ b/indra/newview/llfloateranimpreview.h @@ -127,7 +127,6 @@ protected:  	LLRectf				mPreviewImageRect;  	LLAssetID			mMotionID;  	LLTransactionID		mTransactionID; -	BOOL				mEnabled;  	LLAnimPauseRequest	mPauseRequest;  	std::map<std::string, LLUUID>	mIDList; diff --git a/indra/newview/llfloaterhardwaresettings.cpp b/indra/newview/llfloaterhardwaresettings.cpp index 31b494b590..b2564eb2b6 100644 --- a/indra/newview/llfloaterhardwaresettings.cpp +++ b/indra/newview/llfloaterhardwaresettings.cpp @@ -50,7 +50,17 @@  #include "llsliderctrl.h"  LLFloaterHardwareSettings::LLFloaterHardwareSettings(const LLSD& key) -  : LLFloater(key) +	: LLFloater(key), + +	  // these should be set on imminent refresh() call, +	  // but init them anyway +	  mUseVBO(0), +	  mUseAniso(0), +	  mFSAASamples(0), +	  mGamma(0.0), +	  mVideoCardMem(0), +	  mFogRatio(0.0), +	  mProbeHardwareOnStartup(FALSE)  {  	//LLUICtrlFactory::getInstance()->buildFloater(this, "floater_hardware_settings.xml");  } diff --git a/indra/newview/llfloaterjoystick.cpp b/indra/newview/llfloaterjoystick.cpp index 06fe2a84c8..78bc63ac8c 100644 --- a/indra/newview/llfloaterjoystick.cpp +++ b/indra/newview/llfloaterjoystick.cpp @@ -52,6 +52,7 @@ LLFloaterJoystick::LLFloaterJoystick(const LLSD& data)  {  	//Called from floater reg: LLUICtrlFactory::getInstance()->buildFloater(this, "floater_joystick.xml"); +	initFromSettings();  }  void LLFloaterJoystick::draw() @@ -123,10 +124,8 @@ void LLFloaterJoystick::apply()  {  } -void LLFloaterJoystick::refresh() +void LLFloaterJoystick::initFromSettings()  { -	LLFloater::refresh(); -  	mJoystickEnabled = gSavedSettings.getBOOL("JoystickEnabled");  	mJoystickAxis[0] = gSavedSettings.getS32("JoystickAxis0"); @@ -194,6 +193,12 @@ void LLFloaterJoystick::refresh()  	mFlycamFeathering = gSavedSettings.getF32("FlycamFeathering");  } +void LLFloaterJoystick::refresh() +{ +	LLFloater::refresh(); +	initFromSettings(); +} +  void LLFloaterJoystick::cancel()  {  	gSavedSettings.setBOOL("JoystickEnabled", mJoystickEnabled); diff --git a/indra/newview/llfloaterjoystick.h b/indra/newview/llfloaterjoystick.h index f3559c28e9..7a2f497c69 100644 --- a/indra/newview/llfloaterjoystick.h +++ b/indra/newview/llfloaterjoystick.h @@ -55,6 +55,8 @@ private:  	LLFloaterJoystick(const LLSD& data);  	virtual ~LLFloaterJoystick(); + +	void initFromSettings();  	static void onCommitJoystickEnabled(LLUICtrl*, void*);  	static void onClickRestoreSNDefaults(void*); diff --git a/indra/newview/llfloatersnapshot.cpp b/indra/newview/llfloatersnapshot.cpp index afb58c9407..94c7ff6f94 100644 --- a/indra/newview/llfloatersnapshot.cpp +++ b/indra/newview/llfloatersnapshot.cpp @@ -1028,7 +1028,8 @@ class LLFloaterSnapshot::Impl  public:  	Impl()  	:	mAvatarPauseHandles(), -		mLastToolset(NULL) +		mLastToolset(NULL), +		mAspectRatioCheckOff(false)  	{  	}  	~Impl() @@ -1079,7 +1080,7 @@ public:  	LLToolset*	mLastToolset;  	LLHandle<LLView> mPreviewHandle; -	BOOL mAspectRatioCheckOff ; +	bool mAspectRatioCheckOff ;  };  // static @@ -1606,7 +1607,7 @@ void LLFloaterSnapshot::Impl::checkAspectRatio(LLFloaterSnapshot *view, S32 inde  	if(0 == index) //current window size  	{ -		view->impl.mAspectRatioCheckOff = TRUE ; +		view->impl.mAspectRatioCheckOff = true ;  		view->childSetEnabled("keep_aspect_check", FALSE) ;  		if(previewp) @@ -1616,7 +1617,7 @@ void LLFloaterSnapshot::Impl::checkAspectRatio(LLFloaterSnapshot *view, S32 inde  	}  	else if(-1 == index) //custom  	{ -		view->impl.mAspectRatioCheckOff = FALSE ; +		view->impl.mAspectRatioCheckOff = false ;  		//if(LLSnapshotLivePreview::SNAPSHOT_TEXTURE != gSavedSettings.getS32("LastSnapshotType"))  		{  			view->childSetEnabled("keep_aspect_check", TRUE) ; @@ -1629,7 +1630,7 @@ void LLFloaterSnapshot::Impl::checkAspectRatio(LLFloaterSnapshot *view, S32 inde  	}  	else  	{ -		view->impl.mAspectRatioCheckOff = TRUE ; +		view->impl.mAspectRatioCheckOff = true ;  		view->childSetEnabled("keep_aspect_check", FALSE) ;  		if(previewp) diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp index 675f73d43e..80d2778934 100644 --- a/indra/newview/llimview.cpp +++ b/indra/newview/llimview.cpp @@ -1461,9 +1461,11 @@ void LLCallDialogManager::onVoiceChannelStateChanged(const LLVoiceChannel::EStat  //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // Class LLCallDialog  //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -LLCallDialog::LLCallDialog(const LLSD& payload) : -LLDockableFloater(NULL, false, payload), -mPayload(payload) +LLCallDialog::LLCallDialog(const LLSD& payload) +	: LLDockableFloater(NULL, false, payload), + +	  mPayload(payload), +	  mLifetime(DEFAULT_LIFETIME)  {  } diff --git a/indra/newview/llinspectremoteobject.cpp b/indra/newview/llinspectremoteobject.cpp index e4d2eec242..898f1cd9ac 100644 --- a/indra/newview/llinspectremoteobject.cpp +++ b/indra/newview/llinspectremoteobject.cpp @@ -31,17 +31,16 @@  #include "llviewerprecompiledheaders.h" +#include "llfloaterreg.h"  #include "llinspectremoteobject.h"  #include "llinspect.h" -#include "llslurl.h"  #include "llmutelist.h" -#include "llurlaction.h"  #include "llpanelblockedlist.h" -#include "llfloaterreg.h" +#include "llslurl.h" +#include "lltrans.h"  #include "llui.h"  #include "lluictrl.h" - -class LLViewerObject; +#include "llurlaction.h"  //////////////////////////////////////////////////////////////////////////////  // LLInspectRemoteObject @@ -183,11 +182,25 @@ void LLInspectRemoteObject::update()  			owner = LLSLURL::buildCommand("agent", mOwnerID, "about");  		}  	} +	else +	{ +		owner = LLTrans::getString("Unknown"); +	}  	getChild<LLUICtrl>("object_owner")->setValue(owner);  	// display the object's SLurl - click it to teleport -	std::string url = "secondlife:///app/teleport/" + mSLurl; +	std::string url; +	if (! mSLurl.empty()) +	{ +		std::string url = "secondlife:///app/teleport/" + mSLurl; +	}  	getChild<LLUICtrl>("object_slurl")->setValue(url); + +	// disable the Map button if we don't have a SLurl +	getChild<LLUICtrl>("map_btn")->setEnabled(! mSLurl.empty()); + +	// disable the Block button if we don't have the owner ID +	getChild<LLUICtrl>("block_btn")->setEnabled(! mOwnerID.isNull());  }  ////////////////////////////////////////////////////////////////////////////// diff --git a/indra/newview/llinventorymodel.cpp b/indra/newview/llinventorymodel.cpp index 9e96bbc55f..bdf1ebddac 100644 --- a/indra/newview/llinventorymodel.cpp +++ b/indra/newview/llinventorymodel.cpp @@ -225,7 +225,7 @@ namespace LMSortPrefix  			// mark item completed to avoid error while copying and updating server  			inv_item->setComplete(TRUE); -			LLPointer<LLViewerInventoryItem> new_item = new LLViewerInventoryItem(inv_item); +			LLPointer<LLViewerInventoryItem> new_item = new LLViewerInventoryItem(inv_item.get());  			new_item->rename(display_name);  			gInventory.updateItem(new_item);  			new_item->updateServer(FALSE); diff --git a/indra/newview/lllocationhistory.cpp b/indra/newview/lllocationhistory.cpp index 47139758e5..df93930d33 100644 --- a/indra/newview/lllocationhistory.cpp +++ b/indra/newview/lllocationhistory.cpp @@ -62,7 +62,7 @@ void LLLocationHistory::addItem(const LLLocationHistoryItem& item) {  	{  		mItems.erase(mItems.begin(), mItems.end()-max_items);  	} -	llassert((S32) mItems.size() <= max_items); +	llassert((S32)mItems.size() <= max_items);  }  /* diff --git a/indra/newview/llmanipscale.cpp b/indra/newview/llmanipscale.cpp index 84a5eb7352..ee3ffa2450 100644 --- a/indra/newview/llmanipscale.cpp +++ b/indra/newview/llmanipscale.cpp @@ -180,6 +180,7 @@ LLManipScale::LLManipScale( LLToolComposite* composite )  	mScaleSnapUnit2(1.f),  	mSnapRegimeOffset(0.f),  	mSnapGuideLength(0.f), +	mInSnapRegime(FALSE),  	mScaleSnapValue(0.f)  {   	mManipulatorScales = new F32[NUM_MANIPULATORS]; diff --git a/indra/newview/llmaniptranslate.cpp b/indra/newview/llmaniptranslate.cpp index 5f30ab4e01..52fe31fbba 100644 --- a/indra/newview/llmaniptranslate.cpp +++ b/indra/newview/llmaniptranslate.cpp @@ -123,9 +123,13 @@ LLManipTranslate::LLManipTranslate( LLToolComposite* composite )  	mAxisArrowLength(50),  	mConeSize(0),  	mArrowLengthMeters(0.f), +	mGridSizeMeters(1.f),  	mPlaneManipOffsetMeters(0.f),  	mUpdateTimer(),  	mSnapOffsetMeters(0.f), +	mSubdivisions(10.f), +	mInSnapRegime(FALSE), +	mSnapped(FALSE),  	mArrowScales(1.f, 1.f, 1.f),  	mPlaneScales(1.f, 1.f, 1.f),  	mPlaneManipPositions(1.f, 1.f, 1.f, 1.f) diff --git a/indra/newview/llnearbychat.cpp b/indra/newview/llnearbychat.cpp index 0a8d020b4f..90482eb74d 100644 --- a/indra/newview/llnearbychat.cpp +++ b/indra/newview/llnearbychat.cpp @@ -153,7 +153,7 @@ std::string appendTime()  } -void	LLNearbyChat::addMessage(const LLChat& chat,bool archive) +void	LLNearbyChat::addMessage(const LLChat& chat,bool archive,const LLSD &args)  {  	if (chat.mChatType == CHAT_TYPE_DEBUG_MSG)  	{ @@ -184,7 +184,9 @@ void	LLNearbyChat::addMessage(const LLChat& chat,bool archive)  	if (!chat.mMuted)  	{  		tmp_chat.mFromName = chat.mFromName; -		mChatHistory->appendMessage(chat, use_plain_text_chat_history); +		LLSD chat_args = args; +		chat_args["use_plain_text_chat_history"] = use_plain_text_chat_history; +		mChatHistory->appendMessage(chat, chat_args);  	}  	if(archive) diff --git a/indra/newview/llnearbychat.h b/indra/newview/llnearbychat.h index 938b77df7a..5fb8ade19e 100644 --- a/indra/newview/llnearbychat.h +++ b/indra/newview/llnearbychat.h @@ -47,7 +47,7 @@ public:  	~LLNearbyChat();  	BOOL	postBuild			(); -	void	addMessage			(const LLChat& message,bool archive = true);	 +	void	addMessage			(const LLChat& message,bool archive = true, const LLSD &args = LLSD());	  	void	onNearbyChatContextMenuItemClicked(const LLSD& userdata);  	bool	onNearbyChatCheckContextMenuItem(const LLSD& userdata); diff --git a/indra/newview/llnearbychathandler.cpp b/indra/newview/llnearbychathandler.cpp index a1a9d84c14..c08ca30bab 100644 --- a/indra/newview/llnearbychathandler.cpp +++ b/indra/newview/llnearbychathandler.cpp @@ -319,7 +319,7 @@ void LLNearbyChatHandler::initChannel() -void LLNearbyChatHandler::processChat(const LLChat& chat_msg) +void LLNearbyChatHandler::processChat(const LLChat& chat_msg, const LLSD &args)  {  	if(chat_msg.mMuted == TRUE)  		return; @@ -337,7 +337,7 @@ void LLNearbyChatHandler::processChat(const LLChat& chat_msg)  		//if(tmp_chat.mFromName.empty() && tmp_chat.mFromID!= LLUUID::null)  		//	tmp_chat.mFromName = tmp_chat.mFromID.asString();  	} -	nearby_chat->addMessage(chat_msg); +	nearby_chat->addMessage(chat_msg, true, args);  	if(nearby_chat->getVisible())  		return;//no need in toast if chat is visible diff --git a/indra/newview/llnearbychathandler.h b/indra/newview/llnearbychathandler.h index fb2abac6a4..01a6de5610 100644 --- a/indra/newview/llnearbychathandler.h +++ b/indra/newview/llnearbychathandler.h @@ -45,7 +45,7 @@ public:  	virtual ~LLNearbyChatHandler(); -	virtual void processChat(const LLChat& chat_msg); +	virtual void processChat(const LLChat& chat_msg, const LLSD &args);  protected:  	virtual void onDeleteToast(LLToast* toast); diff --git a/indra/newview/llnotificationhandler.h b/indra/newview/llnotificationhandler.h index 0fb438bfe9..e57674d31c 100644 --- a/indra/newview/llnotificationhandler.h +++ b/indra/newview/llnotificationhandler.h @@ -135,7 +135,7 @@ class LLChatHandler : public LLEventHandler  public:  	virtual ~LLChatHandler() {}; -	virtual void processChat(const LLChat& chat_msg)=0; +	virtual void processChat(const LLChat& chat_msg, const LLSD &args)=0;  };  /** diff --git a/indra/newview/llnotificationmanager.cpp b/indra/newview/llnotificationmanager.cpp index 66bc217d15..4401bb953f 100644 --- a/indra/newview/llnotificationmanager.cpp +++ b/indra/newview/llnotificationmanager.cpp @@ -107,16 +107,17 @@ bool LLNotificationManager::onNotification(const LLSD& notify)  }  //-------------------------------------------------------------------------- -void LLNotificationManager::onChat(const LLChat& msg,ENotificationType type) +void LLNotificationManager::onChat(const LLChat& msg, const LLSD &args)  { -	switch(type) +	// check ENotificationType argument +	switch(args["type"].asInteger())  	{  	case NT_NEARBYCHAT:  		{  			LLNearbyChatHandler* handle = dynamic_cast<LLNearbyChatHandler*>(mNotifyHandlers["nearbychat"].get());  			if(handle) -				handle->processChat(msg); +				handle->processChat(msg, args);  		}  		break;  	default: 	//no need to handle all enum types diff --git a/indra/newview/llnotificationmanager.h b/indra/newview/llnotificationmanager.h index 072fc6f24c..575aa69c4d 100644 --- a/indra/newview/llnotificationmanager.h +++ b/indra/newview/llnotificationmanager.h @@ -66,7 +66,7 @@ public:  	bool onNotification(const LLSD& notification);  	// this method reacts on chat notifications and calls an appropriate handler -	void onChat(const LLChat& msg,ENotificationType type); +	void onChat(const LLChat& msg, const LLSD &args);  	// get a handler for a certain type of notification  	LLEventHandler* getHandlerForNotification(std::string notification_type); diff --git a/indra/newview/llselectmgr.cpp b/indra/newview/llselectmgr.cpp index 6f76715e73..bf08756051 100644 --- a/indra/newview/llselectmgr.cpp +++ b/indra/newview/llselectmgr.cpp @@ -218,7 +218,8 @@ LLSelectMgr::LLSelectMgr()  	mHoverObjects = new LLObjectSelection();  	mHighlightedObjects = new LLObjectSelection(); - +	mForceSelection = FALSE; +	mShowSelection = FALSE;  } diff --git a/indra/newview/lltoastalertpanel.cpp b/indra/newview/lltoastalertpanel.cpp index c3ccb9380b..da31bb3e73 100644 --- a/indra/newview/lltoastalertpanel.cpp +++ b/indra/newview/lltoastalertpanel.cpp @@ -170,6 +170,7 @@ LLToastAlertPanel::LLToastAlertPanel( LLNotificationPtr notification, bool modal  	params.tab_stop(false);  	params.wrap(true);  	params.follows.flags(FOLLOWS_LEFT | FOLLOWS_TOP); +	params.allow_html(false);  	LLTextBox * msg_box = LLUICtrlFactory::create<LLTextBox> (params);  	// Compute max allowable height for the dialog text, so we can allocate diff --git a/indra/newview/lltoolgrab.cpp b/indra/newview/lltoolgrab.cpp index 26dbe6a489..d837a334f1 100644 --- a/indra/newview/lltoolgrab.cpp +++ b/indra/newview/lltoolgrab.cpp @@ -78,9 +78,15 @@ LLToolGrab::LLToolGrab( LLToolComposite* composite )  :	LLTool( std::string("Grab"), composite ),  	mMode( GRAB_INACTIVE ),  	mVerticalDragging( FALSE ), +	mHitLand(FALSE), +	mLastMouseX(0), +	mLastMouseY(0), +	mAccumDeltaX(0), +	mAccumDeltaY(0),	  	mHasMoved( FALSE ),  	mOutsideSlop(FALSE),  	mDeselectedThisClick(FALSE), +	mLastFace(0),  	mSpinGrabbing( FALSE ),  	mSpinRotation(),  	mHideBuildHighlight(FALSE) diff --git a/indra/newview/llviewerjoint.cpp b/indra/newview/llviewerjoint.cpp index c425d95ff8..95f05b5f5f 100644 --- a/indra/newview/llviewerjoint.cpp +++ b/indra/newview/llviewerjoint.cpp @@ -59,14 +59,9 @@ BOOL					LLViewerJoint::sDisableLOD = FALSE;  // Class Constructor  //-----------------------------------------------------------------------------  LLViewerJoint::LLViewerJoint() +	:       LLJoint()  { -	mUpdateXform = TRUE; -	mValid = FALSE; -	mComponents = SC_JOINT | SC_BONE | SC_AXES; -	mMinPixelArea = DEFAULT_LOD; -	mPickName = PN_DEFAULT; -	mVisible = TRUE; -	mMeshID = 0; +	init();  } @@ -74,13 +69,21 @@ LLViewerJoint::LLViewerJoint()  // LLViewerJoint()  // Class Constructor  //----------------------------------------------------------------------------- -LLViewerJoint::LLViewerJoint(const std::string &name, LLJoint *parent) : -	LLJoint(name, parent) +LLViewerJoint::LLViewerJoint(const std::string &name, LLJoint *parent) +	:	LLJoint(name, parent) +{ +	init(); +} + + +void LLViewerJoint::init()  {  	mValid = FALSE;  	mComponents = SC_JOINT | SC_BONE | SC_AXES;  	mMinPixelArea = DEFAULT_LOD;  	mPickName = PN_DEFAULT; +	mVisible = TRUE; +	mMeshID = 0;  } diff --git a/indra/newview/llviewerjoint.h b/indra/newview/llviewerjoint.h index 08c4ec36fd..0d3092a044 100644 --- a/indra/newview/llviewerjoint.h +++ b/indra/newview/llviewerjoint.h @@ -142,6 +142,8 @@ public:  	void setMeshID( S32 id ) {mMeshID = id;}  protected: +	void init(); +  	BOOL		mValid;  	U32			mComponents;  	F32			mMinPixelArea; diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index 25206a5f52..55b0d6fa8b 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -2213,7 +2213,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)  			payload["SESSION_NAME"] = session_name;  			if (from_group)  			{ -				payload["groupowned"] = "true"; +				payload["group_owned"] = "true";  			}  			LLNotificationsUtil::add("ServerObjectMessage", substitutions, payload);  		} @@ -2515,7 +2515,7 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)  	// Object owner for objects  	msg->getUUID("ChatData", "OwnerID", owner_id); -	 +  	msg->getU8Fast(_PREHASH_ChatData, _PREHASH_SourceType, source_temp);  	chat.mSourceType = (EChatSourceType)source_temp; @@ -2544,7 +2544,7 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)  	if (chatter)  	{  		chat.mPosAgent = chatter->getPositionAgent(); -		 +  		// Make swirly things only for talking objects. (not script debug messages, though)  		if (chat.mSourceType == CHAT_SOURCE_OBJECT   			&& chat.mChatType != CHAT_TYPE_DEBUG_MSG) @@ -2689,8 +2689,13 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)  		chat.mMuted = is_muted && !is_linden; -		LLNotificationsUI::LLNotificationManager::instance().onChat( -					chat, LLNotificationsUI::NT_NEARBYCHAT); +		// pass owner_id to chat so that we can display the remote +		// object inspect for an object that is chatting with you +		LLSD args; +		args["type"] = LLNotificationsUI::NT_NEARBYCHAT; +		args["owner_id"] = owner_id; + +		LLNotificationsUI::LLNotificationManager::instance().onChat(chat, args);  	}  } diff --git a/indra/newview/llviewermessage.h b/indra/newview/llviewermessage.h index 8404d6fde0..1415c16090 100644 --- a/indra/newview/llviewermessage.h +++ b/indra/newview/llviewermessage.h @@ -205,7 +205,9 @@ void open_inventory_offer(const std::vector<LLUUID>& items, const std::string& f  struct LLOfferInfo  { -	LLOfferInfo() {}; +        LLOfferInfo() +	:	mFromGroup(FALSE), mFromObject(FALSE), +		mIM(IM_NOTHING_SPECIAL), mType(LLAssetType::AT_NONE) {};  	LLOfferInfo(const LLSD& sd);  	void forceResponse(InventoryOfferResponse response); diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index c70b830782..cd6b9e2c50 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -2262,15 +2262,18 @@ void LLViewerWindow::handleScrollWheel(S32 clicks)  void LLViewerWindow::moveCursorToCenter()  { -	S32 x = getWorldViewWidthScaled() / 2; -	S32 y = getWorldViewHeightScaled() / 2; +	if (! gSavedSettings.getBOOL("DisableMouseWarp")) +	{ +		S32 x = getWorldViewWidthScaled() / 2; +		S32 y = getWorldViewHeightScaled() / 2; -	//on a forced move, all deltas get zeroed out to prevent jumping -	mCurrentMousePoint.set(x,y); -	mLastMousePoint.set(x,y); -	mCurrentMouseDelta.set(0,0);	 +		//on a forced move, all deltas get zeroed out to prevent jumping +		mCurrentMousePoint.set(x,y); +		mLastMousePoint.set(x,y); +		mCurrentMouseDelta.set(0,0);	 -	LLUI::setMousePositionScreen(x, y);	 +		LLUI::setMousePositionScreen(x, y);	 +	}  } diff --git a/indra/newview/llvoiceclient.cpp b/indra/newview/llvoiceclient.cpp index 02a2d8c8cf..560c2ab469 100644 --- a/indra/newview/llvoiceclient.cpp +++ b/indra/newview/llvoiceclient.cpp @@ -294,8 +294,14 @@ void LLVivoxProtocolParser::reset()  	ignoringTags = false;  	accumulateText = false;  	energy = 0.f; +	hasText = false; +	hasAudio = false; +	hasVideo = false; +	terminated = false;  	ignoreDepth = 0;  	isChannel = false; +	incoming = false; +	enabled = false;  	isEvent = false;  	isLocallyMuted = false;  	isModeratorMuted = false; @@ -6406,6 +6412,7 @@ void LLVoiceClient::filePlaybackSetMode(bool vox, float speed)  }  LLVoiceClient::sessionState::sessionState() : +	mErrorStatusCode(0),  	mMediaStreamState(streamStateUnknown),  	mTextStreamState(streamStateUnknown),  	mCreateInProgress(false), diff --git a/indra/newview/llvosky.cpp b/indra/newview/llvosky.cpp index 5ff8f0d267..0550ed770b 100644 --- a/indra/newview/llvosky.cpp +++ b/indra/newview/llvosky.cpp @@ -343,7 +343,6 @@ LLVOSky::LLVOSky(const LLUUID &id, const LLPCode pcode, LLViewerRegion *regionp)  	cloud_pos_density1 = LLColor3();  	cloud_pos_density2 = LLColor3(); -  	mInitialized = FALSE;  	mbCanSelect = FALSE;  	mUpdateTimer.reset(); @@ -385,6 +384,10 @@ LLVOSky::LLVOSky(const LLUUID &id, const LLPCode pcode, LLViewerRegion *regionp)  	mBloomTexturep->setAddressMode(LLTexUnit::TAM_CLAMP);  	mHeavenlyBodyUpdated = FALSE ; + +	mDrawRefl = 0; +	mHazeConcentration = 0.f; +	mInterpVal = 0.f;  } @@ -1072,10 +1075,10 @@ BOOL LLVOSky::updateSky()  		++next_frame;  		next_frame = next_frame % cycle_frame_no; -		sInterpVal = (!mInitialized) ? 1 : (F32)next_frame / cycle_frame_no; +		mInterpVal = (!mInitialized) ? 1 : (F32)next_frame / cycle_frame_no;  		// sInterpVal = (F32)next_frame / cycle_frame_no; -		LLSkyTex::setInterpVal( sInterpVal ); -		LLHeavenBody::setInterpVal( sInterpVal ); +		LLSkyTex::setInterpVal( mInterpVal ); +		LLHeavenBody::setInterpVal( mInterpVal );  		calcAtmospherics();  		if (mForceUpdate || total_no_tiles == frame) diff --git a/indra/newview/llvosky.h b/indra/newview/llvosky.h index ef74324e58..8366909755 100644 --- a/indra/newview/llvosky.h +++ b/indra/newview/llvosky.h @@ -613,7 +613,7 @@ protected:  	LLColor3			mLastTotalAmbient;  	F32					mAmbientScale;  	LLColor3			mNightColorShift; -	F32					sInterpVal; +	F32					mInterpVal;  	LLColor4			mFogColor;  	LLColor4			mGLFogCol; @@ -636,8 +636,8 @@ protected:  public:  	//by bao  	//fake vertex buffer updating -	//to guaranttee at least updating one VBO buffer every frame -	//to walk around the bug caused by ATI card --> DEV-3855 +	//to guarantee at least updating one VBO buffer every frame +	//to work around the bug caused by ATI card --> DEV-3855  	//  	void createDummyVertexBuffer() ;  	void updateDummyVertexBuffer() ; diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index 41f4621d66..fc535205f1 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -3851,7 +3851,7 @@ Are you sure you want to quit?     type="alertmodal">  Use this tool to report violations of the [http://secondlife.com/corporate/tos.php Terms of Service] and [http://secondlife.com/corporate/cs.php Community Standards]. -All reported abuses are investigated and resolved. You can view the resolution by reading the [http://secondlife.com/support/incidentreport.php Incident Report]. +All reported abuses are investigated and resolved.     <unique/>    </notification> diff --git a/indra/newview/skins/default/xui/en/panel_pick_info.xml b/indra/newview/skins/default/xui/en/panel_pick_info.xml index 65ccd10cf0..7489988722 100644 --- a/indra/newview/skins/default/xui/en/panel_pick_info.xml +++ b/indra/newview/skins/default/xui/en/panel_pick_info.xml @@ -88,6 +88,7 @@           follows="all"           height="100"           width="280" +         allow_html="true"	           hide_scrollbar="false"           layout="topleft"           left="10" | 
