diff options
| author | James Cook <james@lindenlab.com> | 2009-11-20 14:45:51 -0800 | 
|---|---|---|
| committer | James Cook <james@lindenlab.com> | 2009-11-20 14:45:51 -0800 | 
| commit | cbbb107d1f71f8a8474abbe7e1747a4332f6aa0e (patch) | |
| tree | 15d8abf1822a31755783b2447abd5afb33a8f3ce /indra | |
| parent | 3bb86f91bc345f74057debe1f8f680098895a40e (diff) | |
| parent | 67c832d94b53fb5d32ec27eebf7f57b668e899db (diff) | |
merge
Diffstat (limited to 'indra')
30 files changed, 703 insertions, 565 deletions
| diff --git a/indra/llcommon/llclickaction.h b/indra/llcommon/llclickaction.h index 8048724575..d4ffbf8634 100644 --- a/indra/llcommon/llclickaction.h +++ b/indra/llcommon/llclickaction.h @@ -33,7 +33,7 @@  #ifndef LL_LLCLICKACTION_H  #define LL_LLCLICKACTION_H - +// DO NOT CHANGE THE SEQUENCE OF THIS LIST!!  const U8 CLICK_ACTION_NONE = 0;  const U8 CLICK_ACTION_TOUCH = 0;  const U8 CLICK_ACTION_SIT = 1; @@ -42,5 +42,6 @@ const U8 CLICK_ACTION_PAY = 3;  const U8 CLICK_ACTION_OPEN = 4;  const U8 CLICK_ACTION_PLAY = 5;  const U8 CLICK_ACTION_OPEN_MEDIA = 6; - +const U8 CLICK_ACTION_ZOOM = 7; +// DO NOT CHANGE THE SEQUENCE OF THIS LIST!!  #endif diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp index 2a0dcaf333..bf965e8e28 100644 --- a/indra/llui/llfloater.cpp +++ b/indra/llui/llfloater.cpp @@ -2526,8 +2526,12 @@ void LLFloaterView::pushVisibleAll(BOOL visible, const skip_list_t& skip_list)  void LLFloaterView::popVisibleAll(const skip_list_t& skip_list)  { -	for (child_list_const_iter_t child_iter = getChildList()->begin(); -		 child_iter != getChildList()->end(); ++child_iter) +	// make a copy of the list since some floaters change their +	// order in the childList when changing visibility. +	child_list_t child_list_copy = *getChildList(); + +	for (child_list_const_iter_t child_iter = child_list_copy.begin(); +		 child_iter != child_list_copy.end(); ++child_iter)  	{  		LLView *view = *child_iter;  		if (skip_list.find(view) == skip_list.end()) diff --git a/indra/llui/lltextbase.cpp b/indra/llui/lltextbase.cpp index cd795282f9..e210667764 100644 --- a/indra/llui/lltextbase.cpp +++ b/indra/llui/lltextbase.cpp @@ -1505,6 +1505,7 @@ void LLTextBase::appendText(const std::string &new_text, bool prepend_newline, c  			LLStyle::Params link_params = style_params;  			link_params.color = match.getColor(); +			link_params.readonly_color =  match.getColor();  			// apply font name from requested style_params  			std::string font_name = LLFontGL::nameFromFont(style_params.font());  			std::string font_size = LLFontGL::sizeFromFont(style_params.font()); diff --git a/indra/lscript/lscript_compile/indra.l b/indra/lscript/lscript_compile/indra.l index 8c891b3e8f..8fe9f5ed29 100644 --- a/indra/lscript/lscript_compile/indra.l +++ b/indra/lscript/lscript_compile/indra.l @@ -613,6 +613,7 @@ extern "C" { int yyerror(const char *fmt, ...); }  "CLICK_ACTION_OPEN"       { count(); yylval.ival = CLICK_ACTION_OPEN; return(INTEGER_CONSTANT); }  "CLICK_ACTION_PLAY"       { count(); yylval.ival = CLICK_ACTION_PLAY; return(INTEGER_CONSTANT); }  "CLICK_ACTION_OPEN_MEDIA" { count(); yylval.ival = CLICK_ACTION_OPEN_MEDIA; return(INTEGER_CONSTANT); } +"CLICK_ACTION_ZOOM"       { count(); yylval.ival = CLICK_ACTION_ZOOM; return(INTEGER_CONSTANT); }  "TEXTURE_BLANK"           { yylval.sval = new char[UUID_STR_LENGTH]; strcpy(yylval.sval, "5748decc-f629-461c-9a36-a35a221fe21f"); return(STRING_CONSTANT); }  "TEXTURE_DEFAULT"         { yylval.sval = new char[UUID_STR_LENGTH]; strcpy(yylval.sval, "89556747-24cb-43ed-920b-47caed15465f"); return(STRING_CONSTANT); } diff --git a/indra/newview/app_settings/keywords.ini b/indra/newview/app_settings/keywords.ini index 5f6fd6e4a7..14025c8061 100644 --- a/indra/newview/app_settings/keywords.ini +++ b/indra/newview/app_settings/keywords.ini @@ -510,6 +510,7 @@ CLICK_ACTION_PAY        Used with llSetClickAction to set pay as the default act  CLICK_ACTION_OPEN       Used with llSetClickAction to set open as the default action when object is clicked  CLICK_ACTION_PLAY       Used with llSetClickAction to set play as the default action when object is clicked  CLICK_ACTION_OPEN_MEDIA Used with llSetClickAction to set open-media as the default action when object is clicked +CLICK_ACTION_ZOOM       Used with llSetClickAction to set zoom in as the default action when object is clicked  TOUCH_INVALID_TEXCOORD  Value returned by llDetectedTouchUV() and llDetectedTouchST() when the touch position is not valid.  TOUCH_INVALID_VECTOR    Value returned by llDetectedTouchPos(), llDetectedTouchNormal(), and llDetectedTouchBinormal() when the touch position is not valid. diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp index fb2ecb3bed..4dd569e2fa 100644 --- a/indra/newview/llagent.cpp +++ b/indra/newview/llagent.cpp @@ -2810,7 +2810,11 @@ void LLAgent::endAnimationUpdateUI()  			LLFloaterReg::restoreVisibleInstances();  #else // Use this for now  			LLFloaterView::skip_list_t skip_list; -			skip_list.insert(LLFloaterReg::findInstance("mini_map")); +			if (LLFloaterReg::findInstance("mini_map")) +			{ +				skip_list.insert(LLFloaterReg::findInstance("mini_map")); +			} +		  			gFloaterView->popVisibleAll(skip_list);  #endif  			mViewsPushed = FALSE; diff --git a/indra/newview/lldateutil.cpp b/indra/newview/lldateutil.cpp index 040fad3c4a..10b7935caf 100644 --- a/indra/newview/lldateutil.cpp +++ b/indra/newview/lldateutil.cpp @@ -37,52 +37,70 @@  #include "lltrans.h"  #include "llui.h" -static S32 age_days_from_date(const std::string& date_string, -							  const LLDate& now) -{ -	// Convert string date to malleable representation -	S32 month, day, year; -	S32 matched = sscanf(date_string.c_str(), "%d/%d/%d", &month, &day, &year); -	if (matched != 3) return S32_MIN; - -	// Create ISO-8601 date string -	std::string iso8601_date_string = -		llformat("%04d-%02d-%02dT00:00:00Z", year, month, day); -	LLDate date(iso8601_date_string); - -	// Correct for the fact that account creation dates are in Pacific time, -	// == UTC - 8 -	F64 date_secs_since_epoch = date.secondsSinceEpoch(); -	date_secs_since_epoch += 8.0 * 60.0 * 60.0; +static S32 DAYS_PER_MONTH_NOLEAP[] = +	{ 31, 28, 21, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; +static S32 DAYS_PER_MONTH_LEAP[] = +	{ 31, 29, 21, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; -	// Convert seconds from epoch to seconds from now -	F64 now_secs_since_epoch = now.secondsSinceEpoch(); -	F64 age_secs = now_secs_since_epoch - date_secs_since_epoch; - -	// We don't care about sub-day times -	const F64 SEC_PER_DAY = 24.0 * 60.0 * 60.0; -	S32 age_days = lltrunc(age_secs / SEC_PER_DAY); - -	return age_days; +static S32 days_from_month(S32 year, S32 month) +{ +	if (year % 4 == 0  +		&& year % 100 != 0) +	{ +		// leap year +		return DAYS_PER_MONTH_LEAP[month]; +	} +	else +	{ +		return DAYS_PER_MONTH_NOLEAP[month]; +	}  }  std::string LLDateUtil::ageFromDate(const std::string& date_string,  									const LLDate& now)  { -	S32 age_days = age_days_from_date(date_string, now); -	if (age_days == S32_MIN) return "???"; +	S32 born_month, born_day, born_year; +	S32 matched = sscanf(date_string.c_str(), "%d/%d/%d", &born_month, &born_day, &born_year); +	if (matched != 3) return "???"; +	LLDate born_date; +	born_date.fromYMDHMS(born_year, born_month, born_day); +	F64 born_date_secs_since_epoch = born_date.secondsSinceEpoch(); +	// Correct for the fact that account creation dates are in Pacific time, +	// == UTC - 8 +	born_date_secs_since_epoch += 8.0 * 60.0 * 60.0; +	born_date.secondsSinceEpoch(born_date_secs_since_epoch); +	// explode out to month/day/year again +	born_date.split(&born_year, &born_month, &born_day); + +	S32 now_year, now_month, now_day; +	now.split(&now_year, &now_month, &now_day); + +	// Do grade-school subtraction, from right-to-left, borrowing from the left +	// when things go negative +	S32 age_days = (now_day - born_day); +	if (age_days < 0) +	{ +		now_month -= 1; +		if (now_month == 0) +		{ +			now_year -= 1; +			now_month = 12; +		} +		age_days += days_from_month(now_year, now_month); +	} +	S32 age_months = (now_month - born_month); +	if (age_months < 0) +	{ +		now_year -= 1; +		age_months += 12; +	} +	S32 age_years = (now_year - born_year);  	// Noun pluralization depends on language  	std::string lang = LLUI::getLanguage();  	// Try for age in round number of years  	LLStringUtil::format_map_t args; -	S32 age_years = age_days / 365; -	age_days = age_days % 365; -	// *NOTE: This is wrong.  Not all months have 30 days, but we don't have a library -	// for relative date arithmetic. :-(  JC -	S32 age_months = age_days / 30; -	age_days = age_days % 30;  	if (age_months > 0 || age_years > 0)  	{ diff --git a/indra/newview/llfloateravatarpicker.cpp b/indra/newview/llfloateravatarpicker.cpp index 8ac7f3fd7e..07bb6f832b 100644 --- a/indra/newview/llfloateravatarpicker.cpp +++ b/indra/newview/llfloateravatarpicker.cpp @@ -42,6 +42,7 @@  #include "llworld.h"  // Linden libraries +#include "llbutton.h"  #include "lllineeditor.h"  #include "llscrolllistctrl.h"  #include "llscrolllistitem.h" @@ -56,7 +57,8 @@ LLFloaterAvatarPicker* LLFloaterAvatarPicker::show(callback_t callback,  												   BOOL closeOnSelect)  {  	// *TODO: Use a key to allow this not to be an effective singleton -	LLFloaterAvatarPicker* floater = LLFloaterReg::showTypedInstance<LLFloaterAvatarPicker>("avatar_picker"); +	LLFloaterAvatarPicker* floater =  +		LLFloaterReg::showTypedInstance<LLFloaterAvatarPicker>("avatar_picker");  	floater->mCallback = callback;  	floater->mCallbackUserdata = userdata; @@ -64,6 +66,15 @@ LLFloaterAvatarPicker* LLFloaterAvatarPicker::show(callback_t callback,  	floater->mNearMeListComplete = FALSE;  	floater->mCloseOnSelect = closeOnSelect; +	if (!closeOnSelect) +	{ +		// Use Select/Close +		std::string select_string = floater->getString("Select"); +		std::string close_string = floater->getString("Close"); +		floater->getChild<LLButton>("ok_btn")->setLabel(select_string); +		floater->getChild<LLButton>("cancel_btn")->setLabel(close_string); +	} +  	return floater;  } @@ -102,10 +113,9 @@ BOOL LLFloaterAvatarPicker::postBuild()  	friends->setDoubleClickCallback(onBtnSelect, this);  	childSetCommitCallback("Friends", onList, this); -	childSetAction("Select", onBtnSelect, this); -	childDisable("Select"); - -	childSetAction("Cancel", onBtnClose, this); +	childSetAction("ok_btn", onBtnSelect, this); +	childDisable("ok_btn"); +	childSetAction("cancel_btn", onBtnClose, this);  	childSetFocus("Edit"); @@ -132,7 +142,7 @@ BOOL LLFloaterAvatarPicker::postBuild()  void LLFloaterAvatarPicker::onTabChanged()  { -	childSetEnabled("Select", visibleItemsSelected()); +	childSetEnabled("ok_btn", visibleItemsSelected());  }  // Destroys the object @@ -234,7 +244,7 @@ void LLFloaterAvatarPicker::onList(LLUICtrl* ctrl, void* userdata)  	LLFloaterAvatarPicker* self = (LLFloaterAvatarPicker*)userdata;  	if (self)  	{ -		self->childSetEnabled("Select", self->visibleItemsSelected()); +		self->childSetEnabled("ok_btn", self->visibleItemsSelected());  	}  } @@ -270,13 +280,13 @@ void LLFloaterAvatarPicker::populateNearMe()  	if (empty)  	{  		childDisable("NearMe"); -		childDisable("Select"); +		childDisable("ok_btn");  		near_me_scroller->setCommentText(getString("no_one_near"));  	}  	else   	{  		childEnable("NearMe"); -		childEnable("Select"); +		childEnable("ok_btn");  		near_me_scroller->selectFirstItem();  		onList(near_me_scroller, this);  		near_me_scroller->setFocus(TRUE); @@ -357,7 +367,7 @@ void LLFloaterAvatarPicker::find()  	getChild<LLScrollListCtrl>("SearchResults")->deleteAllItems();  	getChild<LLScrollListCtrl>("SearchResults")->setCommentText(getString("searching")); -	childSetEnabled("Select", FALSE); +	childSetEnabled("ok_btn", FALSE);  	mNumResultsReturned = 0;  } @@ -414,7 +424,7 @@ void LLFloaterAvatarPicker::processAvatarPickerReply(LLMessageSystem* msg, void*  			map["[TEXT]"] = floater->childGetText("Edit");  			avatar_name = floater->getString("not_found", map);  			search_results->setEnabled(FALSE); -			floater->childDisable("Select"); +			floater->childDisable("ok_btn");  		}  		else  		{ @@ -430,7 +440,7 @@ void LLFloaterAvatarPicker::processAvatarPickerReply(LLMessageSystem* msg, void*  	if (found_one)  	{ -		floater->childEnable("Select"); +		floater->childEnable("ok_btn");  		search_results->selectFirstItem();  		floater->onList(search_results, floater);  		search_results->setFocus(TRUE); diff --git a/indra/newview/llinspectavatar.cpp b/indra/newview/llinspectavatar.cpp index baddd90d46..866669f326 100644 --- a/indra/newview/llinspectavatar.cpp +++ b/indra/newview/llinspectavatar.cpp @@ -39,6 +39,7 @@  #include "llavataractions.h"  #include "llavatarpropertiesprocessor.h"  #include "llcallingcard.h" +#include "lldateutil.h"  #include "llfloaterreporter.h"  #include "llfloaterworldmap.h"  #include "llinspect.h" @@ -351,7 +352,7 @@ void LLInspectAvatar::processAvatarData(LLAvatarData* data)  {  	LLStringUtil::format_map_t args;  	args["[BORN_ON]"] = data->born_on; -	args["[AGE]"] = data->born_on; +	args["[AGE]"] = LLDateUtil::ageFromDate(data->born_on, LLDate::now());  	args["[SL_PROFILE]"] = data->about_text;  	args["[RW_PROFILE"] = data->fl_about_text;  	args["[ACCTTYPE]"] = LLAvatarPropertiesProcessor::accountType(data); diff --git a/indra/newview/llpanelavatar.cpp b/indra/newview/llpanelavatar.cpp index 2254684f21..03401d934f 100644 --- a/indra/newview/llpanelavatar.cpp +++ b/indra/newview/llpanelavatar.cpp @@ -38,6 +38,7 @@  #include "llavatarconstants.h"	// AVATAR_ONLINE  #include "llcallingcard.h"  #include "llcombobox.h" +#include "lldateutil.h"			// ageFromDate()  #include "llimview.h"  #include "lltexteditor.h"  #include "lltexturectrl.h" @@ -466,8 +467,11 @@ void LLPanelAvatarProfile::fillCommonData(const LLAvatarData* avatar_data)  	//remove avatar id from cache to get fresh info  	LLAvatarIconIDCache::getInstance()->remove(avatar_data->avatar_id); - -	childSetValue("register_date", avatar_data->born_on ); +	LLStringUtil::format_map_t args; +	args["[REG_DATE]"] = avatar_data->born_on; +	args["[AGE]"] = LLDateUtil::ageFromDate( avatar_data->born_on, LLDate::now()); +	std::string register_date = getString("RegisterDateFormat", args); +	childSetValue("register_date", register_date );  	childSetValue("sl_description_edit", avatar_data->about_text);  	childSetValue("fl_description_edit",avatar_data->fl_about_text);  	childSetValue("2nd_life_pic", avatar_data->image_id); diff --git a/indra/newview/llpanelobjectinventory.cpp b/indra/newview/llpanelobjectinventory.cpp index b1fbf789c6..dbe0ec3b86 100644 --- a/indra/newview/llpanelobjectinventory.cpp +++ b/indra/newview/llpanelobjectinventory.cpp @@ -1158,10 +1158,17 @@ void LLTaskLSLBridge::openItem()  	{  		return;  	} -	LLLiveLSLEditor* preview = LLFloaterReg::showTypedInstance<LLLiveLSLEditor>("preview_scriptedit", LLSD(mUUID), TAKE_FOCUS_YES); -	if (preview && (object->permModify() || gAgent.isGodlike())) +	if (object->permModify() || gAgent.isGodlike())  	{ -		preview->setObjectID(mPanel->getTaskUUID()); +		LLLiveLSLEditor* preview = LLFloaterReg::showTypedInstance<LLLiveLSLEditor>("preview_scriptedit", LLSD(mUUID), TAKE_FOCUS_YES); +		if (preview) +		{ +			preview->setObjectID(mPanel->getTaskUUID()); +		} +	} +	else +	{	 +		LLNotifications::instance().add("CannotOpenScriptObjectNoMod");  	}  } diff --git a/indra/newview/llpanelpermissions.cpp b/indra/newview/llpanelpermissions.cpp index 0dc010e2e7..d8e0d91d88 100644 --- a/indra/newview/llpanelpermissions.cpp +++ b/indra/newview/llpanelpermissions.cpp @@ -66,6 +66,65 @@  #include "roles_constants.h"  #include "llgroupactions.h" + +U8 string_value_to_click_action(std::string p_value); +std::string click_action_to_string_value( U8 action); + +U8 string_value_to_click_action(std::string p_value) +{ +	if(p_value == "Touch") +	{ +		return CLICK_ACTION_TOUCH; +	} +	if(p_value == "Sit") +	{ +		return CLICK_ACTION_SIT; +	} +	if(p_value == "Buy") +	{ +		return CLICK_ACTION_BUY; +	} +	if(p_value == "Pay") +	{ +		return CLICK_ACTION_PAY; +	} +	if(p_value == "Open") +	{ +		return CLICK_ACTION_OPEN; +	} +	if(p_value == "Zoom") +	{ +		return CLICK_ACTION_ZOOM; +	} +	return CLICK_ACTION_TOUCH; +} + +std::string click_action_to_string_value( U8 action) +{ +	switch (action)  +	{ +		case CLICK_ACTION_TOUCH: +		default:	 +			return "Touch"; +			break; +		case CLICK_ACTION_SIT: +			return "Sit"; +			break; +		case CLICK_ACTION_BUY: +			return "Buy"; +			break; +		case CLICK_ACTION_PAY: +			return "Pay"; +			break; +		case CLICK_ACTION_OPEN: +			return "Open"; +			break; +		case CLICK_ACTION_ZOOM: +			return "Zoom"; +			break; +	} +} +  ///----------------------------------------------------------------------------  /// Class llpanelpermissions  ///---------------------------------------------------------------------------- @@ -774,7 +833,8 @@ void LLPanelPermissions::refresh()  		LLComboBox*	ComboClickAction = getChild<LLComboBox>("clickaction");  		if(ComboClickAction)  		{ -			ComboClickAction->setCurrentByIndex((S32)click_action); +			std::string combo_value = click_action_to_string_value(click_action); +			ComboClickAction->setValue(LLSD(combo_value));  		}  	}  	childSetEnabled("label click action",is_perm_modify && all_volume); @@ -1015,8 +1075,9 @@ void LLPanelPermissions::onCommitClickAction(LLUICtrl* ctrl, void*)  {  	LLComboBox* box = (LLComboBox*)ctrl;  	if (!box) return; - -	U8 click_action = (U8)box->getCurrentIndex(); +	std::string value = box->getValue().asString(); +	U8 click_action = string_value_to_click_action(value); +	  	if (click_action == CLICK_ACTION_BUY)  	{  		LLSaleInfo sale_info; @@ -1028,8 +1089,8 @@ void LLPanelPermissions::onCommitClickAction(LLUICtrl* ctrl, void*)  			// Set click action back to its old value  			U8 click_action = 0;  			LLSelectMgr::getInstance()->selectionGetClickAction(&click_action); -			box->setCurrentByIndex((S32)click_action); - +			std::string item_value = click_action_to_string_value(click_action); +			box->setValue(LLSD(item_value));  			return;  		}  	} diff --git a/indra/newview/lltoolpie.cpp b/indra/newview/lltoolpie.cpp index 9c8fca3552..5ed8dc5fb9 100644 --- a/indra/newview/lltoolpie.cpp +++ b/indra/newview/lltoolpie.cpp @@ -209,6 +209,7 @@ BOOL LLToolPie::pickLeftMouseDownCallback()  			// touch behavior down below...  			break;  		case CLICK_ACTION_SIT: +  			if ((gAgent.getAvatarObject() != NULL) && (!gAgent.getAvatarObject()->isSitting())) // agent not already sitting  			{  				handle_object_sit_or_stand(); @@ -252,7 +253,7 @@ BOOL LLToolPie::pickLeftMouseDownCallback()  					selectionPropertiesReceived();  				}  			} -			return TRUE; +			return TRUE;	  		case CLICK_ACTION_PLAY:  			handle_click_action_play();  			return TRUE; @@ -260,6 +261,29 @@ BOOL LLToolPie::pickLeftMouseDownCallback()  			// mClickActionObject = object;  			handle_click_action_open_media(object);  			return TRUE; +		case CLICK_ACTION_ZOOM: +			{	 +				const F32 PADDING_FACTOR = 2.f; +				LLViewerObject* object = gObjectList.findObject(mPick.mObjectID); +				 +				if (object) +				{ +					gAgent.setFocusOnAvatar(FALSE, ANIMATE); +					 +					LLBBox bbox = object->getBoundingBoxAgent() ; +					F32 angle_of_view = llmax(0.1f, LLViewerCamera::getInstance()->getAspect() > 1.f ? LLViewerCamera::getInstance()->getView() * LLViewerCamera::getInstance()->getAspect() : LLViewerCamera::getInstance()->getView()); +					F32 distance = bbox.getExtentLocal().magVec() * PADDING_FACTOR / atan(angle_of_view); +				 +					LLVector3 obj_to_cam = LLViewerCamera::getInstance()->getOrigin() - bbox.getCenterAgent(); +					obj_to_cam.normVec(); +					 +					LLVector3d object_center_global = gAgent.getPosGlobalFromAgent(bbox.getCenterAgent()); +					gAgent.setCameraPosAndFocusGlobal(object_center_global + LLVector3d(obj_to_cam * distance),  +													  object_center_global,  +													  mPick.mObjectID ); +				} +			} +			return TRUE;			  		default:  			// nothing  			break; @@ -413,6 +437,9 @@ ECursorType cursor_from_object(LLViewerObject* object)  			cursor = UI_CURSOR_HAND;  		}  		break; +	case CLICK_ACTION_ZOOM: +			cursor = UI_CURSOR_TOOLZOOMIN; +			break;			  	case CLICK_ACTION_PLAY:  	case CLICK_ACTION_OPEN_MEDIA:   		cursor = cursor_from_parcel_media(click_action); @@ -551,6 +578,9 @@ BOOL LLToolPie::handleMouseUp(S32 x, S32 y, MASK mask)  		case CLICK_ACTION_BUY:  		case CLICK_ACTION_PAY:  		case CLICK_ACTION_OPEN: +		case CLICK_ACTION_ZOOM: +		case CLICK_ACTION_PLAY: +		case CLICK_ACTION_OPEN_MEDIA:  			// Because these actions open UI dialogs, we won't change  			// the cursor again until the next hover and GL pick over  			// the world.  Keep the cursor an arrow, assuming that  diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index 6a6aa1061d..c67af994a4 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -2733,15 +2733,26 @@ bool enable_object_edit()  	// there.  Eventually this needs to be replaced with code that only   	// lets you edit objects if you have permission to do so (edit perms,  	// group edit, god).  See also lltoolbar.cpp.  JC -	bool enable = true; +	bool enable = false;  	if (gAgent.inPrelude())  	{  		enable = LLViewerParcelMgr::getInstance()->agentCanBuild()  			|| LLSelectMgr::getInstance()->getSelection()->isAttachment(); +	}  +	else if (LLSelectMgr::getInstance()->selectGetModify()) +	{ +		enable = true;  	} +  	return enable;  } +// mutually exclusive - show either edit option or build in menu +bool enable_object_build() +{ +	return !enable_object_edit(); +} +  class LLSelfRemoveAllAttachments : public view_listener_t  {  	bool handleEvent(const LLSD& userdata) @@ -8023,6 +8034,8 @@ void initialize_menus()  	visible.add("VisiblePayObject", boost::bind(&enable_pay_object));  	enable.add("EnablePayAvatar", boost::bind(&enable_pay_avatar));  	enable.add("EnableEdit", boost::bind(&enable_object_edit)); +	visible.add("VisibleBuild", boost::bind(&enable_object_build)); +	visible.add("VisibleEdit", boost::bind(&enable_object_edit));  	visible.add("Object.VisibleEdit", boost::bind(&enable_object_edit));  	view_listener_t::addMenu(new LLFloaterVisible(), "FloaterVisible"); diff --git a/indra/newview/skins/default/xui/en/floater_avatar_picker.xml b/indra/newview/skins/default/xui/en/floater_avatar_picker.xml index 3a1499eaaa..953bd08dd4 100644 --- a/indra/newview/skins/default/xui/en/floater_avatar_picker.xml +++ b/indra/newview/skins/default/xui/en/floater_avatar_picker.xml @@ -26,6 +26,12 @@       name="searching">          Searching...      </floater.string> +    <!-- For multiple person selection, use "Select" and "Close"  +      instead of "OK" and "Cancel" because "Cancel" still keeps the ones  +      you have already selected.  The code will show the appropriate +      set of buttons. --> +    <string name="Select">Select</string> +    <string name="Close">Close</string>      <tab_container       follows="all"       height="300" @@ -205,7 +211,7 @@       height="23"       label="OK"       label_selected="OK" -     name="Select" +     name="ok_btn"       top_pad="3"       left="46"       width="100" /> @@ -214,7 +220,7 @@       height="23"       label="Cancel"       label_selected="Cancel" -     name="Cancel" +     name="cancel_btn"       width="100"       left_pad="5" />  </floater> diff --git a/indra/newview/skins/default/xui/en/floater_buy_contents.xml b/indra/newview/skins/default/xui/en/floater_buy_contents.xml index 833e8beb8d..77a0e9b91b 100644 --- a/indra/newview/skins/default/xui/en/floater_buy_contents.xml +++ b/indra/newview/skins/default/xui/en/floater_buy_contents.xml @@ -56,7 +56,7 @@      <text       type="string"       length="1" -     follows="left|top" +     follows="left|bottom"       font="SansSerif"       height="16"       layout="topleft" @@ -68,7 +68,7 @@          Buy for L$[AMOUNT] from [NAME]?      </text>      <check_box -     follows="left|top" +     follows="left|bottom"       height="16"       label="Wear clothing now"       layout="topleft" diff --git a/indra/newview/skins/default/xui/en/floater_region_info.xml b/indra/newview/skins/default/xui/en/floater_region_info.xml index 9bb30f8e86..262bcd07a0 100644 --- a/indra/newview/skins/default/xui/en/floater_region_info.xml +++ b/indra/newview/skins/default/xui/en/floater_region_info.xml @@ -1,7 +1,7 @@  <?xml version="1.0" encoding="utf-8" standalone="yes" ?>  <floater   legacy_header_height="18" - height="512" + height="555"   help_topic="regioninfo"   layout="topleft"   name="regioninfo" @@ -9,7 +9,7 @@   title="REGION/ESTATE"   width="480">      <tab_container -     bottom="512" +     bottom="555"       follows="left|right|top|bottom"       layout="topleft"       left="1" diff --git a/indra/newview/skins/default/xui/en/floater_report_abuse.xml b/indra/newview/skins/default/xui/en/floater_report_abuse.xml index 696233676c..91ca3ef27a 100644 --- a/indra/newview/skins/default/xui/en/floater_report_abuse.xml +++ b/indra/newview/skins/default/xui/en/floater_report_abuse.xml @@ -18,7 +18,7 @@       height="150"       layout="topleft"       left="60" -     name="" +     name="screenshot"       top="15"       width="220" />      <check_box diff --git a/indra/newview/skins/default/xui/en/floater_tools.xml b/indra/newview/skins/default/xui/en/floater_tools.xml index a626e1b353..8b6f0f03fe 100644 --- a/indra/newview/skins/default/xui/en/floater_tools.xml +++ b/indra/newview/skins/default/xui/en/floater_tools.xml @@ -968,23 +968,27 @@                  <combo_box.item                   label="Touch  (default)"                   name="Touch/grab(default)" -                 value="Touch/grab (default)" /> +                 value="Touch" />                  <combo_box.item                   label="Sit on object"                   name="Sitonobject" -                 value="Sit on object" /> +                 value="Sit" />                  <combo_box.item                   label="Buy object"                   name="Buyobject" -                 value="Buy object" /> +                 value="Buy" />                  <combo_box.item                   label="Pay object"                   name="Payobject" -                 value="Pay object" /> +                 value="Pay" />                  <combo_box.item                   label="Open"                   name="Open"                   value="Open" /> +				 <combo_box.item +                 label="Zoom" +                 name="Zoom" +                 value="Zoom" />              </combo_box>              <check_box               height="16" diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index 0d1ed6fc64..d955e875a7 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -1436,6 +1436,13 @@ Select objects with scripts that you have permission to modify.    <notification     icon="alertmodal.tga" +   name="CannotOpenScriptObjectNoMod" +   type="alertmodal"> +    Unable to open script in object without modify permissions. +  </notification> + +  <notification +   icon="alertmodal.tga"     name="CannotSetRunningSelectObjectsNoScripts"     type="alertmodal">  Not able to set any scripts to 'running'. diff --git a/indra/newview/skins/default/xui/en/panel_group_general.xml b/indra/newview/skins/default/xui/en/panel_group_general.xml index 58a78a0ab8..4c30db4034 100644 --- a/indra/newview/skins/default/xui/en/panel_group_general.xml +++ b/indra/newview/skins/default/xui/en/panel_group_general.xml @@ -1,7 +1,7 @@  <?xml version="1.0" encoding="utf-8" standalone="yes" ?>  <panel   follows="all" -     height="380" +     height="378"   label="General"   class="panel_group_general"   layout="topleft" @@ -40,13 +40,13 @@ Hover your mouse over the options for more help.       column_padding="0"       draw_heading="true"       follows="left|top" -     heading_height="16" +     heading_height="20"       height="130"       layout="topleft" -     left="5" +     left="0"       name="visible_members"       top_pad="2" -     width="305"> +     width="310">          <name_list.columns           label="Member"           name="name" @@ -59,9 +59,9 @@ Hover your mouse over the options for more help.           <text           follows="left|top"           type="string" -         height="14" +         height="12"           layout="topleft" -         left_delta="0" +         left="5"           name="active_title_label"           top_pad="5"           width="300"> @@ -75,7 +75,7 @@ Hover your mouse over the options for more help.           name="active_title"           tool_tip="Sets the title that appears in your avatar's name tag when this group is active."           top_pad="2" -         width="305" /> +         width="300" />          <check_box           height="16"           font="SansSerifSmall" @@ -101,12 +101,12 @@ Hover your mouse over the options for more help.           border="true"           bg_alpha_color="FloaterUnfocusBorderColor"           follows="left|top" -         height="93" +         height="90"           layout="topleft"           left="5"           name="preferences_container"           top_pad="5" -         width="305"> +         width="300">          <check_box           follows="right|top"           height="16" @@ -140,7 +140,7 @@ Hover your mouse over the options for more help.           left_pad="2"           name="spin_enrollment_fee"           tool_tip="New members must pay this fee to join the group when Enrollment Fee is checked." -         width="105" /> +         width="100" />          <check_box           height="16"           initial_value="true" @@ -157,7 +157,7 @@ Hover your mouse over the options for more help.           left_delta="0"           name="group_mature_check"           tool_tip="Sets whether your group information is considered mature" -         top_pad="5" +         top_pad="2"           width="190">              <combo_box.item               label="PG Content" diff --git a/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml b/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml index 0082128ca4..c0db734f8c 100644 --- a/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml +++ b/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml @@ -2,10 +2,10 @@  <panel  background_visible="true"   follows="all" - height="570" + height="635"   label="Group Info"   layout="topleft" - min_height="425" + min_height="460"   left="0"   top="20"   name="GroupInfo" @@ -116,44 +116,43 @@ background_visible="true"       visible="true"       width="120" />     <accordion +           single_expansion="true"               follows="all" -             height="405" +             height="478"               layout="topleft"               left="0"               name="groups_accordion" -             top_pad="15" +             top_pad="10"               width="323">               <accordion_tab -                 expanded="true" -                 layout="topleft" -                 name="group_general_tab" -                 title="General"> +            expanded="false" +            layout="topleft" +            name="group_general_tab" +            title="General">              <panel -            border="false" -         class="panel_group_general"  +             border="false" +             class="panel_group_general"               filename="panel_group_general.xml"               layout="topleft"               left="0"               help_topic="group_general_tab"               name="group_general_tab_panel" -             top="0" -             width="300" /> +             top="0" />           </accordion_tab>           <accordion_tab -                 expanded="false" -                 layout="topleft" -                 name="group_roles_tab" -                 title="Roles"> -                 <panel -                 border="false" -         class="panel_group_roles" -                  filename="panel_group_roles.xml" -                  layout="topleft" -                  left="0" -                  help_topic="group_roles_tab" -         name="group_roles_tab_panel" -                  top="0" -             width="303" /> +            expanded="true" +            layout="topleft" +            name="group_roles_tab" +            title="Roles"> +            <panel +            border="false" +            class="panel_group_roles" +             filename="panel_group_roles.xml" +             layout="topleft" +             left="0" +             help_topic="group_roles_tab" +             name="group_roles_tab_panel" +             top="0" />           </accordion_tab>           <accordion_tab                   expanded="false" @@ -168,8 +167,7 @@ background_visible="true"           left="0"           help_topic="group_notices_tab"           name="group_notices_tab_panel" -         top="0" -         width="303" /> +         top="0" />           </accordion_tab>          <accordion_tab                   expanded="false" @@ -184,21 +182,25 @@ background_visible="true"           left="0"           help_topic="group_land_money_tab"           name="group_land_tab_panel" -         top="0" -         width="300" /> +         top="0" />           </accordion_tab>           </accordion> +   <panel +   name="button_row" +   height="23" +   follows="bottom|left" +   top_pad="-1" +   width="323">     <button       follows="top|left"       height="22"       image_overlay="Refresh_Off"       layout="topleft" -     left="5" +     left="10"       name="btn_refresh" -     top_pad="-15"       width="23" /> -         <button -     height="20" +    <button +     height="22"       label="Create"       label_selected="New group"       name="btn_create" @@ -214,12 +216,12 @@ background_visible="true"       visible="false"       width="65" />-->       <button -     height="20" -     font="SansSerifSmall" +     height="22"       label="Save"       label_selected="Save"       name="btn_apply"       left_pad="10"       right="-10" -     width="65" /> +     width="100" /> +     </panel>  </panel>
\ No newline at end of file diff --git a/indra/newview/skins/default/xui/en/panel_group_land_money.xml b/indra/newview/skins/default/xui/en/panel_group_land_money.xml index 2c649642c3..2075d7e05b 100644 --- a/indra/newview/skins/default/xui/en/panel_group_land_money.xml +++ b/indra/newview/skins/default/xui/en/panel_group_land_money.xml @@ -2,7 +2,7 @@  <panel   border="false"   follows="all" - height="510" + height="380"   label="Land & L$"   layout="topleft"   left="0" @@ -11,7 +11,7 @@   width="310">      <panel.string       name="help_text"> -        Parcels owned by a group are listed along with contribution details. A warning appears until the Total Land in Use is less than or = to the Total Contribution. +   A warning appears until the Total Land in Use is less than or = to the Total Contribution.      </panel.string>      <panel.string       name="cant_view_group_land_text"> @@ -43,14 +43,14 @@      </text> -->      <scroll_list       draw_heading="true" -     follows="top" +     follows="top|left|right"       heading_height="20" -     height="150" +     height="130"       layout="topleft" -     left="2" +     left="0" +     top="0"       name="group_parcel_list" -     top_pad="0" -     width="305"> +     width="310">          <scroll_list.columns           label="Parcel"           name="name" @@ -72,34 +72,22 @@           name="hidden"           width="-1" />      </scroll_list> -    <button -     follows="top" -     height="23" -     label="Map" -     label_selected="Map" -     layout="topleft" -     name="map_button" -     right="-5" -     top_pad="5" -     width="95" -     enabled="false" />      <text       type="string"       follows="left|top"       halign="right" -     height="16" +     height="15"       layout="topleft" -     left="5" +     left="0"       name="total_contributed_land_label" -     top_pad="0"       width="130"> -        Total Contribution: +        Total contribution:      </text>      <text      text_color="EmphasisColor"       type="string"       follows="left|top" -     height="16" +     height="15"       layout="topleft"       left_pad="5"       name="total_contributed_land_value" @@ -107,23 +95,34 @@       width="120">          [AREA] m²      </text> +    <button +     follows="top" +     height="20" +     label="Map" +     label_selected="Map" +     layout="topleft" +     name="map_button" +     right="-5" +     left_pad="0" +     width="95" +     enabled="false" />      <text       type="string"       follows="left|top"       halign="right" -     height="16" +     height="15"       layout="topleft" -     left="5" +     left="0"       name="total_land_in_use_label"       top_pad="0"       width="130"> -        Total Land In Use: +        Total land in use:      </text>      <text      text_color="EmphasisColor"       type="string"       follows="left|top" -     height="16" +     height="15"       layout="topleft"       left_pad="5"       name="total_land_in_use_value" @@ -135,19 +134,19 @@       type="string"       follows="left|top"       halign="right" -     height="16" +     height="15"       layout="topleft" -     left="5" +     left="0"       name="land_available_label"       top_pad="0"       width="130"> -        Land Available: +        Land available:      </text>      <text      text_color="EmphasisColor"       type="string"       follows="left|top" -     height="16" +     height="15"       layout="topleft"       left_pad="5"       name="land_available_value" @@ -159,17 +158,15 @@       type="string"       follows="left|top"       halign="right" -     height="16" +     height="15"       layout="topleft" -     left="5" +     left="0"       name="your_contribution_label"       top_pad="0"       width="130"> -        Your Contribution: +        Your contribution:      </text>      <line_editor -     border_style="line" -     border_thickness="1"       follows="left|top"       height="19"       layout="topleft" @@ -177,7 +174,7 @@       max_length="10"       name="your_contribution_line_editor"       top_delta="0" -     width="95" /> +     width="80" />      <text       type="string"       follows="left|top" @@ -194,7 +191,7 @@       type="string"       follows="left|top"       halign="right" -     height="16" +     height="12"       layout="topleft"       left="140"       name="your_contribution_max_value" @@ -203,27 +200,27 @@          ([AMOUNT] max)      </text>      <icon -     height="16" -     image_name="notify_next" +     height="18" +     image_name="BuyArrow_Over"       layout="topleft" -     left="9" +     left="75"       name="group_over_limit_icon"       top_pad="0" -     visible="false" -     width="16" /> +     visible="true" +     width="18" />      <text       follows="left|top"       type="string"       word_wrap="true"       font="SansSerifSmall" -     height="35" +     height="20"       layout="topleft" -     left_pad="5" +     left_pad="2"       name="group_over_limit_text"       text_color="EmphasisColor"       top_delta="0" -     width="260"> -        Group members must contribute more land credits to support land in use +     width="213"> +        More land credits are needed to support land in use      </text>      <text       type="string" @@ -231,29 +228,29 @@       font="SansSerifBig"       height="16"       layout="topleft" -     left="10" +     left="0"       name="group_money_heading"       text_color="EmphasisColor" -     top_pad="0" -     width="150"> +     top_pad="-15" +     width="100">          Group L$      </text>      <tab_container       follows="all" -     height="200" +     height="173"       halign="center"       layout="topleft" -     left="5" +     left="0"       name="group_money_tab_container"       tab_position="top"       tab_height="20"       top_pad="2" -     tab_min_width="70" -     width="300"> +     tab_min_width="75" +     width="310">          <panel           border="false"           follows="all" -         height="180" +         height="173"           label="PLANNING"           layout="topleft"           left="0" @@ -264,7 +261,6 @@              <text_editor               type="string"               follows="all" -             font="SansSerif"               height="140"               layout="topleft"               left="0" @@ -279,13 +275,13 @@        <panel           border="false"           follows="all" -         height="180" +         height="173"           label="DETAILS"           layout="topleft"           left="0"           help_topic="group_money_details_tab"           name="group_money_details_tab" -         top="5" +         top="0"           width="300">            <text_editor               type="string" @@ -302,34 +298,34 @@              </text_editor>              <button  	     follows="left|top" -	     height="23" +	     height="18"  	     image_overlay="Arrow_Left_Off"  	     layout="topleft"  	     name="earlier_details_button"  	     tool_tip="Back" -	     top_pad="5"               right="-45" -	     width="31" /> +             bottom="0" +	     width="25" />               <button  	     follows="left|top" -	     height="23" +	     height="18"  	     image_overlay="Arrow_Right_Off"  	     layout="topleft"  	     left_pad="10"         name="later_details_button"  	     tool_tip="Next" -	     width="31" /> +	     width="25" />          </panel>        <panel           border="false"           follows="all" -         height="180" +         height="173"           label="SALES"           layout="topleft"           left_delta="0"           help_topic="group_money_sales_tab"           name="group_money_sales_tab" -         top="5" +         top="0"           width="300">              <text_editor               type="string" @@ -345,24 +341,24 @@                  Loading...              </text_editor>                           <button +             bottom="0"  	     follows="left|top" -	     height="23" +	     height="18"  	     image_overlay="Arrow_Left_Off"  	     layout="topleft"  	     name="earlier_sales_button"  	     tool_tip="Back" -	     top_pad="5"           right="-45" -	     width="31" /> +	     width="25" />               <button  	     follows="left|top" -	     height="23" +	     height="18"  	     image_overlay="Arrow_Right_Off"  	     layout="topleft"  	     left_pad="10"           name="later_sales_button"  	     tool_tip="Next" -	     width="31" /> +	     width="25" />          </panel>      </tab_container>  </panel> diff --git a/indra/newview/skins/default/xui/en/panel_group_notices.xml b/indra/newview/skins/default/xui/en/panel_group_notices.xml index e56db6414f..0dea81eefe 100644 --- a/indra/newview/skins/default/xui/en/panel_group_notices.xml +++ b/indra/newview/skins/default/xui/en/panel_group_notices.xml @@ -1,7 +1,7 @@  <?xml version="1.0" encoding="utf-8" standalone="yes" ?>  <panel   follows="all" - height="485" + height="463"   label="Notices"   layout="topleft"   left="0" @@ -10,11 +10,10 @@   width="310">      <panel.string       name="help_text"> -        Notices are a quick way to communicate across a  -group by broadcasting a message and delivering  +        Notices let you send a message and  an optionally attached item. Notices only go to -group members in Roles granted the ability to  -receive Notices. You can turn off Notices on  +group members in Roles with the ability to +receive Notices. You can turn off Notices on  the General tab.      </panel.string>      <panel.string @@ -25,14 +24,15 @@ the General tab.        follows="left|top"       type="string"       word_wrap="true" -     height="30" +     height="24" +     halign="right"       layout="topleft"       left="5"       name="lbl2"       top="5"       width="300">       Notices are kept for 14 days -Groups are limited to 200 notices/group daily +Maximum 200 per group daily      </text>      <scroll_list        follows="left|top" @@ -44,7 +44,7 @@ Groups are limited to 200 notices/group daily       left="2"       name="notice_list"       top_pad="0" -     width="305"> +     width="300">          <scroll_list.columns           label=""           name="icon" @@ -52,15 +52,15 @@ Groups are limited to 200 notices/group daily          <scroll_list.columns           label="Subject"           name="subject" -         width="125" /> +         width="110" />          <scroll_list.columns           label="From"           name="from" -         width="90" /> +         width="100" />          <scroll_list.columns           label="Date"           name="date" -         width="30" /> +         width="60" />          <scroll_list.columns           name="sort"           width="-1" /> @@ -84,7 +84,7 @@ Groups are limited to 200 notices/group daily         left="5"         name="create_new_notice"         tool_tip="Create a new notice" -     top_delta="0" +     top_delta="-3"         width="18" />       <button       follows="top|left" @@ -97,14 +97,14 @@ Groups are limited to 200 notices/group daily       width="23" />      <panel       follows="left|top" -     height="300" +     height="280"       label="Create New Notice"       layout="topleft"       left="0" -     top_pad="10" -     visible="false" +     top_pad="0" +     visible="true"       name="panel_create_new_notice" -     width="303"> +     width="300">          <text           follows="left|top"           type="string" @@ -216,31 +216,31 @@ Groups are limited to 200 notices/group daily           follows="left|top"           height="23"           label="Send" -         label_selected="Send Notice" +         label_selected="Send"           layout="topleft"           right="-10"           top_pad="10"           name="send_notice"           width="100" />        <group_drop_target -         height="466" -         top="0" -         left="0" +         height="95" +         top="160" +         left="10"           layout="topleft"           name="drop_target"           tool_tip="Drag an inventory item onto the message box to send it with the notice. You must have permission to copy and transfer the object to send it with the notice." -         width="295" /> -   </panel>  +         width="280" /> +   </panel>      <panel       follows="left|top" -     height="300" +     height="280"       label="View Past Notice"       layout="topleft"       left="0" -     visible="true" +     visible="false"       name="panel_view_past_notice"       top="180" -     width="303"> +     width="300">          <text           type="string"           font="SansSerifBig" @@ -303,7 +303,7 @@ Groups are limited to 200 notices/group daily          </text>          <text_editor           enabled="false" -         height="205" +         height="160"           layout="topleft"           left="10"           max_length="511" @@ -319,7 +319,7 @@ Groups are limited to 200 notices/group daily           max_length="63"           mouse_opaque="false"           name="view_inventory_name" -         top_pad="10" +         top_pad="8"           width="285" />          <icon           height="16" diff --git a/indra/newview/skins/default/xui/en/panel_group_notify.xml b/indra/newview/skins/default/xui/en/panel_group_notify.xml index 2e4df92da4..9b0b81cd0a 100644 --- a/indra/newview/skins/default/xui/en/panel_group_notify.xml +++ b/indra/newview/skins/default/xui/en/panel_group_notify.xml @@ -1,8 +1,6 @@  <?xml version="1.0" encoding="utf-8" standalone="yes" ?>  <panel   background_visible="true" - bevel_style="in" - bg_alpha_color="0 0 0 0"   height="90"   label="instant_message"   layout="topleft" @@ -21,8 +19,6 @@       value="SANSSERIF" />      <panel       background_visible="true" -     bevel_style="in" -     bg_alpha_color="black"       follows="top"       height="30"       label="header" @@ -32,7 +28,7 @@       top="0"       width="305">          <icon -         follows="left|top|right|bottom" +         follows="all"           height="20"           layout="topleft"           left="5" @@ -41,8 +37,8 @@           top="5"           width="20" />          <text -         follows="left|top|right|bottom" -         font="SansSerifBigBold" +         follows="all" +         font="SansSerifBig"           height="20"           layout="topleft"           left_pad="10" @@ -56,7 +52,7 @@      <text_editor       allow_html="true"       enabled="true" -     follows="left|top|bottom|right" +     follows="all"       height="0"       layout="topleft"       left="25" @@ -69,7 +65,7 @@       type="string"       use_ellipses="true"       value="message" -     width="270"  +     width="270"  	 word_wrap="true" >      </text_editor>      <icon @@ -97,9 +93,9 @@       bottom="85"       follows="bottom"       height="20" -     label="OK" +     label="Ok"       layout="topleft" -     left="25" +     right="-10"       name="btn_ok"       width="70" />  </panel> diff --git a/indra/newview/skins/default/xui/en/panel_group_roles.xml b/indra/newview/skins/default/xui/en/panel_group_roles.xml index 604fb81c8e..5bae5c2711 100644 --- a/indra/newview/skins/default/xui/en/panel_group_roles.xml +++ b/indra/newview/skins/default/xui/en/panel_group_roles.xml @@ -1,6 +1,6 @@  <?xml version="1.0" encoding="utf-8" standalone="yes" ?>  <panel - border="false" + follows="all"   height="552"   label="Members & Roles"   layout="topleft" @@ -14,26 +14,27 @@      </panel.string>      <panel.string       name="want_apply_text"> -        Do you want to save these changes? +        Do you want to save your changes?      </panel.string>      <panel.string       name="help_text" />      <tab_container      border="false"       follows="left|top" -     height="245" +     height="552"       halign="center"       layout="topleft" -     left="5" +     left="0"       name="roles_tab_container"       tab_position="top"       tab_height="20"       tab_min_width="75" -     top="3" -     width="300"> +     top="0" +     width="310">          <panel           border="false" -         height="220" +         follows="all" +         height="303"           label="MEMBERS"           layout="topleft"           left="0" @@ -41,7 +42,7 @@           name="members_sub_tab"           tool_tip="Members"           class="panel_group_members_subtab" -         width="300"> +         width="310">              <panel.string               name="help_text">                  You can add or remove Roles assigned to Members. @@ -50,11 +51,11 @@ clicking on their names.              </panel.string>           <filter_editor           layout="topleft" -         top="10" +         top="5"           left="5"           width="280"           height="20" -         follows="left|top|right" +         follows="top"           max_length="250"           label="Filter Members"           name="filter_input" /> @@ -62,7 +63,7 @@ clicking on their names.               column_padding="0"               draw_heading="true"               heading_height="20" -             height="160" +             height="240"               follows="left|top"               layout="topleft"               left="0" @@ -73,30 +74,26 @@ clicking on their names.                  <name_list.columns                   label="Member"                   name="name" -               relative_width="0.45" /> +               relative_width="0.44" />                  <name_list.columns -                 label="Donations" +                 label="Donation"                   name="donated" -         relative_width="0.3" /> +         relative_width="0.25" />                  <name_list.columns -                 label="Online" +                 label="Status"                   name="online" -         relative_width="0.2" /> +         relative_width="0.15" />              </name_list>              <button               height="20" -             font="SansSerifSmall" +             follows="bottom|left"               label="Invite" -             layout="topleft"               left="5"               name="member_invite" -             top_pad="3"               width="100" />              <button               height="20" -             font="SansSerifSmall"               label="Eject" -             layout="topleft"               left_pad="5"               right="-5"               name="member_eject" @@ -104,14 +101,23 @@ clicking on their names.          </panel>          <panel           border="false" -         height="220" +         height="230"           label="ROLES"           layout="topleft"           left="0"           help_topic="roles_roles_tab"           name="roles_sub_tab"           class="panel_group_roles_subtab" -         width="300"> +         width="310"> +           <!-- <button +             enabled="false" +             height="20" +             label="Show All" +             layout="topleft" +             top="-65" +             right="-5" +             name="show_all_button" +             width="100" />-->              <panel.string               name="help_text">                  Roles have a title and an allowed list of Abilities @@ -121,7 +127,7 @@ including the Everyone and Owner Roles.              </panel.string>              <panel.string               name="cant_delete_role"> -                The 'Everyone' and 'Owners' Roles are special and cannot be deleted. +                The 'Everyone' and 'Owners' Roles are special and can't be deleted.              </panel.string>              <panel.string               name="power_folder_icon"> @@ -129,15 +135,15 @@ including the Everyone and Owner Roles.              </panel.string>              <panel.string               name="power_all_have_icon"> -                checkbox_enabled_true.tga +                Checkbox_On              </panel.string>              <panel.string               name="power_partial_icon"> -                checkbox_enabled_false.tga +                Checkbox_Off              </panel.string>           <filter_editor           layout="topleft" -         top="10" +         top="5"           left="5"           width="280"           height="20" @@ -145,61 +151,48 @@ including the Everyone and Owner Roles.           max_length="250"           label="Filter Roles"           name="filter_input" /> -            <!-- -            <button -             enabled="false" -             height="20" -             label="Show All" -             layout="topleft" -             left_pad="0" -             name="show_all_button" -             top_delta="0" -             width="80" /> -->              <scroll_list               column_padding="0"               draw_heading="true"               draw_stripes="false"               follows="left|top"               heading_height="20" -             height="160" +             height="170"               layout="topleft"               search_column="1"               left="0"               name="role_list"               top_pad="2" -             width="300"> +             width="310">                  <scroll_list.columns                   label="Role"                   name="name" -                 width="80" /> +               relative_width="0.45"  />                  <scroll_list.columns                   label="Title"                   name="title" -                 width="90" /> +               relative_width="0.45"  />                  <scroll_list.columns -                 label="Members" +                 label="#"                   name="members" -                 width="95" /> +               relative_width="0.15"  />              </scroll_list>              <button +            follows="bottom|left"               height="20" -             font="SansSerifSmall" -             label="Add Role" +             label="New Role"               layout="topleft"               left="5"               name="role_create" -             top_pad="6" -             width="125" /> +             width="100" />              <button               height="20" -             font="SansSerifSmall"               label="Delete Role"               layout="topleft"               left_pad="5"               right="-5"               name="role_delete" -             top_delta="0" -             width="125" /> +             width="100" />          </panel>          <panel           border="false" @@ -211,7 +204,7 @@ including the Everyone and Owner Roles.           name="actions_sub_tab"           class="panel_group_actions_subtab"           tool_tip="You can view an Ability's Description and which Roles and Members can execute the Ability." -         width="300"> +         width="310">              <panel.string               name="help_text">                  Abilities allow Members in Roles to do specific @@ -219,7 +212,7 @@ things in this group. There's a broad variety of Abilities.              </panel.string>           <filter_editor           layout="topleft" -         top="10" +         top="5"           left="5"           width="280"           height="20" @@ -231,74 +224,63 @@ things in this group. There's a broad variety of Abilities.               column_padding="0"               draw_stripes="false"               follows="left|top" -             height="160" +             height="200"               layout="topleft"               left="0"               multi_select="true"               name="action_list"               search_column="1"               tool_tip="Select an Ability to view more details" -             top_pad="2" +             top_pad="5"               width="300">                  <scroll_list.columns -                 label="" -                 name="icon" -                 width="16" /> -                <scroll_list.columns -                 label="Action"                   name="action" -                 width="247" /> +                 width="300" />              </scroll_list> -            <icon -             height="16" -             image_name="Inv_FolderClosed" -             layout="topleft" -             name="power_folder_icon" -             visible="false" -             width="16" />          </panel>      </tab_container>      <panel       height="252"       layout="topleft"       follows="left|top" -     left="10" +     left="0" +     mouse_opaque="false"        name="members_footer" -     top="245" -     top_delta="0" -     width="290"> +     top="300" +     visible="false" +     width="310">          <text           type="string" -         height="16" +         height="14"           layout="topleft"           follows="left|top"           left="0"           name="static"           top_pad="5" -         width="285"> +         width="300">              Assigned Roles          </text>          <scroll_list -         draw_stripes="false" +         draw_stripes="true"           follows="left|top" -         height="80" +         height="90"           layout="topleft"           left="0"           name="member_assigned_roles"           top_pad="0" -         width="285"> +         width="300">              <scroll_list.columns               label=""               name="checkbox" -             width="30" /> +             width="20" />              <scroll_list.columns               label=""               name="role" -             width="255" /> +             width="270" />          </scroll_list>                   <text           type="string" -         height="16" +         height="14"           layout="topleft"           follows="left|top"           left="0" @@ -308,48 +290,42 @@ things in this group. There's a broad variety of Abilities.              Allowed Abilities          </text>           <scroll_list -         draw_stripes="false" -         height="80" +         draw_stripes="true" +         height="90"           layout="topleft"           left="0"           name="member_allowed_actions"           search_column="2"           tool_tip="For details of each allowed ability see the abilities tab"           top_pad="0" -         width="285"> -            <scroll_list.columns -             label="" -             name="icon" -             width="20" /> +         width="300">              <scroll_list.columns               label=""               name="action" -             width="265" /> +             width="300" />          </scroll_list>      </panel>      <panel       height="297"       layout="topleft" -     left="10" +     left="0"       name="roles_footer"       top_delta="0" -     top="245" +     top="220"       visible="false" -     width="290"> +     width="310">          <text           type="string" -         height="16" +         height="14"           layout="topleft"           left="0"           name="static"           top="0" -         width="140"> -            Name +         width="300"> +           Role Name          </text>          <line_editor           type="string" -         border_style="line" -         border_thickness="1"           follows="left|top"           height="20"           layout="topleft" @@ -357,106 +333,97 @@ things in this group. There's a broad variety of Abilities.           max_length="295"           name="role_name"           top_pad="0" -         width="290"> -            Employees +         width="300">          </line_editor>          <text           type="string" -         height="16" +         height="14"           layout="topleft"           name="static3"           top_pad="5" -         width="290"> -            Title +         width="300"> +           Role Title          </text>          <line_editor           type="string" -         border_style="line" -         border_thickness="1"           follows="left|top"           height="20"           layout="topleft"           max_length="295"           name="role_title"           top_pad="0" -         width="290"> -          (waiting) +         width="300">          </line_editor>                  <text           type="string" -         height="16" +         height="14"           layout="topleft"           left="0"           name="static2"           top_pad="5" -         width="100"> +         width="200">              Description          </text>          <text_editor           type="string"           halign="left" -         height="35" +         height="50"           layout="topleft"           left="0"           max_length="295"           name="role_description"           top_pad="0" -         width="295" +         width="300"           word_wrap="true"> -          (waiting)          </text_editor>          <text           type="string" -         height="16" +         height="14"           layout="topleft"           follows="left|top"           left="0"           name="static4"           top_pad="5" -         width="290"> -            Assigned Roles +         width="300"> +            Assigned Members          </text>          <name_list -         draw_stripes="false" -         height="50" +         draw_stripes="true" +         height="60"           layout="topleft"           left="0"           name="role_assigned_members"           top_pad="0" -         width="290" /> +         width="300" />          <check_box           height="15"           label="Reveal members"           layout="topleft"           name="role_visible_in_list"           tool_tip="Sets whether members of this role are visible in the General tab to people outside of the group." -         top_pad="3" -         width="290" /> +         top_pad="4" +         width="300" />           <text           type="string" -         height="16" +         height="13"           layout="topleft"           follows="left|top"           left="0"           name="static5"           top_pad="5" -         width="290"> +         width="300">              Allowed Abilities          </text>          <scroll_list -         draw_stripes="false" -         height="50" +         draw_stripes="true" +         height="60"           layout="topleft"           left="0"           name="role_allowed_actions"           search_column="2"           tool_tip="For details of each allowed ability see the abilities tab"           top_pad="0" -         width="295"> -            <scroll_list.columns -             label="" -             name="icon" -             width="20" /> +         width="300">              <scroll_list.columns               label=""               name="checkbox" @@ -464,33 +431,27 @@ things in this group. There's a broad variety of Abilities.              <scroll_list.columns               label=""               name="action" -             width="250" /> +             width="270" />          </scroll_list>      </panel>     <panel       height="303"       layout="topleft" -     left="10" +     left="0"       name="actions_footer"       top_delta="0" -     top="245" +     top="255"       visible="false" -     width="290"> -        <text -         type="string" -         height="16" -         layout="topleft" -         name="static" -         width="200"> -            Ability description -        </text> +     width="310">          <text_editor +       bg_readonly_color="Transparent" +       text_readonly_color="EmphasisColor" +       font="SansSerifSmall"           type="string"           enabled="false"           halign="left" -         height="80" +         height="90"           layout="topleft" -         left_delta="0"           max_length="512"           name="action_description"           top_pad="0" @@ -500,28 +461,28 @@ things in this group. There's a broad variety of Abilities.          </text_editor>          <text           type="string" -         height="16" +         height="14"           layout="topleft" -         left_delta="0" +         left="5"           name="static2"           top_pad="5" -         width="295"> +         width="300">              Roles with this ability          </text>          <scroll_list -         height="60" +         height="65"           layout="topleft" -         left="0" +         left="5"           name="action_roles"           top_pad="0" -         width="295" /> -                 <text +         width="300" /> +        <text           type="string" -         height="16" +         height="14"           layout="topleft"           name="static3"           top_pad="5" -         width="290"> +         width="300">              Members with this ability          </text>          <name_list @@ -529,6 +490,6 @@ things in this group. There's a broad variety of Abilities.           layout="topleft"           name="action_members"           top_pad="0" -         width="290" /> +         width="300" />      </panel>  </panel> diff --git a/indra/newview/skins/default/xui/en/panel_profile.xml b/indra/newview/skins/default/xui/en/panel_profile.xml index 5110b6b2ef..bf1d46451b 100644 --- a/indra/newview/skins/default/xui/en/panel_profile.xml +++ b/indra/newview/skins/default/xui/en/panel_profile.xml @@ -27,7 +27,8 @@      <string       name="no_partner_text"       value="None" /> - <scroll_container +    <string name="RegisterDateFormat">[REG_DATE] ([AGE])</string> +  <scroll_container       color="DkGray2"       follows="all"       height="485" diff --git a/indra/newview/skins/default/xui/en/panel_region_estate.xml b/indra/newview/skins/default/xui/en/panel_region_estate.xml index add1476179..e25ff0d548 100644 --- a/indra/newview/skins/default/xui/en/panel_region_estate.xml +++ b/indra/newview/skins/default/xui/en/panel_region_estate.xml @@ -81,7 +81,7 @@ regions in the estate.      <view_border       bevel_style="in"       follows="top|left" -     height="290" +     height="310"       layout="topleft"       left_delta="-4"       top_pad="5" @@ -185,48 +185,48 @@ regions in the estate.       follows="left|top"       height="20"       layout="topleft" -     left="10" +     left="15"       name="abuse_email_text" -     top_pad="5" +     top_pad="10"       width="180">          Abuse email address:      </text>      <line_editor       follows="top|left" -     height="19" +     height="23"       layout="topleft"       left="15"       name="abuse_email_address" -     top_pad="5" -     width="205" /> +     top_pad="-5" +     width="230" />      <button       enabled="false"       follows="left|top" -     height="20" +     height="23"       label="Apply"       layout="topleft"       name="apply_btn" -     right="250" -     top_pad="4" -     width="90" /> +     top_pad="10" +     left="78" +     width="97" />      <button       follows="left|top" -     height="20" +     height="23"       label="Send Message To Estate..."       layout="topleft" -     left="8" +     left="50"       name="message_estate_btn" -     top_pad="5" -     width="250" /> +     top_pad="20" +     width="160" />      <button       follows="left|top" -     height="20" +     height="23"       label="Kick User from Estate..."       layout="topleft" -     left="8" +     left="50"       name="kick_user_from_estate_btn"       top_pad="5" -     width="250" /> +     width="160" />      <text       type="string" @@ -243,14 +243,14 @@ regions in the estate.      <view_border       bevel_style="none"       follows="top|left" -     height="60" +     height="71"       layout="topleft"       right="470" -     top_pad="5" +     top_pad="-5"       width="200" />      <name_list       follows="left|top" -     height="60" +     height="71"       layout="topleft"       left_delta="0"       multi_select="true" @@ -259,22 +259,22 @@ regions in the estate.       width="200" />      <button       follows="left|top" -     height="20" +     height="23"       label="Remove..."       layout="topleft"       name="remove_estate_manager_btn"       right="470"       top_pad="5" -     width="90" /> +     width="97" />      <button       follows="left|top" -     height="20" +     height="23"       label="Add..."       layout="topleft" -     left_delta="-110" +     left_delta="-103"       name="add_estate_manager_btn"       top_delta="0" -     width="90" /> +     width="97" />      <text       type="string"       length="1" @@ -283,21 +283,21 @@ regions in the estate.       layout="topleft"       left_delta="0"       name="allow_resident_label" -     top_pad="5" +     top_pad="10"       width="200">          Allowed Residents:      </text>      <view_border       bevel_style="none"       follows="top|left" -     height="60" +     height="71"       layout="topleft"       right="470" -     top_pad="5" +     top_pad="-5"       width="200" />      <name_list       follows="left|top" -     height="60" +     height="71"       layout="topleft"       left_delta="0"       multi_select="true" @@ -306,22 +306,22 @@ regions in the estate.       width="200" />      <button       follows="left|top" -     height="20" +     height="23"       label="Remove..."       layout="topleft"       name="remove_allowed_avatar_btn"       right="470"       top_pad="5" -     width="90" /> +     width="97" />      <button       follows="left|top" -     height="20" +     height="23"       label="Add..."       layout="topleft" -     left_delta="-110" +     left_delta="-103"       name="add_allowed_avatar_btn"       top_delta="0" -     width="90" /> +     width="97" />      <text       type="string"       length="1" @@ -330,21 +330,21 @@ regions in the estate.       layout="topleft"       left_delta="0"       name="allow_group_label" -     top_pad="5" +     top_pad="10"       width="200">          Allowed Groups:      </text>      <view_border       bevel_style="none"       follows="top|left" -     height="60" +     height="71"       layout="topleft"       right="470" -     top_pad="5" +     top_pad="-5"       width="200" />      <name_list       follows="left|top" -     height="60" +     height="71"       layout="topleft"       left_delta="0"       multi_select="true" @@ -353,22 +353,22 @@ regions in the estate.       width="200" />      <button       follows="left|top" -     height="20" +     height="23"       label="Remove..."       layout="topleft"       name="remove_allowed_group_btn"       right="470"       top_pad="5" -     width="90" /> +     width="97" />      <button       follows="left|top" -     height="20" +     height="23"       label="Add..."       layout="topleft" -     left_delta="-110" +     left_delta="-103"       name="add_allowed_group_btn"       top_delta="0" -     width="90" /> +     width="97" />      <text       type="string"       length="1" @@ -377,21 +377,21 @@ regions in the estate.       layout="topleft"       left_delta="0"       name="ban_resident_label" -     top_pad="5" +     top_pad="10"       width="200">          Banned Residents:      </text>      <view_border       bevel_style="none"       follows="top|left" -     height="60" +     height="71"       layout="topleft"       right="470" -     top_pad="5" +     top_pad="-5"       width="200" />      <name_list       follows="left|top" -     height="60" +     height="71"       layout="topleft"       left_delta="0"       multi_select="true" @@ -400,20 +400,20 @@ regions in the estate.       width="200" />      <button       follows="left|top" -     height="20" +     height="23"       label="Remove..."       layout="topleft"       name="remove_banned_avatar_btn"       right="470"       top_pad="5" -     width="90" /> +     width="97" />      <button       follows="left|top" -     height="20" +     height="23"       label="Add..."       layout="topleft" -     left_delta="-110" +     left_delta="-103"       name="add_banned_avatar_btn"       top_delta="0" -     width="90" /> +     width="97" />  </panel> diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml index e76763d7eb..9238b88d9b 100644 --- a/indra/newview/skins/default/xui/en/strings.xml +++ b/indra/newview/skins/default/xui/en/strings.xml @@ -1,7 +1,7 @@  <?xml version="1.0" encoding="utf-8" standalone="yes" ?>  <!-- This file contains strings that used to be hardcoded in the source.       It is only for those strings which do not belong in a floater. -     For example, the strings used in avatar chat bubbles, and strings  +     For example, the strings used in avatar chat bubbles, and strings       that are returned from one component and may appear in many places-->  <strings> @@ -44,8 +44,8 @@  	<!-- Disconnection -->  	<string name="AgentLostConnection">This region may be experiencing trouble.  Please check your connection to the Internet.</string> -	 -	 + +  	<!-- Tooltip, lltooltipview.cpp -->  	<string name="TooltipPerson">Person</string><!-- Object under mouse pointer is an avatar -->  	<string name="TooltipNoName">(no name)</string> <!-- No name on an object --> @@ -80,11 +80,11 @@  	<!-- text for SLURL labels -->  	<string name="SLurlLabelTeleport">Teleport to</string>  	<string name="SLurlLabelShowOnMap">Show Map for</string> -	 +  	<!-- ButtonToolTips, llfloater.cpp -->  	<string name="BUTTON_CLOSE_DARWIN">Close (⌘W)</string>  	<string name="BUTTON_CLOSE_WIN">Close (Ctrl+W)</string> -	<string name="BUTTON_RESTORE">Restore</string>			 +	<string name="BUTTON_RESTORE">Restore</string>  	<string name="BUTTON_MINIMIZE">Minimize</string>  	<string name="BUTTON_TEAR_OFF">Tear Off</string>  	<string name="BUTTON_DOCK">Dock</string> @@ -103,24 +103,24 @@  	<!-- Indicates something is being loaded. Maybe should be merged with RetrievingData -->  	<string name="LoadingData">Loading...</string> -	 -	 + +  	<!-- namecache -->  	<!-- Avatar name: text shown for LLUUID::null -->  	<string name="AvatarNameNobody">(nobody)</string> -	 +  	<!-- Avatar name: text shown while fetching name -->  	<string name="AvatarNameWaiting">(waiting)</string>    <!-- Avatar name: More than one avatar is selected/used here -->    <string name="AvatarNameMultiple">(multiple)</string> -   +    <!-- Avatar name: text shown as an alternative to AvatarNameFetching, easter egg. -->  	<string name="AvatarNameHippos">(hippos)</string> -	 +  	<!-- Group name: text shown for LLUUID::null -->  	<string name="GroupNameNone">(none)</string> -	 +  	<!-- Asset errors. Used in llassetstorage.cpp, translation from error code to error message. -->  	<string name="AssetErrorNone">No error</string>  	<string name="AssetErrorRequestFailed">Asset request: failed</string> @@ -133,7 +133,7 @@  	<string name="AssetErrorCircuitGone">Circuit gone</string>  	<string name="AssetErrorPriceMismatch">Viewer and server do not agree on price</string>  	<string name="AssetErrorUnknownStatus">Unknown status</string> -	 +  	<!-- Asset Type human readable names:  these will replace variable [TYPE] in notification FailedToFindWearable* -->  	<string name="texture">texture</string>  	<string name="sound">sound</string> @@ -159,7 +159,7 @@  	<string name="simstate">simstate</string>  	<string name="favorite">favorite</string>  	<string name="symbolic link">link</string> -	 +  	<!-- llvoavatar. Displayed in the avatar chat bubble -->  	<string name="AvatarEditingAppearance">(Editing Appearance)</string>  	<string name="AvatarAway">Away</string> @@ -236,17 +236,17 @@  	<string name="anim_express_worry">Worry</string>  	<string name="anim_yes_happy">Yes (Happy)</string>  	<string name="anim_yes_head">Yes</string> -	 +  	<!-- world map -->  	<string name="texture_loading">Loading...</string>  	<string name="worldmap_offline">Offline</string>  	<string name="worldmap_results_none_found">None found.</string> -	 +  	<!-- animations uploading status codes -->  	<string name="Ok">OK</string>  	<string name="Premature end of file">Premature end of file</string>  	<string name="ST_NO_JOINT">Can't find ROOT or JOINT.</string> -	 +  	<!-- Chat -->  	<string name="whisper">whispers:</string>  	<string name="shout">shouts:</string> @@ -274,7 +274,7 @@  	<string name="SIM_ACCESS_ADULT">Adult</string>  	<string name="SIM_ACCESS_DOWN">Offline</string>  	<string name="SIM_ACCESS_MIN">Unknown</string> -	 +  	<!-- For use when we do not have land type back from the server -->  	<string name="land_type_unknown">(unknown)</string> @@ -294,14 +294,14 @@  	<string name="compressed_image_files">Compressed Images</string>  	<string name="load_files">Load Files</string>  	<string name="choose_the_directory">Choose Directory</string> -	 +  	<!-- LSL Usage Hover Tips -->  	<!-- NOTE: For now these are set as translate="false", until DEV-40761 is implemented (to internationalize the rest of tooltips in the same window).               This has no effect on viewer code, but prevents Linden Lab internal localization tool from scraping these strings.  -->  	<string name="LSLTipSleepTime" translate="false">  Sleeps script for [SLEEP_TIME] seconds.  	</string> -	 +  	<string name="LSLTipText_llSin" translate="false">  float llSin(float theta)  Returns the sine of theta (theta in radians) @@ -1732,7 +1732,7 @@ Returns the value for header for request_id  	</string>    <string name="LSLTipText_llSetPrimMediaParams" translate="false">  llSetPrimMediaParams(integer face, list params) -Sets the media params for a particular face on an object. If media is not already on this object, add it.  +Sets the media params for a particular face on an object. If media is not already on this object, add it.  List is a set of name/value pairs in no particular order.  Params not specified are unchanged, or if new media is added then set to the default specified.  The possible names are below, along with the types of values and what they mean.    </string> @@ -1751,7 +1751,7 @@ Clears (deletes) the media and all params from the given face.  	<string name="AvatarSetAway">Away</string>  	<string name="AvatarSetNotBusy">Not Busy</string>  	<string name="AvatarSetBusy">Busy</string> -	 +  	<!-- Wearable Types -->  	<string name="shape">Shape</string>  	<string name="skin">Skin</string> @@ -1769,7 +1769,7 @@ Clears (deletes) the media and all params from the given face.  	<string name="alpha">Alpha</string>  	<string name="tattoo">Tattoo</string>  	<string name="invalid">invalid</string> -	 +  	<!-- notify -->  	<string name="next">Next</string>  	<string name="ok">OK</string> @@ -1786,8 +1786,8 @@ Clears (deletes) the media and all params from the given face.    <string name="StartUpNotifications">%d new notifications arrived while you were away...</string>    <!-- overflow toast's string-->    <string name="OverflowInfoChannelString">You have %d more notification</string> -   -   + +  	<!-- body parts -->  	<string name="BodyPartsRightArm">Right Arm</string>  	<string name="BodyPartsHead">Head</string> @@ -1800,10 +1800,10 @@ Clears (deletes) the media and all params from the given face.  	<string name="GraphicsQualityLow">Low</string>  	<string name="GraphicsQualityMid">Mid</string>  	<string name="GraphicsQualityHigh">High</string> -	 +  	<!-- mouselook -->  	<string name="LeaveMouselook">Press ESC to return to World View</string> -	 +  	<!-- inventory -->  	<string name="InventoryNoMatchingItems">No matching items found in inventory.</string>  	<string name="InventoryNoTexture"> @@ -1831,7 +1831,7 @@ this texture in your inventory  	<string name="Wave"          value=" Wave " />  	<string name="HelloAvatar"   value=" Hello, avatar! " />  	<string name="ViewAllGestures"  value="  View All >>" /> -				 +  	<!-- inventory filter -->      <!-- use value="" because they have preceding spaces -->  	<string name="Animations"    value=" Animations," /> @@ -1881,21 +1881,21 @@ this texture in your inventory  	<!-- inventory FVBridge -->  	<string name="Buy">Buy</string>  	<string name="BuyforL$">Buy for L$</string> -	 +  	<string name="Stone">Stone</string>  	<string name="Metal">Metal</string>  	<string name="Glass">Glass</string>  	<string name="Wood">Wood</string>  	<string name="Flesh">Flesh</string>  	<string name="Plastic">Plastic</string> -	<string name="Rubber">Rubber</string>	 +	<string name="Rubber">Rubber</string>  	<string name="Light">Light</string> -	 +  	<!-- keyboard -->  	<string name="KBShift">Shift</string>  	<string name="KBCtrl">Ctrl</string> -	<!-- Avatar Skeleton -->  +	<!-- Avatar Skeleton -->  	<string name="Chest">Chest</string>  	<string name="Skull">Skull</string>  	<string name="Left Shoulder">Left Shoulder</string> @@ -1925,7 +1925,7 @@ this texture in your inventory  	<string name="L Lower Leg">L Lower Leg</string>  	<string name="Stomach">Stomach</string>  	<string name="Left Pec">Left Pec</string> -	<string name="Right Pec">Right Pec</string>	 +	<string name="Right Pec">Right Pec</string>    <!-- Avatar age computation, see LLDateUtil::ageFromDate -->    <string name="YearsMonthsOld">[AGEYEARS] [AGEMONTHS] old</string> @@ -1934,7 +1934,7 @@ this texture in your inventory    <string name="WeeksOld">[AGEWEEKS] old</string>    <string name="DaysOld">[AGEDAYS] old</string>    <string name="TodayOld">Joined today</string> -   +    <!-- AgeYearsA = singular,         AgeYearsB = plural,         AgeYearsC = plural for non-English languages like Russian @@ -1967,16 +1967,16 @@ this texture in your inventory    <string name="NoPaymentInfoOnFile">No Payment Info On File</string>    <string name="AgeVerified">Age-verified</string>    <string name="NotAgeVerified">Not Age-verified</string> -   -  <!-- HUD Position -->  -	<string name="Center 2">Center 2</string>	 -	<string name="Top Right">Top Right</string>	 -	<string name="Top">Top</string>	 -	<string name="Top Left">Top Left</string>	 -	<string name="Center">Center</string>	 -	<string name="Bottom Left">Bottom Left</string>	 -	<string name="Bottom">Bottom</string>		 -	<string name="Bottom Right">Bottom Right</string>							 + +  <!-- HUD Position --> +	<string name="Center 2">Center 2</string> +	<string name="Top Right">Top Right</string> +	<string name="Top">Top</string> +	<string name="Top Left">Top Left</string> +	<string name="Center">Center</string> +	<string name="Bottom Left">Bottom Left</string> +	<string name="Bottom">Bottom</string> +	<string name="Bottom Right">Bottom Right</string>  	<!-- compile queue-->  	<string name="CompileQueueDownloadedCompiling">Downloaded, now compiling</string> @@ -1998,11 +1998,11 @@ this texture in your inventory  	<string name="CompileSuccessful">Compile successful!</string>  	<string name="CompileSuccessfulSaving">Compile successful, saving...</string>  	<string name="SaveComplete">Save complete.</string> -	<string name="ObjectOutOfRange">Script (object out of range)</string>     -	 +	<string name="ObjectOutOfRange">Script (object out of range)</string> +  	<!-- god tools -->  	<string name="GodToolsObjectOwnedBy">Object [OBJECT] owned by [OWNER]</string> -	 +  	<!-- groups -->  	<string name="GroupsNone">none</string>    <string name="Group" value=" (group)" /> @@ -2013,14 +2013,14 @@ this texture in your inventory  	<string name="Balance">Balance</string>  	<string name="Credits">Credits</string>  	<string name="Debits">Debits</string> -	<string name="Total">Total</string>	 -	<string name="NoGroupDataFound">No group data found for group </string>	 -		 +	<string name="Total">Total</string> +	<string name="NoGroupDataFound">No group data found for group </string> +  	<!-- floater IM -->  	<string name="IMParentEstate">parent estate</string>  	<string name="IMMainland">mainland</string>  	<string name="IMTeen">teen</string> -	 +  	<!-- floater region info -->  	<!-- The following will replace variable [ALL_ESTATES] in notifications EstateAllowed*, EstateBanned*, EstateManager* -->  	<string name="RegionInfoError">error</string> @@ -2036,45 +2036,37 @@ this texture in your inventory  	<!-- script editor -->  	<string name="CursorPos">Line [LINE], Column [COLUMN]</string> -	 +  	<!-- panel dir browser -->  	<string name="PanelDirCountFound">[COUNT] found</string>  	<string name="PanelDirTimeStr">[hour12,datetime,slt]:[min,datetime,slt] [ampm,datetime,slt]</string>  	<!-- panel dir events -->  	<string name="PanelDirEventsDateText">[mthnum,datetime,slt]/[day,datetime,slt]</string> -	 +  	<!-- panel contents -->  	<string name="PanelContentsNewScript">New Script</string> -	 +  	<!-- Mute -->  	<string name="MuteByName">(by name)</string>  	<string name="MuteAgent">(resident)</string>  	<string name="MuteObject">(object)</string>  	<string name="MuteGroup">(group)</string> -	 +  	<!-- Region/Estate Covenant -->  	<string name="RegionNoCovenant">There is no Covenant provided for this Estate.</string>  	<string name="RegionNoCovenantOtherOwner">There is no Covenant provided for this Estate. The land on this estate is being sold by the Estate owner, not Linden Lab.  Please contact the Estate Owner for sales details.</string>  	<string name="covenant_last_modified">Last Modified:</string>  	<string name="none_text"  value=" (none) " />  	<string name="never_text" value=" (never) " /> -	 +  	<!--Region Details-->  	<string name="GroupOwned">Group Owned</string>  	<string name="Public">Public</string> -	 +  	<!-- panel classified -->  	<string name="ClassifiedClicksTxt">Clicks: [TELEPORT] teleport, [MAP] map, [PROFILE] profile</string>  	<string name="ClassifiedUpdateAfterPublish">(will update after publish)</string> -	 -	<!-- group voting dialog --> -	<string name="GroupVoteYes">Yes</string> -	<string name="GroupVoteNo">No</string> -	<string name="GroupVoteNoActiveProposals">There are currently no active proposals</string> -	<string name="GroupVoteNoArchivedProposals">There are currently no archived proposals</string> -	<string name="GroupVoteRetrievingArchivedProposals">Retrieving archived proposals</string> -	<string name="GroupVoteRetrievingActiveProposals">Retrieving active proposals</string>  	<!-- Multi Preview Floater -->  	<string name="MultiPreviewTitle">Preview</string> @@ -2089,7 +2081,7 @@ this texture in your inventory  	<string name="InvOfferGaveYou">gave you</string>  	<string name="InvOfferYouDecline">You decline</string>  	<string name="InvOfferFrom">from</string> -	 +  	<!-- group money -->  	<string name="GroupMoneyTotal">Total</string>  	<string name="GroupMoneyBought">bought</string> @@ -2101,21 +2093,21 @@ this texture in your inventory  	<string name="GroupMoneyBalance">Balance</string>  	<string name="GroupMoneyCredits">Credits</string>  	<string name="GroupMoneyDebits">Debits</string> -	 +  	<!-- viewer object -->  	<string name="ViewerObjectContents">Contents</string> -	 +  	<!-- Viewer menu -->  	<string name="AcquiredItems">Acquired Items</string> -	<string name="Cancel">Cancel</string>	 -	<string name="UploadingCosts">Uploading %s costs</string>	 +	<string name="Cancel">Cancel</string> +	<string name="UploadingCosts">Uploading %s costs</string>  	<string name="UnknownFileExtension">  		Unknown file extension .%s  Expected .wav, .tga, .bmp, .jpg, .jpeg, or .bvh -	</string>		 -	<string name="AddLandmarkNavBarMenu">Add Landmark...</string>	  +	</string> +	<string name="AddLandmarkNavBarMenu">Add Landmark...</string>  	<string name="EditLandmarkNavBarMenu">Edit Landmark...</string> -	 +  	<!-- menu accelerators -->  	<string name="accel-mac-control">⌃</string>  	<string name="accel-mac-command">⌘</string> @@ -2126,72 +2118,72 @@ Expected .wav, .tga, .bmp, .jpg, .jpeg, or .bvh  	<string name="accel-win-shift">Shift+</string>  	<!-- Previews --> -	<string name="FileSaved">File Saved</string>	 -	<string name="Receiving">Receiving</string>	 -		 +	<string name="FileSaved">File Saved</string> +	<string name="Receiving">Receiving</string> +  	<!-- status bar , Time --> -	<string name="AM">AM</string>	 -	<string name="PM">PM</string>	 -	<string name="PST">PST</string>	 -	<string name="PDT">PDT</string>			 +	<string name="AM">AM</string> +	<string name="PM">PM</string> +	<string name="PST">PST</string> +	<string name="PDT">PDT</string>  	<!-- Directions, HUD --> -	<string name="Forward">Forward</string>	 -	<string name="Left">Left</string>	 -	<string name="Right">Right</string>	 -	<string name="Back">Back</string>			 -	<string name="North">North</string>	 -	<string name="South">South</string>	 -	<string name="West">West</string>	 -	<string name="East">East</string>		 -	<string name="Up">Up</string>	 -	<string name="Down">Down</string>	 +	<string name="Forward">Forward</string> +	<string name="Left">Left</string> +	<string name="Right">Right</string> +	<string name="Back">Back</string> +	<string name="North">North</string> +	<string name="South">South</string> +	<string name="West">West</string> +	<string name="East">East</string> +	<string name="Up">Up</string> +	<string name="Down">Down</string>      <!-- Search Category Strings --> -	<string name="Any Category">Any Category</string>	 -	<string name="Shopping">Shopping</string>	 -	<string name="Land Rental">Land Rental</string>	 -	<string name="Property Rental">Property Rental</string>	 -	<string name="Special Attraction">Special Attraction</string>	 -	<string name="New Products">New Products</string>	 -	<string name="Employment">Employment</string>	 -	<string name="Wanted">Wanted</string>	 -	<string name="Service">Service</string>	 -	<string name="Personal">Personal</string>	 +	<string name="Any Category">Any Category</string> +	<string name="Shopping">Shopping</string> +	<string name="Land Rental">Land Rental</string> +	<string name="Property Rental">Property Rental</string> +	<string name="Special Attraction">Special Attraction</string> +	<string name="New Products">New Products</string> +	<string name="Employment">Employment</string> +	<string name="Wanted">Wanted</string> +	<string name="Service">Service</string> +	<string name="Personal">Personal</string>  	<!-- PARCEL_CATEGORY_UI_STRING --> -	<string name="None">None</string>	 -	<string name="Linden Location">Linden Location</string>	 -	<string name="Adult">Adult</string>	 -	<string name="Arts&Culture">Arts & Culture</string>			 -	<string name="Business">Business</string>	 -	<string name="Educational">Educational</string>	 -	<string name="Gaming">Gaming</string>	 -	<string name="Hangout">Hangout</string>		 -	<string name="Newcomer Friendly">Newcomer Friendly</string>	 +	<string name="None">None</string> +	<string name="Linden Location">Linden Location</string> +	<string name="Adult">Adult</string> +	<string name="Arts&Culture">Arts & Culture</string> +	<string name="Business">Business</string> +	<string name="Educational">Educational</string> +	<string name="Gaming">Gaming</string> +	<string name="Hangout">Hangout</string> +	<string name="Newcomer Friendly">Newcomer Friendly</string>  	<string name="Parks&Nature">Parks & Nature</string> -	<string name="Residential">Residential</string>	 +	<string name="Residential">Residential</string>  	<!--<string name="Shopping">Shopping</string>	--> -	<string name="Stage">Stage</string>	 -	<string name="Other">Other</string>	 -	<string name="Any">Any</string>	 -	<string name="You">You</string>							 -						 +	<string name="Stage">Stage</string> +	<string name="Other">Other</string> +	<string name="Any">Any</string> +	<string name="You">You</string> +  	<!-- punctuations --> -	<string name=":">:</string>			 -	<string name=",">,</string>					 -	<string name="...">...</string>					 -	<string name="***">***</string>					 -	<string name="(">(</string>					 +	<string name=":">:</string> +	<string name=",">,</string> +	<string name="...">...</string> +	<string name="***">***</string> +	<string name="(">(</string>  	<string name=")">)</string> -	<string name=".">.</string>		 -	<string name="'">'</string>	 -	<string name="---">---</string>										 +	<string name=".">.</string> +	<string name="'">'</string> +	<string name="---">---</string>  	<!-- media -->  	<string name="Multiple Media">Multiple Media</string>  	<string name="Play Media">Play/Pause Media</string> -	 +  	<!-- OSMessageBox messages -->  	<string name="MBCmdLineError">  		An error was found parsing the command line. @@ -2800,13 +2792,13 @@ If you continue to receive this message, contact the [SUPPORT_SITE].  <string name="Wide Lips">Wide Lips</string>  <string name="Wild">Wild</string>  <string name="Wrinkles">Wrinkles</string> -   +    <!-- Favorites Bar -->    <string name="LocationCtrlAddLandmarkTooltip">Add to My Landmarks</string>    <string name="LocationCtrlEditLandmarkTooltip">Edit My Landmark</string>    <string name="LocationCtrlInfoBtnTooltip">See more info about the current location</string>    <string name="LocationCtrlComboBtnTooltip">My location history</string> -   +    <!-- Strings used by the (currently Linux) auto-updater app -->  	<string name="UpdaterWindowTitle">  	  [APP_NAME] Update @@ -2868,9 +2860,6 @@ If you continue to receive this message, contact the [SUPPORT_SITE].    <string name="inventory_item_offered-im">      Inventory item offered    </string> -  <string name="share_alert"> -    Drag items from inventory here -  </string>    <string name="only_user_message">      You are the only user in this session. diff --git a/indra/newview/tests/lldateutil_test.cpp b/indra/newview/tests/lldateutil_test.cpp index ed753b6ff7..142a5eb5e6 100644 --- a/indra/newview/tests/lldateutil_test.cpp +++ b/indra/newview/tests/lldateutil_test.cpp @@ -60,6 +60,11 @@ std::string LLTrans::getString(const std::string &xml_desc, const LLStringUtil::  std::string LLTrans::getCountString(const std::string& language, const std::string& xml_desc, S32 count)  { +	count_string_t key(xml_desc, count); +	if (gCountString.find(key) == gCountString.end()) +	{ +		return std::string("Couldn't find ") + xml_desc; +	}  	return gCountString[ count_string_t(xml_desc, count) ];  } @@ -91,8 +96,11 @@ namespace tut  			gCountString[ count_string_t("AgeYears", 2) ]  = "2 years";  			gCountString[ count_string_t("AgeMonths", 1) ] = "1 month";  			gCountString[ count_string_t("AgeMonths", 2) ] = "2 months"; +			gCountString[ count_string_t("AgeMonths", 11) ]= "11 months";  			gCountString[ count_string_t("AgeWeeks", 1) ]  = "1 week";  			gCountString[ count_string_t("AgeWeeks", 2) ]  = "2 weeks"; +			gCountString[ count_string_t("AgeWeeks", 3) ]  = "3 weeks"; +			gCountString[ count_string_t("AgeWeeks", 4) ]  = "4 weeks";  			gCountString[ count_string_t("AgeDays", 1) ]   = "1 day";  			gCountString[ count_string_t("AgeDays", 2) ]   = "2 days";  		} @@ -113,12 +121,18 @@ namespace tut  		ensure_equals("years",  			LLDateUtil::ageFromDate("12/31/2007", mNow),  			"2 years old" ); -		ensure_equals("single year", -			LLDateUtil::ageFromDate("12/31/2008", mNow), -			"1 year old" ); +		ensure_equals("years", +			LLDateUtil::ageFromDate("1/1/2008", mNow), +			"1 year 11 months old" ); +		ensure_equals("single year + one month", +			LLDateUtil::ageFromDate("11/30/2008", mNow), +			"1 year 1 month old" );  		ensure_equals("single year + a bit",  			LLDateUtil::ageFromDate("12/12/2008", mNow),  			"1 year old" ); +		ensure_equals("single year", +			LLDateUtil::ageFromDate("12/31/2008", mNow), +			"1 year old" );      }  	template<> template<> @@ -128,6 +142,9 @@ namespace tut  		ensure_equals("months",  			LLDateUtil::ageFromDate("10/30/2009", mNow),  			"2 months old" ); +		ensure_equals("months 2", +			LLDateUtil::ageFromDate("10/31/2009", mNow), +			"2 months old" );  		ensure_equals("single month",  			LLDateUtil::ageFromDate("11/30/2009", mNow),  			"1 month old" ); @@ -137,6 +154,9 @@ namespace tut  	void dateutil_object_t::test<3>()  	{  		set_test_name("Weeks"); +		ensure_equals("4 weeks", +			LLDateUtil::ageFromDate("12/1/2009", mNow), +			"4 weeks old" );  		ensure_equals("weeks",  			LLDateUtil::ageFromDate("12/17/2009", mNow),  			"2 weeks old" ); | 
