summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
authorJonathan Yap <none@none>2011-06-29 10:28:06 -0400
committerJonathan Yap <none@none>2011-06-29 10:28:06 -0400
commit68c8248fb9450cc9adb41f53f0d2f03d5fd4124e (patch)
tree7bc314feb88ef71fda8621ecf2cdd9211f17f20f /indra/newview
parent3bc99274f19ce0cbc3e600c0010655e2778ab405 (diff)
STORM-1459 "Wearing Tab" - Add ability to copy displayed inventory names to clipboard
Diffstat (limited to 'indra/newview')
-rw-r--r--indra/newview/llpanelwearing.cpp26
-rw-r--r--indra/newview/llpanelwearing.h1
-rw-r--r--indra/newview/skins/default/xui/en/panel_outfits_wearing.xml11
3 files changed, 37 insertions, 1 deletions
diff --git a/indra/newview/llpanelwearing.cpp b/indra/newview/llpanelwearing.cpp
index 911a9e5dda..e0109675a6 100644
--- a/indra/newview/llpanelwearing.cpp
+++ b/indra/newview/llpanelwearing.cpp
@@ -38,6 +38,8 @@
#include "llsidetray.h"
#include "llviewermenu.h"
#include "llwearableitemslist.h"
+#include "llsdserialize.h"
+#include "llclipboard.h"
// Context menu and Gear menu helper.
static void edit_outfit()
@@ -182,6 +184,7 @@ 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");
@@ -280,4 +283,27 @@ void LLPanelWearing::getSelectedItemsUUIDs(uuid_vec_t& selected_uuids) const
mCOFItemsList->getSelectedUUIDs(selected_uuids);
}
+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++)
+ {
+ LLSD uuid = (*iter);
+ LLViewerInventoryItem* item = gInventory.getItem(uuid);
+ if (!need_cr)
+ {
+ text += item->getName();
+ need_cr = true;
+ }
+ else
+ {
+ text += "\n" + item->getName();
+ }
+ }
+ gClipboard.copyFromString(utf8str_to_wstring(text));
+}
+
// EOF
diff --git a/indra/newview/llpanelwearing.h b/indra/newview/llpanelwearing.h
index 157b2c4c5f..4c9f5ed079 100644
--- a/indra/newview/llpanelwearing.h
+++ b/indra/newview/llpanelwearing.h
@@ -66,6 +66,7 @@ public:
private:
void onWearableItemsListRightClick(LLUICtrl* ctrl, S32 x, S32 y);
+ void copyToClipboard();
LLInventoryCategoriesObserver* mCategoriesObserver;
LLWearableItemsList* mCOFItemsList;
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 d85b778db2..eef499184c 100644
--- a/indra/newview/skins/default/xui/en/panel_outfits_wearing.xml
+++ b/indra/newview/skins/default/xui/en/panel_outfits_wearing.xml
@@ -42,6 +42,15 @@
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"
@@ -49,6 +58,6 @@
layout="topleft"
left_pad="1"
name="dummy_icon"
- width="274" />
+ width="123" />
</panel>
</panel>