diff --git a/indra/newview/llpanellandaudio.cpp b/indra/newview/llpanellandaudio.cpp index e5a0d91bd0..e6af1df8ab 100644 --- a/indra/newview/llpanellandaudio.cpp +++ b/indra/newview/llpanellandaudio.cpp @@ -246,6 +246,7 @@ void LLPanelLandAudio::onBtnStreamAdd(LLUICtrl*, void *userdata) if (!music_url.empty()) { LLSD streamlist = gSavedSettings.getLLSD("FSStreamList"); + streamlist["version"] = 1; streamlist["audio"].append(music_url); gSavedSettings.setLLSD("FSStreamList", streamlist); self->refresh(); diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index 6bf25daf49..28b3d04738 100755 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -131,14 +131,16 @@ #include "fslslbridge.h" #include "fscommon.h" #include "fscontactsfloater.h" // Display group list in contacts floater +#include "fspose.h" // FIRE-4345: Undeform #include "fswsassetblacklist.h" #include "llavatarpropertiesprocessor.h" // ## Zi: Texture Refresh +#include "llsdserialize.h" #include "lltexturecache.h" // ## Zi: Texture Refresh #include "lllogininstance.h" // #include "llvovolume.h" #include "particleeditor.h" #include "piemenu.h" // ## Zi: Pie Menu -#include "fspose.h" // FIRE-4345: Undeform + using namespace LLAvatarAppearanceDefines; @@ -8678,6 +8680,57 @@ class FSToolsUndeform : public view_listener_t }; // FIRE-4345: Undeform +// Stream list import/export +class FSStreamListExportXML :public view_listener_t +{ + bool handleEvent(const LLSD& userdata) + { + LLFilePicker& file_picker = LLFilePicker::instance(); + if(file_picker.getSaveFile(LLFilePicker::FFSAVE_XML, LLDir::getScrubbedFileName("stream_list.xml"))) + { + std::string filename = file_picker.getFirstFile(); + llofstream export_file(filename); + LLSDSerialize::toPrettyXML(gSavedSettings.getLLSD("FSStreamList"), export_file); + export_file.close(); + LLSD args; + args["FILENAME"] = filename; + LLNotificationsUtil::add("StreamListExportSuccess", args); + } + else + llinfos << "User closed the filepicker. Aborting!" << llendl; + + return true; + } +}; + +class FSStreamListImportXML :public view_listener_t +{ + bool handleEvent(const LLSD& userdata) + { + LLFilePicker& file_picker = LLFilePicker::instance(); + if(file_picker.getOpenFile(LLFilePicker::FFLOAD_XML)) + { + std::string filename = file_picker.getFirstFile(); + llifstream stream_list(filename); + if(!stream_list.is_open()) + { + llwarns << "Couldn't open the xml file for reading. Aborting import!" << llendl; + return true; + } + LLSD stream_data; + if(LLSDSerialize::fromXML(stream_data, stream_list) >= 1) + { + gSavedSettings.setLLSD("FSStreamList", stream_data); + LLNotificationsUtil::add("StreamListImportSuccess"); + } + stream_list.close(); + } + + return true; + } +}; +// Stream list import/export + class LLToolsSelectOnlyMyObjects : public view_listener_t { bool handleEvent(const LLSD& userdata) @@ -10354,4 +10407,8 @@ void initialize_menus() // Script debug floater commit.add("ShowScriptDebug", boost::bind(&LLFloaterScriptDebug::show, LLUUID::null)); + + // Stream list import/export + view_listener_t::addMenu(new FSStreamListExportXML(), "Streamlist.xml_export"); + view_listener_t::addMenu(new FSStreamListImportXML(), "Streamlist.xml_import"); } diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index 1761a4a9a9..8dfd26c056 100644 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -7916,7 +7916,9 @@ void LLVOAvatar::dumpArchetypeXML(const std::string& prefix, bool group_by_weara // File will close when handle goes out of scope // FIRE-8893 - Dump archetype xml to user defined location LL_INFOS("DumpArchetypeXML") << "Archetype xml written successfully!" << LL_ENDL; - LLNotificationsUtil::add("DumpArchetypeSuccess"); + LLSD args; + args["FILENAME"] = outfilename; + LLNotificationsUtil::add("DumpArchetypeSuccess", args); // } diff --git a/indra/newview/skins/default/xui/de/menu_viewer.xml b/indra/newview/skins/default/xui/de/menu_viewer.xml index 633be11f45..f99c66cbec 100644 --- a/indra/newview/skins/default/xui/de/menu_viewer.xml +++ b/indra/newview/skins/default/xui/de/menu_viewer.xml @@ -311,6 +311,10 @@ + + + + diff --git a/indra/newview/skins/default/xui/de/notifications.xml b/indra/newview/skins/default/xui/de/notifications.xml index 6adf44f91b..a96d9b50a2 100644 --- a/indra/newview/skins/default/xui/de/notifications.xml +++ b/indra/newview/skins/default/xui/de/notifications.xml @@ -3891,7 +3891,15 @@ Einige Funktionen wie [FEATURE] sind nicht in [APP_NAME] für OpenSimulator enth -Aussehen erfolgreich nach XML exportiert. +Aussehen erfolgreich als XML nach [FILENAME] exportiert. + + + +Stream-Liste erfolgreich als XML nach [FILENAME] exportiert. + + + +Stream-Liste erfolgreich aus XML importiert. diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml index e1c73f44aa..a25d0d7f5d 100644 --- a/indra/newview/skins/default/xui/en/menu_viewer.xml +++ b/indra/newview/skins/default/xui/en/menu_viewer.xml @@ -2495,6 +2495,23 @@ name="RLVa Embedded" tear_off="true" visible="true" /> + + + + + + + + diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index bc346bcda1..d4751b28c7 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -11082,7 +11082,21 @@ Error in the regular expression: icon="notify.tga" name="DumpArchetypeSuccess" type="notify"> - Successfully saved appearance to XML. + Successfully saved appearance to XML to [FILENAME]. + + + + Successfully exported stream list to XML to [FILENAME]. + + + + Successfully imported stream list from XML. diff --git a/indra/newview/skins/default/xui/es/floater_environment_settings.xml b/indra/newview/skins/default/xui/es/floater_environment_settings.xml index f256c7efe9..5b5401648d 100644 --- a/indra/newview/skins/default/xui/es/floater_environment_settings.xml +++ b/indra/newview/skins/default/xui/es/floater_environment_settings.xml @@ -1,5 +1,5 @@ - + diff --git a/indra/newview/skins/default/xui/es/floater_fs_volume_controls.xml b/indra/newview/skins/default/xui/es/floater_fs_volume_controls.xml new file mode 100644 index 0000000000..5a12d65fee --- /dev/null +++ b/indra/newview/skins/default/xui/es/floater_fs_volume_controls.xml @@ -0,0 +1,2 @@ + + diff --git a/indra/newview/skins/default/xui/es/menu_people_nearby.xml b/indra/newview/skins/default/xui/es/menu_people_nearby.xml index 6758b052fa..2f1441a711 100644 --- a/indra/newview/skins/default/xui/es/menu_people_nearby.xml +++ b/indra/newview/skins/default/xui/es/menu_people_nearby.xml @@ -21,4 +21,6 @@ + + diff --git a/indra/newview/skins/default/xui/es/menu_people_nearby_multiselect.xml b/indra/newview/skins/default/xui/es/menu_people_nearby_multiselect.xml index dfb3d310bf..983d2ca8d9 100644 --- a/indra/newview/skins/default/xui/es/menu_people_nearby_multiselect.xml +++ b/indra/newview/skins/default/xui/es/menu_people_nearby_multiselect.xml @@ -12,4 +12,6 @@ + + diff --git a/indra/newview/skins/default/xui/es/menu_viewer.xml b/indra/newview/skins/default/xui/es/menu_viewer.xml index 23495e5749..2e7297dd75 100644 --- a/indra/newview/skins/default/xui/es/menu_viewer.xml +++ b/indra/newview/skins/default/xui/es/menu_viewer.xml @@ -289,6 +289,10 @@ + + + + diff --git a/indra/newview/skins/default/xui/es/notifications.xml b/indra/newview/skins/default/xui/es/notifications.xml index 8cba492a5a..f4dbc95d71 100644 --- a/indra/newview/skins/default/xui/es/notifications.xml +++ b/indra/newview/skins/default/xui/es/notifications.xml @@ -4489,7 +4489,13 @@ Simulador anterior: [OLDVERSION] - Apariencia guardada con éxito en XML. + Apariencia guardada con éxito en XML en [FILENAME]. + + + Lista de flujos exportada con éxito en archivo XML [FILENAME]. + + + Lista de flujos importada con éxito de archivo XML. Tu configuración ha sido respaldada.