diff options
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/newview/llpanelwearing.cpp | 20 | ||||
| -rw-r--r-- | indra/newview/llpanelwearing.h | 3 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/menu_wearing_gear.xml | 7 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/panel_outfits_wearing.xml | 11 | 
4 files changed, 19 insertions, 22 deletions
| diff --git a/indra/newview/llpanelwearing.cpp b/indra/newview/llpanelwearing.cpp index e0109675a6..c2f39524c4 100644 --- a/indra/newview/llpanelwearing.cpp +++ b/indra/newview/llpanelwearing.cpp @@ -60,6 +60,7 @@ public:  		registrar.add("Gear.Edit", boost::bind(&edit_outfit));  		registrar.add("Gear.TakeOff", boost::bind(&LLWearingGearMenu::onTakeOff, this)); +		registrar.add("Gear.Copy", boost::bind(&LLPanelWearing::copyToClipboard, mPanelWearing));  		enable_registrar.add("Gear.OnEnable", boost::bind(&LLPanelWearing::isActionEnabled, mPanelWearing, _2)); @@ -184,7 +185,6 @@ BOOL LLPanelWearing::postBuild()  {  	mCOFItemsList = getChild<LLWearableItemsList>("cof_items_list");  	mCOFItemsList->setRightMouseDownCallback(boost::bind(&LLPanelWearing::onWearableItemsListRightClick, this, _1, _2, _3)); -	childSetAction("copy_to_clipboard", boost::bind(&LLPanelWearing::copyToClipboard, this));  	LLMenuButton* menu_gear_btn = getChild<LLMenuButton>("options_gear_btn"); @@ -286,24 +286,22 @@ void LLPanelWearing::getSelectedItemsUUIDs(uuid_vec_t& selected_uuids) const  void LLPanelWearing::copyToClipboard()  {  	std::string text; -	bool need_cr = false;  	std::vector<LLSD> data;  	mCOFItemsList->getValues(data); -	for(std::vector<LLSD>::iterator iter = data.begin(); iter != data.end(); iter++) + +	for(std::vector<LLSD>::const_iterator iter = data.begin(); iter != data.end();)  	{  		LLSD uuid = (*iter);  		LLViewerInventoryItem* item = gInventory.getItem(uuid); -		if (!need_cr) -		{ -			text += item->getName(); -			need_cr = true; -		} -		else + +		iter++; +		if (item != NULL)  		{ -			text += "\n" + item->getName(); +			// Append a CR to all but the last line +			text += iter != data.end() ? item->getName() + "\n" : item->getName();  		}  	} +  	gClipboard.copyFromString(utf8str_to_wstring(text));  } -  // EOF diff --git a/indra/newview/llpanelwearing.h b/indra/newview/llpanelwearing.h index 4c9f5ed079..9a212b3cca 100644 --- a/indra/newview/llpanelwearing.h +++ b/indra/newview/llpanelwearing.h @@ -60,13 +60,14 @@ public:  	/*virtual*/ void getSelectedItemsUUIDs(uuid_vec_t& selected_uuids) const; +	/*virtual*/ void copyToClipboard(); +  	boost::signals2::connection setSelectionChangeCallback(commit_callback_t cb);  	bool hasItemSelected();  private:  	void onWearableItemsListRightClick(LLUICtrl* ctrl, S32 x, S32 y); -	void copyToClipboard();  	LLInventoryCategoriesObserver* 	mCategoriesObserver;  	LLWearableItemsList* 			mCOFItemsList; 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 0ac2c14253..0e858ccf10 100644 --- a/indra/newview/skins/default/xui/en/menu_wearing_gear.xml +++ b/indra/newview/skins/default/xui/en/menu_wearing_gear.xml @@ -20,4 +20,11 @@           function="Gear.OnEnable"           parameter="take_off" />      </menu_item_call> +    <menu_item_call +     label="Copy outfit list to clipboard" +     layout="topleft" +     name="copy"> +        <on_click +         function="Gear.Copy" /> +    </menu_item_call>  </toggleable_menu> diff --git a/indra/newview/skins/default/xui/en/panel_outfits_wearing.xml b/indra/newview/skins/default/xui/en/panel_outfits_wearing.xml index eef499184c..d85b778db2 100644 --- a/indra/newview/skins/default/xui/en/panel_outfits_wearing.xml +++ b/indra/newview/skins/default/xui/en/panel_outfits_wearing.xml @@ -42,15 +42,6 @@           tool_tip="Show additional options"           top="1"           width="31" /> -        <button -         follows="bottom|left|right" -         height="25" -         layout="topleft" -         left_pad="1" -         name="copy_to_clipboard" -         label="Send to clipboard" -         tool_tip="Send current outfit names to clipboard" -         width="150" />          <icon           follows="bottom|left|right"           height="25" @@ -58,6 +49,6 @@           layout="topleft"           left_pad="1"           name="dummy_icon" -         width="123" /> +         width="274" />      </panel>  </panel> | 
