diff options
Diffstat (limited to 'indra/newview')
131 files changed, 1089 insertions, 455 deletions
| diff --git a/indra/newview/VIEWER_VERSION.txt b/indra/newview/VIEWER_VERSION.txt index c47e8b5872..e8b6c77dc9 100644 --- a/indra/newview/VIEWER_VERSION.txt +++ b/indra/newview/VIEWER_VERSION.txt @@ -1 +1 @@ -3.6.10 +3.6.11 diff --git a/indra/newview/app_settings/commands.xml b/indra/newview/app_settings/commands.xml index 60c942094a..ce878f156b 100755 --- a/indra/newview/app_settings/commands.xml +++ b/indra/newview/app_settings/commands.xml @@ -3,6 +3,8 @@    <command name="aboutland"             available_in_toybox="true"             icon="Command_AboutLand_Icon" +           hover_icon_unselected="Command_Highlighting_Icon" +           hover_icon_selected="Command_Highlighting_Selected_Icon"             label_ref="Command_AboutLand_Label"             tooltip_ref="Command_AboutLand_Tooltip"             execute_function="Floater.ToggleOrBringToFront" @@ -13,6 +15,8 @@    <command name="appearance"               available_in_toybox="true"             icon="Command_Appearance_Icon" +           hover_icon_unselected="Command_Highlighting_Icon" +           hover_icon_selected="Command_Highlighting_Selected_Icon"             label_ref="Command_Appearance_Label"             tooltip_ref="Command_Appearance_Tooltip"             execute_function="Floater.ToggleOrBringToFront" @@ -23,6 +27,8 @@    <command name="avatar"             available_in_toybox="true"             icon="Command_Avatar_Icon" +           hover_icon_unselected="Command_Highlighting_Icon" +           hover_icon_selected="Command_Highlighting_Selected_Icon"             label_ref="Command_Avatar_Label"             tooltip_ref="Command_Avatar_Tooltip"             execute_function="Floater.ToggleOrBringToFront" @@ -33,6 +39,8 @@    <command name="build"             available_in_toybox="true"             icon="Command_Build_Icon" +           hover_icon_unselected="Command_Highlighting_Icon" +           hover_icon_selected="Command_Highlighting_Selected_Icon"             label_ref="Command_Build_Label"             tooltip_ref="Command_Build_Tooltip"             execute_function="Build.Toggle" @@ -46,6 +54,8 @@             available_in_toybox="true"  		   is_flashing_allowed="true"             icon="Command_Chat_Icon" +           hover_icon_unselected="Command_Highlighting_Icon" +           hover_icon_selected="Command_Highlighting_Selected_Icon"             label_ref="Command_Chat_Label"             tooltip_ref="Command_Conversations_Tooltip"             execute_function="Floater.ToggleOrBringToFront" @@ -56,6 +66,8 @@    <command name="compass"             available_in_toybox="false"             icon="Command_Compass_Icon" +           hover_icon_unselected="Command_Highlighting_Icon" +           hover_icon_selected="Command_Highlighting_Selected_Icon"             label_ref="Command_Compass_Label"             tooltip_ref="Command_Compass_Tooltip"             execute_function="Floater.ToggleOrBringToFront" @@ -66,6 +78,8 @@    <command name="destinations"             available_in_toybox="true"             icon="Command_Destinations_Icon" +           hover_icon_unselected="Command_Highlighting_Icon" +           hover_icon_selected="Command_Highlighting_Selected_Icon"             label_ref="Command_Destinations_Label"             tooltip_ref="Command_Destinations_Tooltip"             execute_function="Floater.ToggleOrBringToFront" @@ -76,6 +90,8 @@    <command name="gestures"             available_in_toybox="true"             icon="Command_Gestures_Icon" +           hover_icon_unselected="Command_Highlighting_Icon" +           hover_icon_selected="Command_Highlighting_Selected_Icon"             label_ref="Command_Gestures_Label"             tooltip_ref="Command_Gestures_Tooltip"             execute_function="Floater.ToggleOrBringToFront" @@ -86,6 +102,8 @@    <command name="howto"             available_in_toybox="true"             icon="Command_HowTo_Icon" +           hover_icon_unselected="Command_Highlighting_Icon" +           hover_icon_selected="Command_Highlighting_Selected_Icon"             label_ref="Command_HowTo_Label"             tooltip_ref="Command_HowTo_Tooltip"             execute_function="Help.ToggleHowTo" @@ -94,6 +112,8 @@    <command name="inventory"             available_in_toybox="true"             icon="Command_Inventory_Icon" +           hover_icon_unselected="Command_Highlighting_Icon" +           hover_icon_selected="Command_Highlighting_Selected_Icon"             label_ref="Command_Inventory_Label"             tooltip_ref="Command_Inventory_Tooltip"             execute_function="Floater.ToggleOrBringToFront" @@ -104,6 +124,8 @@    <command name="map"             available_in_toybox="true"             icon="Command_Map_Icon" +           hover_icon_unselected="Command_Highlighting_Icon" +           hover_icon_selected="Command_Highlighting_Selected_Icon"             label_ref="Command_Map_Label"             tooltip_ref="Command_Map_Tooltip"             execute_function="Floater.ToggleOrBringToFront" @@ -114,6 +136,8 @@    <command name="marketplace"             available_in_toybox="false"             icon="Command_Marketplace_Icon" +           hover_icon_unselected="Command_Highlighting_Icon" +           hover_icon_selected="Command_Highlighting_Selected_Icon"             label_ref="Command_Marketplace_Label"             tooltip_ref="Command_Marketplace_Tooltip"             execute_function="Avatar.OpenMarketplace" @@ -121,6 +145,8 @@    <command name="minimap"             available_in_toybox="true"             icon="Command_MiniMap_Icon" +           hover_icon_unselected="Command_Highlighting_Icon" +           hover_icon_selected="Command_Highlighting_Selected_Icon"             label_ref="Command_MiniMap_Label"             tooltip_ref="Command_MiniMap_Tooltip"             execute_function="Floater.ToggleOrBringToFront" @@ -131,6 +157,8 @@    <command name="move"             available_in_toybox="true"             icon="Command_Move_Icon" +           hover_icon_unselected="Command_Highlighting_Icon" +           hover_icon_selected="Command_Highlighting_Selected_Icon"             label_ref="Command_Move_Label"             tooltip_ref="Command_Move_Tooltip"             execute_function="Floater.ToggleOrBringToFront" @@ -141,6 +169,8 @@    <command name="outbox"             available_in_toybox="false"             icon="Command_Outbox_Icon" +           hover_icon_unselected="Command_Highlighting_Icon" +           hover_icon_selected="Command_Highlighting_Selected_Icon"             label_ref="Command_Outbox_Label"             tooltip_ref="Command_Outbox_Tooltip"             execute_function="Floater.ToggleOrBringToFront" @@ -151,6 +181,8 @@    <command name="people"             available_in_toybox="true"             icon="Command_People_Icon" +           hover_icon_unselected="Command_Highlighting_Icon" +           hover_icon_selected="Command_Highlighting_Selected_Icon"             label_ref="Command_People_Label"             tooltip_ref="Command_People_Tooltip"             execute_function="Floater.ToggleOrBringToFront" @@ -161,6 +193,8 @@    <command name="picks"             available_in_toybox="true"             icon="Command_Picks_Icon" +           hover_icon_unselected="Command_Highlighting_Icon" +           hover_icon_selected="Command_Highlighting_Selected_Icon"             label_ref="Command_Picks_Label"             tooltip_ref="Command_Picks_Tooltip"             execute_function="Floater.ToggleOrBringToFront" @@ -171,6 +205,8 @@    <command name="places"             available_in_toybox="true"             icon="Command_Places_Icon" +           hover_icon_unselected="Command_Highlighting_Icon" +           hover_icon_selected="Command_Highlighting_Selected_Icon"             label_ref="Command_Places_Label"             tooltip_ref="Command_Places_Tooltip"             execute_function="Floater.ToggleOrBringToFront" @@ -181,6 +217,8 @@    <command name="preferences"             available_in_toybox="true"             icon="Command_Preferences_Icon" +           hover_icon_unselected="Command_Highlighting_Icon" +           hover_icon_selected="Command_Highlighting_Selected_Icon"             label_ref="Command_Preferences_Label"             tooltip_ref="Command_Preferences_Tooltip"             execute_function="Floater.ToggleOrBringToFront" @@ -191,6 +229,8 @@    <command name="profile"             available_in_toybox="true"             icon="Command_Profile_Icon" +           hover_icon_unselected="Command_Highlighting_Icon" +           hover_icon_selected="Command_Highlighting_Selected_Icon"             label_ref="Command_Profile_Label"             tooltip_ref="Command_Profile_Tooltip"             execute_function="Avatar.ToggleMyProfile" @@ -199,6 +239,8 @@    <command name="search"             available_in_toybox="true"             icon="Command_Search_Icon" +           hover_icon_unselected="Command_Highlighting_Icon" +           hover_icon_selected="Command_Highlighting_Selected_Icon"             label_ref="Command_Search_Label"             tooltip_ref="Command_Search_Tooltip"             execute_function="Floater.ToggleOrBringToFront" @@ -209,6 +251,8 @@    <command name="snapshot"             available_in_toybox="true"             icon="Command_Snapshot_Icon" +           hover_icon_unselected="Command_Highlighting_Icon" +           hover_icon_selected="Command_Highlighting_Selected_Icon"             label_ref="Command_Snapshot_Label"             tooltip_ref="Command_Snapshot_Tooltip"             execute_function="Floater.ToggleOrBringToFront" @@ -229,6 +273,8 @@    <command name="speak"             available_in_toybox="true"             icon="Command_Speak_Icon" +           hover_icon_unselected="Command_Highlighting_Icon" +           hover_icon_selected="Command_Highlighting_Selected_Icon"             label_ref="Command_Speak_Label"             tooltip_ref="Command_Speak_Tooltip"             execute_function="Agent.PressMicrophone" @@ -243,6 +289,8 @@    <command name="view"             available_in_toybox="true"             icon="Command_View_Icon" +           hover_icon_unselected="Command_Highlighting_Icon" +           hover_icon_selected="Command_Highlighting_Selected_Icon"             label_ref="Command_View_Label"             tooltip_ref="Command_View_Tooltip"             execute_function="Floater.ToggleOrBringToFront" diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index adcea5103e..789a504c39 100755 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -5963,6 +5963,17 @@        <key>Value</key>        <real>1.6</real>      </map> +    <key>MaxPersistentNotifications</key> +    <map> +      <key>Comment</key> +      <string>Maximum amount of persistent notifications</string> +      <key>Persist</key> +      <integer>1</integer> +      <key>Type</key> +      <string>S32</string> +      <key>Value</key> +      <real>250</real> +    </map>      <key>MaxSelectDistance</key>      <map>        <key>Comment</key> @@ -9924,7 +9935,7 @@      <key>RenderUseVAO</key>      <map>        <key>Comment</key> -      <string>[EXPERIMENTAL] Use GL Vertex Array Objects</string> +      <string>[EXPERIMENTAL] Use GL Vertex Array Objects.</string>        <key>Persist</key>        <integer>1</integer>        <key>Type</key> @@ -13452,7 +13463,7 @@        <key>Type</key>        <string>String</string>        <key>Value</key> -      <string>-1</string> +      <string>0</string>      </map>      <key>VivoxDebugSIPURIHostName</key>      <map> diff --git a/indra/newview/app_settings/settings_per_account.xml b/indra/newview/app_settings/settings_per_account.xml index 636caf5ef3..500151c935 100755 --- a/indra/newview/app_settings/settings_per_account.xml +++ b/indra/newview/app_settings/settings_per_account.xml @@ -77,6 +77,17 @@          <key>Value</key>              <integer>412</integer>      </map> +    <key>ConversationsParticipantListCollapsed</key> +    <map> +        <key>Comment</key> +            <string>Stores the expanded/collapsed state of Nearby chat participant list</string> +        <key>Persist</key> +            <integer>1</integer> +        <key>Type</key> +            <string>Boolean</string> +        <key>Value</key> +            <integer>true</integer> +    </map>         <key>InstantMessageLogPath</key>          <map>          <key>Comment</key> diff --git a/indra/newview/app_settings/shaders/class1/avatar/avatarSkinV.glsl b/indra/newview/app_settings/shaders/class1/avatar/avatarSkinV.glsl index bc63d07d72..c98e7d1cd3 100755 --- a/indra/newview/app_settings/shaders/class1/avatar/avatarSkinV.glsl +++ b/indra/newview/app_settings/shaders/class1/avatar/avatarSkinV.glsl @@ -33,8 +33,8 @@ mat4 getSkinnedTransform()  	mat4 ret;  	int i = int(floor(weight.x));  	float x = fract(weight.x); -		 -	ret[0] = mix(matrixPalette[i+0], matrixPalette[i+1], x); +	 +	ret[0] = mix(matrixPalette[i+0], matrixPalette[i+1],  x);  	ret[1] = mix(matrixPalette[i+15],matrixPalette[i+16], x);  	ret[2] = mix(matrixPalette[i+30],matrixPalette[i+31], x);  	ret[3] = vec4(0,0,0,1); diff --git a/indra/newview/app_settings/shaders/class1/avatar/objectSkinV.glsl b/indra/newview/app_settings/shaders/class1/avatar/objectSkinV.glsl index efd0d03965..12996cf0d6 100755 --- a/indra/newview/app_settings/shaders/class1/avatar/objectSkinV.glsl +++ b/indra/newview/app_settings/shaders/class1/avatar/objectSkinV.glsl @@ -34,14 +34,17 @@ mat4 getObjectSkinnedTransform()  	vec4 w = fract(weight4);  	vec4 index = floor(weight4); -	 + +		 index = min(index, vec4(31.0)); +		 index = max(index, vec4( 0.0)); +  	float scale = 1.0/(w.x+w.y+w.z+w.w);  	w *= scale; -	 -	mat4 mat = matrixPalette[int(index.x)]*w.x; -	mat += matrixPalette[int(index.y)]*w.y; -	mat += matrixPalette[int(index.z)]*w.z; -	mat += matrixPalette[int(index.w)]*w.w; + +	mat4 mat  = matrixPalette[int(index.x)]*w.x; +		 mat += matrixPalette[int(index.y)]*w.y; +		 mat += matrixPalette[int(index.z)]*w.z; +		 mat += matrixPalette[int(index.w)]*w.w;  	return mat;  } diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp index bff691769a..ecc3acd91a 100755 --- a/indra/newview/llagent.cpp +++ b/indra/newview/llagent.cpp @@ -1092,11 +1092,19 @@ const LLVector3d &LLAgent::getPositionGlobal() const  //-----------------------------------------------------------------------------  const LLVector3 &LLAgent::getPositionAgent()  { -	if (isAgentAvatarValid() && !gAgentAvatarp->mDrawable.isNull()) +	if (isAgentAvatarValid())  	{ -		mFrameAgent.setOrigin(gAgentAvatarp->getRenderPosition());	 +		if(gAgentAvatarp->mDrawable.isNull()) +		{ +			mFrameAgent.setOrigin(gAgentAvatarp->getPositionAgent()); +		} +		else +		{ +			mFrameAgent.setOrigin(gAgentAvatarp->getRenderPosition()); +		}  	} +  	return mFrameAgent.getOrigin();  } diff --git a/indra/newview/llagentwearables.cpp b/indra/newview/llagentwearables.cpp index 40a25848a2..40fe1a39ab 100755 --- a/indra/newview/llagentwearables.cpp +++ b/indra/newview/llagentwearables.cpp @@ -1539,7 +1539,11 @@ void LLAgentWearables::userUpdateAttachments(LLInventoryModel::item_array_t& obj  	std::set<LLUUID> requested_item_ids;  	std::set<LLUUID> current_item_ids;  	for (S32 i=0; i<obj_item_array.size(); i++) -		requested_item_ids.insert(obj_item_array[i].get()->getLinkedUUID()); +	{ +		const LLUUID & requested_id = obj_item_array[i].get()->getLinkedUUID(); +		//llinfos << "Requested attachment id " << requested_id << llendl; +		requested_item_ids.insert(requested_id); +	}  	// Build up list of objects to be removed and items currently attached.  	llvo_vec_t objects_to_remove; @@ -1556,17 +1560,28 @@ void LLAgentWearables::userUpdateAttachments(LLInventoryModel::item_array_t& obj  			if (objectp)  			{  				LLUUID object_item_id = objectp->getAttachmentItemID(); + +				bool remove_attachment = true;  				if (requested_item_ids.find(object_item_id) != requested_item_ids.end()) -				{ -					// Object currently worn, was requested. +				{	// Object currently worn, was requested to keep it  					// Flag as currently worn so we won't have to add it again. -					current_item_ids.insert(object_item_id); +					remove_attachment = false;  				} -				else +				else if (objectp->isTempAttachment()) +				{	// Check if we should keep this temp attachment +					remove_attachment = LLAppearanceMgr::instance().shouldRemoveTempAttachment(objectp->getID()); +				} + +				if (remove_attachment)  				{ -					// object currently worn, not requested. +					// llinfos << "found object to remove, id " << objectp->getID() << ", item " << objectp->getAttachmentItemID() << llendl;  					objects_to_remove.push_back(objectp);  				} +				else +				{ +					// llinfos << "found object to keep, id " << objectp->getID() << ", item " << objectp->getAttachmentItemID() << llendl; +					current_item_ids.insert(object_item_id); +				}  			}  		}  	} diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp index 435fe9a32b..de2d1eca64 100755 --- a/indra/newview/llappearancemgr.cpp +++ b/indra/newview/llappearancemgr.cpp @@ -3416,21 +3416,50 @@ void LLAppearanceMgr::removeItemsFromAvatar(const uuid_vec_t& ids_to_remove)  		LL_WARNS() << "called with empty list, nothing to do" << LL_ENDL;  	}  	for (uuid_vec_t::const_iterator it = ids_to_remove.begin(); it != ids_to_remove.end(); ++it) -			{ +	{  		const LLUUID& id_to_remove = *it;  		const LLUUID& linked_item_id = gInventory.getLinkedItemID(id_to_remove);  		removeCOFItemLinks(linked_item_id); -			} -	updateAppearanceFromCOF(); +		addDoomedTempAttachment(linked_item_id);  	} +	updateAppearanceFromCOF(); +}  void LLAppearanceMgr::removeItemFromAvatar(const LLUUID& id_to_remove)  {  	LLUUID linked_item_id = gInventory.getLinkedItemID(id_to_remove);  	removeCOFItemLinks(linked_item_id); +	addDoomedTempAttachment(linked_item_id);  	updateAppearanceFromCOF();  } + +// Adds the given item ID to mDoomedTempAttachmentIDs iff it's a temp attachment +void LLAppearanceMgr::addDoomedTempAttachment(const LLUUID& id_to_remove) +{ +	LLViewerObject * attachmentp = gAgentAvatarp->findAttachmentByID(id_to_remove); +	if (attachmentp && +		attachmentp->isTempAttachment()) +	{	// If this is a temp attachment and we want to remove it, record the ID  +		// so it will be deleted when attachments are synced up with COF +		mDoomedTempAttachmentIDs.insert(id_to_remove); +		//llinfos << "Will remove temp attachment id " << id_to_remove << llendl; +	} +} + +// Find AND REMOVES the given UUID from mDoomedTempAttachmentIDs +bool LLAppearanceMgr::shouldRemoveTempAttachment(const LLUUID& item_id) +{ +	doomed_temp_attachments_t::iterator iter = mDoomedTempAttachmentIDs.find(item_id); +	if (iter != mDoomedTempAttachmentIDs.end()) +	{ +		mDoomedTempAttachmentIDs.erase(iter); +		return true; +	} +	return false; +} + +  bool LLAppearanceMgr::moveWearable(LLViewerInventoryItem* item, bool closer_to_body)  {  	if (!item || !item->isWearableType()) return false; diff --git a/indra/newview/llappearancemgr.h b/indra/newview/llappearancemgr.h index 862b428e48..b5ef0bd935 100755 --- a/indra/newview/llappearancemgr.h +++ b/indra/newview/llappearancemgr.h @@ -143,6 +143,9 @@ public:  	void removeAllClothesFromAvatar();  	void removeAllAttachmentsFromAvatar(); +	// Special handling of temp attachments, which are not in the COF +	bool shouldRemoveTempAttachment(const LLUUID& item_id); +  	//has the current outfit changed since it was loaded?  	bool isOutfitDirty() { return mOutfitIsDirty; } @@ -240,6 +243,12 @@ private:  	std::auto_ptr<LLOutfitUnLockTimer> mUnlockOutfitTimer; +	// Set of temp attachment UUIDs that should be removed +	typedef std::set<LLUUID> doomed_temp_attachments_t; +	doomed_temp_attachments_t	mDoomedTempAttachmentIDs; + +	void addDoomedTempAttachment(const LLUUID& id_to_remove); +  	//////////////////////////////////////////////////////////////////////////////////  	// Item-specific convenience functions   public: diff --git a/indra/newview/llautoreplace.cpp b/indra/newview/llautoreplace.cpp index 1d72397cbc..dd9354fe3a 100755 --- a/indra/newview/llautoreplace.cpp +++ b/indra/newview/llautoreplace.cpp @@ -39,7 +39,7 @@ void LLAutoReplace::autoreplaceCallback(S32& replacement_start, S32& replacement  	replacement_length = 0;  	replacement_string.clear(); -	static LLCachedControl<bool> perform_autoreplace(gSavedSettings, "AutoReplace"); +	static LLCachedControl<bool> perform_autoreplace(gSavedSettings, "AutoReplace", 0);  	if (perform_autoreplace)  	{  		S32 word_end = cursor_pos - 1; @@ -679,7 +679,7 @@ bool LLAutoReplaceSettings::decreaseListPriority(std::string listName)  std::string LLAutoReplaceSettings::replaceWord(const std::string currentWord)  {  	std::string returnedWord = currentWord; // in case no replacement is found -	static LLCachedControl<bool> autoreplace_enabled(gSavedSettings, "AutoReplace"); +	static LLCachedControl<bool> autoreplace_enabled(gSavedSettings, "AutoReplace", false);  	if ( autoreplace_enabled )  	{  		LL_DEBUGS("AutoReplace")<<"checking '"<<currentWord<<"'"<< LL_ENDL; diff --git a/indra/newview/llavatarrenderinfoaccountant.cpp b/indra/newview/llavatarrenderinfoaccountant.cpp index a21773e60f..7db9737872 100644 --- a/indra/newview/llavatarrenderinfoaccountant.cpp +++ b/indra/newview/llavatarrenderinfoaccountant.cpp @@ -336,7 +336,7 @@ void LLAvatarRenderInfoAccountant::idle()  		sRenderInfoReportTimer.resetWithExpiry(SECS_BETWEEN_REGION_SCANS);  	} -	static LLCachedControl<U32> render_auto_mute_functions(gSavedSettings, "RenderAutoMuteFunctions"); +	static LLCachedControl<U32> render_auto_mute_functions(gSavedSettings, "RenderAutoMuteFunctions", 0);  	static U32 prev_render_auto_mute_functions = (U32) -1;  	if (prev_render_auto_mute_functions != render_auto_mute_functions)  	{ diff --git a/indra/newview/llblocklist.cpp b/indra/newview/llblocklist.cpp index 5133ceb64f..42fefd6272 100755 --- a/indra/newview/llblocklist.cpp +++ b/indra/newview/llblocklist.cpp @@ -41,10 +41,14 @@ static const LLBlockListNameTypeComparator	NAME_TYPE_COMPARATOR;  LLBlockList::LLBlockList(const Params& p)  :	LLFlatListViewEx(p),   	mSelectedItem(NULL), - 	mDirty(true) + 	mDirty(true), +	mShouldAddAll(true), +	mActionType(NONE), +	mMuteListSize(0)  {  	LLMuteList::getInstance()->addObserver(this); +	mMuteListSize = LLMuteList::getInstance()->getMutes().size();  	// Set up context menu.  	LLUICtrl::CommitCallbackRegistry::ScopedRegistrar registrar; @@ -73,6 +77,41 @@ LLBlockList::~LLBlockList()  	LLMuteList::getInstance()->removeObserver(this);  } +void LLBlockList::createList() +{ +	std::vector<LLMute> mutes = LLMuteList::instance().getMutes(); +	std::vector<LLMute>::const_iterator mute_it = mutes.begin(); + +	for (; mute_it != mutes.end(); ++mute_it) +	{ +		addNewItem(&*mute_it); +	} +} + +BlockListActionType LLBlockList::getCurrentMuteListActionType() +{ +	BlockListActionType type = NONE; +	U32 curSize = LLMuteList::getInstance()->getMutes().size(); +	if( curSize > mMuteListSize) +		type = ADD; +	else if(curSize < mMuteListSize) +		type = REMOVE; + +	return type; +} + +void LLBlockList::onChangeDetailed(const LLMute &mute) +{ +	mActionType = getCurrentMuteListActionType(); + +	mCurItemId = mute.mID; +	mCurItemName = mute.mName; +	mCurItemType = mute.mType; +	mCurItemFlags = mute.mFlags; + +	refresh(); +} +  BOOL LLBlockList::handleRightMouseDown(S32 x, S32 y, MASK mask)  {  	BOOL handled = LLUICtrl::handleRightMouseDown(x, y, mask); @@ -88,6 +127,16 @@ BOOL LLBlockList::handleRightMouseDown(S32 x, S32 y, MASK mask)  	return handled;  } +void LLBlockList::removeListItem(const LLMute* mute) +{ +	removeItemByUUID(mute->mID); +} + +void LLBlockList::hideListItem(LLBlockedListItem* item, bool show) +{ +	item->setVisible(show); +} +  void LLBlockList::setNameFilter(const std::string& filter)  {  	std::string filter_upper = filter; @@ -136,28 +185,56 @@ void LLBlockList::refresh()  	bool have_filter = !mNameFilter.empty();  	// save selection to restore it after list rebuilt -	LLUUID selected = getSelectedUUID(); +	LLUUID selected = getSelectedUUID(), next_selected; -	// calling refresh may be initiated by removing currently selected item -	// so select next item and save the selection to restore it after list rebuilt -	if (!selectNextItemPair(false, true)) +	if(mShouldAddAll)	// creating list of blockers  	{ -		selectNextItemPair(true, true); +		clear(); +		createList(); +		mShouldAddAll = false; +	} +	else +	{ +		// handle remove/add functionality +		LLMute mute(mCurItemId, mCurItemName, mCurItemType, mCurItemFlags); +		if(mActionType == ADD) +		{ +			addNewItem(&mute); +		} +		else if(mActionType == REMOVE) +		{ +			if(selected == mute.mID) +			{ +				// we are going to remove currently selected item, so select next item and save the selection to restore it +				if (!selectNextItemPair(false, true)) +				{ +					selectNextItemPair(true, true); +				} +				next_selected = getSelectedUUID(); +			} +			removeListItem(&mute); +		} +		mActionType = NONE;  	} -	LLUUID next_selected = getSelectedUUID(); - -	clear(); - -	std::vector<LLMute> mutes = LLMuteList::instance().getMutes(); -	std::vector<LLMute>::const_iterator mute_it = mutes.begin(); -	for (; mute_it != mutes.end(); ++mute_it) +	// handle filter functionality +	if(have_filter || (!have_filter && !mPrevNameFilter.empty()))  	{ -		if (have_filter && !findInsensitive(mute_it->mName, mNameFilter)) -			continue; +		// we should update visibility of our items if previous filter was not empty +		std::vector < LLPanel* > allItems; +		getItems(allItems); +		std::vector < LLPanel* >::iterator it = allItems.begin(); -		addNewItem(&*mute_it); +		for(; it != allItems.end() ; ++it) +		{ +			LLBlockedListItem * curItem = dynamic_cast<LLBlockedListItem *> (*it); +			if(curItem) +			{ +				hideListItem(curItem, findInsensitive(curItem->getName(), mNameFilter)); +			} +		}  	} +	mPrevNameFilter = mNameFilter;  	if (getItemPair(selected))  	{ @@ -169,6 +246,7 @@ void LLBlockList::refresh()  		// previously selected item was removed, so select next item  		selectItemPair(getItemPair(next_selected), true);  	} +	mMuteListSize = LLMuteList::getInstance()->getMutes().size();  	// Sort the list.  	sort(); diff --git a/indra/newview/llblocklist.h b/indra/newview/llblocklist.h index 1a215710f4..b1ea7e98e5 100755 --- a/indra/newview/llblocklist.h +++ b/indra/newview/llblocklist.h @@ -34,6 +34,8 @@  class LLBlockedListItem;  class LLMute; +enum BlockListActionType {NONE, ADD, REMOVE}; +  /**   * List of blocked avatars and objects.   * This list represents contents of the LLMuteList. @@ -56,7 +58,8 @@ public:  	LLToggleableMenu*	getContextMenu() const { return mContextMenu.get(); }  	LLBlockedListItem*	getBlockedItem() const; -	virtual void onChange() { refresh(); } +	virtual void onChange() { } +	virtual void onChangeDetailed(const LLMute& );  	virtual void draw();  	void setNameFilter(const std::string& filter); @@ -67,18 +70,32 @@ public:  private:  	void addNewItem(const LLMute* mute); +	void removeListItem(const LLMute* mute); +	void hideListItem(LLBlockedListItem* item, bool show);  	void setDirty(bool dirty = true) { mDirty = dirty; }  	bool findInsensitive(std::string haystack, const std::string& needle_upper);  	bool isActionEnabled(const LLSD& userdata);  	void onCustomAction (const LLSD& userdata); +	void createList(); - +	BlockListActionType getCurrentMuteListActionType(); +	  	LLHandle<LLToggleableMenu>	mContextMenu;  	LLBlockedListItem*			mSelectedItem;  	std::string 				mNameFilter;  	bool 						mDirty; +	bool						mShouldAddAll; +	BlockListActionType			mActionType; +	U32							mMuteListSize; + +	// This data is used to save information about item that currently changed(added or removed)  +	LLUUID						mCurItemId; +	std::string					mCurItemName; +	LLMute::EType 				mCurItemType; +	U32							mCurItemFlags; +	std::string					mPrevNameFilter;  }; diff --git a/indra/newview/llchathistory.cpp b/indra/newview/llchathistory.cpp index 534961840a..9009416cba 100755 --- a/indra/newview/llchathistory.cpp +++ b/indra/newview/llchathistory.cpp @@ -60,6 +60,8 @@  #include "llstring.h"  #include "llurlaction.h"  #include "llviewercontrol.h" +#include "llviewerobjectlist.h" +#include "llmutelist.h"  static LLDefaultChildRegistry::Register<LLChatHistory> r("chat_history"); @@ -181,6 +183,18 @@ public:  		{  			LLAvatarActions::startIM(getAvatarId());  		} +		else if (level == "teleport") +		{ +			LLAvatarActions::offerTeleport(getAvatarId()); +		} +		else if (level == "voice_call") +		{ +			LLAvatarActions::startCall(getAvatarId()); +		} +		else if (level == "chat_history") +		{ +			LLAvatarActions::viewChatHistory(getAvatarId()); +		}  		else if (level == "add")  		{  			LLAvatarActions::requestFriendshipDialog(getAvatarId(), mFrom); @@ -189,13 +203,75 @@ public:  		{  			LLAvatarActions::removeFriendDialog(getAvatarId());  		} +		else if (level == "invite_to_group") +		{ +			LLAvatarActions::inviteToGroup(getAvatarId()); +		} +		else if (level == "zoom_in") +		{ +			handle_zoom_to_object(getAvatarId()); +		} +		else if (level == "map") +		{ +			LLAvatarActions::showOnMap(getAvatarId()); +		} +		else if (level == "share") +		{ +			LLAvatarActions::share(getAvatarId()); +		} +		else if (level == "pay") +		{ +			LLAvatarActions::pay(getAvatarId()); +		} +		else if(level == "block_unblock") +		{ +			mute(getAvatarId(), LLMute::flagVoiceChat); +		} +		else if(level == "mute_unmute") +		{ +			mute(getAvatarId(), LLMute::flagTextChat); +		} +	} + +	bool onAvatarIconContextMenuItemChecked(const LLSD& userdata) +	{ +		std::string level = userdata.asString(); + +		if (level == "is_blocked") +		{ +			return LLMuteList::getInstance()->isMuted(getAvatarId(), LLMute::flagVoiceChat); +		} +		if (level == "is_muted") +		{ +			return LLMuteList::getInstance()->isMuted(getAvatarId(), LLMute::flagTextChat); +		} +		return false; +	} + +	void mute(const LLUUID& participant_id, U32 flags) +	{ +		BOOL is_muted = LLMuteList::getInstance()->isMuted(participant_id, flags); +		std::string name; +		gCacheName->getFullName(participant_id, name); +		LLMute mute(participant_id, name, LLMute::AGENT); + +		if (!is_muted) +		{ +			LLMuteList::getInstance()->add(mute, flags); +		} +		else +		{ +			LLMuteList::getInstance()->remove(mute, flags); +		}  	}  	BOOL postBuild()  	{  		LLUICtrl::CommitCallbackRegistry::ScopedRegistrar registrar; +		LLUICtrl::EnableCallbackRegistry::ScopedRegistrar registrar_enable;  		registrar.add("AvatarIcon.Action", boost::bind(&LLChatHistoryHeader::onAvatarIconContextMenuItemClicked, this, _2)); +		registrar_enable.add("AvatarIcon.Check", boost::bind(&LLChatHistoryHeader::onAvatarIconContextMenuItemChecked, this, _2));  		registrar.add("ObjectIcon.Action", boost::bind(&LLChatHistoryHeader::onObjectIconContextMenuItemClicked, this, _2));  		LLMenuGL* menu = LLUICtrlFactory::getInstance()->createFromFile<LLMenuGL>("menu_avatar_icon.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance()); @@ -460,7 +536,7 @@ protected:  		if(menu)  		{ -			bool is_friend = LLAvatarTracker::instance().getBuddyInfo(mAvatarID) != NULL; +			bool is_friend = LLAvatarActions::isFriend(mAvatarID);  			menu->setItemEnabled("Add Friend", !is_friend);  			menu->setItemEnabled("Remove Friend", is_friend); @@ -470,13 +546,34 @@ protected:  				menu->setItemEnabled("Add Friend", false);  				menu->setItemEnabled("Send IM", false);  				menu->setItemEnabled("Remove Friend", false); +				menu->setItemEnabled("Offer Teleport",false); +				menu->setItemEnabled("Voice Call", false); +				menu->setItemEnabled("Invite Group", false); +				menu->setItemEnabled("Zoom In", false); +				menu->setItemEnabled("Share", false); +				menu->setItemEnabled("Pay", false); +				menu->setItemEnabled("Block Unblock", false); +				menu->setItemEnabled("Mute Text", false);  			} - -			if (mSessionID == LLIMMgr::computeSessionID(IM_NOTHING_SPECIAL, mAvatarID)) +			else  			{ -				menu->setItemVisible("Send IM", false); +				LLUUID currentSessionID = LLIMMgr::computeSessionID(IM_NOTHING_SPECIAL, mAvatarID); +				if (mSessionID == currentSessionID) +				{ +					menu->setItemVisible("Send IM", false); +				} +				menu->setItemEnabled("Offer Teleport", LLAvatarActions::canOfferTeleport(mAvatarID)); +				menu->setItemEnabled("Voice Call", LLAvatarActions::canCall()); + +				// We should only show 'Zoom in' item in a nearby chat +				bool should_show_zoom = !LLIMModel::getInstance()->findIMSession(currentSessionID); +				menu->setItemVisible("Zoom In", should_show_zoom && gObjectList.findObject(mAvatarID));	 +				menu->setItemEnabled("Block Unblock", LLAvatarActions::canBlock(mAvatarID)); +				menu->setItemEnabled("Mute Text", LLAvatarActions::canBlock(mAvatarID));  			} +			menu->setItemEnabled("Chat History", LLLogChat::isTranscriptExist(mAvatarID)); +			menu->setItemEnabled("Map", (LLAvatarTracker::instance().isBuddyOnline(mAvatarID) && is_agent_mappable(mAvatarID)) || gAgent.isGodlike() );  			menu->buildDrawLabels();  			menu->updateParent(LLMenuGL::sMenuContainer);  			LLMenuGL::showPopup(this, menu, x, y); @@ -968,25 +1065,42 @@ void LLChatHistory::appendMessage(const LLChat& chat, const LLSD &args, const LL  	// notify processing  	if (chat.mNotifId.notNull())  	{ -		LLNotificationPtr notification = LLNotificationsUtil::find(chat.mNotifId); -		if (notification != NULL) +		bool create_toast = true; +		for (LLToastNotifyPanel::instance_iter ti(LLToastNotifyPanel::beginInstances()) +			, tend(LLToastNotifyPanel::endInstances()); ti != tend; ++ti)  		{ -			LLIMToastNotifyPanel* notify_box = new LLIMToastNotifyPanel( +			LLToastNotifyPanel& panel = *ti; +			LLIMToastNotifyPanel * imtoastp = dynamic_cast<LLIMToastNotifyPanel *>(&panel); +			const std::string& notification_name = panel.getNotificationName(); +			if (notification_name == "OfferFriendship" && panel.isControlPanelEnabled() && imtoastp) +			{ +				create_toast = false; +				break; +			} +		} + +		if (create_toast) +		{ +			LLNotificationPtr notification = LLNotificationsUtil::find(chat.mNotifId); +			if (notification != NULL) +			{ +				LLIMToastNotifyPanel* notify_box = new LLIMToastNotifyPanel(  					notification, chat.mSessionID, LLRect::null, !use_plain_text_chat_history, mEditor); -			//Prepare the rect for the view -			LLRect target_rect = mEditor->getDocumentView()->getRect(); -			// squeeze down the widget by subtracting padding off left and right -			target_rect.mLeft += mLeftWidgetPad + mEditor->getHPad(); -			target_rect.mRight -= mRightWidgetPad; -			notify_box->reshape(target_rect.getWidth(),	notify_box->getRect().getHeight()); -			notify_box->setOrigin(target_rect.mLeft, notify_box->getRect().mBottom); - -			LLInlineViewSegment::Params params; -			params.view = notify_box; -			params.left_pad = mLeftWidgetPad; -			params.right_pad = mRightWidgetPad; -			mEditor->appendWidget(params, "\n", false); +				//Prepare the rect for the view +				LLRect target_rect = mEditor->getDocumentView()->getRect(); +				// squeeze down the widget by subtracting padding off left and right +				target_rect.mLeft += mLeftWidgetPad + mEditor->getHPad(); +				target_rect.mRight -= mRightWidgetPad; +				notify_box->reshape(target_rect.getWidth(),	notify_box->getRect().getHeight()); +				notify_box->setOrigin(target_rect.mLeft, notify_box->getRect().mBottom); + +				LLInlineViewSegment::Params params; +				params.view = notify_box; +				params.left_pad = mLeftWidgetPad; +				params.right_pad = mRightWidgetPad; +				mEditor->appendWidget(params, "\n", false); +			}  		}  	} @@ -1016,7 +1130,7 @@ void LLChatHistory::appendMessage(const LLChat& chat, const LLSD &args, const LL  		if (square_brackets)  		{  			message += "]"; -	} +		}  		mEditor->appendText(message, prependNewLineState, body_message_params);  		prependNewLineState = false; diff --git a/indra/newview/llconversationview.cpp b/indra/newview/llconversationview.cpp index 9faa12b2ee..82d3fe74c0 100644 --- a/indra/newview/llconversationview.cpp +++ b/indra/newview/llconversationview.cpp @@ -267,6 +267,23 @@ BOOL LLConversationViewSession::handleMouseDown( S32 x, S32 y, MASK mask )      //This node (conversation) was selected and a child (participant) was not      if(result && getRoot())      { + +		if(getRoot()->getCurSelectedItem() == this) +		{ +			LLConversationItem* item = dynamic_cast<LLConversationItem *>(getViewModelItem()); +			LLUUID session_id = item? item->getUUID() : LLUUID(); + +			LLFloaterIMContainer *im_container = LLFloaterReg::getTypedInstance<LLFloaterIMContainer>("im_container"); +			if (im_container->isConversationsPaneCollapsed() && im_container->getSelectedSession() == session_id) +			{ +				im_container->collapseMessagesPane(!im_container->isMessagesPaneCollapsed()); +			} +			else +			{ +				im_container->collapseMessagesPane(false); +			} + +		}  		selectConversationItem();      } @@ -318,7 +335,6 @@ void LLConversationViewSession::selectConversationItem()  		LLFloaterIMContainer *im_container = LLFloaterReg::getTypedInstance<LLFloaterIMContainer>("im_container");  		im_container->flashConversationItemWidget(session_id,false);  		im_container->selectConversationPair(session_id, false); -		im_container->collapseMessagesPane(false);  	}  } diff --git a/indra/newview/lldrawpoolalpha.cpp b/indra/newview/lldrawpoolalpha.cpp index 96393996c3..84ead0bdde 100755 --- a/indra/newview/lldrawpoolalpha.cpp +++ b/indra/newview/lldrawpoolalpha.cpp @@ -385,9 +385,7 @@ void LLDrawPoolAlpha::renderAlpha(U32 mask, S32 pass)  			bool is_particle_or_hud_particle = group->getSpatialPartition()->mPartitionType == LLViewerRegion::PARTITION_PARTICLE  													  || group->getSpatialPartition()->mPartitionType == LLViewerRegion::PARTITION_HUD_PARTICLE; -			bool draw_glow_for_this_partition = mVertexShaderLevel > 0 && // no shaders = no glow. -				// All particle systems seem to come off the wire with texture entries which claim that they glow.  This is probably a bug in the data.  Suppress. -				!is_particle_or_hud_particle; +			bool draw_glow_for_this_partition = mVertexShaderLevel > 0; // no shaders = no glow.  			LL_RECORD_BLOCK_TIME(FTM_RENDER_ALPHA_GROUP_LOOP); diff --git a/indra/newview/llface.cpp b/indra/newview/llface.cpp index f2727aa7b9..0b080cbdd7 100755 --- a/indra/newview/llface.cpp +++ b/indra/newview/llface.cpp @@ -1386,7 +1386,7 @@ BOOL LLFace::getGeometryVolume(const LLVolume& volume,  		}  	} -	static LLCachedControl<bool> use_transform_feedback(gSavedSettings, "RenderUseTransformFeedback"); +	static LLCachedControl<bool> use_transform_feedback(gSavedSettings, "RenderUseTransformFeedback", false);  #ifdef GL_TRANSFORM_FEEDBACK_BUFFER  	if (use_transform_feedback && @@ -1526,7 +1526,6 @@ BOOL LLFace::getGeometryVolume(const LLVolume& volume,  		}  		glBindBufferARB(GL_TRANSFORM_FEEDBACK_BUFFER, 0); -  		gGL.popMatrix();  		if (cur_shader) diff --git a/indra/newview/llface.h b/indra/newview/llface.h index 40f4968801..d3a561facc 100755 --- a/indra/newview/llface.h +++ b/indra/newview/llface.h @@ -187,7 +187,8 @@ public:  	void		setSize(S32 numVertices, S32 num_indices = 0, bool align = false); -	BOOL		genVolumeBBoxes(const LLVolume &volume, S32 f,const LLMatrix4& mat, BOOL global_volume = FALSE); +	BOOL		genVolumeBBoxes(const LLVolume &volume, S32 f, +									const LLMatrix4& mat_vert_in, BOOL global_volume = FALSE);  	void		init(LLDrawable* drawablep, LLViewerObject* objp);  	void		destroy(); diff --git a/indra/newview/llfacebookconnect.cpp b/indra/newview/llfacebookconnect.cpp index ac27ade2b4..514aac46fc 100644 --- a/indra/newview/llfacebookconnect.cpp +++ b/indra/newview/llfacebookconnect.cpp @@ -356,13 +356,18 @@ void LLFacebookConnect::openFacebookWeb(std::string url)  std::string LLFacebookConnect::getFacebookConnectURL(const std::string& route, bool include_read_from_master)  { -	std::string url = gAgent.getRegion()->getCapability("FacebookConnect"); -	url += route; +    std::string url(""); +    LLViewerRegion *regionp = gAgent.getRegion(); +    if (regionp) +    { +        url = regionp->getCapability("FacebookConnect"); +        url += route; -	if (include_read_from_master && mReadFromMaster) -	{ -		url += "?read_from_master=true"; -	} +        if (include_read_from_master && mReadFromMaster) +        { +            url += "?read_from_master=true"; +        } +    }  	return url;  } diff --git a/indra/newview/llfasttimerview.cpp b/indra/newview/llfasttimerview.cpp index 768f7c1a03..bc07519506 100755 --- a/indra/newview/llfasttimerview.cpp +++ b/indra/newview/llfasttimerview.cpp @@ -936,7 +936,7 @@ void LLFastTimerView::doAnalysis(std::string baseline, std::string target, std::  		return ;  	}  } -void	LLFastTimerView::onClickCloseBtn() +void	LLFastTimerView::onClickCloseBtn(bool)  {  	setVisible(false);  } diff --git a/indra/newview/llfasttimerview.h b/indra/newview/llfasttimerview.h index c23846afab..d7d87c8522 100755 --- a/indra/newview/llfasttimerview.h +++ b/indra/newview/llfasttimerview.h @@ -65,7 +65,7 @@ public:  	LLTrace::BlockTimerStatHandle* getLegendID(S32 y);  private:	 -	virtual	void	onClickCloseBtn(); +	virtual	void	onClickCloseBtn(bool app_quitting = false);  	void drawTicks();  	void drawLineGraph();  	void drawLegend(); diff --git a/indra/newview/llfilepicker.cpp b/indra/newview/llfilepicker.cpp index b805b7259c..4698f2da1a 100755 --- a/indra/newview/llfilepicker.cpp +++ b/indra/newview/llfilepicker.cpp @@ -422,6 +422,19 @@ BOOL LLFilePicker::getSaveFile(ESaveFilter filter, const std::string& filename)  			L"PNG Images (*.png)\0*.png\0" \  			L"\0";  		break; +	case FFSAVE_TGAPNG: +		if (filename.empty()) +		{ +			wcsncpy( mFilesW,L"untitled.png", FILENAME_BUFFER_SIZE);	/*Flawfinder: ignore*/ +			//PNG by default +		} +		mOFN.lpstrDefExt = L"png"; +		mOFN.lpstrFilter = +			L"PNG Images (*.png)\0*.png\0" \ +			L"Targa Images (*.tga)\0*.tga\0" \ +			L"\0"; +		break; +		  	case FFSAVE_JPEG:  		if (filename.empty())  		{ @@ -640,13 +653,16 @@ bool	LLFilePicker::doNavSaveDialog(ESaveFilter filter, const std::string& filena  			creator = "TVOD";  			extension = "wav";  			break; -		  		case FFSAVE_TGA:  			type = "TPIC";  			creator = "prvw";  			extension = "tga";  			break; -		 +		case FFSAVE_TGAPNG: +			type = "PNG"; +			creator = "prvw"; +			extension = "png"; +			break;  		case FFSAVE_BMP:  			type = "BMPf";  			creator = "prvw"; @@ -921,6 +937,22 @@ void LLFilePicker::chooser_responder(GtkWidget *widget, gint response, gpointer  		g_slist_free (file_list);  	} +	// let's save the extension of the last added file(considering current filter) +	GtkFileFilter *gfilter = gtk_file_chooser_get_filter(GTK_FILE_CHOOSER(widget)); +	if(gfilter) +	{ +		std::string filter = gtk_file_filter_get_name(gfilter); + +		if(filter == LLTrans::getString("png_image_files")) +		{ +			picker->mCurrentExtension = ".png"; +		} +		else if(filter == LLTrans::getString("targa_image_files")) +		{ +			picker->mCurrentExtension = ".tga"; +		} +	} +  	// set the default path for this usage context.  	const char* cur_folder = gtk_file_chooser_get_current_folder(GTK_FILE_CHOOSER(widget));  	if (cur_folder != NULL) @@ -1092,6 +1124,24 @@ static std::string add_dictionary_filter_to_gtkchooser(GtkWindow *picker)  							LLTrans::getString("dictionary_files") + " (*.dic; *.xcu)");  } +static std::string add_save_texture_filter_to_gtkchooser(GtkWindow *picker) +{ +	GtkFileFilter *gfilter_tga = gtk_file_filter_new(); +	GtkFileFilter *gfilter_png = gtk_file_filter_new(); + +	gtk_file_filter_add_pattern(gfilter_tga, "*.tga"); +	gtk_file_filter_add_mime_type(gfilter_png, "image/png"); +	std::string caption = LLTrans::getString("save_texture_image_files") + " (*.tga; *.png)"; +	gtk_file_filter_set_name(gfilter_tga, LLTrans::getString("targa_image_files").c_str()); +	gtk_file_filter_set_name(gfilter_png, LLTrans::getString("png_image_files").c_str()); + +	gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(picker), +					gfilter_png); +	gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(picker), +					gfilter_tga); +	return caption; +} +  BOOL LLFilePicker::getSaveFile( ESaveFilter filter, const std::string& filename )  {  	BOOL rtn = FALSE; @@ -1129,6 +1179,15 @@ BOOL LLFilePicker::getSaveFile( ESaveFilter filter, const std::string& filename  				(picker, "image/bmp", LLTrans::getString("bitmap_image_files") + " (*.bmp)");  			suggest_ext = ".bmp";  			break; +		case FFSAVE_PNG: +			caption += add_simple_mime_filter_to_gtkchooser +				(picker, "image/png", LLTrans::getString("png_image_files") + " (*.png)"); +			suggest_ext = ".png"; +			break; +		case FFSAVE_TGAPNG: +			caption += add_save_texture_filter_to_gtkchooser(picker); +			suggest_ext = ".png"; +			break;  		case FFSAVE_AVI:  			caption += add_simple_mime_filter_to_gtkchooser  				(picker, "video/x-msvideo", @@ -1181,9 +1240,17 @@ BOOL LLFilePicker::getSaveFile( ESaveFilter filter, const std::string& filename  		}  		gtk_widget_show_all(GTK_WIDGET(picker)); +  		gtk_main();  		rtn = (getFileCount() == 1); + +		if(rtn && filter == FFSAVE_TGAPNG) +		{ +			std::string selected_file = mFiles.back(); +			mFiles.pop_back(); +			mFiles.push_back(selected_file + mCurrentExtension); +		}  	}  	gViewerWindow->getWindow()->afterDialog(); diff --git a/indra/newview/llfilepicker.h b/indra/newview/llfilepicker.h index fac4c71c19..f6a700d1c6 100755 --- a/indra/newview/llfilepicker.h +++ b/indra/newview/llfilepicker.h @@ -108,6 +108,7 @@ public:  		FFSAVE_PNG = 13,  		FFSAVE_JPEG = 14,  		FFSAVE_SCRIPT = 15, +		FFSAVE_TGAPNG = 16  	};  	// open the dialog. This is a modal operation @@ -176,6 +177,8 @@ private:  	// we remember the last path that was accessed for a particular usage  	std::map <std::string, std::string> mContextToPathMap;  	std::string mCurContextName; +	// we also remember the extension of the last added file. +	std::string mCurrentExtension;  #endif  	std::vector<std::string> mFiles; diff --git a/indra/newview/llfloaterconversationpreview.cpp b/indra/newview/llfloaterconversationpreview.cpp index 4a85160f95..5041f4689d 100755 --- a/indra/newview/llfloaterconversationpreview.cpp +++ b/indra/newview/llfloaterconversationpreview.cpp @@ -44,7 +44,8 @@ LLFloaterConversationPreview::LLFloaterConversationPreview(const LLSD& session_i  	mPageSize(gSavedSettings.getS32("ConversationHistoryPageSize")),  	mAccountName(session_id[LL_FCP_ACCOUNT_NAME]),  	mCompleteName(session_id[LL_FCP_COMPLETE_NAME]), -	mMutex(NULL) +	mMutex(NULL), +	mShowHistory(false)  {  } @@ -91,12 +92,11 @@ BOOL LLFloaterConversationPreview::postBuild()  	mPageSpinner->setMinValue(1);  	mPageSpinner->set(1);  	mPageSpinner->setEnabled(false); -	mChatHistoryLoaded = false;  	LLLogChat::startChatHistoryThread(file, load_params);  	return LLFloater::postBuild();  } -void LLFloaterConversationPreview::setPages(std::list<LLSD>& messages,const std::string& file_name) +void LLFloaterConversationPreview::setPages(std::list<LLSD>& messages, const std::string& file_name)  {  	if(file_name == mChatHistoryFileName)  	{ @@ -111,34 +111,30 @@ void LLFloaterConversationPreview::setPages(std::list<LLSD>& messages,const std:  		std::string total_page_num = llformat("/ %d", mCurrentPage+1);  		getChild<LLTextBox>("page_num_label")->setValue(total_page_num); -		mChatHistoryLoaded = true; +		mShowHistory = true;  	}  }  void LLFloaterConversationPreview::draw()  { -	if(mChatHistoryLoaded) +	if(mShowHistory)  	{  		showHistory(); -		mChatHistoryLoaded = false; +		mShowHistory = false;  	}  	LLFloater::draw();  }  void LLFloaterConversationPreview::onOpen(const LLSD& key)  { -	if(mChatHistoryLoaded) -	{ -		showHistory(); -	} +	mShowHistory = true;  }  void LLFloaterConversationPreview::showHistory()  { -	// additional protection to avoid changes of mMessages in setPages() +	// additional protection to avoid changes of mMessages in setPages  	LLMutexLock lock(&mMutex); - -	if (!mMessages.size() || mCurrentPage * mPageSize >= mMessages.size()) +	if(!mMessages.size() || mCurrentPage * mPageSize >= mMessages.size())  	{  		return;  	} @@ -147,7 +143,7 @@ void LLFloaterConversationPreview::showHistory()  	std::ostringstream message;  	std::list<LLSD>::const_iterator iter = mMessages.begin();  	std::advance(iter, mCurrentPage * mPageSize); - +	  	for (int msg_num = 0; iter != mMessages.end() && msg_num < mPageSize; ++iter, ++msg_num)  	{  		LLSD msg = *iter; @@ -198,10 +194,11 @@ void LLFloaterConversationPreview::showHistory()  void LLFloaterConversationPreview::onMoreHistoryBtnClick()  {  	mCurrentPage = (int)(mPageSpinner->getValueF32()); -	if (--mCurrentPage < 0) +	if (!mCurrentPage)  	{  		return;  	} -	showHistory(); +	mCurrentPage--; +	mShowHistory = true;  } diff --git a/indra/newview/llfloaterconversationpreview.h b/indra/newview/llfloaterconversationpreview.h index f8796127ba..b0488f4ff1 100755 --- a/indra/newview/llfloaterconversationpreview.h +++ b/indra/newview/llfloaterconversationpreview.h @@ -62,7 +62,7 @@ private:  	std::string		mAccountName;  	std::string		mCompleteName;  	std::string     mChatHistoryFileName; -	bool			mChatHistoryLoaded; +	bool			mShowHistory;  };  #endif /* LLFLOATERCONVERSATIONPREVIEW_H_ */ diff --git a/indra/newview/llfloatergroupinvite.cpp b/indra/newview/llfloatergroupinvite.cpp index e1639d9e63..7fdba8734a 100755 --- a/indra/newview/llfloatergroupinvite.cpp +++ b/indra/newview/llfloatergroupinvite.cpp @@ -30,6 +30,8 @@  #include "llpanelgroupinvite.h"  #include "lltrans.h"  #include "lldraghandle.h" +#include "llagent.h" +#include "llgroupmgr.h"  class LLFloaterGroupInvite::impl  { @@ -123,6 +125,12 @@ void LLFloaterGroupInvite::showForGroup(const LLUUID& group_id, uuid_vec_t *agen  	LLFloaterGroupInvite *fgi = get_if_there(impl::sInstances,  											 group_id,  											 (LLFloaterGroupInvite*)NULL); + +	// refresh group information +	gAgent.sendAgentDataUpdateRequest(); +	LLGroupMgr::getInstance()->clearGroupData(group_id); + +  	if (!fgi)  	{  		fgi = new LLFloaterGroupInvite(group_id); diff --git a/indra/newview/llfloaterimcontainer.cpp b/indra/newview/llfloaterimcontainer.cpp index 8e70b30db8..7bd449b8b6 100755 --- a/indra/newview/llfloaterimcontainer.cpp +++ b/indra/newview/llfloaterimcontainer.cpp @@ -101,6 +101,7 @@ LLFloaterIMContainer::~LLFloaterIMContainer()  	gSavedPerAccountSettings.setBOOL("ConversationsListPaneCollapsed", mConversationsPane->isCollapsed());  	gSavedPerAccountSettings.setBOOL("ConversationsMessagePaneCollapsed", mMessagesPane->isCollapsed()); +	gSavedPerAccountSettings.setBOOL("ConversationsParticipantListCollapsed", !isParticipantListExpanded());  	if (!LLSingleton<LLIMMgr>::destroyed())  	{ @@ -250,6 +251,11 @@ BOOL LLFloaterIMContainer::postBuild()  	// Init the sort order now that the root had been created  	setSortOrder(LLConversationSort(gSavedSettings.getU32("ConversationSortOrder"))); +	//We should expand nearby chat participants list for the new user +	if(gAgent.isFirstLogin() || !gSavedPerAccountSettings.getBOOL("ConversationsParticipantListCollapsed")) +	{ +		expandConversation(); +	}  	// Keep the xml set title around for when we have to overwrite it  	mGeneralTitle = getTitle(); @@ -715,6 +721,16 @@ void LLFloaterIMContainer::updateResizeLimits()  	assignResizeLimits();  } +bool LLFloaterIMContainer::isMessagesPaneCollapsed() +{ +	return mMessagesPane->isCollapsed(); +} + +bool LLFloaterIMContainer::isConversationsPaneCollapsed() +{ +	return mConversationsPane->isCollapsed(); +} +  void LLFloaterIMContainer::collapseMessagesPane(bool collapse)  {  	if (mMessagesPane->isCollapsed() == collapse) @@ -784,8 +800,8 @@ void LLFloaterIMContainer::collapseConversationsPane(bool collapse, bool save_is  		mConversationsPane->setTargetDim(gSavedPerAccountSettings.getS32("ConversationsListPaneWidth"));  	} -	S32 delta_width = -			gSavedPerAccountSettings.getS32("ConversationsListPaneWidth") - mConversationsPane->getMinDim(); +	S32 delta_width = gSavedPerAccountSettings.getS32("ConversationsListPaneWidth")  +		- mConversationsPane->getMinDim() - mConversationsStack->getPanelSpacing() + 1;  	reshapeFloaterAndSetResizeLimits(collapse, delta_width); @@ -2086,6 +2102,19 @@ void LLFloaterIMContainer::expandConversation()  		}  	}  } +bool LLFloaterIMContainer::isParticipantListExpanded() +{ +	bool is_expanded = false; +	if(!mConversationsPane->isCollapsed()) +	{ +		LLConversationViewSession* widget = dynamic_cast<LLConversationViewSession*>(get_ptr_in_map(mConversationsWidgets,getSelectedSession())); +		if (widget) +		{ +			is_expanded = widget->isOpen(); +		} +	} +	return is_expanded; +}  // By default, if torn off session is currently frontmost, LLFloater::isFrontmost() will return FALSE, which can lead to some bugs  // So LLFloater::isFrontmost() is overriden here to check both selected session and the IM floater itself @@ -2102,7 +2131,7 @@ BOOL LLFloaterIMContainer::isFrontmost()  // For conversations, closeFloater() (linked to Ctrl-W) does not actually close the floater but the active conversation.  // This is intentional so it doesn't confuse the user. onClickCloseBtn() closes the whole floater. -void LLFloaterIMContainer::onClickCloseBtn() +void LLFloaterIMContainer::onClickCloseBtn(bool app_quitting/* = false*/)  {  	// Always unminimize before trying to close.  	// Most of the time the user will never see this state. @@ -2111,7 +2140,7 @@ void LLFloaterIMContainer::onClickCloseBtn()  		LLMultiFloater::setMinimized(FALSE);  	} -	LLFloater::closeFloater(); +	LLFloater::closeFloater(app_quitting);  }  void LLFloaterIMContainer::closeHostedFloater() @@ -2158,7 +2187,7 @@ void LLFloaterIMContainer::closeFloater(bool app_quitting/* = false*/)  	if(app_quitting)  	{  		closeAllConversations(); -		onClickCloseBtn(); +		onClickCloseBtn(app_quitting);  	}  	else  	{ diff --git a/indra/newview/llfloaterimcontainer.h b/indra/newview/llfloaterimcontainer.h index 36da457cac..f6d973b9b3 100755 --- a/indra/newview/llfloaterimcontainer.h +++ b/indra/newview/llfloaterimcontainer.h @@ -90,6 +90,8 @@ public:  	static void onCurrentChannelChanged(const LLUUID& session_id);  	void collapseMessagesPane(bool collapse); +	bool isMessagesPaneCollapsed(); +	bool isConversationsPaneCollapsed();  	// Callbacks  	static void idle(void* user_data); @@ -134,7 +136,7 @@ private:  	void onStubCollapseButtonClicked();  	void processParticipantsStyleUpdate();  	void onSpeakButtonClicked(); -	/*virtual*/ void onClickCloseBtn(); +	/*virtual*/ void onClickCloseBtn(bool app_quitting = false);  	/*virtual*/ void closeHostedFloater();  	void collapseConversationsPane(bool collapse, bool save_is_allowed=true); @@ -172,6 +174,7 @@ private:  	void toggleAllowTextChat(const LLUUID& participant_uuid);  	void toggleMute(const LLUUID& participant_id, U32 flags);  	void openNearbyChat(); +	bool isParticipantListExpanded();  	LLButton* mExpandCollapseBtn;  	LLButton* mStubCollapseBtn; diff --git a/indra/newview/llfloaterimnearbychat.cpp b/indra/newview/llfloaterimnearbychat.cpp index 4e0a4b523f..b5d179b6de 100755 --- a/indra/newview/llfloaterimnearbychat.cpp +++ b/indra/newview/llfloaterimnearbychat.cpp @@ -308,7 +308,8 @@ void LLFloaterIMNearbyChat::onClose(bool app_quitting)  }  // virtual -void LLFloaterIMNearbyChat::onClickCloseBtn() +void LLFloaterIMNearbyChat::onClickCloseBtn(bool) +  {  	if (!isTornOff())  	{ @@ -493,11 +494,11 @@ void LLFloaterIMNearbyChat::onChatBoxKeystroke()  			if (!rest_of_match.empty())  			{  				mInputEditor->setText(utf8_trigger + rest_of_match); // keep original capitalization for user-entered part -  				// Select to end of line, starting from the character  				// after the last one the user typed. -				mInputEditor->selectNext(rest_of_match, false); +				mInputEditor->selectByCursorPosition(utf8_out_str.size()-rest_of_match.size(),utf8_out_str.size());  			} +  		}  		else if (matchChatTypeTrigger(utf8_trigger, &utf8_out_str))  		{ diff --git a/indra/newview/llfloaterimnearbychat.h b/indra/newview/llfloaterimnearbychat.h index 05b48cccb0..f0daacd6a9 100755 --- a/indra/newview/llfloaterimnearbychat.h +++ b/indra/newview/llfloaterimnearbychat.h @@ -95,7 +95,7 @@ protected:  	void onChatFontChange(LLFontGL* fontp);  	/*virtual*/ void onTearOffClicked(); -	/*virtual*/ void onClickCloseBtn(); +	/*virtual*/ void onClickCloseBtn(bool app_qutting = false);  	static LLWString stripChannelNumber(const LLWString &mesg, S32* channel);  	EChatType processChatTypeTriggers(EChatType type, std::string &str); diff --git a/indra/newview/llfloaterimsession.cpp b/indra/newview/llfloaterimsession.cpp index 01f905370c..4b5c24a440 100644 --- a/indra/newview/llfloaterimsession.cpp +++ b/indra/newview/llfloaterimsession.cpp @@ -114,7 +114,7 @@ void LLFloaterIMSession::onTearOffClicked()  }  // virtual -void LLFloaterIMSession::onClickCloseBtn() +void LLFloaterIMSession::onClickCloseBtn(bool)  {  	LLIMModel::LLIMSession* session = LLIMModel::instance().findIMSession(mSessionID); diff --git a/indra/newview/llfloaterimsession.h b/indra/newview/llfloaterimsession.h index 84abb2435a..70fd2a70d1 100644 --- a/indra/newview/llfloaterimsession.h +++ b/indra/newview/llfloaterimsession.h @@ -141,8 +141,8 @@ private:  	/*virtual*/ void refresh();      /*virtual*/ void onTearOffClicked(); -	/*virtual*/ void onClickCloseBtn(); -	 +	/*virtual*/ void onClickCloseBtn(bool app_qutting); +  	// Update the window title and input field help text  	/*virtual*/ void updateSessionName(const std::string& name); diff --git a/indra/newview/llfloaterland.cpp b/indra/newview/llfloaterland.cpp index 303a68dc5a..2ccf6557a7 100755 --- a/indra/newview/llfloaterland.cpp +++ b/indra/newview/llfloaterland.cpp @@ -2374,7 +2374,7 @@ void LLPanelLandAccess::refresh()  	{  		BOOL use_access_list = parcel->getParcelFlag(PF_USE_ACCESS_LIST);  		BOOL use_group = parcel->getParcelFlag(PF_USE_ACCESS_GROUP); -		BOOL public_access = !use_access_list && !use_group; +		BOOL public_access = !use_access_list;  		getChild<LLUICtrl>("public_access")->setValue(public_access );  		getChild<LLUICtrl>("GroupCheck")->setValue(use_group ); @@ -2541,7 +2541,11 @@ void LLPanelLandAccess::refresh_ui()  	getChildView("HoursSpin")->setEnabled(FALSE);  	getChildView("AccessList")->setEnabled(FALSE);  	getChildView("BannedList")->setEnabled(FALSE); -	 +	getChildView("add_allowed")->setEnabled(FALSE); +	getChildView("remove_allowed")->setEnabled(FALSE); +	getChildView("add_banned")->setEnabled(FALSE); +	getChildView("remove_banned")->setEnabled(FALSE); +  	LLParcel *parcel = mParcel->getParcel();  	if (parcel)  	{ @@ -2579,7 +2583,6 @@ void LLPanelLandAccess::refresh_ui()  			{  				getChildView("Only Allow")->setToolTip(std::string());  			} -			getChildView("GroupCheck")->setEnabled(FALSE);  			getChildView("PassCheck")->setEnabled(FALSE);  			getChildView("pass_combo")->setEnabled(FALSE);  			getChildView("AccessList")->setEnabled(FALSE); @@ -2589,11 +2592,7 @@ void LLPanelLandAccess::refresh_ui()  			getChildView("limit_payment")->setEnabled(FALSE);  			getChildView("limit_age_verified")->setEnabled(FALSE); -			std::string group_name; -			if (gCacheName->getGroupName(parcel->getGroupID(), group_name)) -			{			 -				getChildView("GroupCheck")->setEnabled(can_manage_allowed); -			} +  			BOOL group_access = getChild<LLUICtrl>("GroupCheck")->getValue().asBoolean();  			BOOL sell_passes = getChild<LLUICtrl>("PassCheck")->getValue().asBoolean();  			getChildView("PassCheck")->setEnabled(can_manage_allowed); @@ -2604,6 +2603,11 @@ void LLPanelLandAccess::refresh_ui()  				getChildView("HoursSpin")->setEnabled(can_manage_allowed);  			}  		} +		std::string group_name; +		if (gCacheName->getGroupName(parcel->getGroupID(), group_name)) +		{ +			getChildView("GroupCheck")->setEnabled(can_manage_allowed); +		}  		getChildView("AccessList")->setEnabled(can_manage_allowed);  		S32 allowed_list_count = parcel->mAccessList.size();  		getChildView("add_allowed")->setEnabled(can_manage_allowed && allowed_list_count < PARCEL_MAX_ACCESS_LIST); @@ -2649,17 +2653,6 @@ void LLPanelLandAccess::onCommitPublicAccess(LLUICtrl *ctrl, void *userdata)  	{  		return;  	} - -	// If we disabled public access, enable group access by default (if applicable) -	BOOL public_access = self->getChild<LLUICtrl>("public_access")->getValue().asBoolean(); -	if (public_access == FALSE) -	{ -		std::string group_name; -		if (gCacheName->getGroupName(parcel->getGroupID(), group_name)) -		{ -			self->getChild<LLUICtrl>("GroupCheck")->setValue(public_access ? FALSE : TRUE); -		} -	}  	onCommitAny(ctrl, userdata);  } @@ -2694,7 +2687,6 @@ void LLPanelLandAccess::onCommitAny(LLUICtrl *ctrl, void *userdata)  	if (public_access)  	{  		use_access_list = FALSE; -		use_access_group = FALSE;  		limit_payment = self->getChild<LLUICtrl>("limit_payment")->getValue().asBoolean();  		limit_age_verified = self->getChild<LLUICtrl>("limit_age_verified")->getValue().asBoolean();  	} diff --git a/indra/newview/llfloatersidepanelcontainer.cpp b/indra/newview/llfloatersidepanelcontainer.cpp index 5f9556a870..c5248719e9 100755 --- a/indra/newview/llfloatersidepanelcontainer.cpp +++ b/indra/newview/llfloatersidepanelcontainer.cpp @@ -57,7 +57,7 @@ void LLFloaterSidePanelContainer::onOpen(const LLSD& key)  	getChild<LLPanel>(sMainPanelName)->onOpen(key);  } -void LLFloaterSidePanelContainer::onClickCloseBtn() +void LLFloaterSidePanelContainer::onClickCloseBtn(bool)  {  	LLPanelOutfitEdit* panel_outfit_edit =  		dynamic_cast<LLPanelOutfitEdit*>(LLFloaterSidePanelContainer::getPanel("appearance", "panel_outfit_edit")); diff --git a/indra/newview/llfloatersidepanelcontainer.h b/indra/newview/llfloatersidepanelcontainer.h index e3c77ab9a6..13b17e8867 100755 --- a/indra/newview/llfloatersidepanelcontainer.h +++ b/indra/newview/llfloatersidepanelcontainer.h @@ -51,7 +51,7 @@ public:  	/*virtual*/ void onOpen(const LLSD& key); -	/*virtual*/ void onClickCloseBtn(); +	/*virtual*/ void onClickCloseBtn(bool app_quitting = false);  	LLPanel* openChildPanel(const std::string& panel_name, const LLSD& params); diff --git a/indra/newview/llfloaterwebcontent.cpp b/indra/newview/llfloaterwebcontent.cpp index e6de0d0737..2987eb82b9 100755 --- a/indra/newview/llfloaterwebcontent.cpp +++ b/indra/newview/llfloaterwebcontent.cpp @@ -362,6 +362,8 @@ void LLFloaterWebContent::handleMediaEvent(LLPluginClassMedia* self, EMediaEvent  		// we populate the status bar with URLs as they change so clear it now we're done  		const std::string end_str = "";  		mStatusBarText->setText( end_str ); +			mAddressCombo->setLeftTextPadding(22); +			mAddressCombo->setLeftTextPadding(2);  	}  	else if(event == MEDIA_EVENT_CLOSE_REQUEST)  	{ diff --git a/indra/newview/llmutelist.cpp b/indra/newview/llmutelist.cpp index e7924d96ce..65ac11092c 100755 --- a/indra/newview/llmutelist.cpp +++ b/indra/newview/llmutelist.cpp @@ -251,6 +251,7 @@ BOOL LLMuteList::add(const LLMute& mute, U32 flags)  			LL_INFOS() << "Muting by name " << mute.mName << LL_ENDL;  			updateAdd(mute);  			notifyObservers(); +			notifyObserversDetailed(mute);  			return TRUE;  		}  		else @@ -299,6 +300,7 @@ BOOL LLMuteList::add(const LLMute& mute, U32 flags)  				LL_INFOS() << "Muting " << localmute.mName << " id " << localmute.mID << " flags " << localmute.mFlags << LL_ENDL;  				updateAdd(localmute);  				notifyObservers(); +				notifyObserversDetailed(localmute);  				if(!(localmute.mFlags & LLMute::flagParticles))  				{  					//Kill all particle systems owned by muted task @@ -396,6 +398,7 @@ BOOL LLMuteList::remove(const LLMute& mute, U32 flags)  		}  		// Must be after erase. +		notifyObserversDetailed(localmute);  		setLoaded();  // why is this here? -MG  	}  	else @@ -409,6 +412,7 @@ BOOL LLMuteList::remove(const LLMute& mute, U32 flags)  			updateRemove(mute);  			mLegacyMutes.erase(legacy_it);  			// Must be after erase. +			notifyObserversDetailed(mute);  			setLoaded(); // why is this here? -MG  		}  	} @@ -762,3 +766,16 @@ void LLMuteList::notifyObservers()  		it = mObservers.upper_bound(observer);  	}  } + +void LLMuteList::notifyObserversDetailed(const LLMute& mute) +{ +	for (observer_set_t::iterator it = mObservers.begin(); +		it != mObservers.end(); +		) +	{ +		LLMuteListObserver* observer = *it; +		observer->onChangeDetailed(mute); +		// In case onChange() deleted an entry. +		it = mObservers.upper_bound(observer); +	} +} diff --git a/indra/newview/llmutelist.h b/indra/newview/llmutelist.h index 7a70370fe3..3e998b4f0e 100755 --- a/indra/newview/llmutelist.h +++ b/indra/newview/llmutelist.h @@ -123,6 +123,7 @@ private:  	void setLoaded();  	void notifyObservers(); +	void notifyObserversDetailed(const LLMute &mute);  	void updateAdd(const LLMute& mute);  	void updateRemove(const LLMute& mute); @@ -173,6 +174,7 @@ class LLMuteListObserver  public:  	virtual ~LLMuteListObserver() { }  	virtual void onChange() = 0; +	virtual void onChangeDetailed(const LLMute& ) { }  }; diff --git a/indra/newview/llpanelmaininventory.cpp b/indra/newview/llpanelmaininventory.cpp index 89e9e6e2a0..0f735ecf19 100755 --- a/indra/newview/llpanelmaininventory.cpp +++ b/indra/newview/llpanelmaininventory.cpp @@ -542,6 +542,13 @@ void LLPanelMainInventory::changed(U32)  	updateItemcountText();  } +void LLPanelMainInventory::setFocusFilterEditor() +{ +	if(mFilterEditor) +	{ +		mFilterEditor->setFocus(true); +	} +}  // virtual  void LLPanelMainInventory::draw() diff --git a/indra/newview/llpanelmaininventory.h b/indra/newview/llpanelmaininventory.h index 394b004e20..fc8cc67c33 100755 --- a/indra/newview/llpanelmaininventory.h +++ b/indra/newview/llpanelmaininventory.h @@ -82,6 +82,9 @@ public:  	void setSelectCallback(const LLFolderView::signal_t::slot_type& cb);  	void onFilterEdit(const std::string& search_string ); + +	void setFocusFilterEditor(); +  protected:  	//  	// Misc functions diff --git a/indra/newview/llpersistentnotificationstorage.cpp b/indra/newview/llpersistentnotificationstorage.cpp index ff47fa42a9..ea3cd9e78e 100755 --- a/indra/newview/llpersistentnotificationstorage.cpp +++ b/indra/newview/llpersistentnotificationstorage.cpp @@ -77,6 +77,14 @@ void LLPersistentNotificationStorage::saveNotifications()  		}  		data.append(notification->asLLSD(true)); +		if (data.size() >= gSavedSettings.getS32("MaxPersistentNotifications")) +		{ +			llwarns << "Too many persistent notifications." +					<< " Saved " << gSavedSettings.getS32("MaxPersistentNotifications") << " of " << history_channel->size() +					<< " persistent notifications." << llendl; +			break; +		} +  	}  	writeNotifications(output); @@ -97,7 +105,6 @@ void LLPersistentNotificationStorage::loadNotifications()  	}  	mLoaded = true; -  	LLSD input;  	if (!readNotifications(input) ||input.isUndefined())  	{ @@ -115,9 +122,9 @@ void LLPersistentNotificationStorage::loadNotifications()  		findChannelByID(LLUUID(gSavedSettings.getString("NotificationChannelUUID"))));  	LLNotifications& instance = LLNotifications::instance(); - -	for (LLSD::array_const_iterator notification_it = data.beginArray(); -		notification_it != data.endArray(); +	S32 processed_notifications = 0; +	for (LLSD::reverse_array_iterator notification_it = data.rbeginArray(); +		notification_it != data.rendArray();  		++notification_it)  	{  		LLSD notification_params = *notification_it; @@ -136,8 +143,16 @@ void LLPersistentNotificationStorage::loadNotifications()  			// hide saved toasts so they don't confuse the user  			notification_channel->hideToast(notification->getID());  		} +		++processed_notifications; +		if (processed_notifications >= gSavedSettings.getS32("MaxPersistentNotifications")) +		{ +			llwarns << "Too many persistent notifications." +					<< " Processed " << gSavedSettings.getS32("MaxPersistentNotifications") << " of " << data.size() << " persistent notifications." << llendl; +		    break; +		}  	} - +	LLNotifications::instance().getChannel("Persistent")-> +			connectChanged(boost::bind(&LLPersistentNotificationStorage::onPersistentChannelChanged, this, _1));  	LL_INFOS("LLPersistentNotificationStorage") << "finished loading notifications" << LL_ENDL;  } diff --git a/indra/newview/llpreviewtexture.cpp b/indra/newview/llpreviewtexture.cpp index 91a98792eb..1ed48a978f 100755 --- a/indra/newview/llpreviewtexture.cpp +++ b/indra/newview/llpreviewtexture.cpp @@ -36,6 +36,7 @@  #include "llfilepicker.h"  #include "llfloaterreg.h"  #include "llimagetga.h" +#include "llimagepng.h"  #include "llinventory.h"  #include "llnotificationsutil.h"  #include "llresmgr.h" @@ -261,7 +262,7 @@ void LLPreviewTexture::saveAs()  	LLFilePicker& file_picker = LLFilePicker::instance();  	const LLInventoryItem* item = getItem() ; -	if( !file_picker.getSaveFile( LLFilePicker::FFSAVE_TGA, item ? LLDir::getScrubbedFileName(item->getName()) : LLStringUtil::null) ) +	if( !file_picker.getSaveFile( LLFilePicker::FFSAVE_TGAPNG, item ? LLDir::getScrubbedFileName(item->getName()) : LLStringUtil::null) )  	{  		// User canceled or we failed to acquire save file.  		return; @@ -358,14 +359,27 @@ void LLPreviewTexture::onFileLoadedForSave(BOOL success,  	if( self && final && success )  	{ -		LLPointer<LLImageTGA> image_tga = new LLImageTGA; -		if( !image_tga->encode( src ) ) +		const U32 ext_length = 3; +		std::string extension = self->mSaveFileName.substr( self->mSaveFileName.length() - ext_length); + +		// We only support saving in PNG or TGA format +		LLPointer<LLImageFormatted> image; +		if(extension == "png") +		{ +			image = new LLImagePNG; +		} +		else if(extension == "tga") +		{ +			image = new LLImageTGA; +		} + +		if( image && !image->encode( src, 0 ) )  		{  			LLSD args;  			args["FILE"] = self->mSaveFileName;  			LLNotificationsUtil::add("CannotEncodeFile", args);  		} -		else if( !image_tga->save( self->mSaveFileName ) ) +		else if( image && !image->save( self->mSaveFileName ) )  		{  			LLSD args;  			args["FILE"] = self->mSaveFileName; diff --git a/indra/newview/llsceneview.cpp b/indra/newview/llsceneview.cpp index 09e799e4f7..cbd8bee9d5 100755 --- a/indra/newview/llsceneview.cpp +++ b/indra/newview/llsceneview.cpp @@ -51,7 +51,7 @@ LLSceneView::LLSceneView(const LLRect& rect)  	setCanClose(true);  } -void LLSceneView::onClickCloseBtn() +void LLSceneView::onClickCloseBtn(bool)  {  	setVisible(false);  } diff --git a/indra/newview/llsceneview.h b/indra/newview/llsceneview.h index 2a3a14bbee..1fceecb9e1 100755 --- a/indra/newview/llsceneview.h +++ b/indra/newview/llsceneview.h @@ -38,7 +38,7 @@ public:  	virtual void draw();  protected: -	virtual void onClickCloseBtn(); +	virtual void onClickCloseBtn(bool app_qutting = false);  }; diff --git a/indra/newview/llsidepanelinventory.cpp b/indra/newview/llsidepanelinventory.cpp index 7121822015..16d3d85257 100755 --- a/indra/newview/llsidepanelinventory.cpp +++ b/indra/newview/llsidepanelinventory.cpp @@ -397,7 +397,7 @@ void LLSidepanelInventory::onToggleInboxBtn()  void LLSidepanelInventory::onOpen(const LLSD& key)  {  	LLFirstUse::newInventory(false); - +	mPanelMainInventory->setFocusFilterEditor();  #if AUTO_EXPAND_INBOX  	// Expand the inbox if we have fresh items  	LLPanelMarketplaceInbox * inbox = findChild<LLPanelMarketplaceInbox>(MARKETPLACE_INBOX_PANEL); diff --git a/indra/newview/llsidepaneltaskinfo.cpp b/indra/newview/llsidepaneltaskinfo.cpp index 56f82b851a..f6b39761d8 100755 --- a/indra/newview/llsidepaneltaskinfo.cpp +++ b/indra/newview/llsidepaneltaskinfo.cpp @@ -1169,6 +1169,10 @@ void LLSidepanelTaskInfo::doClickAction(U8 click_action)  			// Warn, but do it anyway.  			LLNotificationsUtil::add("ClickActionNotPayable");  		} +		else +		{ +			handle_give_money_dialog(); +		}  	}  	LLSelectMgr::getInstance()->selectionSetClickAction(click_action);  } diff --git a/indra/newview/lltexturefetch.cpp b/indra/newview/lltexturefetch.cpp index 8d63ebdffc..40f8c344e5 100755 --- a/indra/newview/lltexturefetch.cpp +++ b/indra/newview/lltexturefetch.cpp @@ -1275,7 +1275,7 @@ bool LLTextureFetchWorker::doWork(S32 param)  	if (mState == LOAD_FROM_NETWORK)  	{ -		static LLCachedControl<bool> use_http(gSavedSettings,"ImagePipelineUseHTTP"); +		static LLCachedControl<bool> use_http(gSavedSettings,"ImagePipelineUseHTTP", true);  // 		if (mHost != LLHost::invalid) get_url = false;  		if ( use_http && mCanUseHTTP && mUrl.empty())//get http url. @@ -1702,7 +1702,7 @@ bool LLTextureFetchWorker::doWork(S32 param)  	if (mState == DECODE_IMAGE)  	{ -		static LLCachedControl<bool> textures_decode_disabled(gSavedSettings,"TextureDecodeDisabled"); +		static LLCachedControl<bool> textures_decode_disabled(gSavedSettings,"TextureDecodeDisabled", false);  		setPriority(LLWorkerThread::PRIORITY_LOW | mWorkPriority); // Set priority first since Responder may change it  		if (textures_decode_disabled) @@ -1878,9 +1878,9 @@ bool LLTextureFetchWorker::doWork(S32 param)  // virtual  void LLTextureFetchWorker::onCompleted(LLCore::HttpHandle handle, LLCore::HttpResponse * response)  { -	static LLCachedControl<bool> log_to_viewer_log(gSavedSettings, "LogTextureDownloadsToViewerLog"); -	static LLCachedControl<bool> log_to_sim(gSavedSettings, "LogTextureDownloadsToSimulator"); -	static LLCachedControl<bool> log_texture_traffic(gSavedSettings, "LogTextureNetworkTraffic") ; +	static LLCachedControl<bool> log_to_viewer_log(gSavedSettings, "LogTextureDownloadsToViewerLog", false); +	static LLCachedControl<bool> log_to_sim(gSavedSettings, "LogTextureDownloadsToSimulator", false); +	static LLCachedControl<bool> log_texture_traffic(gSavedSettings, "LogTextureNetworkTraffic", false) ;  	LLMutexLock lock(&mWorkMutex);										// +Mw @@ -2884,7 +2884,7 @@ void LLTextureFetch::commonUpdate()  //virtual  S32 LLTextureFetch::update(F32 max_time_ms)  { -	static LLCachedControl<F32> band_width(gSavedSettings,"ThrottleBandwidthKBPS"); +	static LLCachedControl<F32> band_width(gSavedSettings,"ThrottleBandwidthKBPS", 500.0);  	{  		mNetworkQueueMutex.lock();										// +Mfnq @@ -3107,8 +3107,8 @@ void LLTextureFetch::sendRequestListToSimulators()  // 				LL_INFOS() << "IMAGE REQUEST: " << req->mID << " Discard: " << req->mDesiredDiscard  // 						<< " Packet: " << packet << " Priority: " << req->mImagePriority << LL_ENDL; -				static LLCachedControl<bool> log_to_viewer_log(gSavedSettings,"LogTextureDownloadsToViewerLog"); -				static LLCachedControl<bool> log_to_sim(gSavedSettings,"LogTextureDownloadsToSimulator"); +				static LLCachedControl<bool> log_to_viewer_log(gSavedSettings,"LogTextureDownloadsToViewerLog", false); +				static LLCachedControl<bool> log_to_sim(gSavedSettings,"LogTextureDownloadsToSimulator", false);  				if (log_to_viewer_log || log_to_sim)  				{  					mTextureInfo.setRequestStartTime(req->mID, LLTimer::getTotalTime()); @@ -3367,8 +3367,8 @@ bool LLTextureFetch::receiveImagePacket(const LLHost& host, const LLUUID& id, U1  	if (packet_num >= (worker->mTotalPackets - 1))  	{ -		static LLCachedControl<bool> log_to_viewer_log(gSavedSettings,"LogTextureDownloadsToViewerLog"); -		static LLCachedControl<bool> log_to_sim(gSavedSettings,"LogTextureDownloadsToSimulator"); +		static LLCachedControl<bool> log_to_viewer_log(gSavedSettings,"LogTextureDownloadsToViewerLog", false); +		static LLCachedControl<bool> log_to_sim(gSavedSettings,"LogTextureDownloadsToSimulator", false);  		if (log_to_viewer_log || log_to_sim)  		{ diff --git a/indra/newview/lltoast.cpp b/indra/newview/lltoast.cpp index 20135e2587..1b5b44423f 100755 --- a/indra/newview/lltoast.cpp +++ b/indra/newview/lltoast.cpp @@ -555,7 +555,7 @@ BOOL LLToast::handleMouseDown(S32 x, S32 y, MASK mask)  		mHideBtnPressed = mHideBtn->getRect().pointInRect(x, y);  	} -	return LLFloater::handleMouseDown(x, y, mask); +	return LLModalDialog::handleMouseDown(x, y, mask);  }  //-------------------------------------------------------------------------- diff --git a/indra/newview/lltoastalertpanel.cpp b/indra/newview/lltoastalertpanel.cpp index 3c916345ec..8fd0eb5931 100755 --- a/indra/newview/lltoastalertpanel.cpp +++ b/indra/newview/lltoastalertpanel.cpp @@ -491,7 +491,7 @@ void LLToastAlertPanel::draw()  	}  	static LLUIColor shadow_color = LLUIColorTable::instance().getColor("ColorDropShadow"); -	static LLUICachedControl<S32> shadow_lines ("DropShadowFloater"); +	static LLUICachedControl<S32> shadow_lines ("DropShadowFloater", 5);  	gl_drop_shadow( 0, LLToastPanel::getRect().getHeight(), LLToastPanel::getRect().getWidth(), 0,  		shadow_color, shadow_lines); diff --git a/indra/newview/lltoastnotifypanel.cpp b/indra/newview/lltoastnotifypanel.cpp index 5b110d843d..e6746bce82 100755 --- a/indra/newview/lltoastnotifypanel.cpp +++ b/indra/newview/lltoastnotifypanel.cpp @@ -407,6 +407,28 @@ void LLToastNotifyPanel::init( LLRect rect, bool show_images )  	}  } +bool LLToastNotifyPanel::isControlPanelEnabled() const +{ +	bool cp_enabled = mControlPanel->getEnabled(); +	bool some_buttons_enabled = false; +	if (cp_enabled) +	{ +		LLView::child_list_const_iter_t child_it = mControlPanel->beginChild(); +		LLView::child_list_const_iter_t child_it_end = mControlPanel->endChild(); +		for(; child_it != child_it_end; ++child_it) +		{ +			LLButton * buttonp = dynamic_cast<LLButton *>(*child_it); +			if (buttonp && buttonp->getEnabled()) +			{ +				some_buttons_enabled = true; +				break; +			} +		} +	} + +	return cp_enabled && some_buttons_enabled; +} +  //////////////////////////////////////////////////////////////////////////  LLIMToastNotifyPanel::LLIMToastNotifyPanel(LLNotificationPtr& pNotification, const LLUUID& session_id, const LLRect& rect /* = LLRect::null */, diff --git a/indra/newview/lltoastnotifypanel.h b/indra/newview/lltoastnotifypanel.h index dfd6e110b9..561befe0f6 100755 --- a/indra/newview/lltoastnotifypanel.h +++ b/indra/newview/lltoastnotifypanel.h @@ -69,6 +69,8 @@ public:  	virtual void updateNotification() {} +	bool isControlPanelEnabled() const; +  protected:  	LLButton* createButton(const LLSD& form_element, BOOL is_option); diff --git a/indra/newview/lltoastpanel.cpp b/indra/newview/lltoastpanel.cpp index a30f841980..e1b764a943 100755 --- a/indra/newview/lltoastpanel.cpp +++ b/indra/newview/lltoastpanel.cpp @@ -53,6 +53,12 @@ std::string LLToastPanel::getTitle()  }  //virtual +const std::string& LLToastPanel::getNotificationName() +{ +	return mNotification->getName(); +} + +//virtual  const LLUUID& LLToastPanel::getID()  {  	return mNotification->id(); diff --git a/indra/newview/lltoastpanel.h b/indra/newview/lltoastpanel.h index e4ab95007e..51630381f2 100755 --- a/indra/newview/lltoastpanel.h +++ b/indra/newview/lltoastpanel.h @@ -45,6 +45,7 @@ public:  	virtual ~LLToastPanel() = 0;  	virtual std::string getTitle(); +	virtual const std::string& getNotificationName();  	virtual const LLUUID& getID();  	static const S32 MIN_PANEL_HEIGHT; diff --git a/indra/newview/lltooldraganddrop.cpp b/indra/newview/lltooldraganddrop.cpp index 354ddbd9ae..12086dad5f 100755 --- a/indra/newview/lltooldraganddrop.cpp +++ b/indra/newview/lltooldraganddrop.cpp @@ -355,7 +355,7 @@ void LLToolDragAndDrop::setDragStart(S32 x, S32 y)  BOOL LLToolDragAndDrop::isOverThreshold(S32 x,S32 y)  { -	static LLCachedControl<S32> drag_and_drop_threshold(gSavedSettings,"DragAndDropDistanceThreshold"); +	static LLCachedControl<S32> drag_and_drop_threshold(gSavedSettings,"DragAndDropDistanceThreshold", 3);  	S32 mouse_delta_x = x - mDragStartX;  	S32 mouse_delta_y = y - mDragStartY; diff --git a/indra/newview/llviewerjoystick.cpp b/indra/newview/llviewerjoystick.cpp index ac968cfc67..e44d80b7ce 100755 --- a/indra/newview/llviewerjoystick.cpp +++ b/indra/newview/llviewerjoystick.cpp @@ -919,7 +919,7 @@ void LLViewerJoystick::moveFlycam(bool reset)  		{  			if (i == X_I || i == Y_I || i == Z_I)  			{ -				static LLCachedControl<F32> build_mode_scale(gSavedSettings,"FlycamBuildModeScale"); +				static LLCachedControl<F32> build_mode_scale(gSavedSettings,"FlycamBuildModeScale", 1.0);  				cur_delta[i] *= build_mode_scale;  			}  		} diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp index eea1fbc0ea..6a72f24356 100755 --- a/indra/newview/llviewermedia.cpp +++ b/indra/newview/llviewermedia.cpp @@ -3773,18 +3773,18 @@ bool LLViewerMediaImpl::shouldShowBasedOnClass() const  	// If it is attached to an avatar and the pref is off, we shouldn't show it  	if (attached_to_another_avatar)  	{ -		static LLCachedControl<bool> show_media_on_others(gSavedSettings, LLViewerMedia::SHOW_MEDIA_ON_OTHERS_SETTING); +		static LLCachedControl<bool> show_media_on_others(gSavedSettings, LLViewerMedia::SHOW_MEDIA_ON_OTHERS_SETTING, false);  		return show_media_on_others;  	}  	if (inside_parcel)  	{ -		static LLCachedControl<bool> show_media_within_parcel(gSavedSettings, LLViewerMedia::SHOW_MEDIA_WITHIN_PARCEL_SETTING); +		static LLCachedControl<bool> show_media_within_parcel(gSavedSettings, LLViewerMedia::SHOW_MEDIA_WITHIN_PARCEL_SETTING, true);  		return show_media_within_parcel;  	}  	else   	{ -		static LLCachedControl<bool> show_media_outside_parcel(gSavedSettings, LLViewerMedia::SHOW_MEDIA_OUTSIDE_PARCEL_SETTING); +		static LLCachedControl<bool> show_media_outside_parcel(gSavedSettings, LLViewerMedia::SHOW_MEDIA_OUTSIDE_PARCEL_SETTING, true);  		return show_media_outside_parcel;  	} diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index 01e1137fb8..bf1e915d5d 100755 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -45,6 +45,7 @@  #include "llsd.h"  #include "llsdserialize.h"  #include "llteleportflags.h" +#include "lltoastnotifypanel.h"  #include "lltransactionflags.h"  #include "llvfile.h"  #include "llvfs.h" @@ -3235,7 +3236,20 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)  			payload["online"] = (offline == IM_ONLINE);  			payload["sender"] = msg->getSender().getIPandPort(); -			if (is_muted) +			bool add_notification = true; +			for (LLToastNotifyPanel::instance_iter ti(LLToastNotifyPanel::beginInstances()) +				, tend(LLToastNotifyPanel::endInstances()); ti != tend; ++ti) +			{ +				LLToastNotifyPanel& panel = *ti; +				const std::string& notification_name = panel.getNotificationName(); +				if (notification_name == "OfferFriendship" && panel.isControlPanelEnabled()) +				{ +					add_notification = false; +					break; +				} +			} + +			if (is_muted && add_notification)  			{  				LLNotifications::instance().forceResponse(LLNotification::Params("OfferFriendship").payload(payload), 1);  			} @@ -3246,18 +3260,22 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)  					send_do_not_disturb_message(msg, from_id);  				}  				args["NAME_SLURL"] = LLSLURL("agent", from_id, "about").getSLURLString(); -				if(message.empty()) -				{ -					//support for frienship offers from clients before July 2008 -				        LLNotificationsUtil::add("OfferFriendshipNoMessage", args, payload); -				} -				else + +				if (add_notification)  				{ -					args["[MESSAGE]"] = message; -				    LLNotification::Params params("OfferFriendship"); -				    params.substitutions = args; -				    params.payload = payload; -				    LLPostponedNotification::add<LLPostponedOfferNotification>(	params, from_id, false); +					if(message.empty()) +					{ +						//support for frienship offers from clients before July 2008 +						LLNotificationsUtil::add("OfferFriendshipNoMessage", args, payload); +					} +					else +					{ +						args["[MESSAGE]"] = message; +						LLNotification::Params params("OfferFriendship"); +						params.substitutions = args; +						params.payload = payload; +						LLPostponedNotification::add<LLPostponedOfferNotification>(	params, from_id, false); +					}  				}  			}  		} @@ -3823,19 +3841,6 @@ public:  				LLInventoryModel::EXCLUDE_TRASH,  				is_card);  		} -		LLSD args; -		if ( land_items.size() > 0 ) -		{	// Show notification that they can now teleport to landmarks.  Use a random landmark from the inventory -			S32 random_land = ll_rand( land_items.size() - 1 ); -			args["NAME"] = land_items[random_land]->getName(); -			LLNotificationsUtil::add("TeleportToLandmark",args); -		} -		if ( card_items.size() > 0 ) -		{	// Show notification that they can now contact people.  Use a random calling card from the inventory -			S32 random_card = ll_rand( card_items.size() - 1 ); -			args["NAME"] = card_items[random_card]->getName(); -			LLNotificationsUtil::add("TeleportToPerson",args); -		}  		gInventory.removeObserver(this);  		delete this; @@ -4112,18 +4117,6 @@ void process_agent_movement_complete(LLMessageSystem* msg, void**)  		if (isAgentAvatarValid())  		{ -			// Chat the "back" SLURL. (DEV-4907) - -			LLSLURL slurl; -			gAgent.getTeleportSourceSLURL(slurl); -			LLSD substitution = LLSD().with("[T_SLURL]", slurl.getSLURLString()); -			std::string completed_from = LLAgent::sTeleportProgressMessages["completed_from"]; -			LLStringUtil::format(completed_from, substitution); - -			LLSD args; -			args["MESSAGE"] = completed_from; -			LLNotificationsUtil::add("SystemMessageTip", args); -  			// Set the new position  			gAgentAvatarp->setPositionAgent(agent_pos);  			gAgentAvatarp->clearChat(); diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp index 2dbcdeeb64..9e2999e521 100755 --- a/indra/newview/llviewerobject.cpp +++ b/indra/newview/llviewerobject.cpp @@ -6113,6 +6113,13 @@ void LLViewerObject::resetChildrenPosition(const LLVector3& offset, BOOL simplif  	return ;  } +// virtual  +BOOL	LLViewerObject::isTempAttachment() const +{ +	return (mID.notNull() && (mID == mAttachmentItemID)); +} + +  const LLUUID &LLViewerObject::getAttachmentItemID() const  {  	return mAttachmentItemID; diff --git a/indra/newview/llviewerobject.h b/indra/newview/llviewerobject.h index 3cf421c2fb..a2008215d2 100755 --- a/indra/newview/llviewerobject.h +++ b/indra/newview/llviewerobject.h @@ -172,6 +172,8 @@ public:  	virtual BOOL	isAttachment() const { return FALSE; }  	virtual LLVOAvatar* getAvatar() const;  //get the avatar this object is attached to, or NULL if object is not an attachment  	virtual BOOL	isHUDAttachment() const { return FALSE; } +	virtual BOOL	isTempAttachment() const; +  	virtual void 	updateRadius() {};  	virtual F32 	getVObjRadius() const; // default implemenation is mDrawable->getRadius() diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp index afc00764b8..ae876c9f2e 100755 --- a/indra/newview/llviewerregion.cpp +++ b/indra/newview/llviewerregion.cpp @@ -255,6 +255,7 @@ public:  		if( mID != regionp->getHttpResponderID() ) // region is no longer referring to this responder  		{  			LL_WARNS("AppInit", "Capabilities") << "Received results for a stale http responder!" << LL_ENDL; +			regionp->failedSeedCapability();  			return ;  		} @@ -323,17 +324,12 @@ public:  		if ( regionp->getRegionImpl()->mCapabilities.size() != regionp->getRegionImpl()->mSecondCapabilitiesTracker.size() )  		{ -			LL_INFOS() << "BaseCapabilitiesCompleteTracker " << "sim " << regionp->getName() -				<< " sent duplicate seed caps that differs in size - most likely content. "  -				<< (S32) regionp->getRegionImpl()->mCapabilities.size() << " vs " << regionp->getRegionImpl()->mSecondCapabilitiesTracker.size() -				<< LL_ENDL; - +			LL_INFOS()<<"BaseCapabilitiesCompleteTracker "<<"Sim sent duplicate seed caps that differs in size - most likely content."<<LL_ENDL;			  			//todo#add cap debug versus original check? -			/* -			CapabilityMap::const_iterator iter = regionp->getRegionImpl()->mCapabilities.begin(); +			/*CapabilityMap::const_iterator iter = regionp->getRegionImpl()->mCapabilities.begin();  			while (iter!=regionp->getRegionImpl()->mCapabilities.end() )  			{ -				LL_INFOS() << "BaseCapabilitiesCompleteTracker Original " << iter->first << " " << iter->second << LL_ENDL; +				LL_INFOS()<<"BaseCapabilitiesCompleteTracker Original "<<iter->first<<" "<< iter->second<<LL_ENDL;  				++iter;  			}  			*/ @@ -429,8 +425,6 @@ LLViewerRegion::LLViewerRegion(const U64 &handle,  	mImpl->mObjectPartition.push_back(new LLVOCachePartition(this)); //PARTITION_VO_CACHE  	mImpl->mObjectPartition.push_back(NULL);						//PARTITION_NONE  	mImpl->mVOCachePartition = getVOCachePartition(); -	mRenderInfoRequestTimer.resetWithExpiry(0.f);		// Set timer to be expired -	setCapabilitiesReceivedCallback(boost::bind(&LLAvatarRenderInfoAccountant::expireRenderInfoReportTimer, _1));  } @@ -2577,7 +2571,6 @@ void LLViewerRegionImpl::buildCapabilityNames(LLSD& capabilityNames)  	capabilityNames.append("AgentState");  	capabilityNames.append("AttachmentResources");  	capabilityNames.append("AvatarPickerSearch"); -	capabilityNames.append("AvatarRenderInfo");  	capabilityNames.append("CharacterProperties");  	capabilityNames.append("ChatSessionRequest");  	capabilityNames.append("CopyInventoryFromNotecard"); diff --git a/indra/newview/llviewershadermgr.cpp b/indra/newview/llviewershadermgr.cpp index 170f48e620..ec7dcbecf6 100755 --- a/indra/newview/llviewershadermgr.cpp +++ b/indra/newview/llviewershadermgr.cpp @@ -464,7 +464,7 @@ void LLViewerShaderMgr::setShaders()  		S32 deferred_class = 0;  		S32 transform_class = gGLManager.mHasTransformFeedback ? 1 : 0; -		static LLCachedControl<bool> use_transform_feedback(gSavedSettings, "RenderUseTransformFeedback"); +		static LLCachedControl<bool> use_transform_feedback(gSavedSettings, "RenderUseTransformFeedback", false);  		if (!use_transform_feedback)  		{  			transform_class = 0; diff --git a/indra/newview/llviewertexture.cpp b/indra/newview/llviewertexture.cpp index 405fcff584..5cb69745b9 100755 --- a/indra/newview/llviewertexture.cpp +++ b/indra/newview/llviewertexture.cpp @@ -1450,7 +1450,7 @@ void LLViewerFetchedTexture::processTextureStats()  	{  		updateVirtualSize(); -		static LLCachedControl<bool> textures_fullres(gSavedSettings,"TextureLoadFullRes"); +		static LLCachedControl<bool> textures_fullres(gSavedSettings,"TextureLoadFullRes", false);  		if (textures_fullres)  		{ @@ -1782,9 +1782,9 @@ bool LLViewerFetchedTexture::isActiveFetching()  bool LLViewerFetchedTexture::updateFetch()  { -	static LLCachedControl<bool> textures_decode_disabled(gSavedSettings,"TextureDecodeDisabled"); -	static LLCachedControl<F32>  sCameraMotionThreshold(gSavedSettings,"TextureCameraMotionThreshold"); -	static LLCachedControl<S32>  sCameraMotionBoost(gSavedSettings,"TextureCameraMotionBoost"); +	static LLCachedControl<bool> textures_decode_disabled(gSavedSettings,"TextureDecodeDisabled", false); +	static LLCachedControl<F32>  sCameraMotionThreshold(gSavedSettings,"TextureCameraMotionThreshold", 0.2); +	static LLCachedControl<S32>  sCameraMotionBoost(gSavedSettings,"TextureCameraMotionBoost", 3);  	if(textures_decode_disabled)  	{  		return false; @@ -2863,7 +2863,7 @@ void LLViewerLODTexture::processTextureStats()  {  	updateVirtualSize(); -	static LLCachedControl<bool> textures_fullres(gSavedSettings,"TextureLoadFullRes"); +	static LLCachedControl<bool> textures_fullres(gSavedSettings,"TextureLoadFullRes", false);  	if (textures_fullres)  	{ diff --git a/indra/newview/llviewertexturelist.cpp b/indra/newview/llviewertexturelist.cpp index dae76272ec..99903bfdf3 100755 --- a/indra/newview/llviewertexturelist.cpp +++ b/indra/newview/llviewertexturelist.cpp @@ -494,7 +494,7 @@ LLViewerFetchedTexture* LLViewerTextureList::createImage(const LLUUID &image_id,  												   LLGLenum primary_format,  												   LLHost request_from_host)  { -	static LLCachedControl<bool> fast_cache_fetching_enabled(gSavedSettings, "FastCacheFetchEnabled"); +	static LLCachedControl<bool> fast_cache_fetching_enabled(gSavedSettings, "FastCacheFetchEnabled", true);  	LLPointer<LLViewerFetchedTexture> imagep ;  	switch(texture_type) @@ -1383,7 +1383,7 @@ void LLViewerTextureList::updateMaxResidentTexMem(S32Megabytes mem)  // static  void LLViewerTextureList::receiveImageHeader(LLMessageSystem *msg, void **user_data)  { -	static LLCachedControl<bool> log_texture_traffic(gSavedSettings,"LogTextureNetworkTraffic") ; +	static LLCachedControl<bool> log_texture_traffic(gSavedSettings,"LogTextureNetworkTraffic", false) ;  	LL_RECORD_BLOCK_TIME(FTM_PROCESS_IMAGES); @@ -1455,7 +1455,7 @@ void LLViewerTextureList::receiveImageHeader(LLMessageSystem *msg, void **user_d  // static  void LLViewerTextureList::receiveImagePacket(LLMessageSystem *msg, void **user_data)  { -	static LLCachedControl<bool> log_texture_traffic(gSavedSettings,"LogTextureNetworkTraffic") ; +	static LLCachedControl<bool> log_texture_traffic(gSavedSettings,"LogTextureNetworkTraffic", false) ;  	LL_RECORD_BLOCK_TIME(FTM_PROCESS_IMAGES); diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index 7ab3a17587..61f3ae5b85 100755 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -320,7 +320,7 @@ public:  	void update()  	{ -		static LLCachedControl<bool> log_texture_traffic(gSavedSettings,"LogTextureNetworkTraffic") ; +		static LLCachedControl<bool> log_texture_traffic(gSavedSettings,"LogTextureNetworkTraffic", false) ;  		std::string wind_vel_text;  		std::string wind_vector_text; diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index 7ca8a4ed3a..bccb0d46cf 100755 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -709,7 +709,7 @@ LLVOAvatar::LLVOAvatar(const LLUUID& id,  	mVisualComplexityStale(TRUE),  	mLoadedCallbacksPaused(FALSE),  	mHasPelvisOffset( FALSE ), -	mRenderUnloadedAvatar(LLCachedControl<bool>(gSavedSettings, "RenderUnloadedAvatar")), +	mRenderUnloadedAvatar(LLCachedControl<bool>(gSavedSettings, "RenderUnloadedAvatar", false)),  	mLastRezzedStatus(-1),  	mIsEditingAppearance(FALSE),  	mUseLocalAppearance(FALSE), @@ -2714,8 +2714,8 @@ void LLVOAvatar::idleUpdateNameTagText(BOOL new_name)  				LLFontGL::getFontSansSerifSmall());  		} -		static LLUICachedControl<bool> show_display_names("NameTagShowDisplayNames"); -		static LLUICachedControl<bool> show_usernames("NameTagShowUsernames"); +		static LLUICachedControl<bool> show_display_names("NameTagShowDisplayNames", true); +		static LLUICachedControl<bool> show_usernames("NameTagShowUsernames", true);  		if (LLAvatarName::useDisplayNames())  		{ @@ -2941,7 +2941,7 @@ void LLVOAvatar::idleUpdateNameTagAlpha(BOOL new_name, F32 alpha)  LLColor4 LLVOAvatar::getNameTagColor(bool is_friend)  { -	static LLUICachedControl<bool> show_friends("NameTagShowFriends"); +	static LLUICachedControl<bool> show_friends("NameTagShowFriends", false);  	const char* color_name;  	if (show_friends && is_friend)  	{ @@ -2996,7 +2996,7 @@ bool LLVOAvatar::isVisuallyMuted()  	if (!isSelf())  	{ -		static LLCachedControl<U32> render_auto_mute_functions(gSavedSettings, "RenderAutoMuteFunctions"); +		static LLCachedControl<U32> render_auto_mute_functions(gSavedSettings, "RenderAutoMuteFunctions", 0);  		if (render_auto_mute_functions)		// Hacky debug switch for developing feature  		{  			// Priority order (highest priority first) @@ -3008,9 +3008,9 @@ bool LLVOAvatar::isVisuallyMuted()  			//       - AND aren't over the thresholds  			// * otherwise visually mute all other avatars -			static LLCachedControl<U32> max_attachment_bytes(gSavedSettings, "RenderAutoMuteByteLimit"); -			static LLCachedControl<F32> max_attachment_area(gSavedSettings, "RenderAutoMuteSurfaceAreaLimit"); -			static LLCachedControl<U32> max_render_cost(gSavedSettings, "RenderAutoMuteRenderWeightLimit"); +			static LLCachedControl<U32> max_attachment_bytes(gSavedSettings, "RenderAutoMuteByteLimit", 0); +			static LLCachedControl<F32> max_attachment_area(gSavedSettings, "RenderAutoMuteSurfaceAreaLimit", 0.0); +			static LLCachedControl<U32> max_render_cost(gSavedSettings, "RenderAutoMuteRenderWeightLimit", 0);  			if (mVisuallyMuteSetting == ALWAYS_VISUAL_MUTE)  			{	// Always want to see this AV as an impostor @@ -3397,8 +3397,8 @@ BOOL LLVOAvatar::updateCharacter(LLAgent &agent)  			LLVector3 pelvisDir( mRoot->getWorldMatrix().getFwdRow4().mV ); -			static LLCachedControl<F32> s_pelvis_rot_threshold_slow(gSavedSettings, "AvatarRotateThresholdSlow"); -			static LLCachedControl<F32> s_pelvis_rot_threshold_fast(gSavedSettings, "AvatarRotateThresholdFast"); +			static LLCachedControl<F32> s_pelvis_rot_threshold_slow(gSavedSettings, "AvatarRotateThresholdSlow", 60.0); +			static LLCachedControl<F32> s_pelvis_rot_threshold_fast(gSavedSettings, "AvatarRotateThresholdFast", 2.0);  			F32 pelvis_rot_threshold = clamp_rescale(speed, 0.1f, 1.0f, s_pelvis_rot_threshold_slow, s_pelvis_rot_threshold_fast); @@ -5515,7 +5515,15 @@ void LLVOAvatar::addChild(LLViewerObject *childp)  	LLViewerObject::addChild(childp);  	if (childp->mDrawable)  	{ -		attachObject(childp); +		if (!attachObject(childp)) +		{ +			llwarns << "addChild() failed for "  +					<< childp->getID() +					<< " item " << childp->getAttachmentItemID() +					<< llendl; +			// MAINT-3312 backout +			// mPendingAttachment.push_back(childp); +		}  	}  	else  	{ @@ -5548,8 +5556,27 @@ LLViewerJointAttachment* LLVOAvatar::getTargetAttachmentPoint(LLViewerObject* vi  	if (!attachment)  	{ -		LL_WARNS() << "Object attachment point invalid: " << attachmentID << LL_ENDL; -		attachment = get_if_there(mAttachmentPoints, 1, (LLViewerJointAttachment*)NULL); // Arbitrary using 1 (chest) +		LL_WARNS() << "Object attachment point invalid: " << attachmentID  +			<< " trying to use 1 (chest)" +			<< LL_ENDL; + +		attachment = get_if_there(mAttachmentPoints, 1, (LLViewerJointAttachment*)NULL);	// Arbitrary using 1 (chest) +		if (attachment) +		{ +			LL_WARNS() << "Object attachment point invalid: " << attachmentID  +				<< " on object " << viewer_object->getID() +				<< " attachment item " << viewer_object->getAttachmentItemID() +				<< " falling back to 1 (chest)" +				<< LL_ENDL; +		} +		else +		{ +			LL_WARNS() << "Object attachment point invalid: " << attachmentID  +				<< " on object " << viewer_object->getID() +				<< " attachment item " << viewer_object->getAttachmentItemID() +				<< "Unable to use fallback attachment point 1 (chest)" +				<< LL_ENDL; +		}  	}  	return attachment; @@ -5620,13 +5647,22 @@ void LLVOAvatar::lazyAttach()  	for (U32 i = 0; i < mPendingAttachment.size(); i++)  	{ -		if (mPendingAttachment[i]->mDrawable) +		LLPointer<LLViewerObject> cur_attachment = mPendingAttachment[i]; +		if (cur_attachment->mDrawable)  		{ -			attachObject(mPendingAttachment[i]); +			if (!attachObject(cur_attachment)) +			{	// Drop it +				llwarns << "attachObject() failed for "  +					<< cur_attachment->getID() +					<< " item " << cur_attachment->getAttachmentItemID() +					<< llendl; +				// MAINT-3312 backout +				//still_pending.push_back(cur_attachment); +			}  		}  		else  		{ -			still_pending.push_back(mPendingAttachment[i]); +			still_pending.push_back(cur_attachment);  		}  	} @@ -5933,6 +5969,28 @@ BOOL LLVOAvatar::isWearingWearableType(LLWearableType::EType type) const +LLViewerObject *	LLVOAvatar::findAttachmentByID( const LLUUID & target_id ) const +{ +	for(attachment_map_t::const_iterator attachment_points_iter = mAttachmentPoints.begin(); +		attachment_points_iter != gAgentAvatarp->mAttachmentPoints.end(); +		++attachment_points_iter) +	{ +		LLViewerJointAttachment* attachment = attachment_points_iter->second; +		for (LLViewerJointAttachment::attachedobjs_vec_t::iterator attachment_iter = attachment->mAttachedObjects.begin(); +			 attachment_iter != attachment->mAttachedObjects.end(); +			 ++attachment_iter) +		{ +			LLViewerObject *attached_object = (*attachment_iter); +			if (attached_object && +				attached_object->getID() == target_id) +			{ +				return attached_object; +			} +		} +	} + +	return NULL; +}  // virtual @@ -7873,7 +7931,7 @@ void LLVOAvatar::getImpostorValues(LLVector4a* extents, LLVector3& angle, F32& d  void LLVOAvatar::idleUpdateRenderCost()  { -	static LLCachedControl<U32> max_render_cost(gSavedSettings, "RenderAutoMuteRenderWeightLimit"); +	static LLCachedControl<U32> max_render_cost(gSavedSettings, "RenderAutoMuteRenderWeightLimit", 0);  	static const U32 ARC_LIMIT = 20000;  	if (gPipeline.hasRenderDebugMask(LLPipeline::RENDER_DEBUG_ATTACHMENT_BYTES)) diff --git a/indra/newview/llvoavatar.h b/indra/newview/llvoavatar.h index 17139e3e24..e26f94eb1e 100755 --- a/indra/newview/llvoavatar.h +++ b/indra/newview/llvoavatar.h @@ -731,6 +731,8 @@ public:  	void				cleanupAttachedMesh( LLViewerObject* pVO );  	static LLVOAvatar*  findAvatarFromAttachment(LLViewerObject* obj);  	/*virtual*/ BOOL	isWearingWearableType(LLWearableType::EType type ) const; +	LLViewerObject *	findAttachmentByID( const LLUUID & target_id ) const; +  protected:  	LLViewerJointAttachment* getTargetAttachmentPoint(LLViewerObject* viewer_object);  	void 				lazyAttach(); diff --git a/indra/newview/llvoiceclient.cpp b/indra/newview/llvoiceclient.cpp index af55c8f741..815965fb0a 100755 --- a/indra/newview/llvoiceclient.cpp +++ b/indra/newview/llvoiceclient.cpp @@ -113,8 +113,8 @@ LLVoiceClient::LLVoiceClient()  	:  	mVoiceModule(NULL),  	m_servicePump(NULL), -	mVoiceEffectEnabled(LLCachedControl<bool>(gSavedSettings, "VoiceMorphingEnabled")), -	mVoiceEffectDefault(LLCachedControl<std::string>(gSavedPerAccountSettings, "VoiceEffectDefault")), +	mVoiceEffectEnabled(LLCachedControl<bool>(gSavedSettings, "VoiceMorphingEnabled", true)), +	mVoiceEffectDefault(LLCachedControl<std::string>(gSavedPerAccountSettings, "VoiceEffectDefault", "00000000-0000-0000-0000-000000000000")),  	mPTTDirty(true),  	mPTT(true),  	mUsePTT(true), diff --git a/indra/newview/llvoicevivox.cpp b/indra/newview/llvoicevivox.cpp index de553e9c42..f7fc147b64 100755 --- a/indra/newview/llvoicevivox.cpp +++ b/indra/newview/llvoicevivox.cpp @@ -786,7 +786,6 @@ void LLVivoxVoiceClient::stateMachine()  						{  							loglevel = "0";	// turn logging off completely  						} -						loglevel = "0";	// turn logging off completely  						params.args.add("-ll");  						params.args.add(loglevel);  						params.cwd = gDirUtilp->getAppRODataDir(); diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp index 2828f1ba6a..9c1ef3509d 100755 --- a/indra/newview/llvovolume.cpp +++ b/indra/newview/llvovolume.cpp @@ -342,6 +342,7 @@ U32 LLVOVolume::processUpdateMessage(LLMessageSystem *mesgsys,  					}  				}  				mTexAnimMode = 0; +				  				mTextureAnimp->unpackTAMessage(mesgsys, block_num);  			}  			else @@ -692,7 +693,7 @@ void LLVOVolume::updateTextureVirtualSize(bool forced)  		}  	} -	static LLCachedControl<bool> dont_load_textures(gSavedSettings,"TextureDisable"); +	static LLCachedControl<bool> dont_load_textures(gSavedSettings,"TextureDisable", false);  	if (dont_load_textures || LLAppViewer::getTextureFetch()->mDebugPause) // || !mDrawable->isVisible())  	{ @@ -1035,8 +1036,7 @@ BOOL LLVOVolume::setVolume(const LLVolumeParams ¶ms_in, const S32 detail, bo  			}  		} - -		static LLCachedControl<bool> use_transform_feedback(gSavedSettings, "RenderUseTransformFeedback"); +		static LLCachedControl<bool> use_transform_feedback(gSavedSettings, "RenderUseTransformFeedback", false);  		bool cache_in_vram = use_transform_feedback && gTransformPositionProgram.mProgramObject &&  			(!mVolumeImpl || !mVolumeImpl->isVolumeUnique()); @@ -2615,7 +2615,6 @@ void LLVOVolume::setLightTextureID(LLUUID id)  		if (hasLightTexture())  		{  			setParameterEntryInUse(LLNetworkData::PARAMS_LIGHT_IMAGE, FALSE, true); -			parameterChanged(LLNetworkData::PARAMS_LIGHT_IMAGE, true);  			mLightTexture = NULL;  		}  	}		 @@ -2633,8 +2632,7 @@ void LLVOVolume::setSpotLightParams(LLVector3 params)  void LLVOVolume::setIsLight(BOOL is_light)  { -	BOOL was_light = getIsLight(); -	if (is_light != was_light) +	if (is_light != getIsLight())  	{  		if (is_light)  		{ @@ -2819,7 +2817,7 @@ void LLVOVolume::updateSpotLightPriority()  bool LLVOVolume::isLightSpotlight() const  {  	LLLightImageParams* params = (LLLightImageParams*) getParameterEntry(LLNetworkData::PARAMS_LIGHT_IMAGE); -	if (params && getParameterEntryInUse(LLNetworkData::PARAMS_LIGHT_IMAGE)) +	if (params)  	{  		return params->isLightSpotlight();  	} @@ -3749,30 +3747,8 @@ BOOL LLVOVolume::lineSegmentIntersect(const LLVector4a& start, const LLVector4a&  			{  				LLFace* face = mDrawable->getFace(face_hit);				 -				bool ignore_alpha = false; - -				const LLTextureEntry* te = face->getTextureEntry(); -				if (te) -				{ -					LLMaterial* mat = te->getMaterialParams(); -					if (mat) -					{ -						U8 mode = mat->getDiffuseAlphaMode(); - -						if (mode == LLMaterial::DIFFUSE_ALPHA_MODE_EMISSIVE || -							mode == LLMaterial::DIFFUSE_ALPHA_MODE_NONE) -						{ -							ignore_alpha = true; -						} -					} -				} -  				if (face && -					(ignore_alpha || -					pick_transparent ||  -					!face->getTexture() ||  -					!face->getTexture()->hasGLTexture() ||  -					face->getTexture()->getMask(face->surfaceToTexture(tc, p, n)))) +					(pick_transparent || !face->getTexture() || !face->getTexture()->hasGLTexture() || face->getTexture()->getMask(face->surfaceToTexture(tc, p, n))))  				{  					local_end = p;  					if (face_hitp != NULL) @@ -4458,6 +4434,8 @@ void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group)  	bool emissive = false; +	 +  	{  		LL_RECORD_BLOCK_TIME(FTM_REBUILD_VOLUME_FACE_LIST); @@ -5203,7 +5181,7 @@ void LLVolumeGeometryManager::genDrawInfo(LLSpatialGroup* group, U32 mask, LLFac  	U32 buffer_usage = group->mBufferUsage; -	static LLCachedControl<bool> use_transform_feedback(gSavedSettings, "RenderUseTransformFeedback"); +	static LLCachedControl<bool> use_transform_feedback(gSavedSettings, "RenderUseTransformFeedback", false);  	if (use_transform_feedback &&  		gTransformPositionProgram.mProgramObject && //transform shaders are loaded diff --git a/indra/newview/llworld.cpp b/indra/newview/llworld.cpp index d67e4ca71d..2dba1a3703 100755 --- a/indra/newview/llworld.cpp +++ b/indra/newview/llworld.cpp @@ -143,6 +143,7 @@ LLViewerRegion* LLWorld::addRegion(const U64 ®ion_handle, const LLHost &host)  {  	LL_INFOS() << "Add region with handle: " << region_handle << " on host " << host << LL_ENDL;  	LLViewerRegion *regionp = getRegionFromHandle(region_handle); +	std::string seedUrl;  	if (regionp)  	{  		LL_INFOS() << "Region exists, removing it " << LL_ENDL; @@ -164,6 +165,9 @@ LLViewerRegion* LLWorld::addRegion(const U64 ®ion_handle, const LLHost &host)  			LL_WARNS() << "LLWorld::addRegion exists, but isn't alive" << LL_ENDL;  		} +		// Save capabilities seed URL +		seedUrl = regionp->getCapability("Seed"); +  		// Kill the old host, and then we can continue on and add the new host.  We have to kill even if the host  		// matches, because all the agent state for the new camera is completely different.  		removeRegion(old_host); @@ -191,6 +195,11 @@ LLViewerRegion* LLWorld::addRegion(const U64 ®ion_handle, const LLHost &host)  		LL_ERRS() << "Unable to create new region!" << LL_ENDL;  	} +	if ( !seedUrl.empty() ) +	{ +		regionp->setCapability("Seed", seedUrl); +	} +  	mRegionList.push_back(regionp);  	mActiveRegionList.push_back(regionp);  	mCulledRegionList.push_back(regionp); diff --git a/indra/newview/skins/default/textures/textures.xml b/indra/newview/skins/default/textures/textures.xml index 5787e011a2..b2d6bc69a7 100755 --- a/indra/newview/skins/default/textures/textures.xml +++ b/indra/newview/skins/default/textures/textures.xml @@ -153,6 +153,8 @@ with the same filename but different name    <texture name="Command_Speak_Icon"        file_name="toolbar_icons/speak.png"        preload="true" />    <texture name="Command_View_Icon"         file_name="toolbar_icons/view.png"         preload="true" />    <texture name="Command_Voice_Icon"        file_name="toolbar_icons/nearbyvoice.png"  preload="true" /> +  <texture name="Command_Highlighting_Icon" file_name="toolbar_icons/highlighting.png" preload="true" scale.left="4" scale.top="19" scale.right="28" scale.bottom="4" /> +  <texture name="Command_Highlighting_Selected_Icon" file_name="toolbar_icons/highlighting_selected.png" preload="true" scale.left="4" scale.top="19" scale.right="28" scale.bottom="4" />    <texture name="Caret_Bottom_Icon"         file_name="toolbar_icons/caret_bottom.png" preload="true" scale.left="1" scale.top="23" scale.right="15" scale.bottom="1" />    <texture name="Caret_Right_Icon"          file_name="toolbar_icons/caret_right.png"  preload="true" scale.left="5" scale.top="15" scale.right="28" scale.bottom="1" />    <texture name="Caret_Left_Icon"           file_name="toolbar_icons/caret_left.png"   preload="true" scale.left="1" scale.top="15" scale.right="23" scale.bottom="1" /> @@ -163,6 +165,7 @@ with the same filename but different name    <texture name="ComboButton_On" file_name="widgets/ComboButton_On.png" preload="true" scale.left="2" scale.top="19" scale.right="18" scale.bottom="2" />    <texture name="ComboButton_Off" file_name="widgets/ComboButton_Off.png" preload="true" scale.left="2" scale.top="19" scale.right="18" scale.bottom="2" />    <texture name="ComboButton_UpOff" file_name="widgets/ComboButton_UpOff.png" preload="true" scale.left="2" scale.top="19" scale.right="18" scale.bottom="2" /> +  <texture name="ComboButton_Hovered" file_name="widgets/ComboButton_Hover.png" preload="true" scale.left="2" scale.top="19" scale.right="18" scale.bottom="2" />    <texture name="Container" file_name="containers/Container.png" preload="false" /> diff --git a/indra/newview/skins/default/textures/toolbar_icons/highlighting.png b/indra/newview/skins/default/textures/toolbar_icons/highlighting.pngBinary files differ new file mode 100644 index 0000000000..c227f07513 --- /dev/null +++ b/indra/newview/skins/default/textures/toolbar_icons/highlighting.png diff --git a/indra/newview/skins/default/textures/toolbar_icons/highlighting_selected.png b/indra/newview/skins/default/textures/toolbar_icons/highlighting_selected.pngBinary files differ new file mode 100644 index 0000000000..aa1bb26a56 --- /dev/null +++ b/indra/newview/skins/default/textures/toolbar_icons/highlighting_selected.png diff --git a/indra/newview/skins/default/textures/widgets/ComboButton_Hover.png b/indra/newview/skins/default/textures/widgets/ComboButton_Hover.pngBinary files differ new file mode 100644 index 0000000000..d492b30b40 --- /dev/null +++ b/indra/newview/skins/default/textures/widgets/ComboButton_Hover.png diff --git a/indra/newview/skins/default/xui/da/floater_tools.xml b/indra/newview/skins/default/xui/da/floater_tools.xml index 815bde456e..9be129bbf6 100755 --- a/indra/newview/skins/default/xui/da/floater_tools.xml +++ b/indra/newview/skins/default/xui/da/floater_tools.xml @@ -462,10 +462,6 @@  				<combo_box.item label="Rør" name="suction"/>  				<combo_box.item label="Væv" name="weave"/>  			</combo_box> -			<check_box initial_value="falsk" label="Flugt planare overflader" name="checkbox planar align" tool_tip="Flugt teksuter på alle valgte overflader med den sidst valgte overflade. Kræver at planar tekstur-mapning er valgt."/> -			<text name="rpt"> -				Gentagelser / overflade -			</text>  			<spinner label="Vandret (U)" name="TexScaleU"/>  			<check_box label="Vend" name="checkbox flip s"/>  			<spinner label="Lodret (V)" name="TexScaleV"/> diff --git a/indra/newview/skins/default/xui/da/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/da/panel_preferences_graphics1.xml index 72200a07ad..e494b2b755 100755 --- a/indra/newview/skins/default/xui/da/panel_preferences_graphics1.xml +++ b/indra/newview/skins/default/xui/da/panel_preferences_graphics1.xml @@ -26,14 +26,14 @@  		<text name="ShadersText">  			Overflader:  		</text> -		<check_box initial_value="sand" label="Gennemsigtig vand" name="TransparentWater"/> +		<check_box initial_value="true" label="Gennemsigtig vand" name="TransparentWater"/>  		<check_box initial_value="true" label="Glatte flader og skin" name="BumpShiny"/> -		<check_box initial_value="sand" label="Lokale lys" name="LocalLights"/> +		<check_box initial_value="true" label="Lokale lys" name="LocalLights"/>  		<check_box initial_value="true" label="Basale flader" name="BasicShaders" tool_tip="Ved at slå dette valg fra, kan det forhindres at visse grafikkort drivere crasher."/>  		<check_box initial_value="true" label="Atmosfæriske flader" name="WindLightUseAtmosShaders"/> -		<check_box initial_value="sand" label="Lys og skygger" name="UseLightShaders"/> -		<check_box initial_value="sand" label=""Ambient Occlusion"" name="UseSSAO"/> -		<check_box initial_value="sand" label="Skarphedsdybde" name="UseDoF"/> +		<check_box initial_value="true" label="Lys og skygger" name="UseLightShaders"/> +		<check_box initial_value="true" label=""Ambient Occlusion"" name="UseSSAO"/> +		<check_box initial_value="true" label="Skarphedsdybde" name="UseDoF"/>  		<text name="shadows_label">  			Skygger:  		</text> diff --git a/indra/newview/skins/default/xui/da/panel_preferences_setup.xml b/indra/newview/skins/default/xui/da/panel_preferences_setup.xml index 479e98817e..7be9a9d555 100755 --- a/indra/newview/skins/default/xui/da/panel_preferences_setup.xml +++ b/indra/newview/skins/default/xui/da/panel_preferences_setup.xml @@ -26,14 +26,13 @@  		Web:  	</text>  	<radio_group name="use_external_browser"> -		<radio_item label="Benyt min browser(IE, Firefox, Safari)" name="external" tool_tip="Brug systemets standard web browser til hjælp, web links, m.v. Ikke anbefalet hvis du kører i fuld-skærm." value="1"/> +		<radio_item label="Benyt min browser(IE, Firefox, Safari)" name="external" tool_tip="Brug systemets standard web browser til hjælp, web links, m.v. Ikke anbefalet hvis du kører i fuld-skærm." value="true"/>  		<radio_item label="Benyt den indbyggede browser" name="internal" tool_tip="Brug den indbyggede web browser til hjælp, web links m.v. Denne browser åbner et nyt vindue i [APP_NAME]." value=""/>  	</radio_group>  	<check_box initial_value="true" label="Aktivér plugins" name="browser_plugins_enabled"/>  	<check_box initial_value="true" label="Acceptér cookies" name="cookies_enabled"/>  	<check_box initial_value="true" label="Aktivér Javascript" name="browser_javascript_enabled"/> -	<check_box initial_value="fra" label="Tilad media browser pop-ups" name="media_popup_enabled"/> -	<check_box initial_value="false" label="Aktivér web proxy" name="web_proxy_enabled"/> +	<check_box initial_value="false" label="Tilad media browser pop-ups" name="media_popup_enabled"/>	  	<text name="Proxy location">  		Proxy placering:  	</text> diff --git a/indra/newview/skins/default/xui/de/floater_tools.xml b/indra/newview/skins/default/xui/de/floater_tools.xml index 5f5c34a5cf..6634a4bd90 100755 --- a/indra/newview/skins/default/xui/de/floater_tools.xml +++ b/indra/newview/skins/default/xui/de/floater_tools.xml @@ -466,16 +466,11 @@  				<combo_box.item label="Saugen" name="suction"/>  				<combo_box.item label="gewoben" name="weave"/>  			</combo_box> -			<check_box initial_value="falsch" label="Flache Oberflächen ausrichten" name="checkbox planar align" tool_tip="Texturen auf allen ausgewählten Oberflächen an der zuletzt ausgewählten Oberfläche ausrichten. Planar Texture Mapping erforderlich."/> -			<text name="rpt"> -				Wiederholungen / Oberfläche -			</text>  			<spinner label="Horizontal (U)" name="TexScaleU"/>  			<check_box label="Umkehren" name="checkbox flip s"/>  			<spinner label="Vertikal (V)" name="TexScaleV"/>  			<check_box label="Umkehren" name="checkbox flip t"/>  			<spinner label="Rotation˚" name="TexRot"/> -			<spinner label="Wiederholungen / Meter" name="rptctrl"/>  			<button label="Übernehmen" label_selected="Übernehmen" name="button apply"/>  			<text name="tex offset">  				Texture-Versatz diff --git a/indra/newview/skins/default/xui/en/floater_im_container.xml b/indra/newview/skins/default/xui/en/floater_im_container.xml index 1215efb7f9..28c89868bd 100755 --- a/indra/newview/skins/default/xui/en/floater_im_container.xml +++ b/indra/newview/skins/default/xui/en/floater_im_container.xml @@ -41,8 +41,8 @@           auto_resize="false"           user_resize="true"                   name="conversations_layout_panel" -         min_dim="38" -         expanded_min_dim="136"> +         min_dim="43" +         expanded_min_dim="140">              <layout_stack               animate="false"                follows="left|top|right" @@ -100,7 +100,7 @@                  <layout_panel                   auto_resize="false"                   name="conversations_pane_buttons_collapsed" -                 width="31"> +                 width="35">                      <button                       follows="right|top"                       height="25" @@ -110,10 +110,10 @@                       image_unselected="Toolbar_Middle_Off"                       layout="topleft"                       top="1" -                     left="0" +                     left="4"                       name="expand_collapse_btn"                       tool_tip="Collapse/Expand this list" -                     width="31" /> +                     width="35" />                  </layout_panel>              </layout_stack>              <panel diff --git a/indra/newview/skins/default/xui/en/menu_avatar_icon.xml b/indra/newview/skins/default/xui/en/menu_avatar_icon.xml index 50910dff32..77b9095f7c 100755 --- a/indra/newview/skins/default/xui/en/menu_avatar_icon.xml +++ b/indra/newview/skins/default/xui/en/menu_avatar_icon.xml @@ -17,7 +17,7 @@           parameter="profile" />      </menu_item_call>      <menu_item_call -     label="Send IM..." +     label="IM"       layout="topleft"       name="Send IM">          <menu_item_call.on_click @@ -25,7 +25,26 @@           parameter="im" />      </menu_item_call>      <menu_item_call -     label="Add Friend..." +     label="Offer teleport" +     layout="topleft" +     name="Offer Teleport"> +        <on_click function="AvatarIcon.Action" parameter="teleport"/> +    </menu_item_call> +    <menu_item_call +     label="Voice call" +     layout="topleft" +     name="Voice Call"> +        <on_click function="AvatarIcon.Action" parameter="voice_call"/> +    </menu_item_call> +    <menu_item_call +     label="Chat history..." +     layout="topleft" +     name="Chat History"> +        <on_click function="AvatarIcon.Action" parameter="chat_history"/>    +    </menu_item_call> +    <menu_item_separator layout="topleft" name="separator_chat_history"/> +    <menu_item_call +     label="Add friend"       layout="topleft"       name="Add Friend">          <menu_item_call.on_click @@ -33,11 +52,56 @@           parameter="add" />      </menu_item_call>      <menu_item_call -     label="Remove Friend..." +     label="Remove friend"       layout="topleft"       name="Remove Friend">          <menu_item_call.on_click           function="AvatarIcon.Action"           parameter="remove" />      </menu_item_call> +    <menu_item_call +     label="Invite to group..." +     layout="topleft" +     name="Invite Group"> +      <on_click function="AvatarIcon.Action" parameter="invite_to_group" />    +    </menu_item_call> +    <menu_item_separator layout="topleft" name="separator_invite_to_group"/> +    <menu_item_call +     label="Zoom In" +     layout="topleft" +     name="Zoom In"> +      <on_click function="AvatarIcon.Action" parameter="zoom_in" /> +    </menu_item_call> +    <menu_item_call +     label="Map" +     layout="topleft" +     name="Map"> +       <on_click function="AvatarIcon.Action" parameter="map" /> +    </menu_item_call> +    <menu_item_call +     label="Share" +     layout="topleft" +     name="Share"> +       <on_click function="AvatarIcon.Action" parameter="share" /> +    </menu_item_call> +    <menu_item_call +     label="Pay" +     layout="topleft" +     name="Pay"> +       <on_click function="AvatarIcon.Action" parameter="pay" /> +    </menu_item_call> +    <menu_item_check +     label="Block Voice" +     layout="topleft" +     name="Block Unblock"> +       <on_click function="AvatarIcon.Action" parameter="block_unblock" /> +       <on_check function="AvatarIcon.Check" parameter="is_blocked" /> +    </menu_item_check> +    <menu_item_check +     label="Block Text" +     layout="topleft" +     name="Mute Text"> +       <on_click function="AvatarIcon.Action" parameter="mute_unmute" /> +       <on_check function="AvatarIcon.Check" parameter="is_muted" />    +  </menu_item_check>  </menu> diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml index 8913323162..380c7d8d9e 100755 --- a/indra/newview/skins/default/xui/en/menu_viewer.xml +++ b/indra/newview/skins/default/xui/en/menu_viewer.xml @@ -1305,19 +1305,19 @@       tear_off="true">          <menu_item_call           label="How to..." -         name="How To"> +         name="How To" +         shortcut="F1">              <menu_item_call.on_click               function="Help.ToggleHowTo"               parameter="" />          </menu_item_call>          <menu_item_call -         label="[SECOND_LIFE] Help" -         name="Second Life Help" -         shortcut="F1"> -            <menu_item_call.on_click -             function="ShowHelp" -             parameter="f1_help" /> -        </menu_item_call> +           label="Quickstart" +           name="Quickstart"> +        <menu_item_call.on_click +            function="Advanced.ShowURL" +            parameter="http://community.secondlife.com/t5/English-Knowledge-Base/Second-Life-Quickstart/ta-p/1087919"/> +        </menu_item_call>                <!--        <menu_item_call           label="Tutorial"           name="Tutorial"> @@ -1326,21 +1326,13 @@               parameter="hud" />          </menu_item_call>-->  		<menu_item_separator/> -		 -		<menu_item_call -             label="User’s guide" -             name="User’s guide"> -             <menu_item_call.on_click -                 function="Advanced.ShowURL" -                 parameter="http://community.secondlife.com/t5/English-Knowledge-Base/Second-Life-User-s-Guide/ta-p/1244857"/> -        </menu_item_call> -        <menu_item_call -             label="Knowledge Base" -             name="Knowledge Base"> -             <menu_item_call.on_click -                 function="Advanced.ShowURL" -                 parameter="http://community.secondlife.com/t5/tkb/communitypage"/> -        </menu_item_call> +      <menu_item_call +           label="Knowledge Base" +           name="Knowledge Base"> +        <menu_item_call.on_click +            function="Advanced.ShowURL" +            parameter="http://community.secondlife.com/t5/English-Knowledge-Base/Second-Life-User-s-Guide/ta-p/1244857"/> +      </menu_item_call>          <menu_item_call               label="Wiki"               name="Wiki"> diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index f6dbe92e56..5aec209827 100755 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -3481,7 +3481,7 @@ or you can install it now.     name="DownloadBackgroundTip"     type="notify">  We have downloaded an update to your [APP_NAME] installation. -Version [VERSION] [[RELEASE_NOTES_FULL_URL] Information about this update] +Version [VERSION] [[INFO_URL] Information about this update]      <tag>confirm</tag>      <usetemplate       name="okcancelbuttons" @@ -3493,8 +3493,8 @@ Version [VERSION] [[RELEASE_NOTES_FULL_URL] Information about this update]   icon="alertmodal.tga"   name="DownloadBackgroundDialog"   type="alertmodal"> -We have downloaded an update to your [APP_NAME] installation. -Version [VERSION] [[RELEASE_NOTES_FULL_URL] Information about this update] +    We have downloaded an update to your [APP_NAME] installation. +    Version [VERSION] [[INFO_URL] Information about this update]      <tag>confirm</tag>      <usetemplate       name="okcancelbuttons" @@ -6337,13 +6337,22 @@ You can only claim public land in the Region you're in.    <notification     icon="notify.tga"     name="RegionTPAccessBlocked" -   persist="true" +   persist="false"     type="notify">     <tag>fail</tag>      The region you're trying to visit contains content exceeding your current preferences.  You can change your preferences using Me > Preferences > General.    </notification>    <notification +   icon="notify.tga" +   name="RegionAboutToShutdown" +   persist="false" +   type="notify"> +    <tag>fail</tag> +    The region you're trying to enter is about to shut down. +  </notification> +   +  <notification  	icon="notify.tga"  	name="URBannedFromRegion"     persist="true" @@ -6887,7 +6896,7 @@ This will add a bookmark in your inventory so you can quickly IM this Resident.     priority="high"     sound="UISndAlert"     type="notify"> -This region will restart in [MINUTES] minutes. +The region "[NAME]" will restart in [MINUTES] minutes.  If you stay in this region you will be logged out.    </notification> @@ -6897,7 +6906,7 @@ If you stay in this region you will be logged out.     priority="high"     sound="UISndAlert"     type="notify"> -This region will restart in [SECONDS] seconds. +The region "[NAME]" will restart in [SECONDS] seconds.  If you stay in this region you will be logged out.    </notification> @@ -8780,11 +8789,11 @@ You are no longer allowed here and have [EJECT_TIME] seconds to leave.    <notification     icon="alertmodal.tga" -   name="NoEnterServerFull" +   name="NoEnterRegionMaybeFull"     type="notify">     <tag>fail</tag> -You can't enter this region because  -the server is full. +You can't enter region "[NAME]". +It may be full or restarting soon.    </notification>    <notification @@ -9550,6 +9559,14 @@ Not enough script resources available to attach object!    <notification     icon="alertmodal.tga" +   name="CantAttachObjectBeingRemoved" +   type="notify"> +    <tag>fail</tag> +    Cannot attach object because it is already being removed. +  </notification> + +  <notification +   icon="alertmodal.tga"     name="CantDropItemTrialUser"     type="notify">     <tag>fail</tag> diff --git a/indra/newview/skins/default/xui/en/panel_conversation_list_item.xml b/indra/newview/skins/default/xui/en/panel_conversation_list_item.xml index a054e71e34..4372cf69bf 100755 --- a/indra/newview/skins/default/xui/en/panel_conversation_list_item.xml +++ b/indra/newview/skins/default/xui/en/panel_conversation_list_item.xml @@ -11,7 +11,7 @@       height="20"       default_icon_name="Generic_Person"       layout="topleft" -     left="5" +     left="9"       top="2"       visible="false"       width="20" /> @@ -20,7 +20,7 @@       height="20"       default_icon_name="Generic_Group"       layout="topleft" -     left="5" +     left="9"       top="2"       visible="false"       width="20" /> @@ -29,9 +29,9 @@       height="20"       image_name="Nearby_chat_icon"       layout="topleft" -     left="5" +     left="10"       name="nearby_chat_icon" -     top="2" +     top="3"       visible="false"       width="20"/>      <layout_stack diff --git a/indra/newview/skins/default/xui/en/panel_navigation_bar.xml b/indra/newview/skins/default/xui/en/panel_navigation_bar.xml index 3edeb9aa36..c7edba21f8 100755 --- a/indra/newview/skins/default/xui/en/panel_navigation_bar.xml +++ b/indra/newview/skins/default/xui/en/panel_navigation_bar.xml @@ -87,6 +87,7 @@  	         direction="down"  	         height="23"  	         image_overlay="Arrow_Left_Off" +	         image_hover_unselected="PushButton_Over"  	         image_bottom_pad="1"  	         layout="topleft"  	         left="10" @@ -99,6 +100,7 @@  	         direction="down"  	         height="23"  	         image_overlay="Arrow_Right_Off" +	         image_hover_unselected="PushButton_Over"  	         image_bottom_pad="1"  	         layout="topleft"  	         left_pad="0" @@ -111,6 +113,7 @@  	         height="23"  	         image_bottom_pad="1"  	         image_overlay="Home_Off" +	         image_hover_unselected="PushButton_Over"  	         layout="topleft"  	         left_pad="7"  	         name="home_btn" diff --git a/indra/newview/skins/default/xui/en/panel_people.xml b/indra/newview/skins/default/xui/en/panel_people.xml index f5c2a4b557..e20b4b4338 100755 --- a/indra/newview/skins/default/xui/en/panel_people.xml +++ b/indra/newview/skins/default/xui/en/panel_people.xml @@ -64,7 +64,8 @@ Looking for people to hang out with? Try the [secondlife:///app/worldmap World M       tab_position="top"       top="0"       halign="center" -     right="-5"> +     right="-5" +     use_highlighting_on_hover="true">  <!-- ================================= NEARBY tab =========================== --> @@ -498,7 +499,7 @@ Looking for people to hang out with? Try the [secondlife:///app/worldmap World M              <text                  type="string"                  length="1" -                follows="all" +                follows="left|top|right"                  height="14"                  layout="topleft"                  right="-10" diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml index 9fceb18686..c7cb640161 100755 --- a/indra/newview/skins/default/xui/en/strings.xml +++ b/indra/newview/skins/default/xui/en/strings.xml @@ -456,6 +456,8 @@ Please try logging in again in a minute.</string>  	<string name="load_file_verb">Load</string>  	<string name="targa_image_files">Targa Images</string>  	<string name="bitmap_image_files">Bitmap Images</string> +	<string name="png_image_files">PNG Images</string> +	<string name="save_texture_image_files">Targa or PNG Images</string>  	<string name="avi_movie_file">AVI Movie File</string>  	<string name="xaf_animation_file">XAF Anim File</string>  	<string name="xml_file">XML File</string> diff --git a/indra/newview/skins/default/xui/en/widgets/location_input.xml b/indra/newview/skins/default/xui/en/widgets/location_input.xml index 61ec046649..4ea1aa6efb 100755 --- a/indra/newview/skins/default/xui/en/widgets/location_input.xml +++ b/indra/newview/skins/default/xui/en/widgets/location_input.xml @@ -150,6 +150,7 @@    <combo_button  		name="Location History"                  label="" +                image_hover_unselected="ComboButton_Hovered"                  pad_right="0"/>    <combo_list  	      bg_writeable_color="MenuDefaultBgColor" diff --git a/indra/newview/skins/default/xui/en/widgets/tab_container.xml b/indra/newview/skins/default/xui/en/widgets/tab_container.xml index 0586119681..9559be214a 100755 --- a/indra/newview/skins/default/xui/en/widgets/tab_container.xml +++ b/indra/newview/skins/default/xui/en/widgets/tab_container.xml @@ -24,17 +24,26 @@ label_pad_left - padding to the left of tab button labels                 tab_bottom_image_unselected="Toolbar_Left_Off"                 tab_bottom_image_selected="Toolbar_Left_Selected"                 tab_left_image_unselected="SegmentedBtn_Left_Disabled" -               tab_left_image_selected="SegmentedBtn_Left_Selected_Over"/> +               tab_left_image_selected="SegmentedBtn_Left_Selected_Over" +               tab_top_image_hovered="TabTop_Left_Selected" +               tab_button_image_hovered="Toolbar_Left_Selected" +               tab_left_image_hovered="SegmentedBtn_Left_Selected_Over"/>    <middle_tab tab_top_image_unselected="TabTop_Middle_Off"                 tab_top_image_selected="TabTop_Middle_Selected"                 tab_bottom_image_unselected="Toolbar_Middle_Off"                 tab_bottom_image_selected="Toolbar_Middle_Selected"                 tab_left_image_unselected="SegmentedBtn_Left_Disabled" -               tab_left_image_selected="SegmentedBtn_Left_Selected_Over"/> +               tab_left_image_selected="SegmentedBtn_Left_Selected_Over" +               tab_top_image_hovered="TabTop_Middle_Selected" +               tab_button_image_hovered="Toolbar_Middle_Selected" +               tab_left_image_hovered="SegmentedBtn_Left_Selected_Over"/>    <last_tab tab_top_image_unselected="TabTop_Right_Off"                 tab_top_image_selected="TabTop_Right_Selected"                 tab_bottom_image_unselected="Toolbar_Right_Off"                 tab_bottom_image_selected="Toolbar_Right_Selected"                 tab_left_image_unselected="SegmentedBtn_Left_Disabled" -               tab_left_image_selected="SegmentedBtn_Left_Selected_Over"/> +               tab_left_image_selected="SegmentedBtn_Left_Selected_Over" +               tab_top_image_hovered="TabTop_Right_Selected" +               tab_button_image_hovered="Toolbar_Right_Selected" +               tab_left_image_hovered="SegmentedBtn_Left_Selected_Over"/>  </tab_container> diff --git a/indra/newview/skins/default/xui/es/floater_hardware_settings.xml b/indra/newview/skins/default/xui/es/floater_hardware_settings.xml index c351db5eae..c2327c96c4 100755 --- a/indra/newview/skins/default/xui/es/floater_hardware_settings.xml +++ b/indra/newview/skins/default/xui/es/floater_hardware_settings.xml @@ -28,7 +28,7 @@  	<text name="tc label">  		Activar S3TC:  	</text> -	<check_box initial_value="verdadero" label="Activar la compresión de texturas (requiere reiniciar)" name="texture compression" tool_tip="Comprime las texturas de la memoria de vídeo, lo cual permite cargar texturas de una resolución más alta, pero con una cierta pérdida de calidad del color."/> +	<check_box initial_value="true" label="Activar la compresión de texturas (requiere reiniciar)" name="texture compression" tool_tip="Comprime las texturas de la memoria de vídeo, lo cual permite cargar texturas de una resolución más alta, pero con una cierta pérdida de calidad del color."/>  	<slider label="Memoria para texturas (MB):" name="GraphicsCardTextureMemory" tool_tip="Cantidad de memoria asignada a las texturas. Por defecto es la memoria de la tarjeta de vídeo. Reducir esta cantidad puede mejorar el rendimiento, pero también hacer que las texturas se vean borrosas."/>  	<spinner label="Intensidad de la niebla:" name="fog"/>  	<button label="OK" label_selected="OK" name="OK"/> diff --git a/indra/newview/skins/default/xui/es/floater_tools.xml b/indra/newview/skins/default/xui/es/floater_tools.xml index 15462c3726..32baa5bb7d 100755 --- a/indra/newview/skins/default/xui/es/floater_tools.xml +++ b/indra/newview/skins/default/xui/es/floater_tools.xml @@ -443,16 +443,11 @@  				<combo_box.item label="succión" name="suction"/>  				<combo_box.item label="tejido" name="weave"/>  			</combo_box> -			<check_box initial_value="falso" label="Alinear caras del plano" name="checkbox planar align" tool_tip="Alinear texturas en todas las caras seleccionadas con la última cara seleccionada. Requiere la representación de texturas en el plano."/> -			<text name="rpt"> -				Repeticiones por cara -			</text>  			<spinner label="Horizontal (U)" name="TexScaleU"/>  			<check_box label="Voltear" name="checkbox flip s"/>  			<spinner label="Vertical (V)" name="TexScaleV"/>  			<check_box label="Voltear" name="checkbox flip t"/>  			<spinner label="Rotación" name="TexRot"/> -			<spinner label="Repeticiones / Metro" name="rptctrl"/>  			<button label="Aplicar" label_selected="Aplicar" name="button apply"/>  			<text name="tex offset">  				Desplazar diff --git a/indra/newview/skins/default/xui/es/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/es/panel_preferences_graphics1.xml index 9362f76708..a9eab74e2b 100755 --- a/indra/newview/skins/default/xui/es/panel_preferences_graphics1.xml +++ b/indra/newview/skins/default/xui/es/panel_preferences_graphics1.xml @@ -25,14 +25,14 @@  		<text name="ShadersText">  			Shaders:  		</text> -		<check_box initial_value="verdadero" label="Agua transparente" name="TransparentWater"/> +		<check_box initial_value="true" label="Agua transparente" name="TransparentWater"/>  		<check_box initial_value="true" label="Efecto de relieve y brillo" name="BumpShiny"/> -		<check_box initial_value="verdadero" label="Luces locales" name="LocalLights"/> +		<check_box initial_value="true" label="Luces locales" name="LocalLights"/>  		<check_box initial_value="true" label="Shaders básicos" name="BasicShaders" tool_tip="Desactivando esta opción puede prevenir fallos en algunos controladores de la tarjeta gráfica."/>  		<check_box initial_value="true" label="Shaders de la atmósfera" name="WindLightUseAtmosShaders"/> -		<check_box initial_value="verdadero" label="Modelo de iluminación avanzado" name="UseLightShaders"/> -		<check_box initial_value="verdadero" label="Oclusión del ambiente" name="UseSSAO"/> -		<check_box initial_value="verdadero" label="Profundidad del campo" name="UseDoF"/> +		<check_box initial_value="true" label="Modelo de iluminación avanzado" name="UseLightShaders"/> +		<check_box initial_value="true" label="Oclusión del ambiente" name="UseSSAO"/> +		<check_box initial_value="true" label="Profundidad del campo" name="UseDoF"/>  		<text name="shadows_label">  			Sombras:  		</text> diff --git a/indra/newview/skins/default/xui/es/panel_preferences_setup.xml b/indra/newview/skins/default/xui/es/panel_preferences_setup.xml index f7eaa03d63..508bfbcd32 100755 --- a/indra/newview/skins/default/xui/es/panel_preferences_setup.xml +++ b/indra/newview/skins/default/xui/es/panel_preferences_setup.xml @@ -21,7 +21,7 @@  	<check_box initial_value="true" label="Activar plugins" name="browser_plugins_enabled"/>  	<check_box initial_value="true" label="Aceptar las 'cookies'" name="cookies_enabled"/>  	<check_box initial_value="true" label="Activar Javascript" name="browser_javascript_enabled"/> -	<check_box initial_value="falso" label="Permitir las ventanas emergentes en el navegador" name="media_popup_enabled"/> +	<check_box initial_value="false" label="Permitir las ventanas emergentes en el navegador" name="media_popup_enabled"/>  	<text name="Software updates:">  		Actualizaciones de software:  	</text> diff --git a/indra/newview/skins/default/xui/es/panel_preferences_sound.xml b/indra/newview/skins/default/xui/es/panel_preferences_sound.xml index 5cb1654c70..dcd6984715 100755 --- a/indra/newview/skins/default/xui/es/panel_preferences_sound.xml +++ b/indra/newview/skins/default/xui/es/panel_preferences_sound.xml @@ -19,7 +19,7 @@  	<check_box label="Activado" name="enable_voice_check"/>  	<check_box label="Permitir la ejecución automática de los media" name="media_auto_play_btn" tool_tip="Marcar esto para permitir la ejecución automática de los media" value="true"/>  	<check_box label="Ejecutar para otros avatares los media anexados" name="media_show_on_others_btn" tool_tip="Al desmarcar esto se esconderán los media anexados a otros avatares cercanos" value="true"/> -	<check_box label="Reproducir sonidos de los gestos" name="gesture_audio_play_btn" tool_tip="Selecciona esta opción para escuchar los sonidos de los gestos" value="verdadero"/> +	<check_box label="Reproducir sonidos de los gestos" name="gesture_audio_play_btn" tool_tip="Selecciona esta opción para escuchar los sonidos de los gestos" value="true"/>  	<text name="voice_chat_settings">  		Configuración del chat de voz  	</text> diff --git a/indra/newview/skins/default/xui/es/panel_tools_texture.xml b/indra/newview/skins/default/xui/es/panel_tools_texture.xml index 7199905a1c..b820880e60 100644 --- a/indra/newview/skins/default/xui/es/panel_tools_texture.xml +++ b/indra/newview/skins/default/xui/es/panel_tools_texture.xml @@ -112,5 +112,5 @@  	<spinner label="Grados de rotación" name="shinyRot"/>  	<spinner label="Desplazamiento horizontal" name="shinyOffsetU"/>  	<spinner label="Desplazamiento vertical" name="shinyOffsetV"/> -	<check_box initial_value="falso" label="Alinear caras del plano" name="checkbox planar align" tool_tip="Alinear texturas en todas las caras seleccionadas con la última cara seleccionada. Requiere la representación de texturas en el plano."/> +	<check_box initial_value="false" label="Alinear caras del plano" name="checkbox planar align" tool_tip="Alinear texturas en todas las caras seleccionadas con la última cara seleccionada. Requiere la representación de texturas en el plano."/>  </panel> diff --git a/indra/newview/skins/default/xui/fr/floater_hardware_settings.xml b/indra/newview/skins/default/xui/fr/floater_hardware_settings.xml index 098f8fc713..bb146556ba 100755 --- a/indra/newview/skins/default/xui/fr/floater_hardware_settings.xml +++ b/indra/newview/skins/default/xui/fr/floater_hardware_settings.xml @@ -28,7 +28,7 @@  	<text name="tc label">  		Activer S3TC :  	</text> -	<check_box initial_value="vraie" label="Activer la compression des textures (redémarrage requis)" name="texture compression" tool_tip="Comprime les textures en mémoire vidéo afin de permettre de charger des textures de résolution plus élevée au prix d'une certaine qualité de couleur."/> +	<check_box initial_value="true" label="Activer la compression des textures (redémarrage requis)" name="texture compression" tool_tip="Comprime les textures en mémoire vidéo afin de permettre de charger des textures de résolution plus élevée au prix d'une certaine qualité de couleur."/>  	<slider label="Mémoire textures (Mo) :" name="GraphicsCardTextureMemory" tool_tip="Quantité de mémoire à affecter aux textures. Utilise la mémoire de la carte vidéo par défaut. Si vous réduisez ce paramètre, cela peut améliorer les performances, mais les textures risquent d'être floues."/>  	<spinner label="Indice du brouillard :" name="fog"/>  	<button label="OK" label_selected="OK" name="OK"/> diff --git a/indra/newview/skins/default/xui/fr/floater_tools.xml b/indra/newview/skins/default/xui/fr/floater_tools.xml index bcc3423862..421e14d51b 100755 --- a/indra/newview/skins/default/xui/fr/floater_tools.xml +++ b/indra/newview/skins/default/xui/fr/floater_tools.xml @@ -463,16 +463,11 @@  				<combo_box.item label="Ventouses" name="suction"/>  				<combo_box.item label="Tissage" name="weave"/>  			</combo_box> -			<check_box initial_value="false" label="Aligner les faces Plan" name="checkbox planar align" tool_tip="Aligner les textures sur toutes les faces sélectionnées avec la dernière face sélectionnée. Application de la texture Plan requise."/> -			<text name="rpt"> -				Répétitions / Face -			</text>  			<spinner label="Horizontal (U)" name="TexScaleU"/>  			<check_box label="Inverser" name="checkbox flip s"/>  			<spinner label="Vertical (V)" name="TexScaleV"/>  			<check_box label="Inverser" name="checkbox flip t"/>  			<spinner label="Rotation˚" name="TexRot"/> -			<spinner label="Répétitions / Mètre" name="rptctrl"/>  			<button label="Appliquer" label_selected="Appliquer" name="button apply"/>  			<text name="tex offset">  				Décalage de la texture diff --git a/indra/newview/skins/default/xui/it/floater_tools.xml b/indra/newview/skins/default/xui/it/floater_tools.xml index dd59035dd4..468f284ccb 100755 --- a/indra/newview/skins/default/xui/it/floater_tools.xml +++ b/indra/newview/skins/default/xui/it/floater_tools.xml @@ -470,16 +470,11 @@  				<combo_box.item label="Cerchi rialzati" name="suction"/>  				<combo_box.item label="Trama" name="weave"/>  			</combo_box> -			<check_box initial_value="falso" label="Allinea facce planari" name="checkbox planar align" tool_tip="Allinea le texture su tutte le facce selezionate con l’ultima faccia selezionata. È richiesta la mappatura planare delle texture."/> -			<text name="rpt"> -				Ripetizioni / Faccia -			</text>  			<spinner label="Orizzontale (U)" name="TexScaleU"/>  			<check_box label="Inverti" name="checkbox flip s"/>  			<spinner label="Verticale (V)" name="TexScaleV"/>  			<check_box label="Inverti" name="checkbox flip t"/>  			<spinner label="Rotazione˚" name="TexRot"/> -			<spinner label="Ripetizioni / Metro" name="rptctrl"/>  			<button label="Applica" label_selected="Applica" name="button apply"/>  			<text name="tex offset">  				Bilanciamento della texture diff --git a/indra/newview/skins/default/xui/it/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/it/panel_preferences_graphics1.xml index e7483b1ba5..2978c48db6 100755 --- a/indra/newview/skins/default/xui/it/panel_preferences_graphics1.xml +++ b/indra/newview/skins/default/xui/it/panel_preferences_graphics1.xml @@ -25,7 +25,7 @@  		<text name="ShadersText">  			Effetti grafici:  		</text> -		<check_box initial_value="vero" label="Acqua trasparente" name="TransparentWater"/> +		<check_box initial_value="true" label="Acqua trasparente" name="TransparentWater"/>  		<check_box initial_value="true" label="Piccoli rilievi e scintillii" name="BumpShiny"/>  		<check_box initial_value="true" label="Luci locali" name="LocalLights"/>  		<check_box initial_value="true" label="Effetti grafici base" name="BasicShaders" tool_tip="Disabilitare questa opzione può evitare che qualche scheda grafica vada in crash."/> diff --git a/indra/newview/skins/default/xui/it/panel_preferences_setup.xml b/indra/newview/skins/default/xui/it/panel_preferences_setup.xml index 4c190197b4..fcc9661d03 100755 --- a/indra/newview/skins/default/xui/it/panel_preferences_setup.xml +++ b/indra/newview/skins/default/xui/it/panel_preferences_setup.xml @@ -21,7 +21,7 @@  	<check_box initial_value="true" label="Abilita plugin" name="browser_plugins_enabled"/>  	<check_box initial_value="true" label="Accetta cookie" name="cookies_enabled"/>  	<check_box initial_value="true" label="Abilita Javascript" name="browser_javascript_enabled"/> -	<check_box initial_value="falso" label="Consenti pop-up nel browser media" name="media_popup_enabled"/> +	<check_box initial_value="false" label="Consenti pop-up nel browser media" name="media_popup_enabled"/>  	<text name="Software updates:">  		Aggiornamenti software:  	</text> diff --git a/indra/newview/skins/default/xui/it/panel_tools_texture.xml b/indra/newview/skins/default/xui/it/panel_tools_texture.xml index 4e515563ac..36ad2980cb 100644 --- a/indra/newview/skins/default/xui/it/panel_tools_texture.xml +++ b/indra/newview/skins/default/xui/it/panel_tools_texture.xml @@ -112,5 +112,5 @@  	<spinner label="Gradi di rotazione" name="shinyRot"/>  	<spinner label="Spostamento orizzontale" name="shinyOffsetU"/>  	<spinner label="Spostamento verticale" name="shinyOffsetV"/> -	<check_box initial_value="falso" label="Allinea facce planari" name="checkbox planar align" tool_tip="Allinea le texture su tutte le facce selezionate con l’ultima faccia selezionata. È richiesta la mappatura planare delle texture."/> +	<check_box initial_value="false" label="Allinea facce planari" name="checkbox planar align" tool_tip="Allinea le texture su tutte le facce selezionate con l’ultima faccia selezionata. È richiesta la mappatura planare delle texture."/>  </panel> diff --git a/indra/newview/skins/default/xui/ja/floater_tools.xml b/indra/newview/skins/default/xui/ja/floater_tools.xml index 4bd6439ad2..5511433ae3 100755 --- a/indra/newview/skins/default/xui/ja/floater_tools.xml +++ b/indra/newview/skins/default/xui/ja/floater_tools.xml @@ -469,16 +469,11 @@  				<combo_box.item label="吸い込み" name="suction"/>  				<combo_box.item label="織目" name="weave"/>  			</combo_box> -			<check_box initial_value="false" label="平面を揃える" name="checkbox planar align" tool_tip="選択面全てのテクスチャを、最後に選択された面に揃えます。 平面テクスチャのマッピングが必要です。"/> -			<text name="rpt"> -				反復 / 面 -			</text>  			<spinner label="水平(U)" name="TexScaleU"/>  			<check_box label="反転" name="checkbox flip s"/>  			<spinner label="垂直(V)" name="TexScaleV"/>  			<check_box label="反転" name="checkbox flip t"/>  			<spinner label="回転˚" name="TexRot"/> -			<spinner label="反復 / メーター" name="rptctrl"/>  			<button label="適用" label_selected="適用" name="button apply"/>  			<text name="tex offset">  				テクスチャのズレ diff --git a/indra/newview/skins/default/xui/pl/floater_tools.xml b/indra/newview/skins/default/xui/pl/floater_tools.xml index 9e6fed8387..69d5c23f9c 100755 --- a/indra/newview/skins/default/xui/pl/floater_tools.xml +++ b/indra/newview/skins/default/xui/pl/floater_tools.xml @@ -442,16 +442,11 @@  				<combo_box.item label="Suction" name="suction"/>  				<combo_box.item label="Fali" name="weave"/>  			</combo_box> -			<check_box initial_value="nieprawda" label="Połącz powierzchnie planarne" name="checkbox planar align" tool_tip="Połącz tekstury na wszystkich wybranych powierzchniach z powierzchnią wybraną jako ostatnia. Wymaga planarnego mapowania tekstury."/> -			<text name="rpt"> -				Powtórzenia / Powierzchnia -			</text>  			<spinner label="Poziomo (U)" name="TexScaleU"/>  			<check_box label="Odwróć" name="checkbox flip s"/>  			<spinner label="Pionowo (V)" name="TexScaleV"/>  			<check_box label="Odwróć" name="checkbox flip t"/>  			<spinner label="Powtórzenia˚" name="TexRot"/> -			<spinner label="Powtórzenia / metr" name="rptctrl"/>  			<button label="Zastosuj" label_selected="Zastosuj" name="button apply"/>  			<text name="tex offset">  				Wyrównanie tekstury diff --git a/indra/newview/skins/default/xui/pl/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/pl/panel_preferences_graphics1.xml index f2beef091a..4cd271a141 100755 --- a/indra/newview/skins/default/xui/pl/panel_preferences_graphics1.xml +++ b/indra/newview/skins/default/xui/pl/panel_preferences_graphics1.xml @@ -26,7 +26,7 @@  		<text name="ShadersText">  			Cieniowanie pixeli (shadery):  		</text> -		<check_box initial_value="prawda" label="Przeźroczystość wody" name="TransparentWater"/> +		<check_box initial_value="true" label="Przeźroczystość wody" name="TransparentWater"/>  		<check_box initial_value="true" label="Mapowanie wypukłości i połysk" name="BumpShiny"/>  		<check_box initial_value="true" label="Podstawowe shadery" name="BasicShaders" tool_tip="Wyłączenie tej opcji może naprawić błędy niektórych sterowników graficznych."/>  		<check_box initial_value="true" label="Shadery atmosfery" name="WindLightUseAtmosShaders"/> diff --git a/indra/newview/skins/default/xui/pl/panel_preferences_setup.xml b/indra/newview/skins/default/xui/pl/panel_preferences_setup.xml index fa0a5981a8..b663e18227 100755 --- a/indra/newview/skins/default/xui/pl/panel_preferences_setup.xml +++ b/indra/newview/skins/default/xui/pl/panel_preferences_setup.xml @@ -26,14 +26,13 @@  		Internet:  	</text>  	<radio_group name="use_external_browser"> -		<radio_item label="Użyj zewnętrznej przeglądarki (IE, Firefox, Safari)" name="external" tool_tip="Używaj zewnętrznej przeglądarki. Nie jest to rekomendowane w trybie pełnoekranowym." value="1"/> +		<radio_item label="Użyj zewnętrznej przeglądarki (IE, Firefox, Safari)" name="external" tool_tip="Używaj zewnętrznej przeglądarki. Nie jest to rekomendowane w trybie pełnoekranowym." value="true"/>  		<radio_item label="Używaj wbudowanej przeglądarki." name="internal" tool_tip="Używaj wbudowanej przeglądarki. Ta przeglądarka otworzy nowe okno w [APP_NAME]." value=""/>  	</radio_group>  	<check_box initial_value="true" label="Zezwalaj na wtyczki" name="browser_plugins_enabled"/>  	<check_box initial_value="true" label="Akceptuj ciasteczka z Internetu" name="cookies_enabled"/>  	<check_box initial_value="true" label="Zezwalaj na Javascript" name="browser_javascript_enabled"/> -	<check_box initial_value="nieprawda" label="Zezwól na wyskakujące okienka przeglądarki mediów" name="media_popup_enabled"/> -	<check_box initial_value="false" label="Używaj serwera proxy" name="web_proxy_enabled"/> +	<check_box initial_value="false" label="Zezwól na wyskakujące okienka przeglądarki mediów" name="media_popup_enabled"/>  	<text name="Proxy location">  		Lokalizacja proxy:  	</text> diff --git a/indra/newview/skins/default/xui/pt/floater_tools.xml b/indra/newview/skins/default/xui/pt/floater_tools.xml index 8c245c582e..66c14cdecf 100755 --- a/indra/newview/skins/default/xui/pt/floater_tools.xml +++ b/indra/newview/skins/default/xui/pt/floater_tools.xml @@ -463,16 +463,11 @@  				<combo_box.item label="Sulcos" name="suction"/>  				<combo_box.item label="Weave" name="weave"/>  			</combo_box> -			<check_box initial_value="falso" label="Alinhar planares" name="checkbox planar align" tool_tip="Alinhar texturas dos planos selecionados com o plano selecionado por último. Requer mapeamento planar da textura."/> -			<text name="rpt"> -				Repetições / Plano -			</text>  			<spinner label="Horizontal (U)" name="TexScaleU"/>  			<check_box label="Inverter" name="checkbox flip s"/>  			<spinner label="Vertical (V)" name="TexScaleV"/>  			<check_box label="Inverter" name="checkbox flip t"/>  			<spinner label="Rotação˚" name="TexRot"/> -			<spinner label="Repetições/Metro" name="rptctrl"/>  			<button label="Aplicar" label_selected="Aplicar" name="button apply"/>  			<text name="tex offset">  				Offset de textura diff --git a/indra/newview/skins/default/xui/pt/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/pt/panel_preferences_graphics1.xml index 37e8838bf4..756e345cb8 100755 --- a/indra/newview/skins/default/xui/pt/panel_preferences_graphics1.xml +++ b/indra/newview/skins/default/xui/pt/panel_preferences_graphics1.xml @@ -26,14 +26,14 @@ rápido  		<text name="ShadersText">  			Sombreadores:  		</text> -		<check_box initial_value="verdadeiro" label="Água transparente" name="TransparentWater"/> +		<check_box initial_value="true" label="Água transparente" name="TransparentWater"/>  		<check_box initial_value="true" label="Bump de Mapeamento e Brilho" name="BumpShiny"/> -		<check_box initial_value="verdadeiro" label="Luzes locais" name="LocalLights"/> +		<check_box initial_value="true" label="Luzes locais" name="LocalLights"/>  		<check_box initial_value="true" label="Sombreadores básicos" name="BasicShaders" tool_tip="Desabilitar esta opção poderá impedir que alguns drivers de placa de vídeo a travem."/>  		<check_box initial_value="true" label="Sombreadores Atmosféricos" name="WindLightUseAtmosShaders"/> -		<check_box initial_value="verdadeiro" label="Modelo avançado de luzes" name="UseLightShaders"/> -		<check_box initial_value="verdadeiro" label="Oclusão ambiental" name="UseSSAO"/> -		<check_box initial_value="verdadeiro" label="Profundidade" name="UseDoF"/> +		<check_box initial_value="true" label="Modelo avançado de luzes" name="UseLightShaders"/> +		<check_box initial_value="true" label="Oclusão ambiental" name="UseSSAO"/> +		<check_box initial_value="true" label="Profundidade" name="UseDoF"/>  		<text name="shadows_label">  			Sombras:  		</text> diff --git a/indra/newview/skins/default/xui/pt/panel_preferences_setup.xml b/indra/newview/skins/default/xui/pt/panel_preferences_setup.xml index 887d0cfe98..1279e74e21 100755 --- a/indra/newview/skins/default/xui/pt/panel_preferences_setup.xml +++ b/indra/newview/skins/default/xui/pt/panel_preferences_setup.xml @@ -21,7 +21,7 @@  	<check_box initial_value="true" label="Habilitar plugins" name="browser_plugins_enabled"/>  	<check_box initial_value="true" label="Aceitar cookies" name="cookies_enabled"/>  	<check_box initial_value="true" label="Habilitar Javascript" name="browser_javascript_enabled"/> -	<check_box initial_value="falso" label="Ativar pop-ups no navegador de mídia" name="media_popup_enabled"/> +	<check_box initial_value="false" label="Ativar pop-ups no navegador de mídia" name="media_popup_enabled"/>  	<text name="Software updates:">  		Atualizações de software:  	</text> diff --git a/indra/newview/skins/default/xui/pt/panel_preferences_sound.xml b/indra/newview/skins/default/xui/pt/panel_preferences_sound.xml index d910a7b812..fff5fd7005 100755 --- a/indra/newview/skins/default/xui/pt/panel_preferences_sound.xml +++ b/indra/newview/skins/default/xui/pt/panel_preferences_sound.xml @@ -19,7 +19,7 @@  	<check_box label="Ativado" name="enable_voice_check"/>  	<check_box label="Autorizar auto-play de mídias" name="media_auto_play_btn" tool_tip="Marque esta opção para auto-executar mídias, se elas quiserem" value="true"/>  	<check_box label="Tocar mídia anexada em outros avatares" name="media_show_on_others_btn" tool_tip="Desmarque esta opção para ocultar mídias anexadas em avatares por perto" value="true"/> -	<check_box label="Tocar áudio de gestos" name="gesture_audio_play_btn" tool_tip="Selecione para ouvir o áudio de gestos" value="verdadeiro"/> +	<check_box label="Tocar áudio de gestos" name="gesture_audio_play_btn" tool_tip="Selecione para ouvir o áudio de gestos" value="true"/>  	<text name="voice_chat_settings">  		Configuração de bate-papo de voz  	</text> diff --git a/indra/newview/skins/default/xui/ru/floater_auction.xml b/indra/newview/skins/default/xui/ru/floater_auction.xml index d84dc2e941..105c75c919 100755 --- a/indra/newview/skins/default/xui/ru/floater_auction.xml +++ b/indra/newview/skins/default/xui/ru/floater_auction.xml @@ -3,7 +3,7 @@  	<floater.string name="already for sale">  		Нельзя выставить на аукцион участки, которые уже продаются.  	</floater.string> -	<check_box initial_value="истина" label="Включая желтую ограду вокруг выбранного участка" name="fence_check"/> +	<check_box initial_value="true" label="Включая желтую ограду вокруг выбранного участка" name="fence_check"/>  	<button label="Снимок" label_selected="Снимок" name="snapshot_btn"/>  	<button label="Купить может каждый" label_selected="Купить может каждый" name="sell_to_anyone_btn"/>  	<button label="Очистить настройки" label_selected="Очистить настройки" name="reset_parcel_btn"/> diff --git a/indra/newview/skins/default/xui/ru/floater_bulk_perms.xml b/indra/newview/skins/default/xui/ru/floater_bulk_perms.xml index 31fc1c5ed3..304bf97dc1 100755 --- a/indra/newview/skins/default/xui/ru/floater_bulk_perms.xml +++ b/indra/newview/skins/default/xui/ru/floater_bulk_perms.xml @@ -39,7 +39,7 @@  	</text>  	<check_box label="Изменять" name="next_owner_modify"/>  	<check_box label="Копировать" name="next_owner_copy"/> -	<check_box initial_value="истина" label="Передать" name="next_owner_transfer" tool_tip="Следующий владелец может отдать или перепродать объект"/> +	<check_box initial_value="true" label="Передать" name="next_owner_transfer" tool_tip="Следующий владелец может отдать или перепродать объект"/>  	<button label="OK" name="ok"/>  	<button label="Применить" name="apply"/>  	<button label="Отмена" name="close"/> diff --git a/indra/newview/skins/default/xui/ru/floater_hardware_settings.xml b/indra/newview/skins/default/xui/ru/floater_hardware_settings.xml index 43f8c36473..d7da112a27 100755 --- a/indra/newview/skins/default/xui/ru/floater_hardware_settings.xml +++ b/indra/newview/skins/default/xui/ru/floater_hardware_settings.xml @@ -24,7 +24,7 @@  	<text name="Enable VBO:">  		Включить VBO:  	</text> -	<check_box initial_value="истина" label="Включить объекты вершинных буферов OpenGL" name="vbo" tool_tip="Включение этого параметра на современном оборудовании даст увеличение производительности.  Однако на старом оборудовании это может привести к сбою приложения."/> +	<check_box initial_value="true" label="Включить объекты вершинных буферов OpenGL" name="vbo" tool_tip="Включение этого параметра на современном оборудовании даст увеличение производительности.  Однако на старом оборудовании это может привести к сбою приложения."/>  	<text name="tc label">  		Включить S3TC:  	</text> diff --git a/indra/newview/skins/default/xui/ru/floater_live_lsleditor.xml b/indra/newview/skins/default/xui/ru/floater_live_lsleditor.xml index d8047fc045..fb6e747592 100755 --- a/indra/newview/skins/default/xui/ru/floater_live_lsleditor.xml +++ b/indra/newview/skins/default/xui/ru/floater_live_lsleditor.xml @@ -10,6 +10,6 @@  		СКРИПТ: [NAME]  	</floater.string>  	<button label="Сброс" label_selected="Сброс" name="Reset"/> -	<check_box initial_value="истина" label="Выполняется" name="running"/> -	<check_box initial_value="истина" label="Моно" name="mono"/> +	<check_box initial_value="true" label="Выполняется" name="running"/> +	<check_box initial_value="true" label="Моно" name="mono"/>  </floater> diff --git a/indra/newview/skins/default/xui/ru/floater_perm_prefs.xml b/indra/newview/skins/default/xui/ru/floater_perm_prefs.xml index a704b87bd1..626f3c9321 100755 --- a/indra/newview/skins/default/xui/ru/floater_perm_prefs.xml +++ b/indra/newview/skins/default/xui/ru/floater_perm_prefs.xml @@ -8,7 +8,7 @@  		</text>  		<check_box label="изменять" name="next_owner_modify"/>  		<check_box label="копировать" name="next_owner_copy"/> -		<check_box initial_value="истина" label="перепродавать/отдавать" name="next_owner_transfer"/> +		<check_box initial_value="true" label="перепродавать/отдавать" name="next_owner_transfer"/>  	</panel>  	<button label="ОК" label_selected="ОК" name="ok"/>  	<button label="Отмена" label_selected="Отмена" name="cancel"/> diff --git a/indra/newview/skins/default/xui/ru/floater_preferences_proxy.xml b/indra/newview/skins/default/xui/ru/floater_preferences_proxy.xml index 4eecfedf17..13cff2bcbe 100755 --- a/indra/newview/skins/default/xui/ru/floater_preferences_proxy.xml +++ b/indra/newview/skins/default/xui/ru/floater_preferences_proxy.xml @@ -1,6 +1,6 @@  <?xml version="1.0" encoding="utf-8" standalone="yes"?>  <floater name="Proxy Settings Floater" title="Настройки прокси-сервера"> -	<check_box initial_value="ложь" label="Использовать HTTP-прокси для веб-страниц" name="web_proxy_enabled"/> +	<check_box initial_value="false" label="Использовать HTTP-прокси для веб-страниц" name="web_proxy_enabled"/>  	<text name="http_proxy_label">  		HTTP-прокси:  	</text> diff --git a/indra/newview/skins/default/xui/ru/floater_settings_debug.xml b/indra/newview/skins/default/xui/ru/floater_settings_debug.xml index 7db014ef53..db78d11e90 100755 --- a/indra/newview/skins/default/xui/ru/floater_settings_debug.xml +++ b/indra/newview/skins/default/xui/ru/floater_settings_debug.xml @@ -1,7 +1,7 @@  <?xml version="1.0" encoding="utf-8" standalone="yes"?>  <floater name="settings_debug" title="НАСТРОЙКИ ОТЛАДКИ">  	<radio_group name="boolean_combo"> -		<radio_item label="ИСТИНА" name="TRUE" value="истина"/> +		<radio_item label="ИСТИНА" name="TRUE" value="true"/>  		<radio_item label="ЛОЖЬ" name="FALSE" value=""/>  	</radio_group>  	<color_swatch label="Цвет" name="val_color_swatch"/> diff --git a/indra/newview/skins/default/xui/ru/floater_texture_ctrl.xml b/indra/newview/skins/default/xui/ru/floater_texture_ctrl.xml index a9a21e7d4a..c9e117362f 100755 --- a/indra/newview/skins/default/xui/ru/floater_texture_ctrl.xml +++ b/indra/newview/skins/default/xui/ru/floater_texture_ctrl.xml @@ -19,10 +19,10 @@  	<button label="По умолчанию" label_selected="По умолчанию" name="Default"/>  	<button label="Очистить" label_selected="Очистить" name="Blank"/>  	<button label="Нет" label_selected="Нет" name="None"/> -	<check_box initial_value="истина" label="Применить сейчас" name="apply_immediate_check"/> +	<check_box initial_value="true" label="Применить сейчас" name="apply_immediate_check"/>  	<text name="preview_disabled" value="Просмотр отключен"/>  	<filter_editor label="Фильтровать текстуры" name="inventory search editor"/> -	<check_box initial_value="ложь" label="Показывать папки" name="show_folders_check"/> +	<check_box initial_value="false" label="Показывать папки" name="show_folders_check"/>  	<button label="Добавить" label_selected="Добавить" name="l_add_btn"/>  	<button label="Удалить" label_selected="Удалить" name="l_rem_btn"/>  	<button label="Передать" label_selected="Передать" name="l_upl_btn"/> diff --git a/indra/newview/skins/default/xui/ru/floater_tools.xml b/indra/newview/skins/default/xui/ru/floater_tools.xml index c312f73428..35921d147f 100755 --- a/indra/newview/skins/default/xui/ru/floater_tools.xml +++ b/indra/newview/skins/default/xui/ru/floater_tools.xml @@ -76,8 +76,8 @@  	<text label="Растяжка обеих сторон" name="checkbox uniform label">  		Растяжка обеих сторон  	</text> -	<check_box initial_value="истина" label="Растягивать текстуры" name="checkbox stretch textures"/> -	<check_box initial_value="истина" label="Привязка" name="checkbox snap to grid"/> +	<check_box initial_value="true" label="Растягивать текстуры" name="checkbox stretch textures"/> +	<check_box initial_value="true" label="Привязка" name="checkbox snap to grid"/>  	<combo_box name="combobox grid mode" tool_tip="Выберите тип линейки сетки для размещения объекта">  		<combo_box.item label="Мировая" name="World"/>  		<combo_box.item label="Локальная" name="Local"/> @@ -101,7 +101,7 @@  	<button name="ToolGrass" tool_tip="Трава"/>  	<check_box label="Держать инструмент" name="checkbox sticky"/>  	<check_box label="Копировать выдел." name="checkbox copy selection"/> -	<check_box initial_value="истина" label="Центрир. копию" name="checkbox copy centers"/> +	<check_box initial_value="true" label="Центрир. копию" name="checkbox copy centers"/>  	<check_box label="Повернуть копию" name="checkbox copy rotates"/>  	<radio_group name="land_radio_group">  		<radio_item label="Выбрать землю" name="radio select land"/> @@ -465,16 +465,11 @@  				<combo_box.item label="присоска" name="suction"/>  				<combo_box.item label="переплетение" name="weave"/>  			</combo_box> -			<check_box initial_value="ложь" label="Согласование" name="checkbox planar align" tool_tip="Согласование текстур на всех выбранных граних по последней выбранной грани. Должно быть выбрано наложение по плоскостям."/> -			<text name="rpt"> -				Повторов на грань -			</text>  			<spinner label="По горизонтали (U)" name="TexScaleU"/>  			<check_box label="Разворот" name="checkbox flip s"/>  			<spinner label="По вертикали (V)" name="TexScaleV"/>  			<check_box label="Разворот" name="checkbox flip t"/>  			<spinner label="Вращение˚" name="TexRot"/> -			<spinner label="Повторов на метр" name="rptctrl"/>  			<button label="Применить" label_selected="Применить" name="button apply"/>  			<text name="tex offset">  				Сдвиг текстуры diff --git a/indra/newview/skins/default/xui/ru/floater_world_map.xml b/indra/newview/skins/default/xui/ru/floater_world_map.xml index ef8dfe22ae..7d2acfd9a0 100755 --- a/indra/newview/skins/default/xui/ru/floater_world_map.xml +++ b/indra/newview/skins/default/xui/ru/floater_world_map.xml @@ -35,7 +35,7 @@  		<text name="pg_label">  			Общие  		</text> -		<check_box initial_value="истина" name="events_mature_chk"/> +		<check_box initial_value="true" name="events_mature_chk"/>  		<text name="events_mature_label">  			Умеренные  		</text> diff --git a/indra/newview/skins/default/xui/ru/panel_group_general.xml b/indra/newview/skins/default/xui/ru/panel_group_general.xml index 4d7e1c9fff..ba38dbf89e 100755 --- a/indra/newview/skins/default/xui/ru/panel_group_general.xml +++ b/indra/newview/skins/default/xui/ru/panel_group_general.xml @@ -51,6 +51,6 @@  			<combo_box.item label="Умеренный контент" name="mature"/>  			<combo_box.item label="Общий контент" name="pg"/>  		</combo_box> -		<check_box initial_value="истина" label="Показать в поиске" name="show_in_group_list" tool_tip="Позволить людям видеть эту группу в результатах поиска"/> +		<check_box initial_value="true" label="Показать в поиске" name="show_in_group_list" tool_tip="Позволить людям видеть эту группу в результатах поиска"/>  	</panel>  </panel> diff --git a/indra/newview/skins/default/xui/ru/panel_media_settings_general.xml b/indra/newview/skins/default/xui/ru/panel_media_settings_general.xml index 6dc435db20..d52397832c 100755 --- a/indra/newview/skins/default/xui/ru/panel_media_settings_general.xml +++ b/indra/newview/skins/default/xui/ru/panel_media_settings_general.xml @@ -15,14 +15,14 @@  	</text>  	<text name="current_url" tool_tip="Текущая страница для этого медиа-источника" value=""/>  	<button label="Сброс" name="current_url_reset_btn"/> -	<check_box initial_value="ложь" label="Автоматическое зацикливание" name="auto_loop"/> -	<check_box initial_value="ложь" label="Реакция на первый щелчок" name="first_click_interact"/> -	<check_box initial_value="ложь" label="Автоувеличение" name="auto_zoom"/> -	<check_box initial_value="ложь" label="Автоматическое проигрывание" name="auto_play"/> +	<check_box initial_value="false" label="Автоматическое зацикливание" name="auto_loop"/> +	<check_box initial_value="false" label="Реакция на первый щелчок" name="first_click_interact"/> +	<check_box initial_value="false" label="Автоувеличение" name="auto_zoom"/> +	<check_box initial_value="false" label="Автоматическое проигрывание" name="auto_play"/>  	<text name="media_setting_note">  		Примечание. Жители могут переопределять эту настройку.  	</text> -	<check_box initial_value="ложь" label="Автомасштабирование на объекте" name="auto_scale"/> +	<check_box initial_value="false" label="Автомасштабирование на объекте" name="auto_scale"/>  	<text name="size_label">  		Размер:  	</text> diff --git a/indra/newview/skins/default/xui/ru/panel_media_settings_permissions.xml b/indra/newview/skins/default/xui/ru/panel_media_settings_permissions.xml index 680cba9c14..cfb006f346 100755 --- a/indra/newview/skins/default/xui/ru/panel_media_settings_permissions.xml +++ b/indra/newview/skins/default/xui/ru/panel_media_settings_permissions.xml @@ -14,16 +14,16 @@  	<text name="owner_label">  		Владелец  	</text> -	<check_box initial_value="ложь" label="Разрешить навигацию и взаимодействие" name="perms_owner_interact"/> -	<check_box initial_value="ложь" label="Панель управления видна" name="perms_owner_control"/> +	<check_box initial_value="false" label="Разрешить навигацию и взаимодействие" name="perms_owner_interact"/> +	<check_box initial_value="false" label="Панель управления видна" name="perms_owner_control"/>  	<text name="group_label">  		Группа:  	</text> -	<check_box initial_value="ложь" label="Разрешить навигацию и взаимодействие" name="perms_group_interact"/> -	<check_box initial_value="ложь" label="Панель управления видна" name="perms_group_control"/> +	<check_box initial_value="false" label="Разрешить навигацию и взаимодействие" name="perms_group_interact"/> +	<check_box initial_value="false" label="Панель управления видна" name="perms_group_control"/>  	<text name="anyone_label">  		всем  	</text> -	<check_box initial_value="ложь" label="Разрешить навигацию и взаимодействие" name="perms_anyone_interact"/> -	<check_box initial_value="ложь" label="Панель управления видна" name="perms_anyone_control"/> +	<check_box initial_value="false" label="Разрешить навигацию и взаимодействие" name="perms_anyone_interact"/> +	<check_box initial_value="false" label="Панель управления видна" name="perms_anyone_control"/>  </panel> diff --git a/indra/newview/skins/default/xui/ru/panel_media_settings_security.xml b/indra/newview/skins/default/xui/ru/panel_media_settings_security.xml index 6b30dc799c..bae491472a 100755 --- a/indra/newview/skins/default/xui/ru/panel_media_settings_security.xml +++ b/indra/newview/skins/default/xui/ru/panel_media_settings_security.xml @@ -1,6 +1,6 @@  <?xml version="1.0" encoding="utf-8" standalone="yes"?>  <panel label="Безопасность" name="Media Settings Security"> -	<check_box initial_value="ложь" label="Разрешить доступ к ссылкам только по шаблону" name="whitelist_enable"/> +	<check_box initial_value="false" label="Разрешить доступ к ссылкам только по шаблону" name="whitelist_enable"/>  	<text name="home_url_fails_some_items_in_whitelist">  		Пункты, не подходящие для домашней страницы, отмечены знаком:  	</text> diff --git a/indra/newview/skins/default/xui/ru/panel_preferences_general.xml b/indra/newview/skins/default/xui/ru/panel_preferences_general.xml index c7a850f78a..62617caed3 100755 --- a/indra/newview/skins/default/xui/ru/panel_preferences_general.xml +++ b/indra/newview/skins/default/xui/ru/panel_preferences_general.xml @@ -36,7 +36,7 @@  		<combo_box.item label="Мое последнее место" name="MyLastLocation"/>  		<combo_box.item label="Мой дом" name="MyHome"/>  	</combo_box> -	<check_box initial_value="истина" label="Показывать на экране входа" name="show_location_checkbox"/> +	<check_box initial_value="true" label="Показывать на экране входа" name="show_location_checkbox"/>  	<text name="name_tags_textbox">  		Теги имен:  	</text> diff --git a/indra/newview/skins/default/xui/ru/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/ru/panel_preferences_graphics1.xml index 029e72e137..c93955fcdc 100755 --- a/indra/newview/skins/default/xui/ru/panel_preferences_graphics1.xml +++ b/indra/newview/skins/default/xui/ru/panel_preferences_graphics1.xml @@ -25,14 +25,14 @@  		<text name="ShadersText">  			Шейдеры:  		</text> -		<check_box initial_value="истина" label="Прозрачность воды" name="TransparentWater"/> -		<check_box initial_value="истина" label="Рельефность и сияние" name="BumpShiny"/> -		<check_box initial_value="истина" label="Локальный свет" name="LocalLights"/> -		<check_box initial_value="истина" label="Базовые шейдеры" name="BasicShaders" tool_tip="Отключение этого параметра может предотвратить зависание некоторых видеокарт"/> -		<check_box initial_value="истина" label="Атмосферные шейдеры" name="WindLightUseAtmosShaders"/> -		<check_box initial_value="истина" label="Расширенная модель освещения" name="UseLightShaders"/> -		<check_box initial_value="истина" label="Объемный свет" name="UseSSAO"/> -		<check_box initial_value="истина" label="Глубина поля" name="UseDoF"/> +		<check_box initial_value="true" label="Прозрачность воды" name="TransparentWater"/> +		<check_box initial_value="true" label="Рельефность и сияние" name="BumpShiny"/> +		<check_box initial_value="true" label="Локальный свет" name="LocalLights"/> +		<check_box initial_value="true" label="Базовые шейдеры" name="BasicShaders" tool_tip="Отключение этого параметра может предотвратить зависание некоторых видеокарт"/> +		<check_box initial_value="true" label="Атмосферные шейдеры" name="WindLightUseAtmosShaders"/> +		<check_box initial_value="true" label="Расширенная модель освещения" name="UseLightShaders"/> +		<check_box initial_value="true" label="Объемный свет" name="UseSSAO"/> +		<check_box initial_value="true" label="Глубина поля" name="UseDoF"/>  		<text name="shadows_label">  			Тени:  		</text> @@ -95,9 +95,9 @@  		<text name="AvatarRenderingText">  			Отрисовка аватара:  		</text> -		<check_box initial_value="истина" label="Плоские аватары" name="AvatarImpostors"/> -		<check_box initial_value="истина" label="Аппаратная отрисовка" name="AvatarVertexProgram"/> -		<check_box initial_value="истина" label="Одежда аватара" name="AvatarCloth"/> +		<check_box initial_value="true" label="Плоские аватары" name="AvatarImpostors"/> +		<check_box initial_value="true" label="Аппаратная отрисовка" name="AvatarVertexProgram"/> +		<check_box initial_value="true" label="Одежда аватара" name="AvatarCloth"/>  		<text name="TerrainDetailText">  			Ландшафт:  		</text> diff --git a/indra/newview/skins/default/xui/ru/panel_preferences_setup.xml b/indra/newview/skins/default/xui/ru/panel_preferences_setup.xml index e9c0c7de10..1741397a84 100755 --- a/indra/newview/skins/default/xui/ru/panel_preferences_setup.xml +++ b/indra/newview/skins/default/xui/ru/panel_preferences_setup.xml @@ -18,10 +18,10 @@  		<radio_item label="Использовать мой браузер (IE, Firefox, Safari)" name="external" tool_tip="Будет использоваться браузер, заданный в системе по умолчанию. Не рекомендуется, если [APP_NAME] работает в полноэкранном режиме." value="true"/>  		<radio_item label="Использовать встроенный браузер" name="internal" tool_tip="Для просмотра справки, ссылок на веб-страницы и т. д. будет использоваться встроенный браузер. Этот браузер открывается как новое окно в [APP_NAME]." value=""/>  	</radio_group> -	<check_box initial_value="истина" label="Разрешить плагины" name="browser_plugins_enabled"/> -	<check_box initial_value="истина" label="Принимать файлы cookie" name="cookies_enabled"/> -	<check_box initial_value="истина" label="Разрешить Javascript" name="browser_javascript_enabled"/> -	<check_box initial_value="ложь" label="Разрешить всплывающие окна" name="media_popup_enabled"/> +	<check_box initial_value="true" label="Разрешить плагины" name="browser_plugins_enabled"/> +	<check_box initial_value="true" label="Принимать файлы cookie" name="cookies_enabled"/> +	<check_box initial_value="true" label="Разрешить Javascript" name="browser_javascript_enabled"/> +	<check_box initial_value="false" label="Разрешить всплывающие окна" name="media_popup_enabled"/>  	<text name="Software updates:">  		Обновления ПО:  	</text> diff --git a/indra/newview/skins/default/xui/ru/panel_preferences_sound.xml b/indra/newview/skins/default/xui/ru/panel_preferences_sound.xml index bf673750d2..44f270527c 100755 --- a/indra/newview/skins/default/xui/ru/panel_preferences_sound.xml +++ b/indra/newview/skins/default/xui/ru/panel_preferences_sound.xml @@ -4,7 +4,7 @@  		среднюю кнопку мыши  	</panel.string>  	<slider label="Общая громкость" name="System Volume"/> -	<check_box initial_value="истина" name="mute_when_minimized"/> +	<check_box initial_value="true" name="mute_when_minimized"/>  	<text name="mute_chb_label">  		Заглушать, когда свернуто  	</text> @@ -17,9 +17,9 @@  	<check_box label="Включено" name="enable_media"/>  	<slider label="Голосовой чат" name="Voice Volume"/>  	<check_box label="Включено" name="enable_voice_check"/> -	<check_box label="Разрешить автовоспроизведение медиа" name="media_auto_play_btn" tool_tip="Установка флажка позволит вам автоматически воспроизводить медиа" value="истина"/> -	<check_box label="Воспроизводить медиа, присоединенные к другому аватару" name="media_show_on_others_btn" tool_tip="Снятие флажка скроет медиа, присоединенные к другому аватару" value="истина"/> -	<check_box label="Сопровождать жесты звуками" name="gesture_audio_play_btn" tool_tip="Установите флажок, чтобы слышать звуки при жестах" value="истина"/> +	<check_box label="Разрешить автовоспроизведение медиа" name="media_auto_play_btn" tool_tip="Установка флажка позволит вам автоматически воспроизводить медиа" value="true"/> +	<check_box label="Воспроизводить медиа, присоединенные к другому аватару" name="media_show_on_others_btn" tool_tip="Снятие флажка скроет медиа, присоединенные к другому аватару" value="true"/> +	<check_box label="Сопровождать жесты звуками" name="gesture_audio_play_btn" tool_tip="Установите флажок, чтобы слышать звуки при жестах" value="true"/>  	<text name="voice_chat_settings">  		Настройки голосового чата  	</text> diff --git a/indra/newview/skins/default/xui/ru/panel_tools_texture.xml b/indra/newview/skins/default/xui/ru/panel_tools_texture.xml index 60717a3d1d..1abf729487 100644 --- a/indra/newview/skins/default/xui/ru/panel_tools_texture.xml +++ b/indra/newview/skins/default/xui/ru/panel_tools_texture.xml @@ -112,5 +112,5 @@  	<spinner label="Поворот, градусы" name="shinyRot"/>  	<spinner label="Смещение по горизонтали" name="shinyOffsetU"/>  	<spinner label="Смещение по вертикали" name="shinyOffsetV"/> -	<check_box initial_value="ложь" label="Согласование" name="checkbox planar align" tool_tip="Согласование текстур на всех выбранных гранях по последней выбранной грани. Должно быть выбрано наложение по плоскостям."/> +	<check_box initial_value="false" label="Согласование" name="checkbox planar align" tool_tip="Согласование текстур на всех выбранных гранях по последней выбранной грани. Должно быть выбрано наложение по плоскостям."/>  </panel> diff --git a/indra/newview/skins/default/xui/tr/floater_tools.xml b/indra/newview/skins/default/xui/tr/floater_tools.xml index 4bf0372a8a..39a3569efa 100755 --- a/indra/newview/skins/default/xui/tr/floater_tools.xml +++ b/indra/newview/skins/default/xui/tr/floater_tools.xml @@ -465,16 +465,11 @@  				<combo_box.item label="vakum" name="suction"/>  				<combo_box.item label="örgü" name="weave"/>  			</combo_box> -			<check_box initial_value="false" label="Planar yüzleri hizala" name="checkbox planar align" tool_tip="Tüm seçili yüzeylerdeki dokuları son seçili yüzdekiyle hizalar. Planar doku eşleştirmesi gerektirir."/> -			<text name="rpt"> -				Tekrarlar / Yüz -			</text>  			<spinner label="Yatay (U)" name="TexScaleU"/>  			<check_box label="Çevir" name="checkbox flip s"/>  			<spinner label="Dikey (V)" name="TexScaleV"/>  			<check_box label="Çevir" name="checkbox flip t"/>  			<spinner label="Döndürme*" name="TexRot"/> -			<spinner label="Tekrarlar / Metre" name="rptctrl"/>  			<button label="Uygula" label_selected="Uygula" name="button apply"/>  			<text name="tex offset">  				Doku Dengeleyicisi diff --git a/indra/newview/skins/default/xui/zh/floater_tools.xml b/indra/newview/skins/default/xui/zh/floater_tools.xml index 33c9ebeaf0..7e6c972f40 100755 --- a/indra/newview/skins/default/xui/zh/floater_tools.xml +++ b/indra/newview/skins/default/xui/zh/floater_tools.xml @@ -465,16 +465,11 @@  				<combo_box.item label="吸附" name="suction"/>  				<combo_box.item label="編織" name="weave"/>  			</combo_box> -			<check_box initial_value="false" label="對齊平面" name="checkbox planar align" tool_tip="以最後所選擇的面為基準,對齊全部所選擇的面上的材質。 這必須使用平面材質映射方式。"/> -			<text name="rpt"> -				重覆次數 / 面 -			</text>  			<spinner label="水平(U)" name="TexScaleU"/>  			<check_box label="翻轉" name="checkbox flip s"/>  			<spinner label="垂直(V)" name="TexScaleV"/>  			<check_box label="翻轉" name="checkbox flip t"/>  			<spinner label="旋轉˚" name="TexRot"/> -			<spinner label="重覆次數 / 公尺" name="rptctrl"/>  			<button label="套用" label_selected="套用" name="button apply"/>  			<text name="tex offset">  				材質位移 diff --git a/indra/newview/skins/default/xui/zh/panel_preferences_setup.xml b/indra/newview/skins/default/xui/zh/panel_preferences_setup.xml index 0fcc49b203..ab4d9a881d 100755 --- a/indra/newview/skins/default/xui/zh/panel_preferences_setup.xml +++ b/indra/newview/skins/default/xui/zh/panel_preferences_setup.xml @@ -15,7 +15,7 @@  		網頁:  	</text>  	<radio_group name="use_external_browser"> -		<radio_item label="使用我的網頁瀏覽器(例如 IE, Firefox, Safari)" name="external" tool_tip="使用系統預設的瀏覽器瀏覽幫助,開啟網頁。全螢幕模式下不建議這麼做。" value="1"/> +		<radio_item label="使用我的網頁瀏覽器(例如 IE, Firefox, Safari)" name="external" tool_tip="使用系統預設的瀏覽器瀏覽幫助,開啟網頁。全螢幕模式下不建議這麼做。" value="true"/>  		<radio_item label="使用內建網頁瀏覽器" name="internal" tool_tip="使用內建的瀏覽器瀏覽幫助,開啟網頁。該瀏覽器將透過 [APP_NAME] 開啟新視窗。" value=""/>  	</radio_group>  	<check_box initial_value="true" label="啟用外掛" name="browser_plugins_enabled"/> | 
