diff options
40 files changed, 265 insertions, 127 deletions
| diff --git a/indra/llui/llaccordionctrltab.cpp b/indra/llui/llaccordionctrltab.cpp index 09cb15d7a8..584d45612e 100644 --- a/indra/llui/llaccordionctrltab.cpp +++ b/indra/llui/llaccordionctrltab.cpp @@ -78,6 +78,8 @@ public:  	void	setTitleFontStyle(std::string style); +	void	setTitleColor(LLUIColor); +  	void	setSelected(bool is_selected) { mIsSelected = is_selected; }  	virtual void onMouseEnter(S32 x, S32 y, MASK mask); @@ -192,6 +194,14 @@ void LLAccordionCtrlTab::LLAccordionCtrlTabHeader::setTitleFontStyle(std::string  	}  } +void LLAccordionCtrlTab::LLAccordionCtrlTabHeader::setTitleColor(LLUIColor color) +{ +	if(mHeaderTextbox) +	{ +		mHeaderTextbox->setColor(color); +	} +} +  void LLAccordionCtrlTab::LLAccordionCtrlTabHeader::draw()  {  	S32 width = getRect().getWidth(); @@ -520,6 +530,15 @@ void LLAccordionCtrlTab::setTitleFontStyle(std::string style)  	}  } +void LLAccordionCtrlTab::setTitleColor(LLUIColor color) +{ +	LLAccordionCtrlTabHeader* header = findChild<LLAccordionCtrlTabHeader>(DD_HEADER_NAME); +	if (header) +	{ +		header->setTitleColor(color); +	} +} +  boost::signals2::connection LLAccordionCtrlTab::setFocusReceivedCallback(const focus_signal_t::slot_type& cb)  {  	LLAccordionCtrlTabHeader* header = findChild<LLAccordionCtrlTabHeader>(DD_HEADER_NAME); diff --git a/indra/llui/llaccordionctrltab.h b/indra/llui/llaccordionctrltab.h index e17ecc5319..5646a355d0 100644 --- a/indra/llui/llaccordionctrltab.h +++ b/indra/llui/llaccordionctrltab.h @@ -124,6 +124,9 @@ public:  	// Set text font style in LLAccordionCtrlTabHeader  	void setTitleFontStyle(std::string style); +	// Set text color in LLAccordionCtrlTabHeader +	void setTitleColor(LLUIColor color); +  	boost::signals2::connection setFocusReceivedCallback(const focus_signal_t::slot_type& cb);  	boost::signals2::connection setFocusLostCallback(const focus_signal_t::slot_type& cb); diff --git a/indra/llui/llnotifications.cpp b/indra/llui/llnotifications.cpp index 7b8f51ae3c..621e72ce38 100644 --- a/indra/llui/llnotifications.cpp +++ b/indra/llui/llnotifications.cpp @@ -560,21 +560,6 @@ void LLNotification::setResponseFunctor(const LLNotificationResponderPtr& respon  	mResponder = responder;  } -bool LLNotification::payloadContainsAll(const std::vector<std::string>& required_fields) const -{ -	for(std::vector<std::string>::const_iterator required_fields_it = required_fields.begin();  -		required_fields_it != required_fields.end(); -		required_fields_it++) -	{ -		std::string required_field_name = *required_fields_it; -		if( ! getPayload().has(required_field_name)) -		{ -			return false; // a required field was not found -		} -	} -	return true; // all required fields were found -} -  bool LLNotification::isEquivalentTo(LLNotificationPtr that) const  {  	if (this->mTemplatep->mName != that->mTemplatep->mName)  @@ -583,11 +568,22 @@ bool LLNotification::isEquivalentTo(LLNotificationPtr that) const  	}  	if (this->mTemplatep->mUnique)  	{ +		const LLSD& these_substitutions = this->getSubstitutions(); +		const LLSD& those_substitutions = that->getSubstitutions(); +  		// highlander bit sez there can only be one of these -		return -			this->payloadContainsAll(that->mTemplatep->mUniqueContext) && -			that->payloadContainsAll(this->mTemplatep->mUniqueContext); +		for (std::vector<std::string>::const_iterator it = mTemplatep->mUniqueContext.begin(), end_it = mTemplatep->mUniqueContext.end(); +			it != end_it; +			++it) +		{ +			if (these_substitutions.get(*it).asString() != those_substitutions.get(*it).asString()) +			{ +				return false; +			} +		} +		return true;  	} +  	return false;   } diff --git a/indra/llui/llnotifications.h b/indra/llui/llnotifications.h index c942a32512..8bfada0e71 100644 --- a/indra/llui/llnotifications.h +++ b/indra/llui/llnotifications.h @@ -400,8 +400,6 @@ private:  	void cancel(); -	bool payloadContainsAll(const std::vector<std::string>& required_fields) const; -  public:  	// constructor from a saved notification diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp index ce022ac840..547dfd7006 100644 --- a/indra/newview/llappearancemgr.cpp +++ b/indra/newview/llappearancemgr.cpp @@ -55,6 +55,25 @@  #include "llviewerregion.h"  #include "llwearablelist.h" +// RAII thingy to guarantee that a variable gets reset when the Setter +// goes out of scope.  More general utility would be handy - TODO: +// check boost. +class BoolSetter +{ +public: +	BoolSetter(bool& var): +		mVar(var) +	{ +		mVar = true; +	} +	~BoolSetter() +	{ +		mVar = false;  +	} +private: +	bool& mVar; +}; +  char ORDER_NUMBER_SEPARATOR('@');  class LLOutfitUnLockTimer: public LLEventTimer @@ -1537,16 +1556,89 @@ bool sort_by_description(const LLInventoryItem* item1, const LLInventoryItem* it  	return item1->LLInventoryItem::getDescription() < item2->LLInventoryItem::getDescription();  } +void item_array_diff(LLInventoryModel::item_array_t& full_list, +					 LLInventoryModel::item_array_t& keep_list, +					 LLInventoryModel::item_array_t& kill_list) +	 +{ +	for (LLInventoryModel::item_array_t::iterator it = full_list.begin(); +		 it != full_list.end(); +		 ++it) +	{ +		LLViewerInventoryItem *item = *it; +		if (keep_list.find(item) < 0) // Why on earth does LLDynamicArray need to redefine find()? +		{ +			kill_list.push_back(item); +		} +	} +} + +void LLAppearanceMgr::enforceItemCountLimits() +{ +	S32 purge_count = 0; +	 +	LLInventoryModel::item_array_t body_items; +	getDescendentsOfAssetType(getCOF(), body_items, LLAssetType::AT_BODYPART, false); +	LLInventoryModel::item_array_t curr_body_items = body_items; +	removeDuplicateItems(body_items); +	filterWearableItems(body_items, 1); +	LLInventoryModel::item_array_t kill_body_items; +	item_array_diff(curr_body_items,body_items,kill_body_items); +	for (LLInventoryModel::item_array_t::iterator it = kill_body_items.begin(); +		 it != kill_body_items.end(); +		 ++it) +	{ +		LLViewerInventoryItem *item = *it; +		llinfos << "purging dup body part " << item->getName() << llendl; +		gInventory.purgeObject(item->getUUID()); +		purge_count++; +	} +	 +	LLInventoryModel::item_array_t wear_items; +	getDescendentsOfAssetType(getCOF(), wear_items, LLAssetType::AT_CLOTHING, false); +	LLInventoryModel::item_array_t curr_wear_items = wear_items; +	removeDuplicateItems(wear_items); +	filterWearableItems(wear_items, LLAgentWearables::MAX_CLOTHING_PER_TYPE); +	LLInventoryModel::item_array_t kill_wear_items; +	item_array_diff(curr_wear_items,wear_items,kill_wear_items); +	for (LLInventoryModel::item_array_t::iterator it = kill_wear_items.begin(); +		 it != kill_wear_items.end(); +		 ++it) +	{ +		LLViewerInventoryItem *item = *it; +		llinfos << "purging excess clothing item " << item->getName() << llendl; +		gInventory.purgeObject(item->getUUID()); +		purge_count++; +	} + +	if (purge_count>0) +	{ +		gInventory.notifyObservers(); +	} +} +  void LLAppearanceMgr::updateAppearanceFromCOF()  { +	if (mIsInUpdateAppearanceFromCOF) +	{ +		llwarns << "Called updateAppearanceFromCOF inside updateAppearanceFromCOF, skipping" << llendl; +		return; +	} + +	BoolSetter setIsInUpdateAppearanceFromCOF(mIsInUpdateAppearanceFromCOF); + +	llinfos << "starting" << llendl; +  	//checking integrity of the COF in terms of ordering of wearables,   	//checking and updating links' descriptions of wearables in the COF (before analyzed for "dirty" state)  	updateClothingOrderingInfo(); +	// Remove duplicate or excess wearables. Should normally be enforced at the UI level, but +	// this should catch anything that gets through. +	enforceItemCountLimits(); +	  	// update dirty flag to see if the state of the COF matches  	// the saved outfit stored as a folder link -	llinfos << "starting" << llendl; -  	updateIsDirty();  	dumpCat(getCOF(),"COF, start"); @@ -2493,7 +2585,8 @@ void LLAppearanceMgr::dumpItemArray(const LLInventoryModel::item_array_t& items,  LLAppearanceMgr::LLAppearanceMgr():  	mAttachmentInvLinkEnabled(false), -	mOutfitIsDirty(false) +	mOutfitIsDirty(false), +	mIsInUpdateAppearanceFromCOF(false)  {  	LLOutfitObserver& outfit_observer = LLOutfitObserver::instance(); diff --git a/indra/newview/llappearancemgr.h b/indra/newview/llappearancemgr.h index 61779d5c0e..afd1bf3ade 100644 --- a/indra/newview/llappearancemgr.h +++ b/indra/newview/llappearancemgr.h @@ -66,6 +66,7 @@ public:  	void renameOutfit(const LLUUID& outfit_id);  	void takeOffOutfit(const LLUUID& cat_id);  	void addCategoryToCurrentOutfit(const LLUUID& cat_id); +	void enforceItemCountLimits();  	// Copy all items and the src category itself.  	void shallowCopyCategory(const LLUUID& src_id, const LLUUID& dst_id, @@ -203,6 +204,7 @@ private:  	std::set<LLUUID> mRegisteredAttachments;  	bool mAttachmentInvLinkEnabled;  	bool mOutfitIsDirty; +	bool mIsInUpdateAppearanceFromCOF; // to detect recursive calls.  	/**  	 * Lock for blocking operations on outfit until server reply or timeout exceed diff --git a/indra/newview/llchannelmanager.h b/indra/newview/llchannelmanager.h index 8c725f2660..2d6aa181c5 100644 --- a/indra/newview/llchannelmanager.h +++ b/indra/newview/llchannelmanager.h @@ -119,6 +119,7 @@ public:  	 */  	static LLNotificationsUI::LLScreenChannel* getNotificationScreenChannel(); +	std::vector<ChannelElem>& getChannelList() { return mChannelList;}  private:  	LLScreenChannel* createChannel(LLChannelManager::Params& p); diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp index 6d3998bb96..a2b72e7d74 100644 --- a/indra/newview/llimview.cpp +++ b/indra/newview/llimview.cpp @@ -1929,9 +1929,9 @@ BOOL LLIncomingCallDialog::postBuild()  		mLifetimeTimer.stop();  	} -	//it's not possible to connect to existing Ad-Hoc chat through incoming ad-hoc call +	//it's not possible to connect to existing Ad-Hoc/Group chat through incoming ad-hoc call  	//and no IM for avaline -	childSetVisible("Start IM", is_avatar && notify_box_type != "VoiceInviteAdHoc"); +	childSetVisible("Start IM", is_avatar && notify_box_type != "VoiceInviteAdHoc" && notify_box_type != "VoiceInviteGroup");  	setCanDrag(FALSE); diff --git a/indra/newview/llnavigationbar.h b/indra/newview/llnavigationbar.h index b512f2a79c..03f17af09b 100644 --- a/indra/newview/llnavigationbar.h +++ b/indra/newview/llnavigationbar.h @@ -87,9 +87,10 @@ protected:   * Web browser-like navigation bar.   */   class LLNavigationBar -	:	public LLPanel, public LLSingleton<LLNavigationBar> +	:	public LLPanel, public LLSingleton<LLNavigationBar>, private LLDestroyClass<LLNavigationBar>  {  	LOG_CLASS(LLNavigationBar); +	friend class LLDestroyClass<LLNavigationBar>;  public:  	LLNavigationBar(); @@ -136,6 +137,14 @@ private:  	void fillSearchComboBox(); +	static void destroyClass() +	{ +		if (LLNavigationBar::instanceExists()) +		{ +			LLNavigationBar::getInstance()->setEnabled(FALSE); +		} +	} +  	LLMenuGL*					mTeleportHistoryMenu;  	LLPullButton*				mBtnBack;  	LLPullButton*				mBtnForward; diff --git a/indra/newview/lloutfitslist.cpp b/indra/newview/lloutfitslist.cpp index 075cfa0543..23c7e64cce 100644 --- a/indra/newview/lloutfitslist.cpp +++ b/indra/newview/lloutfitslist.cpp @@ -548,6 +548,7 @@ void LLOutfitsList::highlightBaseOutfit()  		if (mOutfitsMap[mHighlightedOutfitUUID])  		{  			mOutfitsMap[mHighlightedOutfitUUID]->setTitleFontStyle("NORMAL"); +			mOutfitsMap[mHighlightedOutfitUUID]->setTitleColor(LLUIColorTable::instance().getColor("AccordionHeaderTextColor"));  		}  		mHighlightedOutfitUUID = base_id; @@ -555,6 +556,7 @@ void LLOutfitsList::highlightBaseOutfit()  	if (mOutfitsMap[base_id])  	{  		mOutfitsMap[base_id]->setTitleFontStyle("BOLD"); +		mOutfitsMap[base_id]->setTitleColor(LLUIColorTable::instance().getColor("SelectedOutfitTextColor"));  	}  } diff --git a/indra/newview/llpaneloutfitsinventory.cpp b/indra/newview/llpaneloutfitsinventory.cpp index 462ba2dfa5..c5d259e517 100644 --- a/indra/newview/llpaneloutfitsinventory.cpp +++ b/indra/newview/llpaneloutfitsinventory.cpp @@ -262,6 +262,14 @@ void LLPanelOutfitsInventory::updateListCommands()  	mListCommands->childSetEnabled("wear_btn", wear_enabled);  	mListCommands->childSetVisible("wear_btn", wear_visible);  	mSaveComboBtn->setMenuItemEnabled("save_outfit", make_outfit_enabled); +	if (mMyOutfitsPanel->hasItemSelected()) +	{ +		mListCommands->childSetToolTip("wear_btn", getString("wear_items_tooltip")); +	} +	else +	{ +		mListCommands->childSetToolTip("wear_btn", getString("wear_outfit_tooltip")); +	}  }  void LLPanelOutfitsInventory::showGearMenu() diff --git a/indra/newview/llpanelplaceinfo.cpp b/indra/newview/llpanelplaceinfo.cpp index db305b25fa..8c1f5d0915 100644 --- a/indra/newview/llpanelplaceinfo.cpp +++ b/indra/newview/llpanelplaceinfo.cpp @@ -123,6 +123,7 @@ void LLPanelPlaceInfo::setParcelID(const LLUUID& parcel_id)  void LLPanelPlaceInfo::setInfoType(EInfoType type)  {  	mTitle->setText(mCurrentTitle); +	mTitle->setToolTip(mCurrentTitle);  	mInfoType = type;  } diff --git a/indra/newview/llpaneltopinfobar.h b/indra/newview/llpaneltopinfobar.h index e417a06a64..6e6fbc08ab 100644 --- a/indra/newview/llpaneltopinfobar.h +++ b/indra/newview/llpaneltopinfobar.h @@ -40,10 +40,12 @@ class LLTextBox;  class LLIconCtrl;  class LLParcelChangeObserver; -class LLPanelTopInfoBar : public LLPanel, public LLSingleton<LLPanelTopInfoBar> +class LLPanelTopInfoBar : public LLPanel, public LLSingleton<LLPanelTopInfoBar>, private LLDestroyClass<LLPanelTopInfoBar>  {  	LOG_CLASS(LLPanelTopInfoBar); +	friend class LLDestroyClass<LLPanelTopInfoBar>; +  public:  	LLPanelTopInfoBar();  	~LLPanelTopInfoBar(); @@ -145,6 +147,17 @@ private:  	 */  	void setParcelInfoText(const std::string& new_text); +	/** +	 *  Implementation of LLDestroyClass<LLSideTray> +	 */ +	static void destroyClass() +	{ +		if (LLPanelTopInfoBar::instanceExists()) +		{ +			LLPanelTopInfoBar::getInstance()->setEnabled(FALSE); +		} +	} +  	LLButton* 				mInfoBtn;  	LLTextBox* 				mParcelInfoText;  	LLTextBox* 				mDamageText; diff --git a/indra/newview/llscreenchannel.cpp b/indra/newview/llscreenchannel.cpp index 55c8809184..ef89c07c60 100644 --- a/indra/newview/llscreenchannel.cpp +++ b/indra/newview/llscreenchannel.cpp @@ -136,8 +136,11 @@ void LLScreenChannelBase::updatePositionAndSize(LLRect old_world_rect, LLRect ne  void LLScreenChannelBase::init(S32 channel_left, S32 channel_right)  { -	LLSideTray*	side_bar = LLSideTray::getInstance(); -	side_bar->getCollapseSignal().connect(boost::bind(&LLScreenChannelBase::resetPositionAndSize, this, _2)); +	if(LLSideTray::instanceCreated()) +	{ +		LLSideTray*	side_bar = LLSideTray::getInstance(); +		side_bar->getCollapseSignal().connect(boost::bind(&LLScreenChannelBase::resetPositionAndSize, this, _2)); +	}  	S32 channel_top = gViewerWindow->getWorldViewRectScaled().getHeight();  	S32 channel_bottom = gViewerWindow->getWorldViewRectScaled().mBottom + gSavedSettings.getS32("ChannelBottomPanelMargin"); diff --git a/indra/newview/llsidetray.cpp b/indra/newview/llsidetray.cpp index fed39c362e..98282c1673 100644 --- a/indra/newview/llsidetray.cpp +++ b/indra/newview/llsidetray.cpp @@ -49,12 +49,15 @@  #include "llfloater.h" //for gFloaterView  #include "lliconctrl.h"//for OpenClose tab icon  #include "llsidetraypanelcontainer.h" +#include "llscreenchannel.h" +#include "llchannelmanager.h"  #include "llwindow.h"//for SetCursor  #include "lltransientfloatermgr.h"  //#include "llscrollcontainer.h"  using namespace std; +using namespace LLNotificationsUI;  static LLRootViewRegistry::Register<LLSideTray>	t1("side_tray");  static LLDefaultChildRegistry::Register<LLSideTrayTab>	t2("sidetray_tab"); @@ -276,6 +279,16 @@ BOOL LLSideTray::postBuild()  	LLAppViewer::instance()->setOnLoginCompletedCallback(boost::bind(&LLSideTray::handleLoginComplete, this)); +	//EXT-8045 +	//connect all already created channels to reflect sidetray collapse/expand +	std::vector<LLChannelManager::ChannelElem>& channels = LLChannelManager::getInstance()->getChannelList(); +	for(std::vector<LLChannelManager::ChannelElem>::iterator it = channels.begin();it!=channels.end();++it) +	{ +		if ((*it).channel) +		{ +			getCollapseSignal().connect(boost::bind(&LLScreenChannelBase::resetPositionAndSize, (*it).channel, _2)); +		} +	}  	return true;  } diff --git a/indra/newview/lltexturectrl.cpp b/indra/newview/lltexturectrl.cpp index f3530b69db..0b86cefa1d 100644 --- a/indra/newview/lltexturectrl.cpp +++ b/indra/newview/lltexturectrl.cpp @@ -825,7 +825,7 @@ void LLFloaterTexturePicker::onFilterEdit(const std::string& search_string )  		}  	} -	mInventoryPanel->setFilterSubString(upper_case_search_string); +	mInventoryPanel->setFilterSubString(search_string);  }  void LLFloaterTexturePicker::onTextureSelect( const LLTextureEntry& te ) diff --git a/indra/newview/lltoast.cpp b/indra/newview/lltoast.cpp index 9abfab300c..2bb573c263 100644 --- a/indra/newview/lltoast.cpp +++ b/indra/newview/lltoast.cpp @@ -112,6 +112,14 @@ LLToast::LLToast(const LLToast::Params& p)  		mOnMouseEnterSignal.connect(p.on_mouse_enter());  } +void LLToast::reshape(S32 width, S32 height, BOOL called_from_parent) +{ +	// We shouldn't  use reshape from LLModalDialog since it changes toasts position. +	// Toasts position should be controlled only by toast screen channel, see LLScreenChannelBase. +	// see EXT-8044 +	LLFloater::reshape(width, height, called_from_parent); +} +  //--------------------------------------------------------------------------  BOOL LLToast::postBuild()  { diff --git a/indra/newview/lltoast.h b/indra/newview/lltoast.h index 4211f21ef1..c0da656685 100644 --- a/indra/newview/lltoast.h +++ b/indra/newview/lltoast.h @@ -106,6 +106,8 @@ public:  	virtual ~LLToast();  	BOOL postBuild(); +	/*virtual*/ void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE); +  	// Toast handlers  	virtual BOOL handleMouseDown(S32 x, S32 y, MASK mask); diff --git a/indra/newview/skins/default/colors.xml b/indra/newview/skins/default/colors.xml index e8a893e31b..2188c71ff9 100644 --- a/indra/newview/skins/default/colors.xml +++ b/indra/newview/skins/default/colors.xml @@ -97,6 +97,9 @@    <!-- UI Definitions -->      <color +     name="AccordionHeaderTextColor" +     reference="LtGray" /> +    <color       name="AgentChatColor"       reference="White" />      <color @@ -646,6 +649,9 @@       name="ScrollbarTrackColor"       reference="Black" />      <color +     name="SelectedOutfitTextColor" +     reference="EmphasisColor" /> +    <color       name="SilhouetteChildColor"       value="0.13 0.42 0.77 1" />      <color diff --git a/indra/newview/skins/default/xui/da/floater_world_map.xml b/indra/newview/skins/default/xui/da/floater_world_map.xml index 4dec9a9ba7..ca18faa0bb 100644 --- a/indra/newview/skins/default/xui/da/floater_world_map.xml +++ b/indra/newview/skins/default/xui/da/floater_world_map.xml @@ -35,11 +35,11 @@  		<text name="pg_label">  			Generelt  		</text> -		<check_box name="event_mature_chk"/> -		<text name="mature_label"> +		<check_box name="events_mature_chk"/> +		<text name="events_mature_label">  			Moderat  		</text> -		<text name="adult_label"> +		<text name="events_adult_label">  			Voksent  		</text>  	</panel> diff --git a/indra/newview/skins/default/xui/de/floater_world_map.xml b/indra/newview/skins/default/xui/de/floater_world_map.xml index fb3a4ba9b5..f54d8c3328 100644 --- a/indra/newview/skins/default/xui/de/floater_world_map.xml +++ b/indra/newview/skins/default/xui/de/floater_world_map.xml @@ -39,12 +39,12 @@  		<text name="pg_label">  			Generell  		</text> -		<check_box label="Mature" name="event_mature_chk"/> -		<text name="mature_label"> +		<check_box label="Mature" name="events_mature_chk"/> +		<text name="events_mature_label">  			Moderat  		</text> -		<check_box label="Adult" name="event_adult_chk"/> -		<text name="adult_label"> +		<check_box label="Adult" name="events_adult_chk"/> +		<text name="events_adult_label">  			Adult  		</text>  	</panel> diff --git a/indra/newview/skins/default/xui/en/floater_publish_classified.xml b/indra/newview/skins/default/xui/en/floater_publish_classified.xml index 3225843d09..f25c170f33 100644 --- a/indra/newview/skins/default/xui/en/floater_publish_classified.xml +++ b/indra/newview/skins/default/xui/en/floater_publish_classified.xml @@ -5,7 +5,6 @@   height="200"   layout="topleft"   name="publish_classified" - help_topic="price_for_listing"   title="Publishing Classified"   width="320">      <text @@ -29,8 +28,8 @@ Remember, Classified fees are non-refundable.       halign="left"       height="23"       increment="1" -     label_width="70" -     label="Price for Ad: " +     label_width="45" +     label="Price: L$ "       v_pad="10"       layout="topleft"       left="15" @@ -41,27 +40,6 @@ Remember, Classified fees are non-refundable.       top_pad="10"       tool_tip="Price for listing."       width="150" /> -    <text -     follows="top|left" -     font="SansSerif" -     height="60" -     layout="topleft" -     left_pad="5" -     top_delta="0" -     word_wrap="true" -     value="L$" -     name="l$_text" /> -    <text -     follows="top|right" -     font="SansSerif" -     height="20" -     layout="topleft" -     left="15" -     name="more_info_text" -     top_pad="-20" -     width="300"> -More info (link to classified help) -    </text>      <button       follows="top|left"       height="22" diff --git a/indra/newview/skins/default/xui/en/floater_stats.xml b/indra/newview/skins/default/xui/en/floater_stats.xml index f9dacf0207..b87cb9a433 100644 --- a/indra/newview/skins/default/xui/en/floater_stats.xml +++ b/indra/newview/skins/default/xui/en/floater_stats.xml @@ -361,8 +361,7 @@  			<stat_view  			   name="physicsdetail"  			   label="Physics Details" -			   show_label="true" -			   display_children="false"> +			   show_label="true">  			  <stat_bar  				 name="physicspinnedtasks"  				 label="Pinned Objects" diff --git a/indra/newview/skins/default/xui/en/menu_object.xml b/indra/newview/skins/default/xui/en/menu_object.xml index 6ca8766e3f..397e61c97a 100644 --- a/indra/newview/skins/default/xui/en/menu_object.xml +++ b/indra/newview/skins/default/xui/en/menu_object.xml @@ -18,7 +18,7 @@       name="Edit...">          <menu_item_call.on_click           function="Object.Edit" /> -    <menu_item_call.on_visible +    <menu_item_call.on_enable           function="EnableEdit"/>      </menu_item_call>      <menu_item_call @@ -26,7 +26,7 @@        name="Build">        <menu_item_call.on_click          function="Object.Build" /> -        <menu_item_call.on_visible +        <menu_item_call.on_enable           function="EnableEdit"/>      </menu_item_call>     <menu_item_call @@ -44,7 +44,7 @@       name="Object Sit">          <menu_item_call.on_click           function="Object.SitOrStand" /> -        <menu_item_call.on_visible +        <menu_item_call.on_enable           function="Object.SitVisible" />          <menu_item_call.on_enable           function="Object.EnableSitOrStand" @@ -56,7 +56,7 @@       name="Object Stand Up">          <menu_item_call.on_click           function="Object.SitOrStand" /> -        <menu_item_call.on_visible +        <menu_item_call.on_enable           function="Object.StandUpVisible" />          <menu_item_call.on_enable           function="Object.EnableSitOrStand" diff --git a/indra/newview/skins/default/xui/en/menu_outfit_gear.xml b/indra/newview/skins/default/xui/en/menu_outfit_gear.xml index c4c7a5034a..732b8a788d 100644 --- a/indra/newview/skins/default/xui/en/menu_outfit_gear.xml +++ b/indra/newview/skins/default/xui/en/menu_outfit_gear.xml @@ -1,6 +1,7 @@  <?xml version="1.0" encoding="utf-8" standalone="yes" ?>  <menu   layout="topleft" + visible="false"   name="Gear Outfit">      <menu_item_call       label="Wear - Replace Current Outfit" diff --git a/indra/newview/skins/default/xui/en/menu_wearing_gear.xml b/indra/newview/skins/default/xui/en/menu_wearing_gear.xml index 84431a2f69..747352cb29 100644 --- a/indra/newview/skins/default/xui/en/menu_wearing_gear.xml +++ b/indra/newview/skins/default/xui/en/menu_wearing_gear.xml @@ -1,6 +1,7 @@  <?xml version="1.0" encoding="utf-8" standalone="yes" ?>  <menu   layout="topleft" + visible="false"   name="Gear Wearing">      <menu_item_call       label="Edit Outfit" diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index 88732fee7d..290c8c55a9 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -4886,6 +4886,10 @@ If you want to view streaming media on parcels that support it you should go to     persist="true"     type="notify">  No Media Plugin was found to handle the "[MIME_TYPE]" mime type.  Media of this type will be unavailable. +    <unique> +      <context key="[MIME_TYPE]"/> +    </unique> +    </notification>    <notification     icon="alertmodal.tga" diff --git a/indra/newview/skins/default/xui/en/panel_edit_classified.xml b/indra/newview/skins/default/xui/en/panel_edit_classified.xml index 3f41973b72..cbdd548577 100644 --- a/indra/newview/skins/default/xui/en/panel_edit_classified.xml +++ b/indra/newview/skins/default/xui/en/panel_edit_classified.xml @@ -253,35 +253,6 @@                   width="20"/>              </icons_combo_box.item>          </icons_combo_box> -        <text -         follows="left|top" -         font.style="BOLD" -         height="10" -         layout="topleft" -         left="10" -         name="price_for_listing_label" -         text_color="white" -         top_pad="15" -         value="Price for listing:" -         width="250" /> -        <spinner -         decimal_digits="0" -         follows="left|top" -         halign="left" -         height="23" -         increment="1" -         label_width="20" -         label="L$" -         v_pad="10" -         layout="topleft" -         left="10" -         value="50" -         min_val="50" -         max_val="99999" -         name="price_for_listing" -         top_pad="5" -         tool_tip="Price for listing." -         width="105" />          <check_box           height="16"           label="Auto renew each week" diff --git a/indra/newview/skins/default/xui/en/panel_outfits_inventory.xml b/indra/newview/skins/default/xui/en/panel_outfits_inventory.xml index 58d3dbcc37..82b69ba8dc 100644 --- a/indra/newview/skins/default/xui/en/panel_outfits_inventory.xml +++ b/indra/newview/skins/default/xui/en/panel_outfits_inventory.xml @@ -12,13 +12,21 @@   min_width="240"   width="320"   border="false"> +   <panel.string +     name="wear_outfit_tooltip"> +     Wear selected outfit +   </panel.string> +   <panel.string +     name="wear_items_tooltip"> +     Wear selected items +   </panel.string>     <tab_container       follows="all"       height="539"       layout="topleft"       left="5"       name="appearance_tabs" -     tab_min_width="140" +     tab_min_width="150"       tab_height="30"       tab_position="top"       halign="center" @@ -89,7 +97,6 @@            layout="topleft"            name="wear_btn"            left_pad="3" -          tool_tip="Wear selected outfit"            width="152" />     </panel>  </panel> diff --git a/indra/newview/skins/default/xui/en/panel_outfits_list.xml b/indra/newview/skins/default/xui/en/panel_outfits_list.xml index 62b23aa74c..27e23440df 100644 --- a/indra/newview/skins/default/xui/en/panel_outfits_list.xml +++ b/indra/newview/skins/default/xui/en/panel_outfits_list.xml @@ -16,7 +16,7 @@       bg_opaque_color="DkGray2"       no_matched_tabs_text.value="Didn't find what you're looking for? Try [secondlife:///app/search/all/[SEARCH_TERM] Search]."       no_matched_tabs_text.v_pad="10" -     no_visible_tabs_text.value="There are no any outfits. Try [secondlife:///app/search/all/ Search]." +     no_visible_tabs_text.value="..."       follows="all"       height="400"       layout="topleft" diff --git a/indra/newview/skins/default/xui/en/sidepanel_appearance.xml b/indra/newview/skins/default/xui/en/sidepanel_appearance.xml index 9a07d3a48a..10d8c7dbb8 100644 --- a/indra/newview/skins/default/xui/en/sidepanel_appearance.xml +++ b/indra/newview/skins/default/xui/en/sidepanel_appearance.xml @@ -61,7 +61,7 @@ width="333">        top="0"        width="32" />        <text -      font="SansSerifSmallBold" +      font="SansSerifSmall"        text_color="EmphasisColor"        width="300"        height="10" @@ -89,15 +89,15 @@ width="333">        </text>        <button        follows="left|top" -      height="23" +      height="28"        image_overlay="Edit_Wrench"        label=""        layout="topleft"        left="265"        name="edit_outfit_btn"        tool_tip="Edit this outfit" -      top="7" -      width="30" /> +      top="3" +      width="28" />        <loading_indicator        follows="left|top"        height="24" diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml index 799d440292..f7611b6833 100644 --- a/indra/newview/skins/default/xui/en/strings.xml +++ b/indra/newview/skins/default/xui/en/strings.xml @@ -1939,7 +1939,7 @@ Clears (deletes) the media and all params from the given face.  	<string name="InvFolder Uncompressed Sounds">Uncompressed Sounds</string>  	<string name="InvFolder Animations">Animations</string>  	<string name="InvFolder Gestures">Gestures</string> -	<string name="InvFolder favorite">Favorites</string> +	<string name="InvFolder Favorite">Favorites</string>  	<string name="InvFolder Current Outfit">Current Outfit</string>  	<string name="InvFolder My Outfits">My Outfits</string>  	<string name="InvFolder Accessories">Accessories</string> diff --git a/indra/newview/skins/default/xui/en/widgets/accordion_tab.xml b/indra/newview/skins/default/xui/en/widgets/accordion_tab.xml index 102dc0c16d..6f68c99021 100644 --- a/indra/newview/skins/default/xui/en/widgets/accordion_tab.xml +++ b/indra/newview/skins/default/xui/en/widgets/accordion_tab.xml @@ -9,6 +9,6 @@      header_image_over="Accordion_Over"      header_image_pressed="Accordion_Press"      header_image_focused="Accordion_Selected" -    header_text_color="LtGray" +    header_text_color="AccordionHeaderTextColor"      font="SansSerif"      /> diff --git a/indra/newview/skins/default/xui/es/floater_world_map.xml b/indra/newview/skins/default/xui/es/floater_world_map.xml index deda5b86c8..3135324816 100644 --- a/indra/newview/skins/default/xui/es/floater_world_map.xml +++ b/indra/newview/skins/default/xui/es/floater_world_map.xml @@ -35,11 +35,11 @@  		<text name="pg_label">  			General  		</text> -		<check_box name="event_mature_chk"/> -		<text name="mature_label"> +		<check_box name="events_mature_chk"/> +		<text name="events_mature_label">  			Moderado  		</text> -		<text name="adult_label"> +		<text name="events_adult_label">  			Adulto  		</text>  	</panel> diff --git a/indra/newview/skins/default/xui/fr/floater_world_map.xml b/indra/newview/skins/default/xui/fr/floater_world_map.xml index 4d500857ea..0047a3bb04 100644 --- a/indra/newview/skins/default/xui/fr/floater_world_map.xml +++ b/indra/newview/skins/default/xui/fr/floater_world_map.xml @@ -35,11 +35,11 @@  		<text name="pg_label">  			Général  		</text> -		<check_box initial_value="true" name="event_mature_chk"/> -		<text name="mature_label"> +		<check_box initial_value="true" name="events_mature_chk"/> +		<text name="events_mature_label">  			Modéré  		</text> -		<text name="adult_label"> +		<text name="events_adult_label">  			Adulte  		</text>  	</panel> diff --git a/indra/newview/skins/default/xui/it/floater_world_map.xml b/indra/newview/skins/default/xui/it/floater_world_map.xml index b07daac6fb..a6bd4ffbaf 100644 --- a/indra/newview/skins/default/xui/it/floater_world_map.xml +++ b/indra/newview/skins/default/xui/it/floater_world_map.xml @@ -35,11 +35,11 @@  		<text name="pg_label">  			Generale  		</text> -		<check_box name="event_mature_chk"/> -		<text name="mature_label"> +		<check_box name="events_mature_chk"/> +		<text name="events_mature_label">  			Moderato  		</text> -		<text name="adult_label"> +		<text name="events_adult_label">  			Adulto  		</text>  	</panel> diff --git a/indra/newview/skins/default/xui/ja/floater_world_map.xml b/indra/newview/skins/default/xui/ja/floater_world_map.xml index ce9e7d0777..62670251d6 100644 --- a/indra/newview/skins/default/xui/ja/floater_world_map.xml +++ b/indra/newview/skins/default/xui/ja/floater_world_map.xml @@ -39,12 +39,12 @@  		<text name="pg_label">  			General  		</text> -		<check_box initial_value="true" label="Mature" name="event_mature_chk"/> -		<text name="mature_label"> +		<check_box initial_value="true" label="Mature" name="events_mature_chk"/> +		<text name="events_mature_label">  			Moderate  		</text> -		<check_box label="Adult" name="event_adult_chk"/> -		<text name="adult_label"> +		<check_box label="Adult" name="events_adult_chk"/> +		<text name="events_adult_label">  			Adult  		</text>  	</panel> diff --git a/indra/newview/skins/default/xui/nl/floater_world_map.xml b/indra/newview/skins/default/xui/nl/floater_world_map.xml index bc14f92126..2fee2ecf05 100644 --- a/indra/newview/skins/default/xui/nl/floater_world_map.xml +++ b/indra/newview/skins/default/xui/nl/floater_world_map.xml @@ -26,8 +26,8 @@  		Evenementen:  	</text>  	<check_box label="PG" name="event_chk"/> -	<check_box label="Mature" name="event_mature_chk"/> -	<check_box label="Adult" name="event_adult_chk"/> +	<check_box label="Mature" name="events_mature_chk"/> +	<check_box label="Adult" name="events_adult_chk"/>  	<combo_box label="Online vrienden" name="friend combo" tool_tip="Vriend die op kaart getoond wordt">  		<combo_box.item name="item1" label="Online vrienden"/>  	</combo_box> diff --git a/indra/newview/skins/default/xui/pl/floater_world_map.xml b/indra/newview/skins/default/xui/pl/floater_world_map.xml index 05287ad42a..3e62393e7a 100644 --- a/indra/newview/skins/default/xui/pl/floater_world_map.xml +++ b/indra/newview/skins/default/xui/pl/floater_world_map.xml @@ -35,11 +35,11 @@  		<text name="pg_label">  			Ogólne  		</text> -		<check_box name="event_mature_chk"/> -		<text name="mature_label"> +		<check_box name="events_mature_chk"/> +		<text name="events_mature_label">  			Moderuj  		</text> -		<text name="adult_label"> +		<text name="events_adult_label">  			Adult  		</text>  	</panel> diff --git a/indra/newview/skins/default/xui/pt/floater_world_map.xml b/indra/newview/skins/default/xui/pt/floater_world_map.xml index 878d0b1973..3952b80269 100644 --- a/indra/newview/skins/default/xui/pt/floater_world_map.xml +++ b/indra/newview/skins/default/xui/pt/floater_world_map.xml @@ -39,12 +39,12 @@  		<text name="pg_label">  			Público geral  		</text> -		<check_box label="Mature" name="event_mature_chk"/> -		<text name="mature_label"> +		<check_box label="Mature" name="events_mature_chk"/> +		<text name="events_mature_label">  			Moderado  		</text> -		<check_box label="Adult" name="event_adult_chk"/> -		<text name="adult_label"> +		<check_box label="Adult" name="events_adult_chk"/> +		<text name="events_adult_label">  			Adulto  		</text>  	</panel> | 
