diff options
| -rw-r--r-- | indra/cmake/APR.cmake | 9 | ||||
| -rw-r--r-- | indra/cmake/GStreamer010Plugin.cmake | 1 | ||||
| -rw-r--r-- | indra/newview/app_settings/settings.xml | 18 | ||||
| -rw-r--r-- | indra/newview/llbottomtray.cpp | 12 | ||||
| -rw-r--r-- | indra/newview/llbottomtray.h | 3 | ||||
| -rw-r--r-- | indra/newview/llcallingcard.cpp | 15 | ||||
| -rw-r--r-- | indra/newview/llfloaterinventory.cpp | 3 | ||||
| -rw-r--r-- | indra/newview/llfloaterpreference.cpp | 3 | ||||
| -rw-r--r-- | indra/newview/llinspectavatar.cpp | 8 | ||||
| -rw-r--r-- | indra/newview/llinventorypanel.cpp | 6 | ||||
| -rw-r--r-- | indra/newview/llnotificationtiphandler.cpp | 45 | ||||
| -rw-r--r-- | indra/newview/llstartup.cpp | 4 | ||||
| -rw-r--r-- | indra/newview/llurldispatcher.cpp | 11 | ||||
| -rw-r--r-- | indra/newview/llviewermenu.cpp | 22 | 
14 files changed, 139 insertions, 21 deletions
diff --git a/indra/cmake/APR.cmake b/indra/cmake/APR.cmake index f4706dd4f2..180504d286 100644 --- a/indra/cmake/APR.cmake +++ b/indra/cmake/APR.cmake @@ -54,7 +54,10 @@ else (STANDALONE)    endif (WINDOWS)    set(APR_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/include/apr-1) -  if (LINUX AND VIEWER) -    list(APPEND APRUTIL_LIBRARIES ${DB_LIBRARIES} uuid) -  endif (LINUX AND VIEWER) +  if (LINUX) +    if (VIEWER) +      list(APPEND APRUTIL_LIBRARIES ${DB_LIBRARIES} uuid) +    endif (VIEWER) +    list(APPEND APRUTIL_LIBRARIES ${DB_LIBRARIES} rt) +  endif (LINUX)  endif (STANDALONE) diff --git a/indra/cmake/GStreamer010Plugin.cmake b/indra/cmake/GStreamer010Plugin.cmake index 0d334837d4..0ca432da18 100644 --- a/indra/cmake/GStreamer010Plugin.cmake +++ b/indra/cmake/GStreamer010Plugin.cmake @@ -24,7 +24,6 @@ elseif (LINUX)        gmodule-2.0        dl        gthread-2.0 -      rt        glib-2.0        )  endif (STANDALONE) diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index b1bf132f43..1a8a6ee23d 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -4,13 +4,13 @@      <key>AFKTimeout</key>      <map>        <key>Comment</key> -      <string>Time before automatically setting AFK (away from keyboard) mode (seconds)</string> +      <string>Time before automatically setting AFK (away from keyboard) mode (seconds, 0=never)</string>        <key>Persist</key>        <integer>1</integer>        <key>Type</key>        <string>S32</string>        <key>Value</key> -      <real>300.0</real> +      <real>0</real>      </map>      <key>AdvanceSnapshot</key>      <map> @@ -197,7 +197,7 @@        <key>Type</key>        <string>F32</string>        <key>Value</key> -      <real>1.0</real> +      <real>0.5</real>      </map>      <key>AudioLevelMic</key>      <map> @@ -219,7 +219,7 @@        <key>Type</key>        <string>F32</string>        <key>Value</key> -      <real>1.0</real> +      <real>0.5</real>      </map>      <key>AudioLevelRolloff</key>      <map> @@ -241,7 +241,7 @@        <key>Type</key>        <string>F32</string>        <key>Value</key> -      <real>1.0</real> +      <real>0.5</real>      </map>      <key>AudioLevelUI</key>      <map> @@ -4328,13 +4328,13 @@      <key>LoginLocation</key>      <map>        <key>Comment</key> -      <string>Login at same location you last logged out</string> +      <string>Login location ('last', 'home')</string>        <key>Persist</key>        <integer>1</integer>        <key>Type</key>        <string>String</string>        <key>Value</key> -      <string>last</string> +      <string>home</string>      </map>      <key>LoginPage</key>      <map> @@ -5554,7 +5554,7 @@  	<key>PreferredMaturity</key>      <map>        <key>Comment</key> -      <string>Setting for the user's preferred maturity level.</string> +      <string>Setting for the user's preferred maturity level (consts in indra_constants.h)</string>        <key>Persist</key>        <integer>1</integer>        <key>Type</key> @@ -10114,7 +10114,7 @@        <key>Type</key>        <string>Boolean</string>        <key>Value</key> -      <integer>0</integer> +      <integer>1</integer>      </map>      <key>UseFreezeFrame</key>      <map> diff --git a/indra/newview/llbottomtray.cpp b/indra/newview/llbottomtray.cpp index 95a946cee8..c9082da9a9 100644 --- a/indra/newview/llbottomtray.cpp +++ b/indra/newview/llbottomtray.cpp @@ -422,6 +422,18 @@ void LLBottomTray::showSnapshotButton(BOOL visible)  	setTrayButtonVisibleIfPossible(RS_BUTTON_SNAPSHOT, visible);  } +void LLBottomTray::toggleMovementControls() +{ +	if (mMovementButton) +		mMovementButton->onCommit(); +} + +void LLBottomTray::toggleCameraControls() +{ +	if (mCamButton) +		mCamButton->onCommit(); +} +  BOOL LLBottomTray::postBuild()  { diff --git a/indra/newview/llbottomtray.h b/indra/newview/llbottomtray.h index 2eeb0c0017..18c14e5e19 100644 --- a/indra/newview/llbottomtray.h +++ b/indra/newview/llbottomtray.h @@ -94,6 +94,9 @@ public:  	void showCameraButton(BOOL visible);  	void showSnapshotButton(BOOL visible); +	void toggleMovementControls(); +	void toggleCameraControls(); +  	void onMouselookModeIn();  	void onMouselookModeOut(); diff --git a/indra/newview/llcallingcard.cpp b/indra/newview/llcallingcard.cpp index c3bda26aac..79a2631c31 100644 --- a/indra/newview/llcallingcard.cpp +++ b/indra/newview/llcallingcard.cpp @@ -682,17 +682,24 @@ void LLAvatarTracker::processNotify(LLMessageSystem* msg, bool online)  		}  		BOOL notify = FALSE;  		LLSD args; +		LLSD payload;  		for(S32 i = 0; i < count; ++i)  		{  			msg->getUUIDFast(_PREHASH_AgentBlock, _PREHASH_AgentID, agent_id, i); +			payload["FROM_ID"] = agent_id;  			info = getBuddyInfo(agent_id);  			if(info)  			{  				setBuddyOnline(agent_id,online);  				if(chat_notify)  				{ -					notify = TRUE; -					args["NAME_SLURL"] = LLSLURL::buildCommand("agent", agent_id, "about"); +					std::string first, last; +					if(gCacheName->getName(agent_id, first, last)) +					{ +						notify = TRUE; +						args["FIRST"] = first; +						args["LAST"] = last; +					}  				}  			}  			else @@ -719,13 +726,13 @@ void LLAvatarTracker::processNotify(LLMessageSystem* msg, bool online)  				notification =  					LLNotificationsUtil::add("FriendOnline",  											 args, -											 LLSD().with("respond_on_mousedown", TRUE), +											 payload.with("respond_on_mousedown", TRUE),  											 boost::bind(&LLAvatarActions::startIM, agent_id));  			}  			else  			{  				notification = -					LLNotificationsUtil::add("FriendOffline", args); +					LLNotificationsUtil::add("FriendOffline", args, payload);  			}  			// If there's an open IM session with this agent, send a notification there too. diff --git a/indra/newview/llfloaterinventory.cpp b/indra/newview/llfloaterinventory.cpp index e62e2c99a7..844f0ac509 100644 --- a/indra/newview/llfloaterinventory.cpp +++ b/indra/newview/llfloaterinventory.cpp @@ -41,6 +41,7 @@  #include "llpanelmaininventory.h"  #include "llresmgr.h"  #include "llviewerfoldertype.h" +#include "lltransientfloatermgr.h"  ///----------------------------------------------------------------------------  /// LLFloaterInventory @@ -49,10 +50,12 @@  LLFloaterInventory::LLFloaterInventory(const LLSD& key)  	: LLFloater(key)  { +	LLTransientFloaterMgr::getInstance()->addControlView(this);  }  LLFloaterInventory::~LLFloaterInventory()  { +	LLTransientFloaterMgr::getInstance()->removeControlView(this);  }  BOOL LLFloaterInventory::postBuild() diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp index 3e7bf51f4c..e5c8ddf0a4 100644 --- a/indra/newview/llfloaterpreference.cpp +++ b/indra/newview/llfloaterpreference.cpp @@ -511,7 +511,8 @@ void LLFloaterPreference::onOpen(const LLSD& key)  	// if we have no agent, we can't let them choose anything  	// if we have an agent, then we only let them choose if they have a choice  	bool can_choose_maturity = -		gAgent.getID().notNull() &&	(gAgent.isMature() || gAgent.isGodlike()); +		gAgent.getID().notNull() && +		(gAgent.isMature() || gAgent.isGodlike());  	LLComboBox* maturity_combo = getChild<LLComboBox>("maturity_desired_combobox"); diff --git a/indra/newview/llinspectavatar.cpp b/indra/newview/llinspectavatar.cpp index b2cdc0738f..83b99f1b27 100644 --- a/indra/newview/llinspectavatar.cpp +++ b/indra/newview/llinspectavatar.cpp @@ -120,6 +120,7 @@ private:  	void onClickTeleport();  	void onClickInviteToGroup();  	void onClickPay(); +	void onClickShare();  	void onToggleMute();  	void onClickReport();  	void onClickFreeze(); @@ -213,6 +214,7 @@ LLInspectAvatar::LLInspectAvatar(const LLSD& sd)  	mCommitCallbackRegistrar.add("InspectAvatar.Teleport",	boost::bind(&LLInspectAvatar::onClickTeleport, this));	  	mCommitCallbackRegistrar.add("InspectAvatar.InviteToGroup",	boost::bind(&LLInspectAvatar::onClickInviteToGroup, this));	  	mCommitCallbackRegistrar.add("InspectAvatar.Pay",	boost::bind(&LLInspectAvatar::onClickPay, this));	 +	mCommitCallbackRegistrar.add("InspectAvatar.Share",	boost::bind(&LLInspectAvatar::onClickShare, this));  	mCommitCallbackRegistrar.add("InspectAvatar.ToggleMute",	boost::bind(&LLInspectAvatar::onToggleMute, this));	  	mCommitCallbackRegistrar.add("InspectAvatar.Freeze",  		boost::bind(&LLInspectAvatar::onClickFreeze, this));	 @@ -678,6 +680,12 @@ void LLInspectAvatar::onClickPay()  	closeFloater();  } +void LLInspectAvatar::onClickShare() +{ +	LLAvatarActions::share(mAvatarID); +	closeFloater(); +} +  void LLInspectAvatar::onToggleMute()  {  	LLMute mute(mAvatarID, mAvatarName, LLMute::AGENT); diff --git a/indra/newview/llinventorypanel.cpp b/indra/newview/llinventorypanel.cpp index ca9b942629..048ed10886 100644 --- a/indra/newview/llinventorypanel.cpp +++ b/indra/newview/llinventorypanel.cpp @@ -290,8 +290,12 @@ void LLInventoryPanel::modelChanged(U32 mask)  				if(bridge)  				{	// Clear the display name first, so it gets properly re-built during refresh()  					bridge->clearDisplayName(); + +					view_item->refresh(); + +					// Set the new tooltip with the new display name. +					view_item->setToolTip(bridge->getDisplayName());  				} -				view_item->refresh();  			}  		} diff --git a/indra/newview/llnotificationtiphandler.cpp b/indra/newview/llnotificationtiphandler.cpp index 83a2215ac6..c55c8d6221 100644 --- a/indra/newview/llnotificationtiphandler.cpp +++ b/indra/newview/llnotificationtiphandler.cpp @@ -43,6 +43,37 @@  using namespace LLNotificationsUI; +class LLOnalineStatusToast : public LLToastPanel +{ +public: + +	struct Params +	{ +		LLNotificationPtr	notification; +		LLUUID				avatar_id; +		std::string			message; + +		Params() {} +	}; + +	LLOnalineStatusToast(Params& p) : LLToastPanel(p.notification) +	{ +		LLUICtrlFactory::getInstance()->buildPanel(this, "panel_online_status.xml"); + +		childSetValue("avatar_icon", p.avatar_id); +		childSetValue("message", p.message); + +		if (p.notification->getPayload().has("respond_on_mousedown")  +			&& p.notification->getPayload()["respond_on_mousedown"] ) +		{ +			setMouseDownCallback(boost::bind(&LLNotification::respond, p.notification,  +				p.notification->getResponseTemplate())); +		} + +		// set line max count to 2 in case of a very long name +		snapToMessageHeight(getChild<LLTextBox>("message"), 2); +	} +};  //--------------------------------------------------------------------------  LLTipHandler::LLTipHandler(e_notification_type type, const LLSD& id) @@ -114,7 +145,19 @@ bool LLTipHandler::processNotification(const LLSD& notify)  			LLHandlerUtil::spawnIMSession(name, from_id);  		} -		LLToastNotifyPanel* notify_box = new LLToastNotifyPanel(notification); +		LLToastPanel* notify_box = NULL; +		if("FriendOffline" == notification->getName() || "FriendOnline" == notification->getName()) +		{ +			LLOnalineStatusToast::Params p; +			p.notification = notification; +			p.message = notification->getMessage(); +			p.avatar_id = notification->getPayload()["FROM_ID"]; +			notify_box = new LLOnalineStatusToast(p); +		} +		else +		{ +			notify_box = new LLToastNotifyPanel(notification); +		}  		LLToast::Params p;  		p.notif_id = notification->getID(); diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp index 136989166f..fa07278cb9 100644 --- a/indra/newview/llstartup.cpp +++ b/indra/newview/llstartup.cpp @@ -2899,7 +2899,9 @@ bool process_login_success_response()  	text = response["agent_region_access"].asString();  	if (!text.empty())  	{ -		int preferredMaturity = LLAgent::convertTextToMaturity(text[0]); +		U32 preferredMaturity = +			llmin((U32)LLAgent::convertTextToMaturity(text[0]), +			      gSavedSettings.getU32("PreferredMaturity"));  		gSavedSettings.setU32("PreferredMaturity", preferredMaturity);  	}  	// During the AO transition, this flag will be true. Then the flag will diff --git a/indra/newview/llurldispatcher.cpp b/indra/newview/llurldispatcher.cpp index 0b6bd4b401..257afabdcc 100644 --- a/indra/newview/llurldispatcher.cpp +++ b/indra/newview/llurldispatcher.cpp @@ -223,6 +223,17 @@ void LLURLDispatcherImpl::regionNameCallback(U64 region_handle, const std::strin  	S32 z = 0;  	LLURLSimString::parse(sim_string, ®ion_name, &x, &y, &z); +	// Invalid location? EXT-5380 +	if (!region_handle) +	{ +		if(!region_name.empty() && !LLStringOps::isDigit(region_name.c_str()[0]))// it is no sense to search an empty region_name or when the  region_name  starts with digits +		{ +			// may be an user types incorrect region name, let's help him to find a correct one  +			LLFloaterReg::showInstance("search", LLSD().with("category", "places").with("id", LLSD(region_name))); +		} +		//*TODO: add notification about invalid region_name  +		return; +	}  	LLVector3 local_pos;  	local_pos.mV[VX] = (F32)x;  	local_pos.mV[VY] = (F32)y; diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index 24a788aaed..989cfae464 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -44,6 +44,7 @@  #include "llagent.h"  #include "llagentwearables.h"  #include "llagentpilot.h" +#include "llbottomtray.h"  #include "llcompilequeue.h"  #include "llconsole.h"  #include "lldebugview.h" @@ -7631,6 +7632,24 @@ class LLWorldDayCycle : public view_listener_t  	}  }; +class LLWorldToggleMovementControls : public view_listener_t +{ +	bool handleEvent(const LLSD& userdata) +	{ +		LLBottomTray::getInstance()->toggleMovementControls(); +		return true; +	} +}; + +class LLWorldToggleCameraControls : public view_listener_t +{ +	bool handleEvent(const LLSD& userdata) +	{ +		LLBottomTray::getInstance()->toggleCameraControls(); +		return true; +	} +}; +  void show_navbar_context_menu(LLView* ctrl, S32 x, S32 y)  {  	static LLMenuGL*	show_navbar_context_menu = LLUICtrlFactory::getInstance()->createFromFile<LLMenuGL>("menu_hide_navbar.xml", @@ -7750,6 +7769,9 @@ void initialize_menus()  	view_listener_t::addMenu(new LLWorldPostProcess(), "World.PostProcess");  	view_listener_t::addMenu(new LLWorldDayCycle(), "World.DayCycle"); +	view_listener_t::addMenu(new LLWorldToggleMovementControls(), "World.Toggle.MovementControls"); +	view_listener_t::addMenu(new LLWorldToggleCameraControls(), "World.Toggle.CameraControls"); +  	// Tools menu  	view_listener_t::addMenu(new LLToolsSelectTool(), "Tools.SelectTool");  	view_listener_t::addMenu(new LLToolsSelectOnlyMyObjects(), "Tools.SelectOnlyMyObjects");  | 
