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" />