diff options
28 files changed, 224 insertions, 81 deletions
| @@ -32,3 +32,4 @@ b0cd7e150009809a0b5b0a9d5785cd4bb230413a 2.2.0-beta3  98e0d6df638429fd2f0476667504bd5a6b298def 2.3.0-beta1  1415e6538d54fd5d568ee88343424d57c6803c2c 2.2.0-release  98e0d6df638429fd2f0476667504bd5a6b298def 2.3.0-start +a3c12342b1af0951b8aa3b828aacef17fcea8178 2.3.0-beta1 diff --git a/doc/contributions.txt b/doc/contributions.txt index 09f0f1ae8a..c82f930b55 100644 --- a/doc/contributions.txt +++ b/doc/contributions.txt @@ -79,6 +79,8 @@ Aleric Inglewood  Ales Beaumont  	VWR-9352  	SNOW-240 +Alexandrea Fride +    STORM-255  Alissa Sabre  	VWR-81  	VWR-83 @@ -596,6 +598,8 @@ Salahzar Stenvaag  	CT-321  Sammy Frederix  	VWR-6186 +Satomi Ahn +	STORM-501  Scrippy Scofield  	VWR-3748  Seg Baphomet @@ -754,6 +758,9 @@ Wilton Lundquist  	VWR-7682  Zai Lynch  	VWR-19505 +Wolfpup Lowenhar +	STORM-255 +	STORM-256  Zarkonnen Decosta  	VWR-253  Zi Ree diff --git a/indra/llmessage/llcachename.cpp b/indra/llmessage/llcachename.cpp index 522b99bc02..a8f53a38c3 100644 --- a/indra/llmessage/llcachename.cpp +++ b/indra/llmessage/llcachename.cpp @@ -556,25 +556,38 @@ std::string LLCacheName::buildUsername(const std::string& full_name)  //static   std::string LLCacheName::buildLegacyName(const std::string& complete_name)  { -	boost::regex complete_name_regex("(.+)( \\()([A-Za-z]+)(.[A-Za-z]+)*(\\))"); -	boost::match_results<std::string::const_iterator> name_results; -	if (!boost::regex_match(complete_name, name_results, complete_name_regex)) return complete_name; +	// regexp doesn't play nice with unicode, chop off the display name +	S32 open_paren = complete_name.rfind(" ("); -	std::string legacy_name = name_results[3]; +	if (open_paren == std::string::npos) +	{ +		return complete_name; +	} + +	std::string username = complete_name.substr(open_paren); +	boost::regex complete_name_regex("( \\()([a-z0-9]+)(.[a-z]+)*(\\))");
 +	boost::match_results<std::string::const_iterator> name_results;
 +	if (!boost::regex_match(username, name_results, complete_name_regex)) return complete_name;
 +
 +	std::string legacy_name = name_results[2];  	// capitalize the first letter  	std::string cap_letter = legacy_name.substr(0, 1);  	LLStringUtil::toUpper(cap_letter); -	legacy_name = cap_letter + legacy_name.substr(1); - -	if (name_results[4].matched) -	{ -		std::string last_name = name_results[4]; +	legacy_name = cap_letter + legacy_name.substr(1);
 +
 +	if (name_results[3].matched)
 +	{
 +		std::string last_name = name_results[3];  		std::string cap_letter = last_name.substr(1, 1);  		LLStringUtil::toUpper(cap_letter); -		last_name = cap_letter + last_name.substr(2); -		legacy_name = legacy_name + " " + last_name; -	} - +		last_name = cap_letter + last_name.substr(2);
 +		legacy_name = legacy_name + " " + last_name;
 +	}
 +	else
 +	{
 +		legacy_name = legacy_name + " Resident";
 +	}
 +
  	return legacy_name;  } diff --git a/indra/llui/lltextbase.cpp b/indra/llui/lltextbase.cpp index 758df418e8..5721df6b36 100644 --- a/indra/llui/lltextbase.cpp +++ b/indra/llui/lltextbase.cpp @@ -2214,19 +2214,39 @@ bool LLTextBase::scrolledToEnd()  	return mScroller->isAtBottom();  } -  bool LLTextBase::setCursor(S32 row, S32 column)  { -	if (0 <= row && row < (S32)mLineInfoList.size()) +	if (row < 0 || column < 0) return false; + +	S32 n_lines = mLineInfoList.size(); +	for (S32 line = row; line < n_lines; ++line)  	{ -		S32 doc_pos = mLineInfoList[row].mDocIndexStart; -		column = llclamp(column, 0, mLineInfoList[row].mDocIndexEnd - mLineInfoList[row].mDocIndexStart - 1); -		doc_pos += column; -		updateCursorXPos(); +		const line_info& li = mLineInfoList[line]; + +		if (li.mLineNum < row) +		{ +			continue; +		} +		else if (li.mLineNum > row) +		{ +			break; // invalid column specified +		} + +		// Found the given row. +		S32 line_length = li.mDocIndexEnd - li.mDocIndexStart;; +		if (column >= line_length) +		{ +			column -= line_length; +			continue; +		} +		// Found the given column. +		updateCursorXPos(); +		S32 doc_pos = li.mDocIndexStart + column;  		return setCursorPos(doc_pos);  	} -	return false; + +	return false; // invalid row or column specified  } diff --git a/indra/llui/lluistring.h b/indra/llui/lluistring.h index eff2467bf0..4faa0e070e 100644 --- a/indra/llui/lluistring.h +++ b/indra/llui/lluistring.h @@ -58,10 +58,12 @@ class LLUIString  public:  	// These methods all perform appropriate argument substitution  	// and modify mOrig where appropriate -        LLUIString() : mArgs(NULL), mNeedsResult(false), mNeedsWResult(false) {} +	LLUIString() : mArgs(NULL), mNeedsResult(false), mNeedsWResult(false) {}  	LLUIString(const std::string& instring, const LLStringUtil::format_map_t& args);  	LLUIString(const std::string& instring) : mArgs(NULL) { assign(instring); } +	~LLUIString() { delete mArgs; } +  	void assign(const std::string& instring);  	LLUIString& operator=(const std::string& s) { assign(s); return *this; } @@ -81,14 +83,14 @@ public:  	void clear();  	void clearArgs() { if (mArgs) mArgs->clear(); } -	 +  	// These utility functions are included for text editing.  	// They do not affect mOrig and do not perform argument substitution  	void truncate(S32 maxchars);  	void erase(S32 charidx, S32 len);  	void insert(S32 charidx, const LLWString& wchars);  	void replace(S32 charidx, llwchar wc); -	 +  private:  	// something changed, requiring reformatting of strings  	void dirty(); @@ -100,7 +102,7 @@ private:  	void updateResult() const;  	void updateWResult() const;  	LLStringUtil::format_map_t& getArgs(); -	 +  	std::string mOrig;  	mutable std::string mResult;  	mutable LLWString mWResult; // for displaying diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 7172f0359a..e5656c0877 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -2567,6 +2567,28 @@        <key>Value</key>        <integer>1</integer>      </map> +    <key>EnableGroupChatPopups</key> +    <map> +      <key>Comment</key> +      <string>Enable Incoming Group Chat Popups</string> +      <key>Persist</key> +      <integer>1</integer> +      <key>Type</key> +      <string>Boolean</string> +      <key>Value</key> +      <integer>1</integer> +    </map> +    <key>EnableIMChatPopups</key> +    <map> +      <key>Comment</key> +      <string>Enable Incoming IM Chat Popups</string> +      <key>Persist</key> +      <integer>1</integer> +      <key>Type</key> +      <string>Boolean</string> +      <key>Value</key> +      <integer>1</integer> +    </map>      <key>DisplayAvatarAgentTarget</key>      <map>        <key>Comment</key> diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp index ed5e8ceee3..62074ddcd5 100644 --- a/indra/newview/llappearancemgr.cpp +++ b/indra/newview/llappearancemgr.cpp @@ -2204,12 +2204,11 @@ void LLAppearanceMgr::updateIsDirty()  		base_outfit = catp->getUUID();  	} -	if(base_outfit.isNull()) -	{ -		// no outfit link found, display "unsaved outfit" -		mOutfitIsDirty = true; -	} -	else +	// Set dirty to "false" if no base outfit found to disable "Save" +	// and leave only "Save As" enabled in My Outfits. +	mOutfitIsDirty = false; + +	if (base_outfit.notNull())  	{  		LLIsOfAssetType collector = LLIsOfAssetType(LLAssetType::AT_LINK); @@ -2248,8 +2247,6 @@ void LLAppearanceMgr::updateIsDirty()  				return;  			}  		} - -		mOutfitIsDirty = false;  	}  } @@ -2635,6 +2632,7 @@ void LLAppearanceMgr::dumpItemArray(const LLInventoryModel::item_array_t& items,  LLAppearanceMgr::LLAppearanceMgr():  	mAttachmentInvLinkEnabled(false),  	mOutfitIsDirty(false), +	mOutfitLocked(false),  	mIsInUpdateAppearanceFromCOF(false)  {  	LLOutfitObserver& outfit_observer = LLOutfitObserver::instance(); diff --git a/indra/newview/llavatarlistitem.cpp b/indra/newview/llavatarlistitem.cpp index a56dc129d4..30eecfe323 100644 --- a/indra/newview/llavatarlistitem.cpp +++ b/indra/newview/llavatarlistitem.cpp @@ -41,7 +41,7 @@  bool LLAvatarListItem::sStaticInitialized = false;  S32 LLAvatarListItem::sLeftPadding = 0; -S32 LLAvatarListItem::sRightNamePadding = 0; +S32 LLAvatarListItem::sNameRightPadding = 0;  S32 LLAvatarListItem::sChildrenWidths[LLAvatarListItem::ALIC_COUNT];  static LLWidgetNameRegistry::StaticRegistrar sRegisterAvatarListItemParams(&typeid(LLAvatarListItem::Params), "avatar_list_item"); @@ -52,7 +52,8 @@ LLAvatarListItem::Params::Params()  	voice_call_joined_style("voice_call_joined_style"),  	voice_call_left_style("voice_call_left_style"),  	online_style("online_style"), -	offline_style("offline_style") +	offline_style("offline_style"), +	name_right_pad("name_right_pad", 0)  {}; @@ -119,6 +120,9 @@ BOOL  LLAvatarListItem::postBuild()  		// so that we can hide and show them again later.  		initChildrenWidths(this); +		// Right padding between avatar name text box and nearest visible child. +		sNameRightPadding = LLUICtrlFactory::getDefaultParams<LLAvatarListItem>().name_right_pad; +  		sStaticInitialized = true;  	} @@ -486,7 +490,6 @@ void LLAvatarListItem::initChildrenWidths(LLAvatarListItem* avatar_item)  	S32 icon_width = avatar_item->mAvatarName->getRect().mLeft - avatar_item->mAvatarIcon->getRect().mLeft;  	sLeftPadding = avatar_item->mAvatarIcon->getRect().mLeft; -	sRightNamePadding = avatar_item->mLastInteractionTime->getRect().mLeft - avatar_item->mAvatarName->getRect().mRight;  	S32 index = ALIC_COUNT;  	sChildrenWidths[--index] = icon_width; @@ -565,7 +568,7 @@ void LLAvatarListItem::updateChildren()  	// apply paddings  	name_new_width -= sLeftPadding; -	name_new_width -= sRightNamePadding; +	name_new_width -= sNameRightPadding;  	name_view_rect.setLeftTopAndSize(  		name_new_left, diff --git a/indra/newview/llavatarlistitem.h b/indra/newview/llavatarlistitem.h index a069838ac3..c95ac39696 100644 --- a/indra/newview/llavatarlistitem.h +++ b/indra/newview/llavatarlistitem.h @@ -51,6 +51,8 @@ public:  									online_style,  									offline_style; +		Optional<S32>				name_right_pad; +  		Params();  	}; @@ -215,7 +217,7 @@ private:  	static bool	sStaticInitialized; // this variable is introduced to improve code readability  	static S32  sLeftPadding; // padding to first left visible child (icon or name) -	static S32  sRightNamePadding; // right padding from name to next visible child +	static S32  sNameRightPadding; // right padding from name to next visible child  	/**  	 * Contains widths of each child specified by EAvatarListItemChildIndex diff --git a/indra/newview/llhints.cpp b/indra/newview/llhints.cpp index 7f6df627e0..3f0deb98cd 100644 --- a/indra/newview/llhints.cpp +++ b/indra/newview/llhints.cpp @@ -109,7 +109,14 @@ public:  	/*virtual*/ BOOL postBuild(); -	void onClickClose() { hide(); LLNotifications::instance().cancel(mNotification); } +	void onClickClose()  +	{  +		if (!mHidden)  +		{ +			hide();  +			LLNotifications::instance().cancel(mNotification); +		} +	}  	void draw();  	void hide() { if(!mHidden) {mHidden = true; mFadeTimer.reset();} } diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp index 914e7a3df0..857c27be63 100644 --- a/indra/newview/llimview.cpp +++ b/indra/newview/llimview.cpp @@ -131,6 +131,20 @@ void toast_callback(const LLSD& msg){  		return;  	} +	// *NOTE Skip toasting if the user disable it in preferences/debug settings ~Alexandrea +	LLIMModel::LLIMSession* session = LLIMModel::instance().findIMSession( +				msg["session_id"]); +	if (!gSavedSettings.getBOOL("EnableGroupChatPopups") +			&& session->isGroupSessionType()) +	{ +		return; +	} +	if (!gSavedSettings.getBOOL("EnableIMChatPopups") +			&& !session->isGroupSessionType()) +	{ +		return; +	} +  	// Skip toasting if we have open window of IM with this session id  	LLIMFloater* open_im_floater = LLIMFloater::findInstance(msg["session_id"]);  	if (open_im_floater && open_im_floater->getVisible()) @@ -257,21 +271,17 @@ LLIMModel::LLIMSession::LLIMSession(const LLUUID& session_id, const std::string&  	// history files have consistent (English) names in different locales.  	if (isAdHocSessionType() && IM_SESSION_INVITE == type)  	{ -		// Name here has a form of "<Avatar's name> Conference" -		// Lets update it to localize the "Conference" word. See EXT-8429. -		S32 separator_index = mName.rfind(" "); -		std::string name = mName.substr(0, separator_index); -		++separator_index; -		std::string conference_word = mName.substr(separator_index, mName.length()); +		LLAvatarNameCache::get(mOtherParticipantID,  +							   boost::bind(&LLIMModel::LLIMSession::onAdHocNameCache,  +							   this, _2)); +	} +} -		// additional check that session name is what we expected -		if ("Conference" == conference_word) -		{ +void LLIMModel::LLIMSession::onAdHocNameCache(const LLAvatarName& av_name) +{  			LLStringUtil::format_map_t args; -			args["[AGENT_NAME]"] = name; +	args["[AGENT_NAME]"] = av_name.getCompleteName();  			LLTrans::findString(mName, "conference-title-incoming", args); -		} -	}  }  void LLIMModel::LLIMSession::onVoiceChannelStateChanged(const LLVoiceChannel::EState& old_state, const LLVoiceChannel::EState& new_state, const LLVoiceChannel::EDirection& direction) diff --git a/indra/newview/llimview.h b/indra/newview/llimview.h index 3da4465862..650d329e18 100644 --- a/indra/newview/llimview.h +++ b/indra/newview/llimview.h @@ -100,6 +100,8 @@ public:  		void onAvatarNameCache(const LLUUID& avatar_id, const LLAvatarName& av_name); +		void onAdHocNameCache(const LLAvatarName& av_name);
 +  		//*TODO make private  		static std::string generateHash(const std::set<LLUUID>& sorted_uuids); diff --git a/indra/newview/llinventorypanel.cpp b/indra/newview/llinventorypanel.cpp index 50adae09c0..0870b5b8dd 100644 --- a/indra/newview/llinventorypanel.cpp +++ b/indra/newview/llinventorypanel.cpp @@ -290,7 +290,10 @@ void LLInventoryPanel::modelChanged(U32 mask)  		const LLUUID& item_id = (*items_iter);  		const LLInventoryObject* model_item = model->getObject(item_id);  		LLFolderViewItem* view_item = mFolderRoot->getItemByID(item_id); -		LLFolderViewFolder* view_folder = mFolderRoot->getFolderByID(item_id); + +		// LLFolderViewFolder is derived from LLFolderViewItem so dynamic_cast from item +		// to folder is the fast way to get a folder without searching through folders tree. +		LLFolderViewFolder* view_folder = dynamic_cast<LLFolderViewFolder*>(view_item);  		//////////////////////////////  		// LABEL Operation diff --git a/indra/newview/llpanelgroupgeneral.cpp b/indra/newview/llpanelgroupgeneral.cpp index 80df420a4e..ec340dc258 100644 --- a/indra/newview/llpanelgroupgeneral.cpp +++ b/indra/newview/llpanelgroupgeneral.cpp @@ -692,7 +692,8 @@ void LLPanelGroupGeneral::updateMembers()  	LLGroupMgrGroupData* gdatap = LLGroupMgr::getInstance()->getGroupData(mGroupID);  	if (!mListVisibleMembers || !gdatap  -		|| !gdatap->isMemberDataComplete()) +		|| !gdatap->isMemberDataComplete() +		|| gdatap->mMembers.empty())  	{  		return;  	} diff --git a/indra/newview/llsidepaneliteminfo.cpp b/indra/newview/llsidepaneliteminfo.cpp index f9c0fd398e..be797ea937 100644 --- a/indra/newview/llsidepaneliteminfo.cpp +++ b/indra/newview/llsidepaneliteminfo.cpp @@ -68,10 +68,22 @@ private:  void LLItemPropertiesObserver::changed(U32 mask)  { -	// if there's a change we're interested in. -	if((mask & (LLInventoryObserver::LABEL | LLInventoryObserver::INTERNAL | LLInventoryObserver::REMOVE)) != 0) +	const std::set<LLUUID>& mChangedItemIDs = gInventory.getChangedIDs(); +	std::set<LLUUID>::const_iterator it; + +	const LLUUID& object_id = mFloater->getObjectID(); + +	for (it = mChangedItemIDs.begin(); it != mChangedItemIDs.end(); it++)  	{ -		mFloater->dirty(); +		// set dirty for 'item profile panel' only if changed item is the item for which 'item profile panel' is shown (STORM-288) +		if (*it == object_id) +		{ +			// if there's a change we're interested in. +			if((mask & (LLInventoryObserver::LABEL | LLInventoryObserver::INTERNAL | LLInventoryObserver::REMOVE)) != 0) +			{ +				mFloater->dirty(); +			} +		}  	}  } @@ -179,6 +191,11 @@ void LLSidepanelItemInfo::setItemID(const LLUUID& item_id)  	mItemID = item_id;  } +const LLUUID& LLSidepanelItemInfo::getObjectID() const +{ +	return mObjectID; +} +  void LLSidepanelItemInfo::reset()  {  	LLSidepanelInventorySubpanel::reset(); diff --git a/indra/newview/llsidepaneliteminfo.h b/indra/newview/llsidepaneliteminfo.h index 10e93dd7de..6416e2cfe4 100644 --- a/indra/newview/llsidepaneliteminfo.h +++ b/indra/newview/llsidepaneliteminfo.h @@ -54,6 +54,8 @@ public:  	void setItemID(const LLUUID& item_id);  	void setEditMode(BOOL edit); +	const LLUUID& getObjectID() const; +  protected:  	/*virtual*/ void refresh();  	/*virtual*/ void save(); diff --git a/indra/newview/llvoavatar.h b/indra/newview/llvoavatar.h index f4f1235d55..a779a1735c 100644 --- a/indra/newview/llvoavatar.h +++ b/indra/newview/llvoavatar.h @@ -33,6 +33,8 @@  #include <string>  #include <vector> +#include <boost/signals2.hpp> +  #include "imageids.h"			// IMG_INVISIBLE  #include "llchat.h"  #include "lldrawpoolalpha.h" @@ -71,7 +73,8 @@ class LLVOAvatarSkeletonInfo;  //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  class LLVOAvatar :  	public LLViewerObject, -	public LLCharacter +	public LLCharacter, +	public boost::signals2::trackable  {  public:  	friend class LLVOAvatarSelf; diff --git a/indra/newview/skins/default/xui/en/floater_about_land.xml b/indra/newview/skins/default/xui/en/floater_about_land.xml index 0a27cc7bc9..3dd6c60095 100644 --- a/indra/newview/skins/default/xui/en/floater_about_land.xml +++ b/indra/newview/skins/default/xui/en/floater_about_land.xml @@ -255,7 +255,6 @@              </text>     <!--TODO: HOOK UP GROUP ICON-->              <text -             enabled="false"               follows="left|top"               height="16"               left_pad="2" diff --git a/indra/newview/skins/default/xui/en/floater_bulk_perms.xml b/indra/newview/skins/default/xui/en/floater_bulk_perms.xml index 457142f11c..4e0cfb0cd4 100644 --- a/indra/newview/skins/default/xui/en/floater_bulk_perms.xml +++ b/indra/newview/skins/default/xui/en/floater_bulk_perms.xml @@ -7,7 +7,7 @@   name="floaterbulkperms"   help_topic="floaterbulkperms"   title="EDIT CONTENT PERMISSIONS" - width="300"> + width="410">      <floater.string       name="nothing_to_modify_text">          Selection contains no editable contents. @@ -71,7 +71,7 @@       control_name="BulkChangeIncludeGestures"       height="16"       name="check_gesture" -     left="65" +     left="95"       width="16"       top="25" />      <icon @@ -87,7 +87,7 @@       height="16"       layout="topleft"       name="check_notecard" -     left="65" +     left="95"       width="16"       top_pad="5" />      <icon @@ -102,7 +102,7 @@       control_name="BulkChangeIncludeObjects"       height="16"       name="check_object" -     left="65" +     left="95"       top_pad="5"       width="16" />     <icon @@ -117,7 +117,7 @@       height="16"       name="check_script"       top="25" -     left="120" +     left="180"       width="16"       />      <icon @@ -133,7 +133,7 @@       height="16"       name="check_sound"       top_pad="5" -     left="120" +     left="180"       width="16" />      <icon       height="16" @@ -147,7 +147,7 @@       height="16"       name="check_texture"       top_pad="5" -     left="120" +     left="180"       width="16" />      <icon       height="16" @@ -162,7 +162,7 @@      layout="topleft"     name="check_all"       label="√ All" -     left="180" +     left="290"       top="26"       width="115">        <button.commit_callback @@ -221,7 +221,7 @@       height="28"       layout="topleft"       name="AnyoneLabel" -     left="104" +     left="124"       top="110"       width="92"       word_wrap="true"> @@ -243,7 +243,7 @@       layout="topleft"       name="NextOwnerLabel"       top="110" -     left="189" +     left="275"       width="92"       word_wrap="true">          Next owner: @@ -292,7 +292,7 @@       height="23"       label="OK"       layout="topleft" -     left="95" +     left="205"       name="apply"       top_pad="10"       width="90"> diff --git a/indra/newview/skins/default/xui/en/floater_display_name.xml b/indra/newview/skins/default/xui/en/floater_display_name.xml index 7a3fb9334a..9a9fd32a77 100644 --- a/indra/newview/skins/default/xui/en/floater_display_name.xml +++ b/indra/newview/skins/default/xui/en/floater_display_name.xml @@ -63,7 +63,7 @@         width="300"         height="20"        font="SansSerif" -    name="set_name_label"> +    name="name_confirm_label">        Type your new name again to confirm:      </text>      <line_editor diff --git a/indra/newview/skins/default/xui/en/floater_tools.xml b/indra/newview/skins/default/xui/en/floater_tools.xml index d5be64192b..f361cb7f8e 100644 --- a/indra/newview/skins/default/xui/en/floater_tools.xml +++ b/indra/newview/skins/default/xui/en/floater_tools.xml @@ -965,7 +965,7 @@               top_pad="10"               left="10"               name="label click action" -             width="98"> +             width="118">                  Click to:              </text>              <combo_box @@ -973,7 +973,7 @@               height="23"               layout="topleft"               name="clickaction" -             width="168" +             width="148"               left_pad="0">                  <combo_box.item                   label="Touch  (default)" diff --git a/indra/newview/skins/default/xui/en/panel_people.xml b/indra/newview/skins/default/xui/en/panel_people.xml index d34c0c29a8..68c423d7dd 100644 --- a/indra/newview/skins/default/xui/en/panel_people.xml +++ b/indra/newview/skins/default/xui/en/panel_people.xml @@ -307,7 +307,7 @@ Looking for people to hang out with? Try the [secondlife:///app/worldmap World M  				           image_unselected="Toolbar_Right_Off"  				           left="0"  				           layout="topleft" -				           name="trash_btn" +				           name="del_btn"  				           tool_tip="Remove selected person from your Friends list"  				           top="0"  				           width="31"/> diff --git a/indra/newview/skins/default/xui/en/panel_preferences_chat.xml b/indra/newview/skins/default/xui/en/panel_preferences_chat.xml index c009fd2931..85824c2576 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_chat.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_chat.xml @@ -375,7 +375,7 @@       left="30"       height="20"       width="170" -     top_pad="14"> +     top_pad="7">       Show IMs in:      </text>      <text @@ -391,14 +391,14 @@        (requires restart)        </text>      <radio_group +     follows="left|top"       height="30" -     layout="topleft"       left="40"       control_name="ChatWindow"       name="chat_window"       top_pad="0"       tool_tip="Show your Instant Messages in separate floaters, or in one floater with many tabs (Requires restart)" -     width="331"> +     width="150">       <radio_item        height="16"        label="Separate windows" @@ -418,6 +418,36 @@        top_pad="5"        width="150" />      </radio_group> +    <text +     name="disable_toast_label" +     follows="left|top" +     layout="topleft" +     top_delta="-22"  +     left="280"  +     height="10" +     width="180"> +      Enable Incoming Chat popups: +      </text> +    <check_box +     control_name="EnableGroupChatPopups" +     name="EnableGroupChatPopups" +     label="Group Chats"  +     layout="topleft" +     top_delta="18"  +     left="295"  +     height="20" +     tool_tip="Check to see popups when a Group Chat message arrives" +     width="400" /> +    <check_box +     control_name="EnableIMChatPopups" +     name="EnableIMChatPopups" +     label="IM Chats"  +     layout="topleft" +     top_delta="22"  +     left="295"  +     height="20" +     tool_tip="Check to see popups when an instant message arrives" +     width="400" />      <check_box       control_name="TranslateChat"       enabled="true" @@ -520,4 +550,4 @@           name="Korean"           value="ko" />      </combo_box> -</panel> +</panel>
\ No newline at end of file diff --git a/indra/newview/skins/default/xui/en/widgets/avatar_list_item.xml b/indra/newview/skins/default/xui/en/widgets/avatar_list_item.xml index ed8df69bf4..1bb3188cc8 100644 --- a/indra/newview/skins/default/xui/en/widgets/avatar_list_item.xml +++ b/indra/newview/skins/default/xui/en/widgets/avatar_list_item.xml @@ -1,5 +1,6 @@  <?xml version="1.0" encoding="utf-8" standalone="yes" ?>  <avatar_list_item + name_right_pad="5"   height="0"   layout="topleft"   left="0" diff --git a/indra/newview/skins/default/xui/es/floater_tools.xml b/indra/newview/skins/default/xui/es/floater_tools.xml index 9867f1b575..249e9e0913 100644 --- a/indra/newview/skins/default/xui/es/floater_tools.xml +++ b/indra/newview/skins/default/xui/es/floater_tools.xml @@ -186,10 +186,10 @@  			<button label="Configurar..." label_selected="Configurar..." name="button set group" tool_tip="Elige un grupo con el que compartir los permisos de este objeto"/>  			<check_box label="Compartir" name="checkbox share with group" tool_tip="Permite que todos los miembros del grupo compartan tus permisos de modificación en este objeto. Debes transferirlo para activar las restricciones según los roles."/>  			<button label="Transferir" label_selected="Transferir" name="button deed" tool_tip="La transferencia entrega este objeto con los permisos del próximo propietario. Los objetos compartidos por el grupo pueden ser transferidos por un oficial del grupo."/> -			<text name="label click action" width="180"> +			<text name="label click action">  				Al tocarlo:  			</text> -			<combo_box name="clickaction" width="192"> +			<combo_box name="clickaction">  				<combo_box.item label="Tocarlo (por defecto)" name="Touch/grab(default)"/>  				<combo_box.item label="Sentarse en el objeto" name="Sitonobject"/>  				<combo_box.item label="Comprar el objeto" name="Buyobject"/> diff --git a/indra/newview/skins/default/xui/fr/floater_tools.xml b/indra/newview/skins/default/xui/fr/floater_tools.xml index 666aaa8147..8a128c0308 100644 --- a/indra/newview/skins/default/xui/fr/floater_tools.xml +++ b/indra/newview/skins/default/xui/fr/floater_tools.xml @@ -189,7 +189,7 @@  			<text name="label click action">  				Cliquer pour :  			</text> -			<combo_box name="clickaction" width="178"> +			<combo_box name="clickaction">  				<combo_box.item label="Toucher (par défaut)" name="Touch/grab(default)"/>  				<combo_box.item label="S'asseoir sur l'objet" name="Sitonobject"/>  				<combo_box.item label="Acheter l'objet" name="Buyobject"/> diff --git a/indra/newview/skins/default/xui/ja/floater_bulk_perms.xml b/indra/newview/skins/default/xui/ja/floater_bulk_perms.xml index be24960c6e..d8d0164618 100644 --- a/indra/newview/skins/default/xui/ja/floater_bulk_perms.xml +++ b/indra/newview/skins/default/xui/ja/floater_bulk_perms.xml @@ -43,7 +43,7 @@  		全員:  	</text>  	<check_box label="コピー" name="everyone_copy"/> -	<text name="NextOwnerLabel" left="160"> +	<text name="NextOwnerLabel">  		次の所有者:  	</text>  	<check_box label="修正" name="next_owner_modify"/> diff --git a/indra/newview/skins/default/xui/nl/floater_tools.xml b/indra/newview/skins/default/xui/nl/floater_tools.xml index 212cac0a5b..b72e4d4681 100644 --- a/indra/newview/skins/default/xui/nl/floater_tools.xml +++ b/indra/newview/skins/default/xui/nl/floater_tools.xml @@ -144,7 +144,7 @@  			<text name="label click action">  				Wanneer links-geklikt:  			</text> -			<combo_box name="clickaction" width="178"> +			<combo_box name="clickaction">  				<combo_box.item name="Touch/grab(default)" label="Aanraken/pakken (standaard)"  				/>  				<combo_box.item name="Sitonobject" label="Zit op object" | 
