diff --git a/indra/newview/llpanellandaudio.cpp b/indra/newview/llpanellandaudio.cpp
index b2b8eaa887..13f87c28dd 100644
--- a/indra/newview/llpanellandaudio.cpp
+++ b/indra/newview/llpanellandaudio.cpp
@@ -50,7 +50,9 @@
#include "roles_constants.h"
#include "llscrolllistctrl.h"
+// Firestorm includes
#include "llviewercontrol.h" // FIRE-593 - Needed for gSavedSettings where we store our media list
+#include "llclipboard.h"
// Values for the parcel voice settings radio group
enum
@@ -100,6 +102,9 @@ BOOL LLPanelLandAudio::postBuild()
mBtnStreamDelete = getChild("stream_delete_btn");
childSetCommitCallback("stream_delete_btn", onBtnStreamDelete, this);
+
+ mBtnStreamCopyToClipboard = getChild("stream_copy_btn");
+ childSetCommitCallback("stream_copy_btn", onBtnCopyToClipboard, this);
//
mCheckAVSoundAny = getChild("all av sound check");
@@ -177,6 +182,7 @@ void LLPanelLandAudio::refresh()
mBtnStreamAdd->setEnabled( can_change_media );
mBtnStreamDelete->setEnabled( can_change_media );
+ mBtnStreamCopyToClipboard->setEnabled(TRUE);
//
mMusicURLEdit->setEnabled( can_change_media );
@@ -277,4 +283,17 @@ void LLPanelLandAudio::onBtnStreamDelete(LLUICtrl*, void *userdata)
gSavedSettings.setLLSD("FSStreamList", streamlist_new);
self->refresh();
}
+
+//static
+void LLPanelLandAudio::onBtnCopyToClipboard(LLUICtrl*, void *userdata)
+{
+ LLPanelLandAudio *self = (LLPanelLandAudio *)userdata;
+ std::string music_url = self->mMusicURLEdit->getSimple();
+ LLStringUtil::trim(music_url);
+
+ if (!music_url.empty())
+ {
+ LLClipboard::instance().copyToClipboard(utf8str_to_wstring(music_url), 0, music_url.size() );
+ }
+}
//
diff --git a/indra/newview/llpanellandaudio.h b/indra/newview/llpanellandaudio.h
index fda4a02e40..aacd75d520 100644
--- a/indra/newview/llpanellandaudio.h
+++ b/indra/newview/llpanellandaudio.h
@@ -51,6 +51,7 @@ private:
// FIRE-593 - Add/remove streams from the list
static void onBtnStreamAdd(LLUICtrl* ctrl, void *userdata);
static void onBtnStreamDelete(LLUICtrl* ctrl, void *userdata);
+ static void onBtnCopyToClipboard(LLUICtrl* ctrl, void *userdata);
//
private:
@@ -63,6 +64,7 @@ private:
LLComboBox* mMusicURLEdit;
LLButton* mBtnStreamAdd;
LLButton* mBtnStreamDelete;
+ LLButton* mBtnStreamCopyToClipboard;
//
LLCheckBoxCtrl* mMusicUrlCheck;
LLCheckBoxCtrl* mCheckAVSoundAny;
diff --git a/indra/newview/skins/default/xui/en/floater_about_land.xml b/indra/newview/skins/default/xui/en/floater_about_land.xml
index 0152f742c5..06285591fd 100644
--- a/indra/newview/skins/default/xui/en/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/en/floater_about_land.xml
@@ -1853,7 +1853,7 @@ Only large parcels can be listed in search.
max_chars="255"
name="music_url"
top_delta="0"
- right="-54"
+ right="-76"
allow_text_entry="true"
allow_new_values="true"
select_on_focus="true" />
@@ -1865,15 +1865,28 @@ Only large parcels can be listed in search.
left_pad="0"
top_delta="0"
name="stream_add_btn"
+ tool_tip="Add Music Stream URL to saved stream list"
width="23" />
+
+