diff options
Diffstat (limited to 'indra/newview')
21 files changed, 259 insertions, 173 deletions
| diff --git a/indra/newview/app_settings/commands.xml b/indra/newview/app_settings/commands.xml index ce878f156b..60c942094a 100755 --- a/indra/newview/app_settings/commands.xml +++ b/indra/newview/app_settings/commands.xml @@ -3,8 +3,6 @@    <command name="aboutland"             available_in_toybox="true"             icon="Command_AboutLand_Icon" -           hover_icon_unselected="Command_Highlighting_Icon" -           hover_icon_selected="Command_Highlighting_Selected_Icon"             label_ref="Command_AboutLand_Label"             tooltip_ref="Command_AboutLand_Tooltip"             execute_function="Floater.ToggleOrBringToFront" @@ -15,8 +13,6 @@    <command name="appearance"               available_in_toybox="true"             icon="Command_Appearance_Icon" -           hover_icon_unselected="Command_Highlighting_Icon" -           hover_icon_selected="Command_Highlighting_Selected_Icon"             label_ref="Command_Appearance_Label"             tooltip_ref="Command_Appearance_Tooltip"             execute_function="Floater.ToggleOrBringToFront" @@ -27,8 +23,6 @@    <command name="avatar"             available_in_toybox="true"             icon="Command_Avatar_Icon" -           hover_icon_unselected="Command_Highlighting_Icon" -           hover_icon_selected="Command_Highlighting_Selected_Icon"             label_ref="Command_Avatar_Label"             tooltip_ref="Command_Avatar_Tooltip"             execute_function="Floater.ToggleOrBringToFront" @@ -39,8 +33,6 @@    <command name="build"             available_in_toybox="true"             icon="Command_Build_Icon" -           hover_icon_unselected="Command_Highlighting_Icon" -           hover_icon_selected="Command_Highlighting_Selected_Icon"             label_ref="Command_Build_Label"             tooltip_ref="Command_Build_Tooltip"             execute_function="Build.Toggle" @@ -54,8 +46,6 @@             available_in_toybox="true"  		   is_flashing_allowed="true"             icon="Command_Chat_Icon" -           hover_icon_unselected="Command_Highlighting_Icon" -           hover_icon_selected="Command_Highlighting_Selected_Icon"             label_ref="Command_Chat_Label"             tooltip_ref="Command_Conversations_Tooltip"             execute_function="Floater.ToggleOrBringToFront" @@ -66,8 +56,6 @@    <command name="compass"             available_in_toybox="false"             icon="Command_Compass_Icon" -           hover_icon_unselected="Command_Highlighting_Icon" -           hover_icon_selected="Command_Highlighting_Selected_Icon"             label_ref="Command_Compass_Label"             tooltip_ref="Command_Compass_Tooltip"             execute_function="Floater.ToggleOrBringToFront" @@ -78,8 +66,6 @@    <command name="destinations"             available_in_toybox="true"             icon="Command_Destinations_Icon" -           hover_icon_unselected="Command_Highlighting_Icon" -           hover_icon_selected="Command_Highlighting_Selected_Icon"             label_ref="Command_Destinations_Label"             tooltip_ref="Command_Destinations_Tooltip"             execute_function="Floater.ToggleOrBringToFront" @@ -90,8 +76,6 @@    <command name="gestures"             available_in_toybox="true"             icon="Command_Gestures_Icon" -           hover_icon_unselected="Command_Highlighting_Icon" -           hover_icon_selected="Command_Highlighting_Selected_Icon"             label_ref="Command_Gestures_Label"             tooltip_ref="Command_Gestures_Tooltip"             execute_function="Floater.ToggleOrBringToFront" @@ -102,8 +86,6 @@    <command name="howto"             available_in_toybox="true"             icon="Command_HowTo_Icon" -           hover_icon_unselected="Command_Highlighting_Icon" -           hover_icon_selected="Command_Highlighting_Selected_Icon"             label_ref="Command_HowTo_Label"             tooltip_ref="Command_HowTo_Tooltip"             execute_function="Help.ToggleHowTo" @@ -112,8 +94,6 @@    <command name="inventory"             available_in_toybox="true"             icon="Command_Inventory_Icon" -           hover_icon_unselected="Command_Highlighting_Icon" -           hover_icon_selected="Command_Highlighting_Selected_Icon"             label_ref="Command_Inventory_Label"             tooltip_ref="Command_Inventory_Tooltip"             execute_function="Floater.ToggleOrBringToFront" @@ -124,8 +104,6 @@    <command name="map"             available_in_toybox="true"             icon="Command_Map_Icon" -           hover_icon_unselected="Command_Highlighting_Icon" -           hover_icon_selected="Command_Highlighting_Selected_Icon"             label_ref="Command_Map_Label"             tooltip_ref="Command_Map_Tooltip"             execute_function="Floater.ToggleOrBringToFront" @@ -136,8 +114,6 @@    <command name="marketplace"             available_in_toybox="false"             icon="Command_Marketplace_Icon" -           hover_icon_unselected="Command_Highlighting_Icon" -           hover_icon_selected="Command_Highlighting_Selected_Icon"             label_ref="Command_Marketplace_Label"             tooltip_ref="Command_Marketplace_Tooltip"             execute_function="Avatar.OpenMarketplace" @@ -145,8 +121,6 @@    <command name="minimap"             available_in_toybox="true"             icon="Command_MiniMap_Icon" -           hover_icon_unselected="Command_Highlighting_Icon" -           hover_icon_selected="Command_Highlighting_Selected_Icon"             label_ref="Command_MiniMap_Label"             tooltip_ref="Command_MiniMap_Tooltip"             execute_function="Floater.ToggleOrBringToFront" @@ -157,8 +131,6 @@    <command name="move"             available_in_toybox="true"             icon="Command_Move_Icon" -           hover_icon_unselected="Command_Highlighting_Icon" -           hover_icon_selected="Command_Highlighting_Selected_Icon"             label_ref="Command_Move_Label"             tooltip_ref="Command_Move_Tooltip"             execute_function="Floater.ToggleOrBringToFront" @@ -169,8 +141,6 @@    <command name="outbox"             available_in_toybox="false"             icon="Command_Outbox_Icon" -           hover_icon_unselected="Command_Highlighting_Icon" -           hover_icon_selected="Command_Highlighting_Selected_Icon"             label_ref="Command_Outbox_Label"             tooltip_ref="Command_Outbox_Tooltip"             execute_function="Floater.ToggleOrBringToFront" @@ -181,8 +151,6 @@    <command name="people"             available_in_toybox="true"             icon="Command_People_Icon" -           hover_icon_unselected="Command_Highlighting_Icon" -           hover_icon_selected="Command_Highlighting_Selected_Icon"             label_ref="Command_People_Label"             tooltip_ref="Command_People_Tooltip"             execute_function="Floater.ToggleOrBringToFront" @@ -193,8 +161,6 @@    <command name="picks"             available_in_toybox="true"             icon="Command_Picks_Icon" -           hover_icon_unselected="Command_Highlighting_Icon" -           hover_icon_selected="Command_Highlighting_Selected_Icon"             label_ref="Command_Picks_Label"             tooltip_ref="Command_Picks_Tooltip"             execute_function="Floater.ToggleOrBringToFront" @@ -205,8 +171,6 @@    <command name="places"             available_in_toybox="true"             icon="Command_Places_Icon" -           hover_icon_unselected="Command_Highlighting_Icon" -           hover_icon_selected="Command_Highlighting_Selected_Icon"             label_ref="Command_Places_Label"             tooltip_ref="Command_Places_Tooltip"             execute_function="Floater.ToggleOrBringToFront" @@ -217,8 +181,6 @@    <command name="preferences"             available_in_toybox="true"             icon="Command_Preferences_Icon" -           hover_icon_unselected="Command_Highlighting_Icon" -           hover_icon_selected="Command_Highlighting_Selected_Icon"             label_ref="Command_Preferences_Label"             tooltip_ref="Command_Preferences_Tooltip"             execute_function="Floater.ToggleOrBringToFront" @@ -229,8 +191,6 @@    <command name="profile"             available_in_toybox="true"             icon="Command_Profile_Icon" -           hover_icon_unselected="Command_Highlighting_Icon" -           hover_icon_selected="Command_Highlighting_Selected_Icon"             label_ref="Command_Profile_Label"             tooltip_ref="Command_Profile_Tooltip"             execute_function="Avatar.ToggleMyProfile" @@ -239,8 +199,6 @@    <command name="search"             available_in_toybox="true"             icon="Command_Search_Icon" -           hover_icon_unselected="Command_Highlighting_Icon" -           hover_icon_selected="Command_Highlighting_Selected_Icon"             label_ref="Command_Search_Label"             tooltip_ref="Command_Search_Tooltip"             execute_function="Floater.ToggleOrBringToFront" @@ -251,8 +209,6 @@    <command name="snapshot"             available_in_toybox="true"             icon="Command_Snapshot_Icon" -           hover_icon_unselected="Command_Highlighting_Icon" -           hover_icon_selected="Command_Highlighting_Selected_Icon"             label_ref="Command_Snapshot_Label"             tooltip_ref="Command_Snapshot_Tooltip"             execute_function="Floater.ToggleOrBringToFront" @@ -273,8 +229,6 @@    <command name="speak"             available_in_toybox="true"             icon="Command_Speak_Icon" -           hover_icon_unselected="Command_Highlighting_Icon" -           hover_icon_selected="Command_Highlighting_Selected_Icon"             label_ref="Command_Speak_Label"             tooltip_ref="Command_Speak_Tooltip"             execute_function="Agent.PressMicrophone" @@ -289,8 +243,6 @@    <command name="view"             available_in_toybox="true"             icon="Command_View_Icon" -           hover_icon_unselected="Command_Highlighting_Icon" -           hover_icon_selected="Command_Highlighting_Selected_Icon"             label_ref="Command_View_Label"             tooltip_ref="Command_View_Tooltip"             execute_function="Floater.ToggleOrBringToFront" diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index b6b9f40db7..db151817e0 100755 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -14882,17 +14882,6 @@      <key>Value</key>      <integer>0</integer>    </map> -  <key>DisablePrecacheDelayAfterTeleporting</key> -  <map> -    <key>Comment</key> -    <string>Disables the artificial delay in the viewer that precaches some incoming assets</string> -    <key>Persist</key> -    <integer>0</integer> -    <key>Type</key> -    <string>Boolean</string> -    <key>Value</key> -    <integer>0</integer> -  </map>    <key>FMODExProfilerEnable</key>    <map>      <key>Comment</key> diff --git a/indra/newview/llfloaterimsession.cpp b/indra/newview/llfloaterimsession.cpp index 14e1a486d3..84921849d0 100755 --- a/indra/newview/llfloaterimsession.cpp +++ b/indra/newview/llfloaterimsession.cpp @@ -61,6 +61,9 @@  #include "llnotificationmanager.h"  #include "llautoreplace.h" +const F32 ME_TYPING_TIMEOUT = 4.0f; +const F32 OTHER_TYPING_TIMEOUT = 9.0f; +  floater_showed_signal_t LLFloaterIMSession::sIMFloaterShowedSignal;  LLFloaterIMSession::LLFloaterIMSession(const LLUUID& session_id) @@ -75,7 +78,10 @@ LLFloaterIMSession::LLFloaterIMSession(const LLUUID& session_id)  	mTypingTimer(),  	mTypingTimeoutTimer(),  	mPositioned(false), -	mSessionInitialized(false) +	mSessionInitialized(false), +	mMeTypingTimer(), +	mOtherTypingTimer(), +	mImInfo()  {  	mIsNearbyChat = false; @@ -96,13 +102,31 @@ LLFloaterIMSession::LLFloaterIMSession(const LLUUID& session_id)  void LLFloaterIMSession::refresh()  {  	if (mMeTyping) -{ +	{ +		// Send an additional Start Typing packet every ME_TYPING_TIMEOUT seconds +		if (mMeTypingTimer.getElapsedTimeF32() > ME_TYPING_TIMEOUT && false == mShouldSendTypingState) +		{ +			LL_DEBUGS("TypingMsgs") << "Send additional Start Typing packet" << LL_ENDL; +			LLIMModel::instance().sendTypingState(mSessionID, mOtherParticipantUUID, TRUE); +			mMeTypingTimer.reset(); +		} +  		// Time out if user hasn't typed for a while.  		if (mTypingTimeoutTimer.getElapsedTimeF32() > LLAgent::TYPING_TIMEOUT_SECS)  		{ -	setTyping(false); +			setTyping(false); +			LL_DEBUGS("TypingMsgs") << "Send stop typing due to timeout" << LL_ENDL;  		}  	} + +	// Clear <name is typing> message if no data received for OTHER_TYPING_TIMEOUT seconds +	if (mOtherTyping && mOtherTypingTimer.getElapsedTimeF32() > OTHER_TYPING_TIMEOUT) +	{ +		LL_DEBUGS("TypingMsgs") << "Received: is typing cleared due to timeout" << LL_ENDL; +		removeTypingIndicator(mImInfo); +		mOtherTyping = false; +	} +  }  // virtual @@ -953,13 +977,21 @@ void LLFloaterIMSession::setTyping(bool typing)  	// much network traffic. Only send in person-to-person IMs.  	if ( mShouldSendTypingState && mDialog == IM_NOTHING_SPECIAL )  	{ -		// Still typing, send 'start typing' notification or -		// send 'stop typing' notification immediately -		if (!mMeTyping || mTypingTimer.getElapsedTimeF32() > 1.f) +		if ( mMeTyping )  		{ -			LLIMModel::instance().sendTypingState(mSessionID, -					mOtherParticipantUUID, mMeTyping); -					mShouldSendTypingState = false; +			if ( mTypingTimer.getElapsedTimeF32() > 1.f ) +			{ +				// Still typing, send 'start typing' notification +				LLIMModel::instance().sendTypingState(mSessionID, mOtherParticipantUUID, TRUE); +				mShouldSendTypingState = false; +				mMeTypingTimer.reset(); +			} +		} +		else +		{ +			// Send 'stop typing' notification immediately +			LLIMModel::instance().sendTypingState(mSessionID, mOtherParticipantUUID, FALSE); +			mShouldSendTypingState = false;  		}  	} @@ -975,10 +1007,12 @@ void LLFloaterIMSession::setTyping(bool typing)  void LLFloaterIMSession::processIMTyping(const LLIMInfo* im_info, BOOL typing)  { +	LL_DEBUGS("TypingMsgs") << "typing=" << typing << LL_ENDL;  	if ( typing )  	{  		// other user started typing  		addTypingIndicator(im_info); +		mOtherTypingTimer.reset();  	}  	else  	{ @@ -1202,10 +1236,40 @@ BOOL LLFloaterIMSession::inviteToSession(const uuid_vec_t& ids)  void LLFloaterIMSession::addTypingIndicator(const LLIMInfo* im_info)  { +/* Operation of "<name> is typing" state machine: +Not Typing state: + +    User types in P2P IM chat ... Send Start Typing, save Started time, +    start Idle Timer (N seconds) go to Typing state + +Typing State: + +    User enters a non-return character: if Now - Started > ME_TYPING_TIMEOUT, send +    Start Typing, restart Idle Timer +    User enters a return character: stop Idle Timer, send IM and Stop +    Typing, go to Not Typing state +    Idle Timer expires: send Stop Typing, go to Not Typing state + +The recipient has a complementary state machine in which a Start Typing +that is not followed by either an IM or another Start Typing within OTHER_TYPING_TIMEOUT +seconds switches the sender out of typing state. + +This has the nice quality of being self-healing for lost start/stop +messages while adding messages only for the (relatively rare) case of a +user who types a very long message (one that takes more than ME_TYPING_TIMEOUT seconds +to type). + +Note: OTHER_TYPING_TIMEOUT must be > ME_TYPING_TIMEOUT for proper operation of the state machine + +*/ +  	// We may have lost a "stop-typing" packet, don't add it twice  	if (im_info && !mOtherTyping)  	{  		mOtherTyping = true; +		mOtherTypingTimer.reset(); +		// Save im_info so that removeTypingIndicator can be properly called because a timeout has occurred +		mImInfo = im_info;  		// Update speaker  		LLIMSpeakerMgr* speaker_mgr = LLIMModel::getInstance()->getSpeakerManager(mSessionID); diff --git a/indra/newview/llfloaterimsession.h b/indra/newview/llfloaterimsession.h index d6718843ca..2b9d06e744 100755 --- a/indra/newview/llfloaterimsession.h +++ b/indra/newview/llfloaterimsession.h @@ -187,6 +187,8 @@ private:  	LLFrameTimer mTypingTimer;  	LLFrameTimer mTypingTimeoutTimer;  	bool mSessionNameUpdatedForTyping; +	LLFrameTimer mMeTypingTimer; +	LLFrameTimer mOtherTypingTimer;  	bool mSessionInitialized;  	LLSD mQueuedMsgsForInit; @@ -196,6 +198,8 @@ private:  	// connection to voice channel state change signal  	boost::signals2::connection mVoiceChannelStateChangeConnection; + +	const LLIMInfo* mImInfo;  };  #endif  // LL_FLOATERIMSESSION_H diff --git a/indra/newview/llfloaterland.cpp b/indra/newview/llfloaterland.cpp index 6c8e81e563..b16ef6dd79 100755 --- a/indra/newview/llfloaterland.cpp +++ b/indra/newview/llfloaterland.cpp @@ -1791,10 +1791,15 @@ void LLPanelLandObjects::onCommitClean(LLUICtrl *caller, void* user_data)  	LLParcel* parcel = lop->mParcel->getParcel();  	if (parcel)  	{ -		lop->mOtherTime = atoi(lop->mCleanOtherObjectsTime->getText().c_str()); +		S32 return_time = atoi(lop->mCleanOtherObjectsTime->getText().c_str()); +		// Only send return time if it has changed +		if (return_time != lop->mOtherTime) +		{ +			lop->mOtherTime = return_time; -		parcel->setCleanOtherTime(lop->mOtherTime); -		send_other_clean_time_message(parcel->getLocalID(), lop->mOtherTime); +			parcel->setCleanOtherTime(lop->mOtherTime); +			send_other_clean_time_message(parcel->getLocalID(), lop->mOtherTime); +		}  	}  } diff --git a/indra/newview/llfloatermodelpreview.cpp b/indra/newview/llfloatermodelpreview.cpp index 19cec55837..855836af7a 100755 --- a/indra/newview/llfloatermodelpreview.cpp +++ b/indra/newview/llfloatermodelpreview.cpp @@ -535,9 +535,16 @@ BOOL LLFloaterModelPreview::postBuild()  	mUploadBtn = getChild<LLButton>("ok_btn");  	mCalculateBtn = getChild<LLButton>("calculate_btn"); -	mCalculateBtn->setClickedCallback(boost::bind(&LLFloaterModelPreview::onClickCalculateBtn, this)); +	if (LLConvexDecomposition::getInstance() != NULL) +	{ +		mCalculateBtn->setClickedCallback(boost::bind(&LLFloaterModelPreview::onClickCalculateBtn, this)); -	toggleCalculateButton(true); +		toggleCalculateButton(true); +	} +	else +	{ +		mCalculateBtn->setEnabled(false); +	}  	return TRUE;  } diff --git a/indra/newview/llfloaterworldmap.cpp b/indra/newview/llfloaterworldmap.cpp index 137b5446cf..cb637c7162 100755 --- a/indra/newview/llfloaterworldmap.cpp +++ b/indra/newview/llfloaterworldmap.cpp @@ -627,8 +627,8 @@ void LLFloaterWorldMap::trackLocation(const LLVector3d& pos_global)  	if (!sim_info)  	{  		// We haven't found a region for that point yet, leave the tracking to the world map -		LLWorldMap::getInstance()->setTracking(pos_global);  		LLTracker::stopTracking(NULL); +		LLWorldMap::getInstance()->setTracking(pos_global);  		S32 world_x = S32(pos_global.mdV[0] / 256);  		S32 world_y = S32(pos_global.mdV[1] / 256);  		LLWorldMapMessage::getInstance()->sendMapBlockRequest(world_x, world_y, world_x, world_y, true); @@ -643,9 +643,9 @@ void LLFloaterWorldMap::trackLocation(const LLVector3d& pos_global)  	{  		// Down region. Show the blue circle of death!  		// i.e. let the world map that this and tell it it's invalid +		LLTracker::stopTracking(NULL);  		LLWorldMap::getInstance()->setTracking(pos_global);  		LLWorldMap::getInstance()->setTrackingInvalid(); -		LLTracker::stopTracking(NULL);  		setDefaultBtn("");  		// clicked on a down region - turn off coord display @@ -665,8 +665,8 @@ void LLFloaterWorldMap::trackLocation(const LLVector3d& pos_global)  	std::string tooltip("");  	mTrackedStatus = LLTracker::TRACKING_LOCATION; -	LLTracker::trackLocation(pos_global, full_name, tooltip);  	LLWorldMap::getInstance()->cancelTracking();		// The floater is taking over the tracking +	LLTracker::trackLocation(pos_global, full_name, tooltip);  	LLVector3d coord_pos = LLTracker::getTrackedPositionGlobal();  	updateTeleportCoordsDisplay( coord_pos ); diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp index 80ef506272..44943d8722 100755 --- a/indra/newview/llinventorybridge.cpp +++ b/indra/newview/llinventorybridge.cpp @@ -74,6 +74,7 @@  #include "llvoavatarself.h"  #include "llwearablelist.h"  #include "lllandmarkactions.h" +#include "llpanellandmarks.h"  void copy_slurl_to_clipboard_callback_inv(const std::string& slurl); @@ -1449,6 +1450,38 @@ void LLItemBridge::performAction(LLInventoryModel* model, std::string action)  			}  		}  	} +	else if ("show_on_map" == action) +	{ +		doActionOnCurSelectedLandmark(boost::bind(&LLItemBridge::doShowOnMap, this, _1)); +	} +} + +void LLItemBridge::doActionOnCurSelectedLandmark(LLLandmarkList::loaded_callback_t cb) +{ +	LLViewerInventoryItem* cur_item = getItem(); +	if(cur_item && cur_item->getInventoryType() == LLInventoryType::IT_LANDMARK) +	{  +		LLLandmark* landmark = LLLandmarkActions::getLandmark(cur_item->getUUID(), cb); +		if (landmark) +		{ +			cb(landmark); +		} +	} +} + +void LLItemBridge::doShowOnMap(LLLandmark* landmark) +{ +	LLVector3d landmark_global_pos; +	// landmark has already been tested for NULL by calling routine +	if (landmark->getGlobalPos(landmark_global_pos)) +	{ +		LLFloaterWorldMap* worldmap_instance = LLFloaterWorldMap::getInstance(); +		if (!landmark_global_pos.isExactlyZero() && worldmap_instance) +		{ +			worldmap_instance->trackLocation(landmark_global_pos); +			LLFloaterReg::showInstance("world_map", "center"); +		} +	}  }  void copy_slurl_to_clipboard_callback_inv(const std::string& slurl) @@ -4580,6 +4613,7 @@ void LLLandmarkBridge::buildContextMenu(LLMenuGL& menu, U32 flags)  		items.push_back(std::string("Landmark Separator"));  		items.push_back(std::string("url_copy"));  		items.push_back(std::string("About Landmark")); +		items.push_back(std::string("show_on_map"));  	}  	// Disable "About Landmark" menu item for diff --git a/indra/newview/llinventorybridge.h b/indra/newview/llinventorybridge.h index 517153e171..bc875e8f37 100755 --- a/indra/newview/llinventorybridge.h +++ b/indra/newview/llinventorybridge.h @@ -36,6 +36,7 @@  #include "llviewercontrol.h"  #include "llviewerwearable.h"  #include "lltooldraganddrop.h" +#include "lllandmarklist.h"  class LLInventoryFilter;  class LLInventoryPanel; @@ -239,7 +240,10 @@ protected:  	BOOL confirmRemoveItem(const LLSD& notification, const LLSD& response);  	virtual BOOL isItemPermissive() const;  	virtual void buildDisplayName() const; +	void doActionOnCurSelectedLandmark(LLLandmarkList::loaded_callback_t cb); +private: +	void doShowOnMap(LLLandmark* landmark);  };  class LLFolderBridge : public LLInvFVBridge diff --git a/indra/newview/llpanelteleporthistory.cpp b/indra/newview/llpanelteleporthistory.cpp index 0756faf5c0..9c380f63bd 100755 --- a/indra/newview/llpanelteleporthistory.cpp +++ b/indra/newview/llpanelteleporthistory.cpp @@ -359,6 +359,11 @@ void LLTeleportHistoryPanel::ContextMenu::onInfo()  void LLTeleportHistoryPanel::ContextMenu::gotSLURLCallback(const std::string& slurl)  {  	LLClipboard::instance().copyToClipboard(utf8str_to_wstring(slurl),0,slurl.size()); + +	LLSD args; +	args["SLURL"] = slurl; + +	LLNotificationsUtil::add("CopySLURL", args);  }  void LLTeleportHistoryPanel::ContextMenu::onCopyToClipboard() diff --git a/indra/newview/lltracker.cpp b/indra/newview/lltracker.cpp index cbd16e873d..73ceb783b5 100755 --- a/indra/newview/lltracker.cpp +++ b/indra/newview/lltracker.cpp @@ -167,6 +167,7 @@ void LLTracker::render3D()  	}  	static LLUIColor map_track_color = LLUIColorTable::instance().getColor("MapTrackColor", LLColor4::white); +	static LLUIColor map_track_color_under = LLUIColorTable::instance().getColor("MapTrackColorUnder", LLColor4::white);  	// Arbitary location beacon  	if( instance()->mIsTrackingLocation ) @@ -187,7 +188,7 @@ void LLTracker::render3D()  		}  		else  		{ -			renderBeacon( instance()->mTrackedPositionGlobal, map_track_color,  +			renderBeacon( instance()->mTrackedPositionGlobal, map_track_color, map_track_color_under,  					  	instance()->mBeaconText, instance()->mTrackedLocationName );  		}  	} @@ -229,7 +230,7 @@ void LLTracker::render3D()  					// and back again  					instance()->mHasReachedLandmark = FALSE;  				} -				renderBeacon( instance()->mTrackedPositionGlobal, map_track_color,  +				renderBeacon( instance()->mTrackedPositionGlobal, map_track_color, map_track_color_under,  							  instance()->mBeaconText, instance()->mTrackedLandmarkName );  			}  		} @@ -258,7 +259,7 @@ void LLTracker::render3D()  			}  			else  			{ -				renderBeacon( av_tracker.getGlobalPos(), map_track_color,  +				renderBeacon( av_tracker.getGlobalPos(), map_track_color, map_track_color_under,  						  	instance()->mBeaconText, av_tracker.getName() );  			}  		} @@ -412,7 +413,7 @@ const std::string& LLTracker::getTrackedLocationName()  	return instance()->mTrackedLocationName;  } -F32 pulse_func(F32 t, F32 z) +F32 pulse_func(F32 t, F32 z, bool tracking_avatar, std::string direction)  {  	if (!LLTracker::sCheesyBeacon)  	{ @@ -420,8 +421,15 @@ F32 pulse_func(F32 t, F32 z)  	}  	t *= F_PI; -	z -= t*64.f - 256.f; -	 +	if ("DOWN" == direction) +	{ +		z += t*64.f - 256.f; +	} +	else +	{ +		z -= t*64.f - 256.f; +	} +  	F32 a = cosf(z*F_PI/512.f)*10.0f;  	a = llmax(a, 9.9f);  	a -= 9.9f; @@ -474,10 +482,78 @@ void draw_shockwave(F32 center_z, F32 t, S32 steps, LLColor4 color)  	gGL.end();  } +void LLTracker::drawBeacon(LLVector3 pos_agent, std::string direction, LLColor4 fogged_color, F32 dist) +{ +	const U32 BEACON_VERTS = 256; +	F32 step; + +	gGL.matrixMode(LLRender::MM_MODELVIEW); +	gGL.pushMatrix(); + +	if ("DOWN" == direction) +	{ +		gGL.translatef(pos_agent.mV[0], pos_agent.mV[1], pos_agent.mV[2]); +		draw_shockwave(1024.f, gRenderStartTime.getElapsedTimeF32(), 32, fogged_color); +		step = (5020.0f - pos_agent.mV[2]) / BEACON_VERTS; +	} +	else +	{ +		gGL.translatef(pos_agent.mV[0], pos_agent.mV[1], 0); +		step = pos_agent.mV[2] / BEACON_VERTS; +	} + +	gGL.color4fv(fogged_color.mV); + +	LLVector3 x_axis = LLViewerCamera::getInstance()->getLeftAxis(); +	F32 t = gRenderStartTime.getElapsedTimeF32(); + +	for (U32 i = 0; i < BEACON_VERTS; i++) +	{ +		F32 x = x_axis.mV[0]; +		F32 y = x_axis.mV[1]; +			 +		F32 z = i * step; +		F32 z_next = (i+1)*step; + +		bool tracking_avatar = getTrackingStatus() == TRACKING_AVATAR; +		F32 a = pulse_func(t, z, tracking_avatar, direction); +		F32 an = pulse_func(t, z_next, tracking_avatar, direction); + +		LLColor4 c_col = fogged_color + LLColor4(a,a,a,a); +		LLColor4 col_next = fogged_color + LLColor4(an,an,an,an); +		LLColor4 col_edge = fogged_color * LLColor4(a,a,a,0.0f); +		LLColor4 col_edge_next = fogged_color * LLColor4(an,an,an,0.0f); + +		a *= 2.f; +		a += 1.0f; + +		an *= 2.f; +		an += 1.0f; + +		gGL.begin(LLRender::TRIANGLE_STRIP); +		gGL.color4fv(col_edge.mV); +		gGL.vertex3f(-x*a, -y*a, z); +		gGL.color4fv(col_edge_next.mV); +		gGL.vertex3f(-x*an, -y*an, z_next); + +		gGL.color4fv(c_col.mV); +		gGL.vertex3f(0, 0, z); +		gGL.color4fv(col_next.mV); +		gGL.vertex3f(0, 0, z_next); + +		gGL.color4fv(col_edge.mV); +		gGL.vertex3f(x*a,y*a,z); +		gGL.color4fv(col_edge_next.mV); +		gGL.vertex3f(x*an,y*an,z_next); +		gGL.end(); +	} +	gGL.popMatrix(); +}  // static   void LLTracker::renderBeacon(LLVector3d pos_global,  -							 const LLColor4& color,  +							 const LLColor4& color, +							 const LLColor4& color_under,  							 LLHUDText* hud_textp,   							 const std::string& label )  { @@ -497,9 +573,11 @@ void LLTracker::renderBeacon(LLVector3d pos_global,  	}  	LLColor4 fogged_color = color_frac * color + (1 - color_frac)*gSky.getFogColor(); +	LLColor4 fogged_color_under = color_frac * color_under + (1 - color_frac) * gSky.getFogColor();  	F32 FADE_DIST = 3.f;  	fogged_color.mV[3] = llmax(0.2f, llmin(0.5f,(dist-FADE_DIST)/FADE_DIST)); +	fogged_color_under.mV[3] = llmax(0.2f, llmin(0.5f,(dist-FADE_DIST)/FADE_DIST));  	LLVector3 pos_agent = gAgent.getPosAgentFromGlobal(pos_global); @@ -508,64 +586,8 @@ void LLTracker::renderBeacon(LLVector3d pos_global,  	LLGLDisable cull_face(GL_CULL_FACE);  	LLGLDepthTest gls_depth(GL_TRUE, GL_FALSE); -	 -	gGL.matrixMode(LLRender::MM_MODELVIEW); -	gGL.pushMatrix(); -	{ -		gGL.translatef(pos_agent.mV[0], pos_agent.mV[1], pos_agent.mV[2]); -		 -		draw_shockwave(1024.f, gRenderStartTime.getElapsedTimeF32(), 32, fogged_color); - -		gGL.color4fv(fogged_color.mV); -		const U32 BEACON_VERTS = 256; -		const F32 step = 1024.0f/BEACON_VERTS; -		 -		LLVector3 x_axis = LLViewerCamera::getInstance()->getLeftAxis(); -		F32 t = gRenderStartTime.getElapsedTimeF32(); -		F32 dr = dist/LLViewerCamera::getInstance()->getFar(); -		 -		for (U32 i = 0; i < BEACON_VERTS; i++) -		{ -			F32 x = x_axis.mV[0]; -			F32 y = x_axis.mV[1]; -			 -			F32 z = i * step; -			F32 z_next = (i+1)*step; -		 -			F32 a = pulse_func(t, z); -			F32 an = pulse_func(t, z_next); -			 -			LLColor4 c_col = fogged_color + LLColor4(a,a,a,a); -			LLColor4 col_next = fogged_color + LLColor4(an,an,an,an); -			LLColor4 col_edge = fogged_color * LLColor4(a,a,a,0.0f); -			LLColor4 col_edge_next = fogged_color * LLColor4(an,an,an,0.0f); -			 -			a *= 2.f; -			a += 1.0f+dr; -			 -			an *= 2.f; -			an += 1.0f+dr; -		 -			gGL.begin(LLRender::TRIANGLE_STRIP); -			gGL.color4fv(col_edge.mV); -			gGL.vertex3f(-x*a, -y*a, z); -			gGL.color4fv(col_edge_next.mV); -			gGL.vertex3f(-x*an, -y*an, z_next); -			 -			gGL.color4fv(c_col.mV); -			gGL.vertex3f(0, 0, z); -			gGL.color4fv(col_next.mV); -			gGL.vertex3f(0, 0, z_next); -			 -			gGL.color4fv(col_edge.mV); -			gGL.vertex3f(x*a,y*a,z); -			gGL.color4fv(col_edge_next.mV); -			gGL.vertex3f(x*an,y*an,z_next); -			 -			gGL.end(); -		} -	} -	gGL.popMatrix(); +	LLTracker::drawBeacon(pos_agent, "DOWN", fogged_color, dist); +	LLTracker::drawBeacon(pos_agent, "UP", fogged_color_under, dist);  	std::string text;  	text = llformat( "%.0f m", to_vec.magVec()); diff --git a/indra/newview/lltracker.h b/indra/newview/lltracker.h index 8e916af315..d8d5803787 100755 --- a/indra/newview/lltracker.h +++ b/indra/newview/lltracker.h @@ -108,8 +108,10 @@ protected:  	LLTracker();  	~LLTracker(); +	static void drawBeacon(LLVector3 pos_agent, std::string direction, LLColor4 fogged_color, F32 dist);  	static void renderBeacon( LLVector3d pos_global,   							 const LLColor4& color,  +							 const LLColor4& color_under,  							 LLHUDText* hud_textp,   							 const std::string& label ); diff --git a/indra/newview/skins/default/colors.xml b/indra/newview/skins/default/colors.xml index 1587e6124d..3ebb64e3fa 100755 --- a/indra/newview/skins/default/colors.xml +++ b/indra/newview/skins/default/colors.xml @@ -514,6 +514,9 @@       name="MapTrackColor"       reference="Red" />      <color +     name="MapTrackColorUnder" +     reference="Blue" /> +    <color       name="MapTrackDisabledColor"       value="0.5 0 0 1" />      <color diff --git a/indra/newview/skins/default/textures/textures.xml b/indra/newview/skins/default/textures/textures.xml index bb891996c9..94c187e21a 100755 --- a/indra/newview/skins/default/textures/textures.xml +++ b/indra/newview/skins/default/textures/textures.xml @@ -153,8 +153,6 @@ with the same filename but different name    <texture name="Command_Speak_Icon"        file_name="toolbar_icons/speak.png"        preload="true" />    <texture name="Command_View_Icon"         file_name="toolbar_icons/view.png"         preload="true" />    <texture name="Command_Voice_Icon"        file_name="toolbar_icons/nearbyvoice.png"  preload="true" /> -  <texture name="Command_Highlighting_Icon" file_name="toolbar_icons/highlighting.png" preload="true" scale.left="4" scale.top="19" scale.right="28" scale.bottom="4" /> -  <texture name="Command_Highlighting_Selected_Icon" file_name="toolbar_icons/highlighting_selected.png" preload="true" scale.left="4" scale.top="19" scale.right="28" scale.bottom="4" />    <texture name="Caret_Bottom_Icon"         file_name="toolbar_icons/caret_bottom.png" preload="true" scale.left="1" scale.top="23" scale.right="15" scale.bottom="1" />    <texture name="Caret_Right_Icon"          file_name="toolbar_icons/caret_right.png"  preload="true" scale.left="5" scale.top="15" scale.right="28" scale.bottom="1" />    <texture name="Caret_Left_Icon"           file_name="toolbar_icons/caret_left.png"   preload="true" scale.left="1" scale.top="15" scale.right="23" scale.bottom="1" /> @@ -165,7 +163,6 @@ with the same filename but different name    <texture name="ComboButton_On" file_name="widgets/ComboButton_On.png" preload="true" scale.left="2" scale.top="19" scale.right="18" scale.bottom="2" />    <texture name="ComboButton_Off" file_name="widgets/ComboButton_Off.png" preload="true" scale.left="2" scale.top="19" scale.right="18" scale.bottom="2" />    <texture name="ComboButton_UpOff" file_name="widgets/ComboButton_UpOff.png" preload="true" scale.left="2" scale.top="19" scale.right="18" scale.bottom="2" /> -  <texture name="ComboButton_Hovered" file_name="widgets/ComboButton_Hover.png" preload="true" scale.left="2" scale.top="19" scale.right="18" scale.bottom="2" />    <texture name="Container" file_name="containers/Container.png" preload="false" /> diff --git a/indra/newview/skins/default/xui/en/floater_im_session.xml b/indra/newview/skins/default/xui/en/floater_im_session.xml index 43d0f2fb18..7076de55e3 100755 --- a/indra/newview/skins/default/xui/en/floater_im_session.xml +++ b/indra/newview/skins/default/xui/en/floater_im_session.xml @@ -210,7 +210,7 @@                       default_tab_group="3"                       tab_group="2"                       name="right_part_holder" -                     min_width="172"> +                     min_width="230">                          <layout_stack                           animate="true"                            default_tab_group="2" diff --git a/indra/newview/skins/default/xui/en/floater_model_preview.xml b/indra/newview/skins/default/xui/en/floater_model_preview.xml index 5e92a12251..9fa416012c 100755 --- a/indra/newview/skins/default/xui/en/floater_model_preview.xml +++ b/indra/newview/skins/default/xui/en/floater_model_preview.xml @@ -212,11 +212,11 @@               follows="top|left"               height="20"               layout="topleft" -             left="215" +             left="222"               name="lod_mode_high"               top_delta="0"               visible="false" -             width="135"> +             width="130">                  <item                   name="Triangle Limit"                   value="Triangle Limit" /> @@ -230,7 +230,7 @@               height="20"               increment="10"               layout="topleft" -             left_pad="5" +             left_pad="3"               name="lod_triangle_limit_high"               visible="false"               width="55" /> @@ -342,10 +342,10 @@               follows="top|left"               height="20"               layout="topleft" -             left="215" +             left="222"               name="lod_mode_medium"               top_delta="0" -             width="135"> +             width="130">                  <item                   name="Triangle Limit"                   value="Triangle Limit" /> @@ -359,7 +359,7 @@               height="20"               increment="10"               layout="topleft" -             left_pad="5" +             left_pad="3"               name="lod_triangle_limit_medium"               width="55" />              <spinner @@ -470,10 +470,10 @@               follows="top|left"               height="20"               layout="topleft" -             left="215" +             left="222"               name="lod_mode_low"               top_delta="0" -             width="135"> +             width="130">                  <item                   name="Triangle Limit"                   value="Triangle Limit" /> @@ -487,7 +487,7 @@               height="20"               increment="10"               layout="topleft" -             left_pad="5" +             left_pad="3"               name="lod_triangle_limit_low"               width="55" />              <spinner @@ -598,10 +598,10 @@               follows="top|left"               height="20"               layout="topleft" -             left="215" +             left="222"               name="lod_mode_lowest"               top_delta="0" -             width="135"> +             width="130">                  <item                   name="Triangle Limit"                   value="Triangle Limit" /> @@ -615,7 +615,7 @@               height="20"               increment="10"               layout="topleft" -             left_pad="5" +             left_pad="3"               name="lod_triangle_limit_lowest"               width="55" />              <spinner diff --git a/indra/newview/skins/default/xui/en/menu_inventory.xml b/indra/newview/skins/default/xui/en/menu_inventory.xml index 512205ba43..6fa45d7d66 100755 --- a/indra/newview/skins/default/xui/en/menu_inventory.xml +++ b/indra/newview/skins/default/xui/en/menu_inventory.xml @@ -552,6 +552,14 @@           function="Inventory.DoToSelected"           parameter="about" />      </menu_item_call> +   <menu_item_call +     label="Show on Map" +     layout="topleft" +     name="show_on_map"> +        <menu_item_call.on_click +         function="Inventory.DoToSelected" +         parameter="show_on_map" /> +    </menu_item_call>      <menu_item_separator       layout="topleft"        name="Animation Separator" /> diff --git a/indra/newview/skins/default/xui/en/menu_teleport_history_item.xml b/indra/newview/skins/default/xui/en/menu_teleport_history_item.xml index 0160d52b17..f939c3996d 100755 --- a/indra/newview/skins/default/xui/en/menu_teleport_history_item.xml +++ b/indra/newview/skins/default/xui/en/menu_teleport_history_item.xml @@ -17,7 +17,7 @@           function="TeleportHistory.MoreInformation" />      </menu_item_call>      <menu_item_call -     label="Copy to Clipboard" +     label="Copy SLurl"       layout="topleft"       name="CopyToClipboard">          <menu_item_call.on_click diff --git a/indra/newview/skins/default/xui/en/panel_people.xml b/indra/newview/skins/default/xui/en/panel_people.xml index 3caf2b3d7e..d2caf63052 100755 --- a/indra/newview/skins/default/xui/en/panel_people.xml +++ b/indra/newview/skins/default/xui/en/panel_people.xml @@ -66,8 +66,7 @@ Looking for people to hang out with? Try the [secondlife:///app/worldmap World M       tab_position="top"       top="0"       halign="center" -     right="-5" -     use_highlighting_on_hover="true"> +     right="-5">  <!-- ================================= NEARBY tab =========================== --> @@ -507,6 +506,7 @@ Looking for people to hang out with? Try the [secondlife:///app/worldmap World M                  right="-10"                  top_pad="4"                  left="3" +                use_ellipses="true"                  name="groupcount">                You belong to [COUNT] groups, and can join [REMAINING] more.              </text> diff --git a/indra/newview/skins/default/xui/en/widgets/location_input.xml b/indra/newview/skins/default/xui/en/widgets/location_input.xml index 4ea1aa6efb..61ec046649 100755 --- a/indra/newview/skins/default/xui/en/widgets/location_input.xml +++ b/indra/newview/skins/default/xui/en/widgets/location_input.xml @@ -150,7 +150,6 @@    <combo_button  		name="Location History"                  label="" -                image_hover_unselected="ComboButton_Hovered"                  pad_right="0"/>    <combo_list  	      bg_writeable_color="MenuDefaultBgColor" diff --git a/indra/newview/skins/default/xui/en/widgets/tab_container.xml b/indra/newview/skins/default/xui/en/widgets/tab_container.xml index 9559be214a..0586119681 100755 --- a/indra/newview/skins/default/xui/en/widgets/tab_container.xml +++ b/indra/newview/skins/default/xui/en/widgets/tab_container.xml @@ -24,26 +24,17 @@ label_pad_left - padding to the left of tab button labels                 tab_bottom_image_unselected="Toolbar_Left_Off"                 tab_bottom_image_selected="Toolbar_Left_Selected"                 tab_left_image_unselected="SegmentedBtn_Left_Disabled" -               tab_left_image_selected="SegmentedBtn_Left_Selected_Over" -               tab_top_image_hovered="TabTop_Left_Selected" -               tab_button_image_hovered="Toolbar_Left_Selected" -               tab_left_image_hovered="SegmentedBtn_Left_Selected_Over"/> +               tab_left_image_selected="SegmentedBtn_Left_Selected_Over"/>    <middle_tab tab_top_image_unselected="TabTop_Middle_Off"                 tab_top_image_selected="TabTop_Middle_Selected"                 tab_bottom_image_unselected="Toolbar_Middle_Off"                 tab_bottom_image_selected="Toolbar_Middle_Selected"                 tab_left_image_unselected="SegmentedBtn_Left_Disabled" -               tab_left_image_selected="SegmentedBtn_Left_Selected_Over" -               tab_top_image_hovered="TabTop_Middle_Selected" -               tab_button_image_hovered="Toolbar_Middle_Selected" -               tab_left_image_hovered="SegmentedBtn_Left_Selected_Over"/> +               tab_left_image_selected="SegmentedBtn_Left_Selected_Over"/>    <last_tab tab_top_image_unselected="TabTop_Right_Off"                 tab_top_image_selected="TabTop_Right_Selected"                 tab_bottom_image_unselected="Toolbar_Right_Off"                 tab_bottom_image_selected="Toolbar_Right_Selected"                 tab_left_image_unselected="SegmentedBtn_Left_Disabled" -               tab_left_image_selected="SegmentedBtn_Left_Selected_Over" -               tab_top_image_hovered="TabTop_Right_Selected" -               tab_button_image_hovered="Toolbar_Right_Selected" -               tab_left_image_hovered="SegmentedBtn_Left_Selected_Over"/> +               tab_left_image_selected="SegmentedBtn_Left_Selected_Over"/>  </tab_container> | 
