diff options
| author | Oz Linden <oz@lindenlab.com> | 2012-08-16 10:41:10 -0400 | 
|---|---|---|
| committer | Oz Linden <oz@lindenlab.com> | 2012-08-16 10:41:10 -0400 | 
| commit | 557376b95c28379e8e6edf9a73a25929b900784e (patch) | |
| tree | 08ae3a78fc6f68c034f361365a8b42b2275405bb | |
| parent | 39d79080c08119d1da0cd26868e81de887ff6ddb (diff) | |
| parent | e4cea7631293b1192bfe720146410c1aa61654aa (diff) | |
merge changes for storm-1898
| -rw-r--r-- | indra/newview/llinventorybridge.cpp | 28 | ||||
| -rw-r--r-- | indra/newview/llinventorybridge.h | 3 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/menu_inventory.xml | 8 | 
3 files changed, 38 insertions, 1 deletions
| diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp index b819100b9b..fce0b7c9c9 100644 --- a/indra/newview/llinventorybridge.cpp +++ b/indra/newview/llinventorybridge.cpp @@ -71,6 +71,9 @@  #include "llviewerwindow.h"  #include "llvoavatarself.h"  #include "llwearablelist.h" +#include "lllandmarkactions.h" + +void copy_slurl_to_clipboard_callback_inv(const std::string& slurl);  // Marketplace outbox current disabled  #define ENABLE_MERCHANT_OUTBOX_CONTEXT_MENU	1 @@ -1399,6 +1402,29 @@ void LLItemBridge::performAction(LLInventoryModel* model, std::string action)  		const LLUUID outbox_id = getInventoryModel()->findCategoryUUIDForType(LLFolderType::FT_OUTBOX, false, false);  		copy_item_to_outbox(itemp, outbox_id, LLUUID::null, LLToolDragAndDrop::getOperationId());  	} +	else if ("copy_slurl" == action) +	{ +		LLViewerInventoryItem* item = static_cast<LLViewerInventoryItem*>(getItem()); +		if(item) +		{ +			LLUUID asset_id = item->getAssetUUID(); +			LLLandmark* landmark = gLandmarkList.getAsset(asset_id); +			if (landmark) +			{ +				LLVector3d global_pos; +				landmark->getGlobalPos(global_pos); +				LLLandmarkActions::getSLURLfromPosGlobal(global_pos, ©_slurl_to_clipboard_callback_inv, true); +			} +		} +	} +} + +void copy_slurl_to_clipboard_callback_inv(const std::string& slurl) +{ +	gViewerWindow->getWindow()->copyTextToClipboard(utf8str_to_wstring(slurl)); +	LLSD args; +	args["SLURL"] = slurl; +	LLNotificationsUtil::add("CopySLURL", args);  }  void LLItemBridge::selectItem() @@ -4403,6 +4429,7 @@ void LLLandmarkBridge::buildContextMenu(LLMenuGL& menu, U32 flags)  		}  		items.push_back(std::string("Landmark Separator")); +		items.push_back(std::string("url_copy"));  		items.push_back(std::string("About Landmark"));  	} @@ -4411,6 +4438,7 @@ void LLLandmarkBridge::buildContextMenu(LLMenuGL& menu, U32 flags)  	// info panel can be shown at a time.  	if ((flags & FIRST_SELECTED_ITEM) == 0)  	{ +		disabled_items.push_back(std::string("url_copy"));  		disabled_items.push_back(std::string("About Landmark"));  	} diff --git a/indra/newview/llinventorybridge.h b/indra/newview/llinventorybridge.h index dc9e88d54d..118430efe1 100644 --- a/indra/newview/llinventorybridge.h +++ b/indra/newview/llinventorybridge.h @@ -197,6 +197,8 @@ public:  				 const LLUUID& uuid) :  		LLInvFVBridge(inventory, root, uuid) {} +	typedef boost::function<void(std::string& slurl)> slurl_callback_t; +  	virtual void performAction(LLInventoryModel* model, std::string action);  	virtual void selectItem();  	virtual void restoreItem(); @@ -214,7 +216,6 @@ public:  	virtual BOOL isItemCopyable() const;  	virtual BOOL hasChildren() const { return FALSE; }  	virtual BOOL isUpToDate() const { return TRUE; } -  	/*virtual*/ void clearDisplayName() { mDisplayName.clear(); }  	LLViewerInventoryItem* getItem() const; diff --git a/indra/newview/skins/default/xui/en/menu_inventory.xml b/indra/newview/skins/default/xui/en/menu_inventory.xml index b13bf5b508..13dc0b941a 100644 --- a/indra/newview/skins/default/xui/en/menu_inventory.xml +++ b/indra/newview/skins/default/xui/en/menu_inventory.xml @@ -537,6 +537,14 @@       layout="topleft"       name="Landmark Separator" />      <menu_item_call +    label="Copy SLurl" +    layout="topleft" +    name="url_copy"> +       <menu_item_call.on_click +        function="Inventory.DoToSelected" +        parameter="copy_slurl" /> +   </menu_item_call>  +   <menu_item_call       label="About Landmark"       layout="topleft"       name="About Landmark"> | 
