diff options
38 files changed, 222 insertions, 172 deletions
| diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp index 345953f2e9..4e5fdb1219 100644 --- a/indra/newview/llagent.cpp +++ b/indra/newview/llagent.cpp @@ -3234,6 +3234,9 @@ bool LLAgent::teleportCore(bool is_local)  	// hide land floater too - it'll be out of date  	LLFloaterReg::hideInstance("about_land"); +	// hide the search floater (EXT-8276) +	LLFloaterReg::hideInstance("search"); +  	LLViewerParcelMgr::getInstance()->deselectLand();  	LLViewerMediaFocus::getInstance()->clearFocus(); diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp index 862c68ecda..43f6be42b6 100644 --- a/indra/newview/llappearancemgr.cpp +++ b/indra/newview/llappearancemgr.cpp @@ -951,7 +951,7 @@ const LLUUID LLAppearanceMgr::getBaseOutfitUUID()  	return outfit_cat->getUUID();  } -bool LLAppearanceMgr::wearItemOnAvatar(const LLUUID& item_id_to_wear, bool do_update, bool replace) +bool LLAppearanceMgr::wearItemOnAvatar(const LLUUID& item_id_to_wear, bool do_update, bool replace, LLPointer<LLInventoryCallback> cb)  {  	if (item_id_to_wear.isNull()) return false; @@ -1005,7 +1005,7 @@ bool LLAppearanceMgr::wearItemOnAvatar(const LLUUID& item_id_to_wear, bool do_up  		// Remove existing body parts anyway because we must not be able to wear e.g. two skins.  		removeCOFLinksOfType(item_to_wear->getWearableType(), false); -		addCOFItemLink(item_to_wear, do_update); +		addCOFItemLink(item_to_wear, do_update, cb);  		break;  	case LLAssetType::AT_OBJECT:  		rez_attachment(item_to_wear, NULL); @@ -1959,9 +1959,10 @@ bool areMatchingWearables(const LLViewerInventoryItem *a, const LLViewerInventor  class LLDeferredCOFLinkObserver: public LLInventoryObserver  {  public: -	LLDeferredCOFLinkObserver(const LLUUID& item_id, bool do_update): +	LLDeferredCOFLinkObserver(const LLUUID& item_id, bool do_update, LLPointer<LLInventoryCallback> cb = NULL):  		mItemID(item_id), -		mDoUpdate(do_update) +		mDoUpdate(do_update), +		mCallback(cb)  	{  	} @@ -1975,7 +1976,7 @@ public:  		if (item)  		{  			gInventory.removeObserver(this); -			LLAppearanceMgr::instance().addCOFItemLink(item,mDoUpdate); +			LLAppearanceMgr::instance().addCOFItemLink(item,mDoUpdate,mCallback);  			delete this;  		}  	} @@ -1983,26 +1984,27 @@ public:  private:  	const LLUUID mItemID;  	bool mDoUpdate; +	LLPointer<LLInventoryCallback> mCallback;  };  // BAP - note that this runs asynchronously if the item is not already loaded from inventory.  // Dangerous if caller assumes link will exist after calling the function. -void LLAppearanceMgr::addCOFItemLink(const LLUUID &item_id, bool do_update ) +void LLAppearanceMgr::addCOFItemLink(const LLUUID &item_id, bool do_update, LLPointer<LLInventoryCallback> cb)  {  	const LLInventoryItem *item = gInventory.getItem(item_id);  	if (!item)  	{ -		LLDeferredCOFLinkObserver *observer = new LLDeferredCOFLinkObserver(item_id, do_update); +		LLDeferredCOFLinkObserver *observer = new LLDeferredCOFLinkObserver(item_id, do_update, cb);  		gInventory.addObserver(observer);  	}  	else  	{ -		addCOFItemLink(item, do_update); +		addCOFItemLink(item, do_update, cb);  	}  } -void LLAppearanceMgr::addCOFItemLink(const LLInventoryItem *item, bool do_update ) +void LLAppearanceMgr::addCOFItemLink(const LLInventoryItem *item, bool do_update, LLPointer<LLInventoryCallback> cb)  {		  	const LLViewerInventoryItem *vitem = dynamic_cast<const LLViewerInventoryItem*>(item);  	if (!vitem) @@ -2063,7 +2065,10 @@ void LLAppearanceMgr::addCOFItemLink(const LLInventoryItem *item, bool do_update  	}  	else  	{ -		LLPointer<LLInventoryCallback> cb = do_update ? new ModifiedCOFCallback : 0; +		if(do_update && cb.isNull()) +		{ +			cb = new ModifiedCOFCallback; +		}  		const std::string description = vitem->getIsLinkType() ? vitem->getDescription() : "";  		link_inventory_item( gAgent.getID(),  							 vitem->getLinkedUUID(), @@ -2502,12 +2507,7 @@ void LLAppearanceMgr::removeItemFromAvatar(const LLUUID& id_to_remove)  	// since sever don't sends message _PREHASH_KillObject in that case.  	// Also we can't check is link was successfully removed from COF since in case  	// deleting attachment link removing performs asynchronously in process_kill_object callback. -	LLViewerInventoryItem* item =  gInventory.getItem(id_to_remove); -	if (item != NULL) -	{ -		gInventory.purgeObject(id_to_remove); -		gInventory.notifyObservers(); -	} +	removeCOFItemLinks(id_to_remove,false);  }  bool LLAppearanceMgr::moveWearable(LLViewerInventoryItem* item, bool closer_to_body) diff --git a/indra/newview/llappearancemgr.h b/indra/newview/llappearancemgr.h index 8834f8c395..84c911c038 100644 --- a/indra/newview/llappearancemgr.h +++ b/indra/newview/llappearancemgr.h @@ -99,7 +99,7 @@ public:  	const LLUUID getBaseOutfitUUID();  	// Wear/attach an item (from a user's inventory) on the agent -	bool wearItemOnAvatar(const LLUUID& item_to_wear, bool do_update = true, bool replace = false); +	bool wearItemOnAvatar(const LLUUID& item_to_wear, bool do_update = true, bool replace = false, LLPointer<LLInventoryCallback> cb = NULL);  	// Update the displayed outfit name in UI.  	void updatePanelOutfitName(const std::string& name); @@ -124,8 +124,8 @@ public:  				 LLPointer<LLInventoryCallback> cb);  	// Add COF link to individual item. -	void addCOFItemLink(const LLUUID& item_id, bool do_update = true); -	void addCOFItemLink(const LLInventoryItem *item, bool do_update = true); +	void addCOFItemLink(const LLUUID& item_id, bool do_update = true, LLPointer<LLInventoryCallback> cb = NULL); +	void addCOFItemLink(const LLInventoryItem *item, bool do_update = true, LLPointer<LLInventoryCallback> cb = NULL);  	// Remove COF entries  	void removeCOFItemLinks(const LLUUID& item_id, bool do_update = true); @@ -175,6 +175,8 @@ public:  	bool isOutfitLocked() { return mOutfitLocked; } +	bool isInUpdateAppearanceFromCOF() { return mIsInUpdateAppearanceFromCOF; } +  protected:  	LLAppearanceMgr();  	~LLAppearanceMgr(); diff --git a/indra/newview/llavataractions.cpp b/indra/newview/llavataractions.cpp index 5bc3b3ac8d..752a2e7504 100644 --- a/indra/newview/llavataractions.cpp +++ b/indra/newview/llavataractions.cpp @@ -60,6 +60,7 @@  #include "llimview.h"			// for gIMMgr  #include "llmutelist.h"  #include "llnotificationsutil.h"	// for LLNotificationsUtil +#include "llpaneloutfitedit.h"  #include "llrecentpeople.h"  #include "llsidetray.h"  #include "lltrans.h" @@ -436,12 +437,28 @@ namespace action_give_inventory  	typedef std::set<LLUUID> uuid_set_t;  	/** +	 * Returns a pointer to 'Add More' inventory panel of Edit Outfit SP. +	 */ +	static LLInventoryPanel* get_outfit_editor_inventory_panel() +	{ +		LLPanelOutfitEdit* panel_outfit_edit = dynamic_cast<LLPanelOutfitEdit*>(LLSideTray::getInstance()->getPanel("panel_outfit_edit")); +		if (NULL == panel_outfit_edit) return NULL; + +		LLInventoryPanel* inventory_panel = panel_outfit_edit->findChild<LLInventoryPanel>("folder_view"); +		return inventory_panel; +	} + +	/**  	 * Checks My Inventory visibility.  	 */  	static bool is_give_inventory_acceptable()  	{  		LLInventoryPanel* active_panel = LLInventoryPanel::getActiveInventoryPanel(FALSE); -		if (NULL == active_panel) return false; +		if (!active_panel) +		{ +			active_panel = get_outfit_editor_inventory_panel(); +			if (!active_panel) return false; +		}  		// check selection in the panel  		const uuid_set_t inventory_selected_uuids = active_panel->getRootFolder()->getSelectionList(); @@ -621,9 +638,10 @@ namespace action_give_inventory  		LLInventoryPanel* active_panel = LLInventoryPanel::getActiveInventoryPanel(FALSE); -		if (NULL == active_panel) +		if (!active_panel)  		{ -			return; +			active_panel = get_outfit_editor_inventory_panel(); +			if (!active_panel) return;  		}  		const uuid_set_t inventory_selected_uuids = active_panel->getRootFolder()->getSelectionList(); diff --git a/indra/newview/llcofwearables.cpp b/indra/newview/llcofwearables.cpp index 8fdbdd08bf..4c0f51056d 100644 --- a/indra/newview/llcofwearables.cpp +++ b/indra/newview/llcofwearables.cpp @@ -79,9 +79,7 @@ protected:  		}  		// Set proper label for the "Create new <WEARABLE_TYPE>" menu item. -		LLStringUtil::format_map_t args; -		args["[WEARABLE_TYPE]"] = LLTrans::getString(LLWearableType::getTypeDefaultNewName(w_type)); -		std::string new_label = LLTrans::getString("CreateNewWearable", args); +		std::string new_label = LLTrans::getString("create_new_" + LLWearableType::getTypeName(w_type));  		menu_item->setLabel(new_label);  	} @@ -333,6 +331,10 @@ BOOL LLCOFWearables::postBuild()  	mBodyPartsTab = getChild<LLAccordionCtrlTab>("tab_body_parts");  	mBodyPartsTab->setDropDownStateChangedCallback(boost::bind(&LLCOFWearables::onAccordionTabStateChanged, this, _1, _2)); +	mTab2AssetType[mClothingTab] = LLAssetType::AT_CLOTHING; +	mTab2AssetType[mAttachmentsTab] = LLAssetType::AT_OBJECT; +	mTab2AssetType[mBodyPartsTab] = LLAssetType::AT_BODYPART; +  	return LLPanel::postBuild();  } @@ -632,49 +634,17 @@ LLAssetType::EType LLCOFWearables::getExpandedAccordionAssetType()  	static type_map_t type_map;  	static LLAccordionCtrl* accordion_ctrl = getChild<LLAccordionCtrl>("cof_wearables_accordion"); +	const LLAccordionCtrlTab* expanded_tab = accordion_ctrl->getExpandedTab(); -	if (type_map.empty()) -	{ -		type_map["tab_clothing"] = LLAssetType::AT_CLOTHING; -		type_map["tab_attachments"] = LLAssetType::AT_OBJECT; -		type_map["tab_body_parts"] = LLAssetType::AT_BODYPART; -	} - -	const LLAccordionCtrlTab* tab = accordion_ctrl->getExpandedTab(); -	LLAssetType::EType result = LLAssetType::AT_NONE; - -	if (tab) -	{ -		type_map_t::iterator i = type_map.find(tab->getName()); -		llassert(i != type_map.end()); -		result = i->second; -	} - -	return result; +	return get_if_there(mTab2AssetType, expanded_tab, LLAssetType::AT_NONE);  }  LLAssetType::EType LLCOFWearables::getSelectedAccordionAssetType()  { -	//*TODO share the code with ::getExpandedAccordionAssetType(...)  	static LLAccordionCtrl* accordion_ctrl = getChild<LLAccordionCtrl>("cof_wearables_accordion");  	const LLAccordionCtrlTab* selected_tab = accordion_ctrl->getSelectedTab(); -	 -	if (selected_tab == mClothingTab) -	{ -		return LLAssetType::AT_CLOTHING; -	}  -	else if (selected_tab == mAttachmentsTab) -	{ -		return LLAssetType::AT_OBJECT; -	} -	else if (selected_tab == mBodyPartsTab) -	{ -		return LLAssetType::AT_BODYPART; -	} -	else -	{ -		return LLAssetType::AT_NONE; -	} + +	return get_if_there(mTab2AssetType, selected_tab, LLAssetType::AT_NONE);  }  void LLCOFWearables::onListRightClick(LLUICtrl* ctrl, S32 x, S32 y, LLListContextMenu* menu) diff --git a/indra/newview/llcofwearables.h b/indra/newview/llcofwearables.h index de148e0d46..0518d59df3 100644 --- a/indra/newview/llcofwearables.h +++ b/indra/newview/llcofwearables.h @@ -116,6 +116,8 @@ protected:  	LLAccordionCtrlTab* mLastSelectedTab; +	std::map<const LLAccordionCtrlTab*, LLAssetType::EType> mTab2AssetType; +  	LLCOFCallbacks mCOFCallbacks;  	LLListContextMenu* mClothingMenu; diff --git a/indra/newview/lldrawable.h b/indra/newview/lldrawable.h index 651dabff9e..08972853c3 100644 --- a/indra/newview/lldrawable.h +++ b/indra/newview/lldrawable.h @@ -313,8 +313,20 @@ private:  inline LLFace* LLDrawable::getFace(const S32 i) const  { -	llassert((U32)i < mFaces.size()); -	llassert(mFaces[i]); +	//switch these asserts to llerrs -- davep +	//llassert((U32)i < mFaces.size()); +	//llassert(mFaces[i]); + +	if ((U32) i >= mFaces.size()) +	{ +		llerrs << "Invalid face index." << llendl; +	} + +	if (!mFaces[i]) +	{ +		llerrs << "Null face found." << llendl; +	} +	  	return mFaces[i];  } diff --git a/indra/newview/llface.h b/indra/newview/llface.h index 02cc2af433..b20ecfe2b8 100644 --- a/indra/newview/llface.h +++ b/indra/newview/llface.h @@ -279,7 +279,7 @@ public:  	{  		bool operator()(const LLFace* const& lhs, const LLFace* const& rhs)  		{ -			return lhs->mDistance > rhs->mDistance; // farthest = first +			return !lhs || (rhs && (lhs->mDistance > rhs->mDistance)); // farthest = first  		}  	}; diff --git a/indra/newview/llfloaterland.cpp b/indra/newview/llfloaterland.cpp index 98f940c233..913bb676b0 100644 --- a/indra/newview/llfloaterland.cpp +++ b/indra/newview/llfloaterland.cpp @@ -58,6 +58,7 @@  #include "llpanellandaudio.h"  #include "llpanellandmedia.h"  #include "llradiogroup.h" +#include "llresmgr.h"					// getMonetaryString  #include "llscrolllistctrl.h"  #include "llscrolllistitem.h"  #include "llscrolllistcell.h" @@ -739,7 +740,8 @@ void LLPanelLandGeneral::refresh()  				cost_per_sqm = (F32)parcel->getSalePrice() / (F32)area;  			} -			mSaleInfoForSale1->setTextArg("[PRICE]", llformat("%d", parcel->getSalePrice())); +			S32 price = parcel->getSalePrice(); +			mSaleInfoForSale1->setTextArg("[PRICE]", LLResMgr::getInstance()->getMonetaryString(price));  			mSaleInfoForSale1->setTextArg("[PRICE_PER_SQM]", llformat("%.1f", cost_per_sqm));  			if (can_be_sold)  			{ diff --git a/indra/newview/llgesturemgr.cpp b/indra/newview/llgesturemgr.cpp index 6ffd534a53..160dd0b959 100644 --- a/indra/newview/llgesturemgr.cpp +++ b/indra/newview/llgesturemgr.cpp @@ -1174,12 +1174,11 @@ void LLGestureMgr::notifyObservers()  {  	lldebugs << "LLGestureMgr::notifyObservers" << llendl; -	std::vector<LLGestureManagerObserver*> observers = mObservers; - -	std::vector<LLGestureManagerObserver*>::iterator it; -	for (it = observers.begin(); it != observers.end(); ++it) +	for(std::vector<LLGestureManagerObserver*>::iterator iter = mObservers.begin();  +		iter != mObservers.end();  +		++iter)  	{ -		LLGestureManagerObserver* observer = *it; +		LLGestureManagerObserver* observer = (*iter);  		observer->changed();  	}  } diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp index 9e7224d9b8..7ec6440dc3 100644 --- a/indra/newview/llinventorybridge.cpp +++ b/indra/newview/llinventorybridge.cpp @@ -444,7 +444,8 @@ BOOL LLInvFVBridge::isClipboardPasteableAsLink() const  void hide_context_entries(LLMenuGL& menu,   						  const menuentry_vec_t &entries_to_show, -						  const menuentry_vec_t &disabled_entries) +						  const menuentry_vec_t &disabled_entries, +						  BOOL append) // If append is TRUE, then new enabled entries   {  	const LLView::child_list_t *list = menu.getChildList(); @@ -501,6 +502,10 @@ void hide_context_entries(LLMenuGL& menu,  			// A bit of a hack so we can remember that some UI element explicitly set this to be visible  			// so that some other UI element from multi-select doesn't later set this invisible.  			menu_item->pushVisible(TRUE); +			if (append) +			{ +				menu_item->setEnabled(TRUE); +			}  			for (itor2 = disabled_entries.begin(); itor2 != disabled_entries.end(); ++itor2)  			{  				if (*itor2 == name) @@ -2054,7 +2059,7 @@ void LLInventoryCopyAndWearObserver::changed(U32 mask)  				    mContentsCount)  				{  					gInventory.removeObserver(this); -					LLAppearanceMgr::instance().wearInventoryCategory(category, FALSE, TRUE); +					LLAppearanceMgr::instance().wearInventoryCategory(category, FALSE, FALSE);  					delete this;  				}  			} @@ -2397,6 +2402,11 @@ void LLFolderBridge::folderOptionsMenu()  	const LLInventoryCategory* category = model->getCategory(mUUID);  	if(!category) return; +	const LLUUID trash_id = model->findCategoryUUIDForType(LLFolderType::FT_TRASH); +	if (trash_id == mUUID) return; +	if (isItemInTrash()) return; +	if (!isAgentInventory()) return; +  	LLFolderType::EType type = category->getPreferredType();  	const bool is_system_folder = LLFolderType::lookupIsProtectedType(type);  	// BAP change once we're no longer treating regular categories as ensembles. @@ -2456,7 +2466,7 @@ void LLFolderBridge::folderOptionsMenu()  		}  		mItems.push_back(std::string("Outfit Separator"));  	} -	hide_context_entries(*mMenu, mItems, disabled_items); +	hide_context_entries(*mMenu, mItems, disabled_items, TRUE);  	// Reposition the menu, in case we're adding items to an existing menu.  	mMenu->needsArrange(); @@ -2580,28 +2590,6 @@ void LLFolderBridge::buildContextMenu(LLMenuGL& menu, U32 flags)  		mMenu = &menu;  		sSelf = this; - - -		uuid_vec_t folders; -		LLViewerInventoryCategory* category = (LLViewerInventoryCategory*)model->getCategory(mUUID); -		if (category) -		{ -			folders.push_back(category->getUUID()); -		} -		LLRightClickInventoryFetchDescendentsObserver* fetch = new LLRightClickInventoryFetchDescendentsObserver(folders, FALSE); -		fetch->startFetch(); -		inc_busy_count(); -		if(fetch->isFinished()) -		{ -			// everything is already here - call done. -			fetch->done(); -		} -		else -		{ -			// it's all on it's way - add an observer, and the inventory -			// will call done for us when everything is here. -			gInventory.addObserver(fetch); -		}  	}  	// Preemptively disable system folder removal if more than one item selected. @@ -2623,6 +2611,27 @@ void LLFolderBridge::buildContextMenu(LLMenuGL& menu, U32 flags)  	}  	hide_context_entries(menu, mItems, mDisabledItems); + +	// Add menu items that are dependent on the contents of the folder. +	uuid_vec_t folders; +	LLViewerInventoryCategory* category = (LLViewerInventoryCategory*)model->getCategory(mUUID); +	if (category) +	{ +		folders.push_back(category->getUUID()); +	} +	LLRightClickInventoryFetchDescendentsObserver* fetch = new LLRightClickInventoryFetchDescendentsObserver(folders, FALSE); +	fetch->startFetch(); +	inc_busy_count(); +	if(fetch->isFinished()) +	{ +		// everything is already here - call done. +		fetch->done(); +	} +	else +	{ +		// it's all on its way - add an observer, and the inventory will call done for us when everything is here. +		gInventory.addObserver(fetch); +	}  }  BOOL LLFolderBridge::hasChildren() const @@ -2989,7 +2998,7 @@ BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item,  					// BAP - should skip if dup.  					if (move_is_into_current_outfit)  					{ -						LLAppearanceMgr::instance().addCOFItemLink(inv_item); +						LLAppearanceMgr::instance().wearItemOnAvatar(inv_item->getUUID(), true, true);  					}  					else  					{ diff --git a/indra/newview/llinventorybridge.h b/indra/newview/llinventorybridge.h index 97e87c2f3b..9dc50b542d 100644 --- a/indra/newview/llinventorybridge.h +++ b/indra/newview/llinventorybridge.h @@ -603,8 +603,12 @@ BOOL move_inv_category_world_to_agent(const LLUUID& object_id,  									  void* user_data = NULL);  // Utility function to hide all entries except those in the list +// Can be called multiple times on the same menu (e.g. if multiple items +// are selected).  If "append" is false, then only common enabled items +// are set as enabled.  void hide_context_entries(LLMenuGL& menu,   						  const menuentry_vec_t &entries_to_show,  -						  const menuentry_vec_t &disabled_entries); +						  const menuentry_vec_t &disabled_entries, +						  BOOL append = FALSE);  #endif // LL_LLINVENTORYBRIDGE_H diff --git a/indra/newview/llpaneloutfitedit.cpp b/indra/newview/llpaneloutfitedit.cpp index 817875abca..2e3e9cccdd 100644 --- a/indra/newview/llpaneloutfitedit.cpp +++ b/indra/newview/llpaneloutfitedit.cpp @@ -704,13 +704,20 @@ void LLPanelOutfitEdit::onSearchEdit(const std::string& string)  void LLPanelOutfitEdit::onPlusBtnClicked(void)  { -	LLUUID selected_id; -	getCurrentItemUUID(selected_id); - -	if (selected_id.isNull()) return; +	uuid_vec_t selected_items; +	getSelectedItemsUUID(selected_items); -	//replacing instead of adding the item -	LLAppearanceMgr::getInstance()->wearItemOnAvatar(selected_id, true, true); +	LLPointer<LLInventoryCallback> link_waiter = new LLUpdateAppearanceOnDestroy; +	 +	for(uuid_vec_t::iterator iter = selected_items.begin(); iter != selected_items.end(); iter++) +	{ +		LLUUID selected_id = *iter; +		if (!selected_id.isNull()) +		{ +			//replacing instead of adding the item +			LLAppearanceMgr::getInstance()->wearItemOnAvatar(selected_id, false, true, link_waiter); +		} +	}  }  void LLPanelOutfitEdit::onVisibilityChange() diff --git a/indra/newview/llspatialpartition.cpp b/indra/newview/llspatialpartition.cpp index c229657ded..f37b1d40c2 100644 --- a/indra/newview/llspatialpartition.cpp +++ b/indra/newview/llspatialpartition.cpp @@ -300,6 +300,7 @@ LLSpatialGroup::~LLSpatialGroup()  	}  	delete [] mOcclusionVerts; +	mOcclusionVerts = NULL;  	LLMemType mt(LLMemType::MTYPE_SPACE_PARTITION);  	clearDrawMap(); diff --git a/indra/newview/llspatialpartition.h b/indra/newview/llspatialpartition.h index 19af6a0c38..924f38acb2 100644 --- a/indra/newview/llspatialpartition.h +++ b/indra/newview/llspatialpartition.h @@ -164,8 +164,6 @@ public:  	static BOOL sNoDelete; //deletion of spatial groups and draw info not allowed if TRUE  	typedef std::vector<LLPointer<LLSpatialGroup> > sg_vector_t; -	typedef std::set<LLPointer<LLSpatialGroup> > sg_set_t; -	typedef std::list<LLPointer<LLSpatialGroup> > sg_list_t;  	typedef std::vector<LLPointer<LLSpatialBridge> > bridge_list_t;  	typedef std::vector<LLPointer<LLDrawInfo> > drawmap_elem_t;   	typedef std::map<U32, drawmap_elem_t > draw_map_t;	 diff --git a/indra/newview/lltoolpie.cpp b/indra/newview/lltoolpie.cpp index ae244cd8a1..95c4f01e46 100644 --- a/indra/newview/lltoolpie.cpp +++ b/indra/newview/lltoolpie.cpp @@ -53,6 +53,7 @@  #include "llmediaentry.h"  #include "llmenugl.h"  #include "llmutelist.h" +#include "llresmgr.h"  // getMonetaryString  #include "llselectmgr.h"  #include "lltoolfocus.h"  #include "lltoolgrab.h" @@ -808,7 +809,8 @@ BOOL LLToolPie::handleTooltipLand(std::string line, std::string tooltip_msg)  	if (hover_parcel && hover_parcel->getParcelFlag(PF_FOR_SALE))  	{  		LLStringUtil::format_map_t args; -		args["[AMOUNT]"] = llformat("%d", hover_parcel->getSalePrice()); +		S32 price = hover_parcel->getSalePrice(); +		args["[AMOUNT]"] = LLResMgr::getInstance()->getMonetaryString(price);  		line = LLTrans::getString("TooltipForSaleL$", args);  		tooltip_msg.append(line);  		tooltip_msg.push_back('\n'); @@ -906,13 +908,14 @@ BOOL LLToolPie::handleTooltipObject( LLViewerObject* hover_object, std::string l  			 || !existing_inspector->getVisible()  			 || existing_inspector->getKey()["object_id"].asUUID() != hover_object->getID()))  		{ -						 +  			// Add price to tooltip for items on sale  			bool for_sale = for_sale_selection(nodep);  			if(for_sale)  			{  				LLStringUtil::format_map_t args; -				args["[PRICE]"] = llformat ("%d", nodep->mSaleInfo.getSalePrice()); +				S32 price = nodep->mSaleInfo.getSalePrice(); +				args["[AMOUNT]"] = LLResMgr::getInstance()->getMonetaryString(price);  				tooltip_msg.append(LLTrans::getString("TooltipPrice", args) );  			} diff --git a/indra/newview/llviewerinventory.cpp b/indra/newview/llviewerinventory.cpp index 3430f265ae..1ff4d6db9e 100644 --- a/indra/newview/llviewerinventory.cpp +++ b/indra/newview/llviewerinventory.cpp @@ -625,7 +625,15 @@ bool LLViewerInventoryCategory::fetch()  		// AIS folks are aware of the issue and have a fix in process.  		// see ticket for details. -		std::string url = gAgent.getRegion()->getCapability("WebFetchInventoryDescendents"); +		std::string url; +		if (gAgent.getRegion()) +		{ +			url = gAgent.getRegion()->getCapability("WebFetchInventoryDescendents"); +		} +		else +		{ +			llwarns << "agent region is null" << llendl; +		}  		if (!url.empty()) //Capability found.  Build up LLSD and use it.  		{  			LLInventoryModelBackgroundFetch::instance().start(mUUID, false);			 diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index 82823f3de2..ab5a75e307 100644 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -2097,8 +2097,10 @@ void LLVOAvatar::computeBodySize()  	if (new_body_size != mBodySize)  	{  		mBodySize = new_body_size; -		if (isSelf()) + +		if (isSelf() && !LLAppearanceMgr::instance().isInUpdateAppearanceFromCOF())  		{	// notify simulator of change in size +			// but not if we are in the middle of updating appearance  			gAgent.sendAgentSetAppearance();  		}  	} @@ -5566,6 +5568,7 @@ LLViewerJointAttachment* LLVOAvatar::getTargetAttachmentPoint(LLViewerObject* vi  	if (!attachment)  	{  		llwarns << "Object attachment point invalid: " << attachmentID << llendl; +		attachment = get_if_there(mAttachmentPoints, 1, (LLViewerJointAttachment*)NULL); // Arbitrary using 1 (chest)  	}  	return attachment; diff --git a/indra/newview/llwearableitemslist.cpp b/indra/newview/llwearableitemslist.cpp index 27762a9b7c..7cf637c20e 100644 --- a/indra/newview/llwearableitemslist.cpp +++ b/indra/newview/llwearableitemslist.cpp @@ -618,8 +618,8 @@ LLContextMenu* LLWearableItemsList::ContextMenu::createMenu()  	const uuid_vec_t& ids = mUUIDs;		// selected items IDs  	LLUUID selected_id = ids.front();	// ID of the first selected item -	functor_t wear = boost::bind(&LLAppearanceMgr::wearItemOnAvatar, LLAppearanceMgr::getInstance(), _1, true, true); -	functor_t add = boost::bind(&LLAppearanceMgr::wearItemOnAvatar, LLAppearanceMgr::getInstance(), _1, true, false); +	functor_t wear = boost::bind(&LLAppearanceMgr::wearItemOnAvatar, LLAppearanceMgr::getInstance(), _1, true, true, LLPointer<LLInventoryCallback>(NULL)); +	functor_t add = boost::bind(&LLAppearanceMgr::wearItemOnAvatar, LLAppearanceMgr::getInstance(), _1, true, false, LLPointer<LLInventoryCallback>(NULL));  	functor_t take_off = boost::bind(&LLAppearanceMgr::removeItemFromAvatar, LLAppearanceMgr::getInstance(), _1);  	// Register handlers common for all wearable types. @@ -767,10 +767,8 @@ void LLWearableItemsList::ContextMenu::updateItemsLabels(LLContextMenu* menu)  	LLViewerInventoryItem* item = gInventory.getLinkedItem(mUUIDs.back());  	if (!item || !item->isWearableType()) return; -	LLStringUtil::format_map_t args;  	LLWearableType::EType w_type = item->getWearableType(); -	args["[WEARABLE_TYPE]"] = LLWearableType::getTypeDefaultNewName(w_type); -	std::string new_label = LLTrans::getString("CreateNewWearable", args); +	std::string new_label = LLTrans::getString("create_new_" + LLWearableType::getTypeName(w_type));  	LLMenuItemGL* menu_item = menu->getChild<LLMenuItemGL>("create_new");  	menu_item->setLabel(new_label); diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index d4550a9a03..1c76944c1b 100644 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -1812,7 +1812,7 @@ void LLPipeline::rebuildPriorityGroups()  	assertInitialized();  	// Iterate through all drawables on the priority build queue, -	for (LLSpatialGroup::sg_list_t::iterator iter = mGroupQ1.begin(); +	for (LLSpatialGroup::sg_vector_t::iterator iter = mGroupQ1.begin();  		 iter != mGroupQ1.end(); ++iter)  	{  		LLSpatialGroup* group = *iter; diff --git a/indra/newview/pipeline.h b/indra/newview/pipeline.h index faa8cec5d6..8e6390012a 100644 --- a/indra/newview/pipeline.h +++ b/indra/newview/pipeline.h @@ -605,7 +605,7 @@ protected:  	//  	LLDrawable::drawable_list_t 	mBuildQ1; // priority  	LLDrawable::drawable_list_t 	mBuildQ2; // non-priority -	LLSpatialGroup::sg_list_t		mGroupQ1; //priority +	LLSpatialGroup::sg_vector_t		mGroupQ1; //priority  	LLSpatialGroup::sg_vector_t		mGroupQ2; // non-priority  	LLViewerObject::vobj_list_t		mCreateQ; diff --git a/indra/newview/skins/default/textures/icons/Edit_Wrench.png b/indra/newview/skins/default/textures/icons/Edit_Wrench.pngBinary files differ index 1c43960d02..250697b4b1 100644 --- a/indra/newview/skins/default/textures/icons/Edit_Wrench.png +++ b/indra/newview/skins/default/textures/icons/Edit_Wrench.png diff --git a/indra/newview/skins/default/textures/icons/Hierarchy_View_On.png b/indra/newview/skins/default/textures/icons/Hierarchy_View_On.pngBinary files differ index c590a5a5d3..296311e797 100644 --- a/indra/newview/skins/default/textures/icons/Hierarchy_View_On.png +++ b/indra/newview/skins/default/textures/icons/Hierarchy_View_On.png diff --git a/indra/newview/skins/default/xui/da/strings.xml b/indra/newview/skins/default/xui/da/strings.xml index 32f37c038e..71c9f74dc0 100644 --- a/indra/newview/skins/default/xui/da/strings.xml +++ b/indra/newview/skins/default/xui/da/strings.xml @@ -233,7 +233,7 @@  		Klik for at starte secondlife:// kommando  	</string>  	<string name="CurrentURL" value=" Nuværende URL: [CurrentURL]"/> -	<string name="TooltipPrice" value="L$[PRICE]-"/> +	<string name="TooltipPrice" value="L$[AMOUNT]: "/>  	<string name="SLurlLabelTeleport">  		Teleportér til  	</string> diff --git a/indra/newview/skins/default/xui/de/panel_edit_alpha.xml b/indra/newview/skins/default/xui/de/panel_edit_alpha.xml index b6c53be778..4b48950341 100644 --- a/indra/newview/skins/default/xui/de/panel_edit_alpha.xml +++ b/indra/newview/skins/default/xui/de/panel_edit_alpha.xml @@ -1,10 +1,10 @@  <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="edit_alpha_panel" width="320"> -	<panel name="avatar_alpha_color_panel" width="300"> -		<texture_picker label="Alpha: Unten" name="Lower Alpha" tool_tip="Zum Auswählen eines Bildes hier klicken" width="70"/> -		<texture_picker label="Alpha: Oben" name="Upper Alpha" tool_tip="Zum Auswählen eines Bildes hier klicken" width="66"/> +<panel name="edit_alpha_panel"> +	<panel name="avatar_alpha_color_panel"> +		<texture_picker label="Alpha: Unten" name="Lower Alpha" tool_tip="Zum Auswählen eines Bildes hier klicken"/> +		<texture_picker label="Alpha: Oben" name="Upper Alpha" tool_tip="Zum Auswählen eines Bildes hier klicken"/>  		<texture_picker label="Kopf: Alpha" name="Head Alpha" tool_tip="Zum Auswählen eines Bildes hier klicken"/> -		<texture_picker label="Alpha: Augen" name="Eye Alpha" tool_tip="Zum Auswählen eines Bildes hier klicken" width="72"/> -		<texture_picker label="Alpha: Haare" name="Hair Alpha" tool_tip="Zum Auswählen eines Bildes hier klicken" width="70"/> +		<texture_picker label="Alpha: Augen" name="Eye Alpha" tool_tip="Zum Auswählen eines Bildes hier klicken"/> +		<texture_picker label="Alpha: Haare" name="Hair Alpha" tool_tip="Zum Auswählen eines Bildes hier klicken"/>  	</panel>  </panel> diff --git a/indra/newview/skins/default/xui/de/panel_edit_tattoo.xml b/indra/newview/skins/default/xui/de/panel_edit_tattoo.xml index 830c7b0bb8..075a9d752a 100644 --- a/indra/newview/skins/default/xui/de/panel_edit_tattoo.xml +++ b/indra/newview/skins/default/xui/de/panel_edit_tattoo.xml @@ -1,9 +1,9 @@  <?xml version="1.0" encoding="utf-8" standalone="yes"?>  <panel name="edit_tattoo_panel">  	<panel name="avatar_tattoo_color_panel"> -		<texture_picker label="Kopftattoo" name="Head Tattoo" tool_tip="Zum Auswählen eines Bildes hier klicken" width="80"/> -		<texture_picker label="Obere Tattoos" name="Upper Tattoo" tool_tip="Zum Auswählen eines Bildes hier klicken" width="80"/> -		<texture_picker label="Untere Tattoos" name="Lower Tattoo" tool_tip="Zum Auswählen eines Bildes hier klicken" width="80"/> +		<texture_picker label="Kopftattoo" name="Head Tattoo" tool_tip="Zum Auswählen eines Bildes hier klicken"/> +		<texture_picker label="Obere Tattoos" name="Upper Tattoo" tool_tip="Zum Auswählen eines Bildes hier klicken"/> +		<texture_picker label="Untere Tattoos" name="Lower Tattoo" tool_tip="Zum Auswählen eines Bildes hier klicken"/>  		<color_swatch label="Farbe/Ton" name="Color/Tint" tool_tip="Klicken Sie hier, um die Farbauswahl zu öffnen"/>  	</panel>  </panel> diff --git a/indra/newview/skins/default/xui/de/strings.xml b/indra/newview/skins/default/xui/de/strings.xml index f6ae17239a..206017c06c 100644 --- a/indra/newview/skins/default/xui/de/strings.xml +++ b/indra/newview/skins/default/xui/de/strings.xml @@ -248,7 +248,7 @@  		Anklicken, um Befehl secondlife:// auszuführen  	</string>  	<string name="CurrentURL" value=" CurrentURL: [CurrentURL]"/> -	<string name="TooltipPrice" value="[PRICE] L$"/> +	<string name="TooltipPrice" value="[AMOUNT]L$: "/>  	<string name="SLurlLabelTeleport">  		Teleportieren nach  	</string> diff --git a/indra/newview/skins/default/xui/en/floater_tools.xml b/indra/newview/skins/default/xui/en/floater_tools.xml index 194a93977f..a96dbe3553 100644 --- a/indra/newview/skins/default/xui/en/floater_tools.xml +++ b/indra/newview/skins/default/xui/en/floater_tools.xml @@ -910,29 +910,34 @@               width="75">                  Group:              </text> +            <name_box +             follows="left|top" +             height="18" +             initial_value="Loading..." +             layout="topleft" +             left_pad="23" +             name="Group Name Proxy" +             width="142" />              <button  			 follows="top|left" -			 height="10" -			 image_disabled="Activate_Checkmark" -			 image_selected="Activate_Checkmark" -			 image_unselected="Activate_Checkmark" -			 image_color="White_50" +			 height="23" +			 image_overlay="Edit_Wrench"  			 layout="topleft" -			 left_pad="0" -			 top_delta="0" +			 left_pad="3"  			 name="button set group"  			 tab_stop="false"  			 tool_tip="Choose a group to share this object's permissions" -			 width="10" /> -            <name_box +			 width="23" /> +            <check_box +             height="19"               follows="left|top" -             height="18" -             initial_value="Loading..." +             label="Share"               layout="topleft" -             left_pad="5" -             top_delta="-1" -             name="Group Name Proxy" -             width="150" /> +             name="checkbox share with group" +             tool_tip="Allow all members of the set group to share your modify permissions for this object. You must Deed to enable role restrictions." +             top_pad="10" +             left="106" +             width="87" />              <button               follows="top|left"               height="23" @@ -940,26 +945,16 @@               label_selected="Deed"               layout="topleft"               name="button deed" -             top_pad="0" -             left="108" +             left_pad="3"               tool_tip="Deeding gives this item away with next owner permissions. Group shared objects can be deeded by a group officer."               width="80" /> -            <check_box -             height="19" -             follows="left|top" -             label="Share" -             layout="topleft" -             name="checkbox share with group" -             tool_tip="Allow all members of the set group to share your modify permissions for this object. You must Deed to enable role restrictions." -             left_pad="3" -             width="100" />              <text               type="string"               length="1"               follows="left|top"               height="16"               layout="topleft" -             top_pad="15" +             top_pad="10"               left="10"               name="label click action"               width="98"> diff --git a/indra/newview/skins/default/xui/en/menu_inventory.xml b/indra/newview/skins/default/xui/en/menu_inventory.xml index 5c19f1932d..c0046d8e28 100644 --- a/indra/newview/skins/default/xui/en/menu_inventory.xml +++ b/indra/newview/skins/default/xui/en/menu_inventory.xml @@ -472,7 +472,7 @@       layout="topleft"        name="Paste Separator" />      <menu_item_call -     label="Remove Link" +     label="Delete"       layout="topleft"       name="Remove Link">          <menu_item_call.on_click diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml index e43c61b202..ece57a6682 100644 --- a/indra/newview/skins/default/xui/en/strings.xml +++ b/indra/newview/skins/default/xui/en/strings.xml @@ -67,7 +67,7 @@  	<string name="SentToInvalidRegion">You were sent to an invalid region.</string>  	<string name="TestingDisconnect">Testing viewer disconnect</string> -	<!-- Tooltip, lltooltipview.cpp --> +	<!-- Tooltip -->  	<string name="TooltipPerson">Person</string><!-- Object under mouse pointer is an avatar -->  	<string name="TooltipNoName">(no name)</string> <!-- No name on an object -->  	<string name="TooltipOwner">Owner:</string> <!-- Owner name follows --> @@ -83,6 +83,7 @@  	<string name="TooltipFlagNoScripts">No Scripts</string>  	<string name="TooltipLand">Land:</string>  	<string name="TooltipMustSingleDrop">Only a single item can be dragged here</string> +	<string name="TooltipPrice" value="L$[AMOUNT]: "/>  	<!-- tooltips for Urls -->  	<string name="TooltipHttpUrl">Click to view this web page</string> @@ -103,8 +104,6 @@  	<string name="TooltipMapUrl">Click to view this location on a map</string>  	<string name="TooltipSLAPP">Click to run the secondlife:// command</string>  	<string name="CurrentURL" value=" CurrentURL: [CurrentURL]" />	 -  <string name="TooltipPrice" value=" L$[PRICE]-" /> -    	<!-- text for SLURL labels -->  	<string name="SLurlLabelTeleport">Teleport to</string> @@ -1830,9 +1829,26 @@ Clears (deletes) the media and all params from the given face.  	<string name="tattoo_not_worn">Tattoo not worn</string>  	<string name="invalid_not_worn">invalid</string> +	<!-- Create new wearable of the specified type --> +	<string name="create_new_shape">Create new shape</string> +	<string name="create_new_skin">Create new skin</string> +	<string name="create_new_hair">Create new hair</string> +	<string name="create_new_eyes">Create new eyes</string> +	<string name="create_new_shirt">Create new shirt</string> +	<string name="create_new_pants">Create new pants</string> +	<string name="create_new_shoes">Create new shoes</string> +	<string name="create_new_socks">Create new socks</string> +	<string name="create_new_jacket">Create new jacket</string> +	<string name="create_new_gloves">Create new gloves</string> +	<string name="create_new_undershirt">Create new undershirt</string> +	<string name="create_new_underpants">Create new underpants</string> +	<string name="create_new_skirt">Create new skirt</string> +	<string name="create_new_alpha">Create new alpha</string> +	<string name="create_new_tattoo">Create new tattoo</string> +	<string name="create_new_invalid">invalid</string> +    <!-- Wearable List-->    <string name="NewWearable">New [WEARABLE_ITEM]</string> -  <string name="CreateNewWearable">Create [WEARABLE_TYPE]</string>  	<!-- LLGroupNotify -->  	<!-- used in the construction of a Group Notice blue dialog box, buttons, tooltip etc. Seems to be no longer utilized by code in Viewer 2.0 --> diff --git a/indra/newview/skins/default/xui/es/strings.xml b/indra/newview/skins/default/xui/es/strings.xml index 717665f4d9..17e9f687b2 100644 --- a/indra/newview/skins/default/xui/es/strings.xml +++ b/indra/newview/skins/default/xui/es/strings.xml @@ -236,7 +236,7 @@  		Pulsa para ejecutar el comando secondlife://  	</string>  	<string name="CurrentURL" value="URL actual: [CurrentURL]"/> -	<string name="TooltipPrice" value="[PRICE] L$"/> +	<string name="TooltipPrice" value="[AMOUNT]L$: "/>  	<string name="SLurlLabelTeleport">  		Teleportarse a  	</string> diff --git a/indra/newview/skins/default/xui/fr/panel_edit_tattoo.xml b/indra/newview/skins/default/xui/fr/panel_edit_tattoo.xml index 9a6939e6b7..086542dee2 100644 --- a/indra/newview/skins/default/xui/fr/panel_edit_tattoo.xml +++ b/indra/newview/skins/default/xui/fr/panel_edit_tattoo.xml @@ -1,9 +1,9 @@  <?xml version="1.0" encoding="utf-8" standalone="yes"?>  <panel name="edit_tattoo_panel">  	<panel name="avatar_tattoo_color_panel"> -		<texture_picker label="Tatouage tête" name="Head Tattoo" tool_tip="Cliquez pour sélectionner une image" width="76"/> -		<texture_picker label="Tatouage haut" name="Upper Tattoo" tool_tip="Cliquez pour sélectionner une image" width="80"/> -		<texture_picker label="Tatouage bas" name="Lower Tattoo" tool_tip="Cliquez pour sélectionner une image" width="76"/> +		<texture_picker label="Tatouage tête" name="Head Tattoo" tool_tip="Cliquez pour sélectionner une image"/> +		<texture_picker label="Tatouage haut" name="Upper Tattoo" tool_tip="Cliquez pour sélectionner une image"/> +		<texture_picker label="Tatouage bas" name="Lower Tattoo" tool_tip="Cliquez pour sélectionner une image"/>  		<color_swatch label="Coul./Teinte" name="Color/Tint" tool_tip="Cliquez pour ouvrir le sélecteur de couleurs"/>  	</panel>  </panel> diff --git a/indra/newview/skins/default/xui/fr/strings.xml b/indra/newview/skins/default/xui/fr/strings.xml index 604398a658..15368c715f 100644 --- a/indra/newview/skins/default/xui/fr/strings.xml +++ b/indra/newview/skins/default/xui/fr/strings.xml @@ -248,7 +248,7 @@  		Cliquez pour exécuter la commande secondlife:// command  	</string>  	<string name="CurrentURL" value=" URL actuelle : [CurrentURL]"/> -	<string name="TooltipPrice" value="[PRICE] L$-"/> +	<string name="TooltipPrice" value="[AMOUNT]L$: "/>  	<string name="SLurlLabelTeleport">  		Me téléporter vers  	</string> diff --git a/indra/newview/skins/default/xui/it/strings.xml b/indra/newview/skins/default/xui/it/strings.xml index aeaf8098b9..5554a3ca4f 100644 --- a/indra/newview/skins/default/xui/it/strings.xml +++ b/indra/newview/skins/default/xui/it/strings.xml @@ -242,7 +242,7 @@  		Clicca per avviare il comando secondlife://  	</string>  	<string name="CurrentURL" value="URL attuale: [CurrentURL]"/> -	<string name="TooltipPrice" value="L$ [PRICE]-"/> +	<string name="TooltipPrice" value="L$[AMOUNT]: "/>  	<string name="SLurlLabelTeleport">  		Teleportati a  	</string> diff --git a/indra/newview/skins/default/xui/ja/panel_edit_tattoo.xml b/indra/newview/skins/default/xui/ja/panel_edit_tattoo.xml index c3f8c12620..f4cfe6d83f 100644 --- a/indra/newview/skins/default/xui/ja/panel_edit_tattoo.xml +++ b/indra/newview/skins/default/xui/ja/panel_edit_tattoo.xml @@ -1,9 +1,9 @@  <?xml version="1.0" encoding="utf-8" standalone="yes"?>  <panel name="edit_tattoo_panel">  	<panel name="avatar_tattoo_color_panel"> -		<texture_picker label="頭部のタトゥー" name="Head Tattoo" tool_tip="クリックして写真を選択" width="70"/> -		<texture_picker label="上部のタトゥー" name="Upper Tattoo" tool_tip="クリックして写真を選択" width="70"/> -		<texture_picker label="下部のタトゥー" name="Lower Tattoo" tool_tip="クリックして写真を選択" width="70"/> +		<texture_picker label="頭部のタトゥー" name="Head Tattoo" tool_tip="クリックして写真を選択"/> +		<texture_picker label="上部のタトゥー" name="Upper Tattoo" tool_tip="クリックして写真を選択"/> +		<texture_picker label="下部のタトゥー" name="Lower Tattoo" tool_tip="クリックして写真を選択"/>  		<color_swatch label="色・色彩配合" name="Color/Tint" tool_tip="クリックしてカラーピッカーを開きます"/>  	</panel>  </panel> diff --git a/indra/newview/skins/default/xui/ja/strings.xml b/indra/newview/skins/default/xui/ja/strings.xml index 619f9fc9ef..5aab0875f4 100644 --- a/indra/newview/skins/default/xui/ja/strings.xml +++ b/indra/newview/skins/default/xui/ja/strings.xml @@ -248,7 +248,7 @@  		クリックして secondlife:// コマンドを出します  	</string>  	<string name="CurrentURL" value=" 現在の URL: [CurrentURL]"/> -	<string name="TooltipPrice" value="L$[PRICE]-"/> +	<string name="TooltipPrice" value="L$[AMOUNT]: "/>  	<string name="SLurlLabelTeleport">  		テレポート  	</string> diff --git a/indra/newview/skins/default/xui/pl/strings.xml b/indra/newview/skins/default/xui/pl/strings.xml index f110052f68..99539a84f5 100644 --- a/indra/newview/skins/default/xui/pl/strings.xml +++ b/indra/newview/skins/default/xui/pl/strings.xml @@ -215,7 +215,7 @@  		Kliknij by uruchomić secondlife:// command  	</string>  	<string name="CurrentURL" value=" Obecny Adres: [CurrentURL]"/> -	<string name="TooltipPrice" value="L$[PRICE]-"/> +	<string name="TooltipPrice" value="L$[AMOUNT]: "/>  	<string name="SLurlLabelTeleport">  		Teleportuj do  	</string> diff --git a/indra/newview/skins/default/xui/pt/strings.xml b/indra/newview/skins/default/xui/pt/strings.xml index ca32412058..701e18a58a 100644 --- a/indra/newview/skins/default/xui/pt/strings.xml +++ b/indra/newview/skins/default/xui/pt/strings.xml @@ -236,7 +236,7 @@  		Clique para ativar no secondlife:// comando  	</string>  	<string name="CurrentURL" value="URL atual: [CurrentURL]"/> -	<string name="TooltipPrice" value="L$[PRICE]-"/> +	<string name="TooltipPrice" value="L$[AMOUNT]: "/>  	<string name="SLurlLabelTeleport">  		Teletransportar para  	</string> | 
