diff options
Diffstat (limited to 'indra')
24 files changed, 257 insertions, 46 deletions
| diff --git a/indra/llui/CMakeLists.txt b/indra/llui/CMakeLists.txt index 88a1652671..12df9ccae4 100644 --- a/indra/llui/CMakeLists.txt +++ b/indra/llui/CMakeLists.txt @@ -91,6 +91,7 @@ set(llui_SOURCE_FILES      lltextbox.cpp      lltexteditor.cpp      lltextparser.cpp +    lltextutil.cpp      lltextvalidate.cpp      lltransutil.cpp      lltoggleablemenu.cpp @@ -101,7 +102,6 @@ set(llui_SOURCE_FILES      lluictrlfactory.cpp      lluiimage.cpp      lluistring.cpp -    lluitextutil.cpp      llundo.cpp      llurlaction.cpp      llurlentry.cpp @@ -186,6 +186,7 @@ set(llui_HEADER_FILES      lltextbox.h      lltexteditor.h      lltextparser.h +    lltextutil.h      lltextvalidate.h      lltoggleablemenu.h      lltooltip.h @@ -198,7 +199,6 @@ set(llui_HEADER_FILES      llui.h      lluiimage.h      lluistring.h -    lluitextutil.h      llundo.h      llurlaction.h      llurlentry.h diff --git a/indra/llui/llaccordionctrltab.cpp b/indra/llui/llaccordionctrltab.cpp index 0db2dca615..b09c108ec3 100644 --- a/indra/llui/llaccordionctrltab.cpp +++ b/indra/llui/llaccordionctrltab.cpp @@ -37,8 +37,8 @@  #include "lllocalcliprect.h"  #include "llscrollbar.h"  #include "lltextbox.h" +#include "lltextutil.h"  #include "lluictrl.h" -#include "lluitextutil.h"  static const std::string DD_BUTTON_NAME = "dd_button";  static const std::string DD_TEXTBOX_NAME = "dd_textbox"; diff --git a/indra/llui/lltextutil.cpp b/indra/llui/lltextutil.cpp new file mode 100644 index 0000000000..c5f3929fb1 --- /dev/null +++ b/indra/llui/lltextutil.cpp @@ -0,0 +1,79 @@ +/**  + * @file lltextutil.cpp + * @brief Misc text-related auxiliary methods + * + * $LicenseInfo:firstyear=2009&license=viewergpl$ + *  + * Copyright (c) 2009, Linden Research, Inc. + *  + * Second Life Viewer Source Code + * The source code in this file ("Source Code") is provided by Linden Lab + * to you under the terms of the GNU General Public License, version 2.0 + * ("GPL"), unless you have obtained a separate licensing agreement + * ("Other License"), formally executed by you and Linden Lab.  Terms of + * the GPL can be found in doc/GPL-license.txt in this distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 + *  + * There are special exceptions to the terms and conditions of the GPL as + * it is applied to this Source Code. View the full text of the exception + * in the file doc/FLOSS-exception.txt in this software distribution, or + * online at + * http://secondlifegrid.net/programs/open_source/licensing/flossexception + *  + * By copying, modifying or distributing this software, you acknowledge + * that you have read and understood your obligations described above, + * and agree to abide by those obligations. + *  + * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO + * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, + * COMPLETENESS OR PERFORMANCE. + * $/LicenseInfo$ + */ + +#include "lltextutil.h" + +#include "lluicolor.h" +#include "lltextbox.h" + + +void LLTextUtil::textboxSetHighlightedVal(LLTextBox *txtbox, const LLStyle::Params& normal_style, const std::string& text, const std::string& hl) +{ +	static LLUIColor sFilterTextColor = LLUIColorTable::instance().getColor("FilterTextColor", LLColor4::green); + +	std::string text_uc = text; +	LLStringUtil::toUpper(text_uc); + +	size_t hl_begin = 0, hl_len = hl.size(); + +	if (hl_len == 0 || (hl_begin = text_uc.find(hl)) == std::string::npos) +	{ +		txtbox->setText(text, normal_style); +		return; +	} + +	LLStyle::Params hl_style = normal_style; +	hl_style.color = sFilterTextColor; + +	txtbox->setText(LLStringUtil::null); // clear text +	txtbox->appendText(text.substr(0, hl_begin),		false, normal_style); +	txtbox->appendText(text.substr(hl_begin, hl_len),	false, hl_style); +	txtbox->appendText(text.substr(hl_begin + hl_len),	false, normal_style); +} + +const std::string& LLTextUtil::formatPhoneNumber(const std::string& phone_str) +{ +	static const std::string PHONE_SEPARATOR = LLUI::sSettingGroups["config"]->getString("AvalinePhoneSeparator"); +	static const S32 PHONE_PART_LEN = 2; + +	static std::string formatted_phone_str; +	formatted_phone_str = phone_str; +	S32 separator_pos = (S32)(formatted_phone_str.size()) - PHONE_PART_LEN; +	for (; separator_pos >= PHONE_PART_LEN; separator_pos -= PHONE_PART_LEN) +	{ +		formatted_phone_str.insert(separator_pos, PHONE_SEPARATOR); +	} + +	return formatted_phone_str; +} + +// EOF diff --git a/indra/llui/lltextutil.h b/indra/llui/lltextutil.h new file mode 100644 index 0000000000..325c3c5b7c --- /dev/null +++ b/indra/llui/lltextutil.h @@ -0,0 +1,72 @@ +/**  + * @file lltextutil.h + * @brief Misc text-related auxiliary methods + * + * $LicenseInfo:firstyear=2009&license=viewergpl$ + *  + * Copyright (c) 2009, Linden Research, Inc. + *  + * Second Life Viewer Source Code + * The source code in this file ("Source Code") is provided by Linden Lab + * to you under the terms of the GNU General Public License, version 2.0 + * ("GPL"), unless you have obtained a separate licensing agreement + * ("Other License"), formally executed by you and Linden Lab.  Terms of + * the GPL can be found in doc/GPL-license.txt in this distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 + *  + * There are special exceptions to the terms and conditions of the GPL as + * it is applied to this Source Code. View the full text of the exception + * in the file doc/FLOSS-exception.txt in this software distribution, or + * online at + * http://secondlifegrid.net/programs/open_source/licensing/flossexception + *  + * By copying, modifying or distributing this software, you acknowledge + * that you have read and understood your obligations described above, + * and agree to abide by those obligations. + *  + * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO + * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, + * COMPLETENESS OR PERFORMANCE. + * $/LicenseInfo$ + */ + +#ifndef LL_LLTEXTUTIL_H +#define LL_LLTEXTUTIL_H + +#include "llstyle.h" + +class LLTextBox; + +namespace LLTextUtil +{ + +	/** +	 * Set value for text box, highlighting substring hl_uc. +	 *  +	 * Used to highlight filter matches. +	 *  +	 * @param txtbox        Text box to set value for +	 * @param normal_style  Style to use for non-highlighted text +	 * @param text          Text to set +	 * @param hl            Upper-cased string to highlight +	 */ +	void textboxSetHighlightedVal( +		LLTextBox *txtbox, +		const LLStyle::Params& normal_style, +		const std::string& text, +		const std::string& hl); + +	/** +	 * Formats passed phone number to be more human readable. +	 * +	 * It just divides the number on parts by two digits from right to left. The first left part +	 * can have 2 or 3 digits, i.e. +44-33-33-44-55-66 or 12-34-56-78-90. Separator is set in +	 * application settings (AvalinePhoneSeparator) +	 * +	 * @param[in] phone_str string with original phone number +	 * @return reference to string with formatted phone number +	 */ +	const std::string& formatPhoneNumber(const std::string& phone_str); +} + +#endif // LL_LLTEXTUTIL_H diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index f2bed843c9..d77d53f6af 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -421,7 +421,6 @@ set(viewer_SOURCE_FILES      lltexturestats.cpp      lltexturestatsuploader.cpp      lltextureview.cpp -    lltextutil.cpp      lltoast.cpp      lltoastalertpanel.cpp      lltoastgroupnotifypanel.cpp @@ -935,7 +934,6 @@ set(viewer_HEADER_FILES      lltexturestats.h      lltexturestatsuploader.h      lltextureview.h -    lltextutil.h      lltoast.h      lltoastalertpanel.h      lltoastgroupnotifypanel.h diff --git a/indra/newview/llavatarlist.cpp b/indra/newview/llavatarlist.cpp index 72ee289c91..24290ac089 100644 --- a/indra/newview/llavatarlist.cpp +++ b/indra/newview/llavatarlist.cpp @@ -32,19 +32,21 @@  #include "llviewerprecompiledheaders.h" +#include "llavatarlist.h" +  // common  #include "lltrans.h"  #include "llcommonutils.h" -#include "llavatarlist.h" -#include "llagentdata.h" // for comparator +// llui +#include "lltextutil.h"  // newview +#include "llagentdata.h" // for comparator  #include "llavatariconctrl.h"  #include "llcallingcard.h" // for LLAvatarTracker  #include "llcachename.h"  #include "llrecentpeople.h" -#include "lltextutil.h"  #include "lluuid.h"  #include "llvoiceclient.h"  #include "llviewercontrol.h"	// for gSavedSettings diff --git a/indra/newview/llavatarlistitem.cpp b/indra/newview/llavatarlistitem.cpp index 656274cb7a..5a8ad73c83 100644 --- a/indra/newview/llavatarlistitem.cpp +++ b/indra/newview/llavatarlistitem.cpp @@ -38,7 +38,7 @@  #include "llbutton.h"  #include "llfloaterreg.h" -#include "lluitextutil.h" +#include "lltextutil.h"  #include "llagent.h"  #include "llavatariconctrl.h" diff --git a/indra/newview/llfloatermap.cpp b/indra/newview/llfloatermap.cpp index 5677899dd9..725fc17136 100644 --- a/indra/newview/llfloatermap.cpp +++ b/indra/newview/llfloatermap.cpp @@ -232,6 +232,17 @@ void LLFloaterMap::onFocusLost()  void LLFloaterMap::reshape(S32 width, S32 height, BOOL called_from_parent)  {  	LLFloater::reshape(width, height, called_from_parent); +	 +	//fix for ext-7112 +	//by default ctrl can't overlap caption area +	if(mMap) +	{ +		LLRect map_rect; +		map_rect.setLeftTopAndSize( 0, getRect().getHeight(), width, height); +		mMap->reshape( width, height, 1); +		mMap->setRect(map_rect); +	} +  	updateMinorDirections();  } diff --git a/indra/newview/llgrouplist.cpp b/indra/newview/llgrouplist.cpp index 3224ac6d9b..da5196df45 100644 --- a/indra/newview/llgrouplist.cpp +++ b/indra/newview/llgrouplist.cpp @@ -39,8 +39,8 @@  #include "lliconctrl.h"  #include "llmenugl.h"  #include "lltextbox.h" +#include "lltextutil.h"  #include "lltrans.h" -#include "lluitextutil.h"  // newview  #include "llagent.h" diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp index c143ac9dea..039df69454 100644 --- a/indra/newview/llimview.cpp +++ b/indra/newview/llimview.cpp @@ -43,6 +43,7 @@  #include "llhttpclient.h"  #include "llsdutil_math.h"  #include "llstring.h" +#include "lltextutil.h"  #include "lltrans.h"  #include "lluictrlfactory.h" @@ -65,7 +66,6 @@  #include "llnearbychat.h"  #include "llspeakers.h" //for LLIMSpeakerMgr  #include "lltextbox.h" -#include "lltextutil.h"  #include "llviewercontrol.h"  #include "llviewerparcelmgr.h" diff --git a/indra/newview/llinventoryitemslist.cpp b/indra/newview/llinventoryitemslist.cpp index 9b592e79af..f94515d242 100644 --- a/indra/newview/llinventoryitemslist.cpp +++ b/indra/newview/llinventoryitemslist.cpp @@ -42,7 +42,7 @@  // llui  #include "lliconctrl.h" -#include "lluitextutil.h" +#include "lltextutil.h"  #include "llcallbacklist.h"  #include "llinventoryfunctions.h" diff --git a/indra/newview/lloutfitslist.cpp b/indra/newview/lloutfitslist.cpp index 43b7e15977..7ebbddca25 100644 --- a/indra/newview/lloutfitslist.cpp +++ b/indra/newview/lloutfitslist.cpp @@ -36,9 +36,6 @@  // llcommon  #include "llcommonutils.h" -// llcommon -#include "llcommonutils.h" -  #include "llaccordionctrl.h"  #include "llaccordionctrltab.h"  #include "llappearancemgr.h" diff --git a/indra/newview/llpaneleditwearable.cpp b/indra/newview/llpaneleditwearable.cpp index 557fb399be..5ad68ea4db 100644 --- a/indra/newview/llpaneleditwearable.cpp +++ b/indra/newview/llpaneleditwearable.cpp @@ -50,6 +50,7 @@  #include "llaccordionctrltab.h"  #include "llagentwearables.h"  #include "llscrollingpanelparam.h" +#include "llradiogroup.h"  #include "llcolorswatch.h"  #include "lltexturectrl.h" @@ -615,6 +616,8 @@ BOOL LLPanelEditWearable::postBuild()  	mPanelTitle = getChild<LLTextBox>("edit_wearable_title");  	mDescTitle = getChild<LLTextBox>("description_text"); +	getChild<LLRadioGroup>("sex_radio")->setCommitCallback(boost::bind(&LLPanelEditWearable::onCommitSexChange, this)); +  	// The following panels will be shown/hidden based on what wearable we're editing  	// body parts  	mPanelShape = getChild<LLPanel>("edit_shape_panel"); @@ -687,6 +690,40 @@ void LLPanelEditWearable::onRevertButtonClicked(void* userdata)  	panel->revertChanges();  } + +void LLPanelEditWearable::onCommitSexChange() +{ +	if (!isAgentAvatarValid()) return; + +	LLWearableType::EType type = mWearablePtr->getType(); +	U32 index = gAgentWearables.getWearableIndex(mWearablePtr); + +	if( !gAgentWearables.isWearableModifiable(type, index)) +	{ +		return; +	} + +	LLViewerVisualParam* param = static_cast<LLViewerVisualParam*>(gAgentAvatarp->getVisualParam( "male" )); +	if( !param ) +	{ +		return; +	} + +	bool is_new_sex_male = (gSavedSettings.getU32("AvatarSex") ? SEX_MALE : SEX_FEMALE) == SEX_MALE; +	LLWearable*	wearable = gAgentWearables.getWearable(type, index); +	if (wearable) +	{ +		wearable->setVisualParamWeight(param->getID(), is_new_sex_male, FALSE); +	} +	param->setWeight( is_new_sex_male, FALSE ); + +	gAgentAvatarp->updateSexDependentLayerSets( FALSE ); + +	gAgentAvatarp->updateVisualParams(); + +	updateScrollingPanelUI(); +} +  void LLPanelEditWearable::onTexturePickerCommit(const LLUICtrl* ctrl)  {  	const LLTextureCtrl* texture_ctrl = dynamic_cast<const LLTextureCtrl*>(ctrl); @@ -1118,6 +1155,14 @@ void LLPanelEditWearable::updateVerbs()  	mBtnRevert->setEnabled(is_dirty);  	childSetEnabled("save_as_button", is_dirty && can_copy); + +	if(isAgentAvatarValid()) +	{ +		// Update viewer's radio buttons (of RadioGroup with control_name="AvatarSex") of Avatar's gender +		// with value from "AvatarSex" setting +		gSavedSettings.setU32("AvatarSex", (gAgentAvatarp->getSex() == SEX_MALE) ); +	} +  }  // EOF diff --git a/indra/newview/llpaneleditwearable.h b/indra/newview/llpaneleditwearable.h index a5a332019d..04839ca451 100644 --- a/indra/newview/llpaneleditwearable.h +++ b/indra/newview/llpaneleditwearable.h @@ -64,6 +64,7 @@ public:  	void				revertChanges();  	static void			onRevertButtonClicked(void* userdata); +	void				onCommitSexChange();  private:  	typedef std::map<F32, LLViewerVisualParam*> value_map_t; diff --git a/indra/newview/llpanelgrouproles.cpp b/indra/newview/llpanelgrouproles.cpp index 93fbecfd3f..95ec8170f2 100644 --- a/indra/newview/llpanelgrouproles.cpp +++ b/indra/newview/llpanelgrouproles.cpp @@ -199,16 +199,13 @@ bool LLPanelGroupRoles::handleSubTabSwitch(const LLSD& data)  {  	std::string panel_name = data.asString(); -	LLPanelGroupTab* activating_tab = static_cast<LLPanelGroupTab*>(mSubTabContainer->getPanelByName(panel_name)); - -	if(activating_tab == mCurrentTab -		|| activating_tab == mRequestedTab) +	if(mRequestedTab != NULL)//we already have tab change request  	{ -		return true; +		return false;  	} -	mRequestedTab = activating_tab; -	 +	mRequestedTab = static_cast<LLPanelGroupTab*>(mSubTabContainer->getPanelByName(panel_name)); +  	std::string mesg;  	if (mCurrentTab && mCurrentTab->needsApply(mesg))  	{ @@ -229,15 +226,9 @@ bool LLPanelGroupRoles::handleSubTabSwitch(const LLSD& data)  		// we get a response back from the user.  		return false;  	} -	else -	{ -		// The current panel didn't have anything it needed to apply. -		if (mRequestedTab) -		{ -			transitionToTab(); -		} -		return true; -	} + +	transitionToTab(); +	return true;  }  void LLPanelGroupRoles::transitionToTab() diff --git a/indra/newview/llpanelmaininventory.cpp b/indra/newview/llpanelmaininventory.cpp index 327196d9ba..5ff51b8165 100644 --- a/indra/newview/llpanelmaininventory.cpp +++ b/indra/newview/llpanelmaininventory.cpp @@ -900,14 +900,12 @@ void LLFloaterInventoryFinder::selectNoTypes(void* user_data)  void LLPanelMainInventory::initListCommandsHandlers()  { -	mListCommands = getChild<LLPanel>("bottom_panel"); +	childSetAction("options_gear_btn", boost::bind(&LLPanelMainInventory::onGearButtonClick, this)); +	childSetAction("trash_btn", boost::bind(&LLPanelMainInventory::onTrashButtonClick, this)); +	childSetAction("add_btn", boost::bind(&LLPanelMainInventory::onAddButtonClick, this)); -	mListCommands->childSetAction("options_gear_btn", boost::bind(&LLPanelMainInventory::onGearButtonClick, this)); -	mListCommands->childSetAction("trash_btn", boost::bind(&LLPanelMainInventory::onTrashButtonClick, this)); -	mListCommands->childSetAction("add_btn", boost::bind(&LLPanelMainInventory::onAddButtonClick, this)); - -	LLDragAndDropButton* trash_btn = mListCommands->getChild<LLDragAndDropButton>("trash_btn"); -	trash_btn->setDragAndDropHandler(boost::bind(&LLPanelMainInventory::handleDragAndDropToTrash, this +	mTrashButton = getChild<LLDragAndDropButton>("trash_btn"); +	mTrashButton->setDragAndDropHandler(boost::bind(&LLPanelMainInventory::handleDragAndDropToTrash, this  			,	_4 // BOOL drop  			,	_5 // EDragAndDropType cargo_type  			,	_7 // EAcceptance* accept @@ -923,7 +921,7 @@ void LLPanelMainInventory::updateListCommands()  {  	bool trash_enabled = isActionEnabled("delete"); -	mListCommands->childSetEnabled("trash_btn", trash_enabled); +	mTrashButton->setEnabled(trash_enabled);  }  void LLPanelMainInventory::onGearButtonClick() diff --git a/indra/newview/llpanelmaininventory.h b/indra/newview/llpanelmaininventory.h index b43e057f83..5a068373f5 100644 --- a/indra/newview/llpanelmaininventory.h +++ b/indra/newview/llpanelmaininventory.h @@ -36,6 +36,7 @@  #include "llpanel.h"  #include "llinventoryobserver.h" +#include "lldndbutton.h"  #include "llfolderview.h" @@ -145,7 +146,7 @@ protected:  	 */  	void setUploadCostIfNeeded();  private: -	LLPanel*					mListCommands; +	LLDragAndDropButton*		mTrashButton;  	LLMenuGL*					mMenuGearDefault;  	LLMenuGL*					mMenuAdd; diff --git a/indra/newview/llpanelteleporthistory.cpp b/indra/newview/llpanelteleporthistory.cpp index 4dd03e04a9..e8b6c6bfe5 100644 --- a/indra/newview/llpanelteleporthistory.cpp +++ b/indra/newview/llpanelteleporthistory.cpp @@ -38,7 +38,7 @@  #include "llsidetray.h"  #include "llworldmap.h"  #include "llteleporthistorystorage.h" -#include "lluitextutil.h" +#include "lltextutil.h"  #include "llaccordionctrl.h"  #include "llaccordionctrltab.h" diff --git a/indra/newview/lltoastalertpanel.cpp b/indra/newview/lltoastalertpanel.cpp index 2b529a4e50..6c6eda2e68 100644 --- a/indra/newview/lltoastalertpanel.cpp +++ b/indra/newview/lltoastalertpanel.cpp @@ -50,6 +50,7 @@  #include "llnotifications.h"  #include "llfunctorregistry.h"  #include "llrootview.h" +#include "lltransientfloatermgr.h"  #include "llviewercontrol.h" // for gSavedSettings  const S32 MAX_ALLOWED_MSG_WIDTH = 400; @@ -324,6 +325,9 @@ LLToastAlertPanel::LLToastAlertPanel( LLNotificationPtr notification, bool modal  		mDefaultBtnTimer.start();  		mDefaultBtnTimer.setTimerExpirySec(DEFAULT_BUTTON_DELAY);  	} + +	LLTransientFloaterMgr::instance().addControlView( +			LLTransientFloaterMgr::GLOBAL, this);  }  bool LLToastAlertPanel::setCheckBox( const std::string& check_title, const std::string& check_control ) @@ -377,6 +381,8 @@ void LLToastAlertPanel::setVisible( BOOL visible )  LLToastAlertPanel::~LLToastAlertPanel()  { +	LLTransientFloaterMgr::instance().removeControlView( +			LLTransientFloaterMgr::GLOBAL, this);  }  BOOL LLToastAlertPanel::hasTitleBar() const diff --git a/indra/newview/skins/default/colors.xml b/indra/newview/skins/default/colors.xml index 0540a03e25..33668f5ed6 100644 --- a/indra/newview/skins/default/colors.xml +++ b/indra/newview/skins/default/colors.xml @@ -530,7 +530,7 @@       reference="Unused?" />      <color       name="NetMapBackgroundColor" -     value="0 0 0 0" /> +     value="0 0 0 1" />      <color       name="NetMapGroupOwnAboveWater"       reference="Purple" /> diff --git a/indra/newview/skins/default/xui/en/floater_map.xml b/indra/newview/skins/default/xui/en/floater_map.xml index e21e44204d..249b091800 100644 --- a/indra/newview/skins/default/xui/en/floater_map.xml +++ b/indra/newview/skins/default/xui/en/floater_map.xml @@ -1,7 +1,7 @@  <?xml version="1.0" encoding="utf-8" standalone="yes" ?>  <floater   bg_alpha_image_overlay="DkGray_66" - legacy_header_height="18" + legacy_header_height="0"   can_minimize="true"    can_resize="true"   follows="top|right" @@ -10,7 +10,7 @@   min_height="174"   min_width="174"   name="Map" - title="Mini Map" + title=""   help_topic="map"   save_rect="true"   save_visibility="true" @@ -62,8 +62,8 @@       mouse_opaque="false"       name="Net Map"       width="200" -     height="200" -     top="18"/> +     height="218" +     top="0"/>      <text       type="string"       length="1" diff --git a/indra/newview/skins/default/xui/en/floater_world_map.xml b/indra/newview/skins/default/xui/en/floater_world_map.xml index a53774a492..ad40cafe61 100644 --- a/indra/newview/skins/default/xui/en/floater_world_map.xml +++ b/indra/newview/skins/default/xui/en/floater_world_map.xml @@ -537,6 +537,7 @@      <button       follows="right|bottom"       height="23" +     image_unselected="PushButton_On"       label="Teleport"       layout="topleft"       left="25" diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index 4b31a1a0ad..300437b3c9 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -6118,6 +6118,12 @@ The button will be shown when there is enough space for it.     type="notifytip">  Drag items from inventory onto a person in the resident picker    </notification> +  <notification +   icon="notifytip.tga" +   name="DeedToGroupFail" +   type="notifytip"> +Deed to group failed. +  </notification>    <notification     icon="notifytip.tga" diff --git a/indra/newview/skins/default/xui/en/panel_edit_wearable.xml b/indra/newview/skins/default/xui/en/panel_edit_wearable.xml index afcd4550ca..40fcc1d76c 100644 --- a/indra/newview/skins/default/xui/en/panel_edit_wearable.xml +++ b/indra/newview/skins/default/xui/en/panel_edit_wearable.xml @@ -175,6 +175,7 @@ left="0"  		 value="Shape:"  		 width="150" />  		 <radio_group +			 control_name="AvatarSex"  			 follows="left|top|right"  			 left="210"  			 height="20" @@ -190,6 +191,7 @@ left="0"  				 left="0"  				 name="sex_male"  				 tool_tip="Male" +				 value="1"  				 width="40" />  			 <radio_item  				 follows="all" @@ -199,6 +201,7 @@ left="0"  				 left_pad="10"  				 name="sex_female"  				 tool_tip="Female" +				 value="0"  				 width="40" />  		 </radio_group>  		 <!--  graphical labels for the radio buttons above --> | 
