diff --git a/autobuild.xml b/autobuild.xml index b3831b4c..cb4260be 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -335,58 +335,6 @@ - discord-rpc - - copyright - Copyright 2019 Discord, Inc. - description - C++ library to interface with Discord's API - license - MIT - license_file - LICENSES/discord-rpc.txt - name - discord-rpc - platforms - - windows64 - - archive - - hash - f63f07d4c87fbbb698b9039583f08b76 - url - https://3p.firestormviewer.org/discord_rpc-3.4.0-windows64-192581529.tar.bz2 - - name - windows64 - - linux64 - - archive - - hash - cefa1cdb50a85e36114ca89df66c0b5a - url - https://3p.firestormviewer.org/discord_rpc-3.4.0-linux64-192540843.tar.bz2 - - name - linux64 - - darwin64 - - archive - - hash - 3bc297a0fa47094bb52d361f80186387 - url - https://3p.firestormviewer.org/discord_rpc-3.4.0-darwin64-192522358.tar.bz2 - - name - darwin64 - - - apr_suite platforms @@ -3276,7 +3224,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors -DCMAKE_BUILD_TYPE:STRING=Release -DADDRESS_SIZE:STRING=$AUTOBUILD_ADDRSIZE -DROOT_PROJECT_NAME:STRING=SecondLife - -DINSTALL_PROPRIETARY=FALSE + -DINSTALL_PROPRIETARY=TRUE -DCMAKE_JOB_POOLS:STRING=compile=4;link=2 @@ -3308,7 +3256,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors name ReleaseOS - ReleaseFS + ReleasePM build @@ -3335,9 +3283,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors name - ReleaseFS + ReleasePM - ReleaseFS_AVX + ReleasePM_AVX build @@ -3366,9 +3314,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors name - ReleaseFS_AVX + ReleasePM_AVX - ReleaseFS_AVX2 + ReleasePM_AVX2 build @@ -3397,9 +3345,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors name - ReleaseFS_AVX2 + ReleasePM_AVX2 - ReleaseFS_open + ReleasePM_open build @@ -3426,7 +3374,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors name - ReleaseFS_open + ReleasePM_open RelWithDebInfoFS @@ -3672,7 +3620,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors name RelWithDebInfoFS_open - ReleaseFS + ReleasePM build @@ -3695,9 +3643,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors default True name - ReleaseFS + ReleasePM - ReleaseFS_open + ReleasePM_open build @@ -3714,7 +3662,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors name - ReleaseFS_open + ReleasePM_open build_directory @@ -3828,7 +3776,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors name RelWithDebInfoFS_open - ReleaseFS + ReleasePM build @@ -3850,9 +3798,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors default True name - ReleaseFS + ReleasePM - ReleaseFS_open + ReleasePM_open build @@ -3872,7 +3820,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors name - ReleaseFS_open + ReleasePM_open build_directory @@ -4087,7 +4035,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors name RelWithDebInfoFS_open - ReleaseFS + ReleasePM build @@ -4112,9 +4060,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors default True name - ReleaseFS + ReleasePM - ReleaseFS_AVX + ReleasePM_AVX build @@ -4137,9 +4085,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors name - ReleaseFS_AVX + ReleasePM_AVX - ReleaseFS_AVX2 + ReleasePM_AVX2 build @@ -4162,9 +4110,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors name - ReleaseFS_AVX2 + ReleasePM_AVX2 - ReleaseFS_open + ReleasePM_open build @@ -4183,7 +4131,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors name - ReleaseFS_open + ReleasePM_open build_directory diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 1d169bc9..c6d37027 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -50,7 +50,6 @@ include(LLPrimitive) include(Growl) include(ColladaDom) include(jemalloc) -include(Discord) # if using ndPhysicsstub this variable will be unset, we don't need to build any stub code viewer side in that case if( LLPHYSICSEXTENSIONS_SRC_DIR ) @@ -1709,7 +1708,7 @@ if (USE_BUGSPLAT) ) endif (USE_BUGSPLAT) -# Flickr / Discord keys and fsversionvalues headers are generated in here +# Flickr key and pmversionvalues headers are generated in here include_directories( ${CMAKE_CURRENT_BINARY_DIR} ) # @@ -1722,24 +1721,13 @@ configure_file( list(APPEND viewer_HEADER_FILES ${CMAKE_CURRENT_BINARY_DIR}/exoflickrkeys.h) # -# Discord rich presence -configure_file( - ${CMAKE_CURRENT_SOURCE_DIR}/fsdiscordkey.h.in - ${CMAKE_CURRENT_BINARY_DIR}/fsdiscordkey.h - @ONLY -) -list(APPEND viewer_HEADER_FILES ${CMAKE_CURRENT_BINARY_DIR}/fsdiscordkey.h) -LIST(APPEND viewer_HEADER_FILES fsfloaterdiscord.h fsdiscordconnect.h) -LIST(APPEND viewer_SOURCE_FILES fsfloaterdiscord.cpp fsdiscordconnect.cpp) -# - # Generate the version information header file. configure_file( - ${CMAKE_CURRENT_SOURCE_DIR}/fsversionvalues.h.in - ${CMAKE_CURRENT_BINARY_DIR}/fsversionvalues.h + ${CMAKE_CURRENT_SOURCE_DIR}/pmversionvalues.h.in + ${CMAKE_CURRENT_BINARY_DIR}/pmversionvalues.h @ONLY ) -list(APPEND viewer_HEADER_FILES ${CMAKE_CURRENT_BINARY_DIR}/fsversionvalues.h) +list(APPEND viewer_HEADER_FILES ${CMAKE_CURRENT_BINARY_DIR}/pmversionvalues.h) # source_group("CMake Rules" FILES ViewerInstall.cmake) @@ -1755,7 +1743,7 @@ set_source_files_properties( # The next line causes a full rebuild of the entire newview # directory every time the Mercurial revision number changes. # Instead of doing that, we use the configure tool to build -# fsversionstrings.h with the right numbers in it. +# pmversionstrings.h with the right numbers in it. # COMPILE_DEFINITIONS "${VIEWER_CHANNEL_VERSION_DEFINES}" # see BuildVersion.cmake ) @@ -1831,7 +1819,7 @@ if (LINUX) # The next line causes a full rebuild of the entire newview # directory every time the Mercurial revision number changes. # Instead of doing that, we use the configure tool to build -# fsversionstrings.h with the right numbers in it. +# pmversionstrings.h with the right numbers in it. # COMPILE_DEFINITIONS "${VIEWER_CHANNEL_VERSION_DEFINES}" ) # [FS] Growl support @@ -2509,7 +2497,6 @@ target_link_libraries(${VIEWER_BINARY_NAME} ll::tracy ll::openxr fs::glod # restore GLOD dependencies - fs::discord # Discord support ) if( TARGET ll::intel_memops ) diff --git a/indra/newview/app_settings/commands.xml b/indra/newview/app_settings/commands.xml index 665ac41d..1056bf76 100644 --- a/indra/newview/app_settings/commands.xml +++ b/indra/newview/app_settings/commands.xml @@ -626,16 +626,6 @@ execute_function="Tools.StopAllAnimations" execute_parameters="stop" /> - Value 1 - FSEnableDiscordIntegration - - Comment - If enabled, will allow Firestorm to connect to discord if open and share location data with. Default (false) - Persist - 1 - Type - Boolean - Value - 0 - - FSMaxSharedMaturity - - Comment - Max maturity rating to share with Discord - Persist - 1 - Type - U32 - Value - 13 - - FSBlacklistedRegionNames - - Comment - List of region names to never share with Discord - Persist - 1 - Type - LLSD - Value - - - FSShareNameToDiscord - - Comment - If enabled, will allow Firestorm to share avatar user and display name with discord. Default (false) - Persist - 1 - Type - Boolean - Value - 0 - FSPrimfeedOAuthToken Comment diff --git a/indra/newview/fsdiscordconnect.cpp b/indra/newview/fsdiscordconnect.cpp deleted file mode 100644 index cf32d275..00000000 --- a/indra/newview/fsdiscordconnect.cpp +++ /dev/null @@ -1,345 +0,0 @@ -/** - * @file fsdiscordconnect.cpp - * @brief Connection to Discord - * @author liny@pinkfox.xyz - * - * $LicenseInfo:firstyear=2013&license=viewerlgpl$ - * Phoenix Firestorm Viewer Source Code - * Copyright (C) 2019 Liny Odell @ Second Life - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; - * version 2.1 of the License only. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * The Phoenix Firestorm Project, Inc., 1831 Oakwood Drive, Fairmont, Minnesota 56031-3225 USA - * http://www.firestormviewer.org - */ - -#include "llviewerprecompiledheaders.h" - -#include "fsdiscordconnect.h" - -#include "llagent.h" -#include "llcallingcard.h" // for LLAvatarTracker -#include "llcommandhandler.h" -#include "llnotificationsutil.h" -#include "lltrans.h" -#include "llevents.h" -#include "llviewerregion.h" -#include "llavatarnamecache.h" -#include "llregioninfomodel.h" - -#include "rlvactions.h" -#include "rlvhandler.h" - -#include "llfloaterreg.h" - -#include -#include - -#include "fsdiscordkey.h" - -#include "llviewernetwork.h" - -std::unique_ptr FSDiscordConnect::sStateWatcher = std::make_unique("DiscordConnectState"); -std::unique_ptr FSDiscordConnect::sInfoWatcher = std::make_unique("DiscordConnectInfo"); - - -// Returns false when the file exists and has not our UUID -// Or, put simply, returns true if someone else is using it -bool FSDiscordConnect::checkMarkerFile() const -{ - if (!LLFile::isfile(mMarkerFilename)) - { - return false; - } - LLUUID fileID; - llifstream file(mMarkerFilename); - file >> fileID; - if ((fileID == gAgentID) || fileID.isNull()) - { - return false; - } - return true; -} - -void FSDiscordConnect::setMarkerFile() -{ - if (!checkMarkerFile()) - { - return; // dont over-write another instances file - } - llofstream file(mMarkerFilename.c_str()); - file << gAgentID << std::endl; - file.close(); -} - -void FSDiscordConnect::clearMarkerFile() -{ - if (!checkMarkerFile()) - { - return; // dont remove another instances file - } - LLFile::remove(mMarkerFilename); -} - -static void handleDiscordReady(const DiscordUser *request) -{ - LLSD info; - info["name"] = request->username; - FSDiscordConnect::getInstance()->storeInfo(info); - FSDiscordConnect::getInstance()->setConnectionState(FSDiscordConnect::DISCORD_CONNECTED); -} - -static void handleDiscordError(int errorCode, const char* message) -{ - LL_WARNS("DiscordConnect") << "Discord error, errorCode: \"" << errorCode << "\", message: \"" << message << "\"" << LL_ENDL; -} - -static void handleDiscordDisconnected(int errorCode, const char* message) -{ - LL_INFOS("DiscordConnect") << "Discord disconnected, errorCode: \"" << errorCode << "\", message: \"" << message << "\"" << LL_ENDL; - FSDiscordConnect::getInstance()->setConnectionState(FSDiscordConnect::DISCORD_NOT_CONNECTED); -} - -/////////////////////////////////////////////////////////////////////////////// -// -void FSDiscordConnect::discordConnectCoro() -{ - DiscordEventHandlers handlers; - memset(&handlers, 0, sizeof(handlers)); - handlers.ready = handleDiscordReady; - handlers.errored = handleDiscordError; - handlers.disconnected = handleDiscordDisconnected; - //TODO: Get this working and sending TPs - /*handlers.joinGame = handleDiscordJoinGame; - handlers.spectateGame = handleDiscordSpectateGame; - handlers.joinRequest = handleDiscordJoinRequest;*/ - - Discord_Initialize(DISCORD_API_KEY, &handlers, 1, ""); -} - -/////////////////////////////////////////////////////////////////////////////// -// -void FSDiscordConnect::discordDisconnectCoro() -{ - Discord_Shutdown(); - setConnectionState(FSDiscordConnect::DISCORD_NOT_CONNECTED); -} - -/////////////////////////////////////////////////////////////////////////////// -// -void FSDiscordConnect::discordConnectedCoro(bool autoConnect) -{ - if (autoConnect) - { - setConnectionState(FSDiscordConnect::DISCORD_CONNECTION_IN_PROGRESS); - if (!checkMarkerFile()) - { - connectToDiscord(); - } - else - { - setConnectionState(FSDiscordConnect::DISCORD_CONNECTION_FAILED); - } - } - -} - -static bool isRegionVisible(LLViewerRegion* region) -{ - U8 rating = region->getSimAccess(); - bool visible = true; - if (rating > gSavedPerAccountSettings.getU32("FSMaxSharedMaturity")) - { - visible = false; - } - else - { - std::string name = region->getName(); - LLSD list = gSavedPerAccountSettings.getLLSD("FSBlacklistedRegionNames"); - for (LLSD::array_const_iterator iter = list.beginArray(); - iter != list.endArray(); - iter++) - { - if (boost::algorithm::to_lower_copy((*iter).asString()) == boost::algorithm::to_lower_copy(name)) - { - visible = false; - break; - } - } - } - return visible; -} - -void FSDiscordConnect::updateRichPresence() const -{ - LLViewerRegion* region = gAgent.getRegion(); - if (!isConnected() || !region) - { - return; - } - std::string region_name; - if (RlvActions::canShowLocation() && isRegionVisible(region)) - { - region_name = gAgent.getRegion()->getName(); - region_name += " "; - LLVector3 pos = gAgent.getPositionAgent(); - - region_name += llformat("(%.0f, %.0f, %.0f)", pos.mV[VX], pos.mV[VY], pos.mV[VZ]); - } - else - { - region_name = "Hidden Region"; - } - - DiscordRichPresence discordPresence; - memset(&discordPresence, 0, sizeof(discordPresence)); - discordPresence.state = region_name.c_str(); - - std::string name; - if (RlvActions::canShowName(RlvActions::SNC_DEFAULT, gAgentID) && gSavedPerAccountSettings.getBOOL("FSShareNameToDiscord")) - { - LLAvatarName av_name; - if (LLAvatarNameCache::get(gAgentID, &av_name)) - { - name = av_name.getCompleteName(true, true); - } - else - { - name = gAgentUsername; - } - discordPresence.details = name.c_str(); - } - - discordPresence.startTimestamp = mConnectTime; - -#ifdef OPENSIM - if (LLGridManager::getInstance()->isInSecondLife()) - { - discordPresence.largeImageKey = "secondlife_512"; - } - else - { - discordPresence.largeImageKey = "opensimulator_512"; - } -#else - discordPresence.largeImageKey = "secondlife_512"; -#endif - - auto gridLabel = LLGridManager::getInstance()->getGridLabel(); - discordPresence.largeImageText = gridLabel.c_str(); - discordPresence.smallImageKey = "firestorm_512"; - std::string appName = std::string("via " + APP_NAME); - discordPresence.smallImageText = appName.c_str(); - - std::string regionId = gAgent.getRegion()->getRegionID().asString(); - discordPresence.partyId = regionId.c_str(); - discordPresence.partySize = static_cast(gAgent.getRegion()->mMapAvatars.size()); - discordPresence.partyMax = LLRegionInfoModel::instance().mAgentLimit; - Discord_UpdatePresence(&discordPresence); -} - -/////////////////////////////////////////////////////////////////////////////// -// -FSDiscordConnect::FSDiscordConnect() -: mConnectionState(DISCORD_NOT_CONNECTED), - mConnected(false), - mInfo(), - mRefreshInfo(false), - mConnectTime(0) -{ - mMarkerFilename = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, "discord_in_use_marker"); - LLEventPumps::instance().obtain("mainloop").listen("FSDiscordConnect", std::bind(&FSDiscordConnect::Tick, this, std::placeholders::_1)); -} - -FSDiscordConnect::~FSDiscordConnect() -{ - disconnectFromDiscord(); -} - -void FSDiscordConnect::connectToDiscord() -{ - LLCoros::instance().launch("FSDiscordConnect::discordConnectCoro", - std::bind(&FSDiscordConnect::discordConnectCoro, this)); -} - -void FSDiscordConnect::disconnectFromDiscord() -{ - setConnectionState(FSDiscordConnect::DISCORD_DISCONNECTING); - - LLCoros::instance().launch("FSDiscordConnect::discordDisconnectCoro", - std::bind(&FSDiscordConnect::discordDisconnectCoro, this)); -} - -void FSDiscordConnect::checkConnectionToDiscord(bool auto_connect) -{ - LLCoros::instance().launch("FSDiscordConnect::discordConnectedCoro", - std::bind(&FSDiscordConnect::discordConnectedCoro, this, auto_connect)); -} - -bool FSDiscordConnect::Tick(const LLSD&) -{ - Discord_RunCallbacks(); - updateRichPresence(); - - return false; -} - -void FSDiscordConnect::storeInfo(const LLSD& info) -{ - mInfo = info; - mRefreshInfo = false; - - sInfoWatcher->post(info); -} - -const LLSD& FSDiscordConnect::getInfo() const -{ - return mInfo; -} - -void FSDiscordConnect::clearInfo() -{ - mInfo = LLSD(); -} - -void FSDiscordConnect::setConnectionState(FSDiscordConnect::EConnectionState connection_state) -{ - if(connection_state == DISCORD_CONNECTED) - { - setMarkerFile(); - setConnected(true); - mConnectTime = time_corrected(); - } - else if(connection_state == DISCORD_NOT_CONNECTED) - { - clearMarkerFile(); - setConnected(false); - } - - if (mConnectionState != connection_state) - { - // set the connection state before notifying watchers - mConnectionState = connection_state; - - LLSD state_info; - state_info["enum"] = connection_state; - sStateWatcher->post(state_info); - } -} - -void FSDiscordConnect::setConnected(bool connected) -{ - mConnected = connected; -} diff --git a/indra/newview/fsdiscordconnect.h b/indra/newview/fsdiscordconnect.h deleted file mode 100644 index 4e564a1d..00000000 --- a/indra/newview/fsdiscordconnect.h +++ /dev/null @@ -1,92 +0,0 @@ -/** - * @file fsdiscordconnect.h - * @brief Connection to Discord - * @author liny@pinkfox.xyz - * - * $LicenseInfo:firstyear=2013&license=viewerlgpl$ - * Phoenix Firestorm Viewer Source Code - * Copyright (C) 2019 Liny Odell @ Second Life - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; - * version 2.1 of the License only. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * The Phoenix Firestorm Project, Inc., 1831 Oakwood Drive, Fairmont, Minnesota 56031-3225 USA - * http://www.firestormviewer.org - */ - -#ifndef FS_FSDISCORDCONNECT_H -#define FS_FSDISCORDCONNECT_H - -#include "llsingleton.h" -#include "llcoros.h" -#include "lleventcoro.h" - -class LLEventPump; - -class FSDiscordConnect : public LLSingleton -{ - LLSINGLETON(FSDiscordConnect); - LOG_CLASS(FSDiscordConnect); -public: - enum EConnectionState - { - DISCORD_NOT_CONNECTED = 0, - DISCORD_CONNECTION_IN_PROGRESS = 1, - DISCORD_CONNECTED = 2, - DISCORD_CONNECTION_FAILED = 3, - DISCORD_DISCONNECTING = 4 - }; - - ~FSDiscordConnect(); - - void connectToDiscord(); // Initiate the complete Discord connection. Please use checkConnectionToDiscord() in normal use. - void disconnectFromDiscord(); // Disconnect from the Discord service. - void checkConnectionToDiscord(bool auto_connect = false); // Check if connected to the Discord service. If not, call connectToDiscord(). - - void storeInfo(const LLSD& info); - const LLSD& getInfo() const; - void clearInfo(); - - void setConnectionState(EConnectionState connection_state); - void setConnected(bool connected); - bool isConnected() const { return mConnected; } - EConnectionState getConnectionState() { return mConnectionState; } - - void updateRichPresence() const; - - bool Tick(const LLSD&); - -private: - - EConnectionState mConnectionState; - bool mConnected; - LLSD mInfo; - bool mRefreshInfo; - - static std::unique_ptr sStateWatcher; - static std::unique_ptr sInfoWatcher; - - void discordConnectCoro(); - void discordDisconnectCoro(); - void discordConnectedCoro(bool autoConnect); - - bool checkMarkerFile() const; - void setMarkerFile(); - void clearMarkerFile(); - - std::string mMarkerFilename; - time_t mConnectTime; -}; - -#endif // FS_FSDISCORDCONNECT_H diff --git a/indra/newview/fsdiscordkey.h.in b/indra/newview/fsdiscordkey.h.in deleted file mode 100644 index c0454f1e..00000000 --- a/indra/newview/fsdiscordkey.h.in +++ /dev/null @@ -1,4 +0,0 @@ -// THIS FILE IS AUTOGENERATED BY THE BUILD PROCESS -// You can either set the keys in Variables.cmake or at the autobuild command - -#define DISCORD_API_KEY "@DDISCORD_API_KEY@" \ No newline at end of file diff --git a/indra/newview/fsfloaterdiscord.cpp b/indra/newview/fsfloaterdiscord.cpp deleted file mode 100644 index 369a275a..00000000 --- a/indra/newview/fsfloaterdiscord.cpp +++ /dev/null @@ -1,302 +0,0 @@ -/** -* @file fsfloaterdiscord.cpp -* @brief Implementation of fsfloaterdiscord.cpp -* @author liny@pinkfox.xyz -* -* $LicenseInfo:firstyear=2013&license=viewerlgpl$ -* Phoenix Firestorm Viewer Source Code -* Copyright (C) 2019 Liny Odell @ Second Life -* -* This library is free software; you can redistribute it and/or -* modify it under the terms of the GNU Lesser General Public -* License as published by the Free Software Foundation; -* version 2.1 of the License only. -* -* This library is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -* Lesser General Public License for more details. -* -* You should have received a copy of the GNU Lesser General Public -* License along with this library; if not, write to the Free Software -* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -* -* The Phoenix Firestorm Project, Inc., 1831 Oakwood Drive, Fairmont, Minnesota 56031-3225 USA -* http://www.firestormviewer.org -*/ - -#include "llviewerprecompiledheaders.h" - -#include "fsfloaterdiscord.h" - -#include "fsdiscordconnect.h" -#include "llagent.h" -#include "llagentui.h" -#include "llcheckboxctrl.h" -#include "llcombobox.h" -#include "llfloaterreg.h" -#include "lltabcontainer.h" -#include "lltrans.h" -#include "llviewercontrol.h" -#include "llviewerregion.h" - -#include "boost/algorithm/string/case_conv.hpp" - -//////////////////////// -//FSFloaterDiscord/////// -//////////////////////// - -void FSFloaterDiscord::onVisibilityChange(bool visible) -{ - if (visible) - { - LLEventPumps::instance().obtain("DiscordConnectState").stopListening("FSDiscordAccountPanel"); - LLEventPumps::instance().obtain("DiscordConnectState").listen("FSDiscordAccountPanel", boost::bind(&FSFloaterDiscord::onDiscordConnectStateChange, this, _1)); - - LLEventPumps::instance().obtain("DiscordConnectInfo").stopListening("FSDiscordAccountPanel"); - LLEventPumps::instance().obtain("DiscordConnectInfo").listen("FSDiscordAccountPanel", boost::bind(&FSFloaterDiscord::onDiscordConnectInfoChange, this)); - - LLSD info = FSDiscordConnect::instance().getInfo(); - - if (info.has("name")) - { - mAccountNameLabel->setText(info["name"].asString()); - } - - //Connected - if (FSDiscordConnect::instance().isConnected()) - { - showConnectedLayout(); - } - //Check if connected (show disconnected layout in meantime) - else - { - showDisconnectedLayout(); - } - if ((FSDiscordConnect::instance().getConnectionState() == FSDiscordConnect::DISCORD_NOT_CONNECTED) || - (FSDiscordConnect::instance().getConnectionState() == FSDiscordConnect::DISCORD_CONNECTION_FAILED)) - { - FSDiscordConnect::instance().checkConnectionToDiscord(); - } - } - else - { - LLEventPumps::instance().obtain("DiscordConnectState").stopListening("FSDiscordAccountPanel"); - LLEventPumps::instance().obtain("DiscordConnectInfo").stopListening("FSDiscordAccountPanel"); - } -} - -bool FSFloaterDiscord::onDiscordConnectStateChange(const LLSD& data) -{ - if (FSDiscordConnect::instance().isConnected()) - { - mAccountCaptionLabel->setText(getString("discord_connected")); - showConnectedLayout(); - } - else - { - mAccountCaptionLabel->setText(getString("discord_disconnected")); - showDisconnectedLayout(); - } - - return false; -} - -bool FSFloaterDiscord::onDiscordConnectInfoChange() -{ - LLSD info = FSDiscordConnect::instance().getInfo(); - - if (info.has("name")) - { - mAccountNameLabel->setText(info["name"].asString()); - } - - return false; -} - -void FSFloaterDiscord::showConnectButton() -{ - if (!mConnectButton->getVisible()) - { - mConnectButton->setVisible(true); - mDisconnectButton->setVisible(false); - } -} - -void FSFloaterDiscord::hideConnectButton() -{ - if (mConnectButton->getVisible()) - { - mConnectButton->setVisible(false); - mDisconnectButton->setVisible(true); - } -} - -void FSFloaterDiscord::showDisconnectedLayout() -{ - mAccountCaptionLabel->setText(getString("discord_disconnected")); - mAccountNameLabel->setText(std::string()); - showConnectButton(); -} - -void FSFloaterDiscord::showConnectedLayout() -{ - mAccountCaptionLabel->setText(getString("discord_connected")); - hideConnectButton(); -} - -void FSFloaterDiscord::onConnect() -{ - FSDiscordConnect::instance().checkConnectionToDiscord(true); -} - -void FSFloaterDiscord::onDisconnect() -{ - FSDiscordConnect::instance().disconnectFromDiscord(); -} - -FSFloaterDiscord::FSFloaterDiscord(const LLSD& key) : LLFloater(key), - mStatusText(nullptr) -{ - mCommitCallbackRegistrar.add("FSDiscord.Connect", boost::bind(&FSFloaterDiscord::onConnect, this)); - mCommitCallbackRegistrar.add("FSDiscord.Disconnect", boost::bind(&FSFloaterDiscord::onDisconnect, this)); - mCommitCallbackRegistrar.add("FSDiscord.Add", boost::bind(&FSFloaterDiscord::onAdd, this)); - mCommitCallbackRegistrar.add("FSDiscord.Rem", boost::bind(&FSFloaterDiscord::onRemove, this)); - - setVisibleCallback(boost::bind(&FSFloaterDiscord::onVisibilityChange, this, _2)); -} - -void FSFloaterDiscord::onAdd() -{ - std::string name = mBlacklistEntry->getText(); - LLStringUtil::trim(name); - if (name.empty()) - { - return; - } - std::string name_lower = boost::algorithm::to_lower_copy(name); - std::vector items = mBlacklistedNames->getAllData(); - std::vector::iterator itor; - for (itor = items.begin(); itor != items.end(); ++itor) - { - std::string tmp = (*itor)->getValue().asString(); - boost::algorithm::to_lower(tmp); - if (tmp == name_lower) - { - return; - } - } - mBlacklistedNames->addSimpleElement(name); - LLSD save; - for (itor = items.begin(); itor != items.end(); ++itor) - { - save.append((*itor)->getValue()); - } - save.append(name); - gSavedPerAccountSettings.setLLSD("FSBlacklistedRegionNames", save); -} - -void FSFloaterDiscord::onRemove() -{ - std::vector items = mBlacklistedNames->getAllData(); - std::vector::iterator itor; - LLSD save = LLSD::emptyArray(); - for (itor = items.begin(); itor != items.end(); ++itor) - { - if ((*itor)->getSelected()) - { - continue; - } - save.append((*itor)->getValue()); - } - mBlacklistedNames->deleteAllItems(); - for (LLSD::array_const_iterator iter = save.beginArray(); - iter != save.endArray(); - iter++) - { - mBlacklistedNames->addSimpleElement(iter->asString()); - } - gSavedPerAccountSettings.setLLSD("FSBlacklistedRegionNames", save); -} - -void FSFloaterDiscord::onClose(bool app_quitting) -{ - if (app_quitting) - { - std::vector items = mBlacklistedNames->getAllData(); - std::vector::iterator itor; - LLSD save = LLSD::emptyArray(); - for (itor = items.begin(); itor != items.end(); ++itor) - { - if ((*itor)->getSelected()) - { - continue; - } - save.append((*itor)->getValue()); - } - gSavedPerAccountSettings.setLLSD("FSBlacklistedRegionNames", save); - } - LLFloater::onClose(app_quitting); -} - -bool FSFloaterDiscord::postBuild() -{ - mAccountCaptionLabel = getChild("account_caption_label"); - mAccountNameLabel = getChild("account_name_label"); - mDisconnectButton = getChild("disconnect_btn"); - mConnectButton = getChild("connect_btn"); - mBlacklistedNames = getChild("blacklisted_names"); - mBlacklistEntry = getChild("blacklist_entry"); - - LLSD list = gSavedPerAccountSettings.getLLSD("FSBlacklistedRegionNames"); - for (LLSD::array_const_iterator iter = list.beginArray(); - iter != list.endArray(); - iter++) - { - mBlacklistedNames->addSimpleElement(iter->asString()); - } - - // Connection status widgets - mStatusText = getChild("connection_status_text"); - - return LLFloater::postBuild(); -} - -void FSFloaterDiscord::draw() -{ - if (mStatusText) - { - mStatusText->setVisible(false); - FSDiscordConnect::EConnectionState connection_state = FSDiscordConnect::instance().getConnectionState(); - std::string status_text; - - switch (connection_state) - { - case FSDiscordConnect::DISCORD_NOT_CONNECTED: - // No status displayed when first opening the panel and no connection done - break; - case FSDiscordConnect::DISCORD_CONNECTION_IN_PROGRESS: - // Connection loading indicator - mStatusText->setVisible(true); - status_text = getString("SocialDiscordConnecting"); - mStatusText->setValue(status_text); - break; - case FSDiscordConnect::DISCORD_CONNECTED: - // When successfully connected, no message is displayed - break; - case FSDiscordConnect::DISCORD_CONNECTION_FAILED: - // Error connecting to the service - mStatusText->setVisible(true); - status_text = getString("SocialDiscordErrorConnecting"); - mStatusText->setValue(status_text); - break; - case FSDiscordConnect::DISCORD_DISCONNECTING: - // Disconnecting loading indicator - mStatusText->setVisible(true); - status_text = getString("SocialDiscordDisconnecting"); - mStatusText->setValue(status_text); - break; - } - } - LLFloater::draw(); -} diff --git a/indra/newview/fsfloaterdiscord.h b/indra/newview/fsfloaterdiscord.h deleted file mode 100644 index 8110db2c..00000000 --- a/indra/newview/fsfloaterdiscord.h +++ /dev/null @@ -1,69 +0,0 @@ -/** -* @file llfloatertwitter.h -* @brief Header file for fsfloaterdiscord -* @author liny@pinkfox.xyz -* -* $LicenseInfo:firstyear=2013&license=viewerlgpl$ -* Phoenix Firestorm Viewer Source Code -* Copyright (C) 2019 Liny Odell @ Second Life -* -* This library is free software; you can redistribute it and/or -* modify it under the terms of the GNU Lesser General Public -* License as published by the Free Software Foundation; -* version 2.1 of the License only. -* -* This library is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -* Lesser General Public License for more details. -* -* You should have received a copy of the GNU Lesser General Public -* License along with this library; if not, write to the Free Software -* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -* -* The Phoenix Firestorm Project, Inc., 1831 Oakwood Drive, Fairmont, Minnesota 56031-3225 USA -* http://www.firestormviewer.org -*/ -#ifndef FS_FSFLOATERDISCORD_H -#define FS_FSFLOATERDISCORD_H - -#include "llfloater.h" - -class LLCheckBoxCtrl; -class LLComboBox; -class LLScrollListCtrl; -class LLLineEditor; -class LLTextBox; - -class FSFloaterDiscord : public LLFloater -{ -public: - FSFloaterDiscord(const LLSD& key); - bool postBuild(); - void draw(); - void onClose(bool app_quitting); - -private: - void onVisibilityChange(bool visible); - bool onDiscordConnectStateChange(const LLSD& data); - bool onDiscordConnectInfoChange(); - void onConnect(); - void onDisconnect(); - void onAdd(); - void onRemove(); - - void showConnectButton(); - void hideConnectButton(); - void showDisconnectedLayout(); - void showConnectedLayout(); - - LLTextBox* mAccountCaptionLabel; - LLTextBox* mAccountNameLabel; - LLButton* mConnectButton; - LLButton* mDisconnectButton; - LLScrollListCtrl* mBlacklistedNames; - LLLineEditor* mBlacklistEntry; - LLTextBox* mStatusText; -}; - -#endif // FS_FSFLOATERDISCORD_H diff --git a/indra/newview/fsversionvalues.h.in b/indra/newview/fsversionvalues.h.in deleted file mode 100755 index 359c3491..00000000 --- a/indra/newview/fsversionvalues.h.in +++ /dev/null @@ -1,50 +0,0 @@ -/** - * @file fsversionvalues.h.in - * @brief Routines to access the viewer version and build information - * @author Tonya Souther - * - * $LicenseInfo:firstyear=2013&license=fsviewerlgpl$ - * Phoenix Firestorm Viewer Source Code - * Copyright (C) 2013, The Phoenix Firestorm Project, Inc. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; - * version 2.1 of the License only. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * The Phoenix Firestorm Project, Inc., 1831 Oakwood Drive, Fairmont, Minnesota 56031-3225 USA - * http://www.phoenixviewer.com - * $/LicenseInfo$ - */ - -#ifndef FS_FSVERSIONVALUES_H -#define FS_FSVERSIONVALUES_H - -// Define the version and channel substitution macros here instead -// of via cmake compile-time defines in order to not force a rebuild -// of the entire newview directory with every Mercurial pull -// NOTE: This file should not be included anywhere in the main viewer code -// but llversioninfo.cpp. If you need the current viewer version in -// a different format than is already provided there, then add a -// function to that file and reference it, rather than building your -// own function elsewhere. -#define LL_VIEWER_CHANNEL "@VIEWER_CHANNEL@" -#define LL_VIEWER_VERSION_MAJOR @VIEWER_VERSION_MAJOR@ -#define LL_VIEWER_VERSION_MINOR @VIEWER_VERSION_MINOR@ -#define LL_VIEWER_VERSION_PATCH @VIEWER_VERSION_PATCH@ -#define LL_VIEWER_VERSION_BUILD @VIEWER_VERSION_REVISION@ -const std::string LL_VIEWER_VERSION_GITHASH {@VIEWER_VERSION_GITHASH@}; -#define LLBUILD_CONFIG "@CMAKE_BUILD_TYPE@" - -// - -#endif diff --git a/indra/newview/icons/puma_128.png b/indra/newview/icons/puma_128.png new file mode 100644 index 00000000..43d5f726 Binary files /dev/null and b/indra/newview/icons/puma_128.png differ diff --git a/indra/newview/icons/puma_16.png b/indra/newview/icons/puma_16.png new file mode 100644 index 00000000..64920bf0 Binary files /dev/null and b/indra/newview/icons/puma_16.png differ diff --git a/indra/newview/icons/puma_256.bmp b/indra/newview/icons/puma_256.bmp new file mode 100644 index 00000000..4bca35fc Binary files /dev/null and b/indra/newview/icons/puma_256.bmp differ diff --git a/indra/newview/icons/puma_256.png b/indra/newview/icons/puma_256.png new file mode 100644 index 00000000..cef47529 Binary files /dev/null and b/indra/newview/icons/puma_256.png differ diff --git a/indra/newview/icons/puma_32.png b/indra/newview/icons/puma_32.png new file mode 100644 index 00000000..9ac4c5b5 Binary files /dev/null and b/indra/newview/icons/puma_32.png differ diff --git a/indra/newview/icons/puma_48.png b/indra/newview/icons/puma_48.png new file mode 100644 index 00000000..4dcd4a3f Binary files /dev/null and b/indra/newview/icons/puma_48.png differ diff --git a/indra/newview/icons/puma_512.png b/indra/newview/icons/puma_512.png new file mode 100644 index 00000000..232aac23 Binary files /dev/null and b/indra/newview/icons/puma_512.png differ diff --git a/indra/newview/icons/puma_icon.icns b/indra/newview/icons/puma_icon.icns new file mode 100644 index 00000000..fb488528 Binary files /dev/null and b/indra/newview/icons/puma_icon.icns differ diff --git a/indra/newview/icons/puma_icon.ico b/indra/newview/icons/puma_icon.ico new file mode 100644 index 00000000..f1a3ca6a Binary files /dev/null and b/indra/newview/icons/puma_icon.ico differ diff --git a/indra/newview/llappviewerlinux.cpp b/indra/newview/llappviewerlinux.cpp index 39af3f99..c52850ad 100644 --- a/indra/newview/llappviewerlinux.cpp +++ b/indra/newview/llappviewerlinux.cpp @@ -72,7 +72,7 @@ extern "C" #endif #include "boost/json.hpp" -#include "fsversionvalues.h" +#include "pmversionvalues.h" #define VIEWERAPI_SERVICE "com.secondlife.ViewerAppAPIService" #define VIEWERAPI_PATH "/com/secondlife/ViewerAppAPI" diff --git a/indra/newview/llpanelprofile.cpp b/indra/newview/llpanelprofile.cpp index 8979b419..a9c4f5ff 100644 --- a/indra/newview/llpanelprofile.cpp +++ b/indra/newview/llpanelprofile.cpp @@ -1391,63 +1391,6 @@ void LLPanelProfileSecondLife::fillAccountStatus(const LLAvatarData* avatar_data args["[ACCTTYPE]"] = LLAvatarPropertiesProcessor::accountType(avatar_data); args["[PAYMENTINFO]"] = LLAvatarPropertiesProcessor::paymentInfo(avatar_data); - // FSData support - args["[FIRESTORM]"] = ""; - args["[FSSUPP]"] = ""; - args["[FSDEV]"] = ""; - args["[FSQA]"] = ""; - args["[FSGW]"] = ""; - S32 flags = FSData::getInstance()->getAgentFlags(avatar_data->avatar_id); - if (flags != -1) - { - bool separator = false; - std::string text; - if (flags & (FSData::DEVELOPER | FSData::SUPPORT | FSData::QA | FSData::GATEWAY)) - { - args["[FIRESTORM]"] = LLTrans::getString("APP_NAME"); - } - - if (flags & FSData::DEVELOPER) - { - text = getString("FSDev"); - args["[FSDEV]"] = text; - separator = true; - } - - if (flags & FSData::SUPPORT) - { - text = getString("FSSupp"); - if (separator) - { - text = " /" + text; - } - args["[FSSUPP]"] = text; - separator = true; - } - - if (flags & FSData::QA) - { - text = getString("FSQualityAssurance"); - if (separator) - { - text = " /" + text; - } - args["[FSQA]"] = text; - separator = true; - } - - if (flags & FSData::GATEWAY) - { - text = getString("FSGW"); - if (separator) - { - text = " /" + text; - } - args["[FSGW]"] = text; - } - } - // - std::string caption_text = getString("CaptionTextAcctInfo", args); getChild("account_info")->setValue(caption_text); diff --git a/indra/newview/llversioninfo.cpp b/indra/newview/llversioninfo.cpp index 3614a6b7..8372102b 100644 --- a/indra/newview/llversioninfo.cpp +++ b/indra/newview/llversioninfo.cpp @@ -34,7 +34,7 @@ // Use configured file instead of compile time definitions to avoid // rebuilding the world with every Mercurial pull -#include "fsversionvalues.h" +#include "pmversionvalues.h" #if ! defined(LL_VIEWER_CHANNEL) \ || ! defined(LL_VIEWER_VERSION_MAJOR) \ diff --git a/indra/newview/llviewerfloaterreg.cpp b/indra/newview/llviewerfloaterreg.cpp index 06f68e94..0e22e536 100644 --- a/indra/newview/llviewerfloaterreg.cpp +++ b/indra/newview/llviewerfloaterreg.cpp @@ -199,7 +199,6 @@ #include "fsfloateravatarrendersettings.h" #include "fsfloatercontacts.h" #include "fsfloatercontactsetconfiguration.h" -#include "fsfloaterdiscord.h" #include "fsfloaterexport.h" #include "fsfloaterblocklist.h" #include "fsfloatergroup.h" @@ -637,7 +636,6 @@ void LLViewerFloaterReg::registerFloaters() LLFloaterReg::add("fs_blocklist", "floater_fs_blocklist.xml", (LLFloaterBuildFunc)&LLFloaterReg::build); LLFloaterReg::add("fs_add_contact", "floater_fs_contact_add.xml", (LLFloaterBuildFunc)&LLFloaterReg::build); LLFloaterReg::add("fs_contact_set_config", "floater_fs_contact_set_configuration.xml", (LLFloaterBuildFunc)&LLFloaterReg::build); - LLFloaterReg::add("fs_discord", "floater_fs_discord.xml", (LLFloaterBuildFunc)&LLFloaterReg::build); LLFloaterReg::add("fs_group", "floater_fs_group.xml",&LLFloaterReg::build); LLFloaterReg::add("fs_group_titles", "floater_fs_group_titles.xml", (LLFloaterBuildFunc)&LLFloaterReg::build); LLFloaterReg::add("fs_export", "floater_fs_export.xml", (LLFloaterBuildFunc)&LLFloaterReg::build); diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index 887f97f5..d8999d2d 100644 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -134,8 +134,6 @@ #include "llsidepanelappearance.h" #include "fsavatarrenderpersistence.h" -#include "fsdiscordconnect.h" // tapping a place that happens on landing in world to start up discord - extern F32 SPEED_ADJUST_MAX; extern F32 SPEED_ADJUST_MAX_SEC; extern F32 ANIM_SPEED_MAX; @@ -3656,8 +3654,6 @@ void LLVOAvatar::idleUpdateLoadingEffect() // Animation Overrider AOEngine::instance().onLoginComplete(); - // tapping a place that happens on landing in world to start up discord - FSDiscordConnect::instance().checkConnectionToDiscord(gSavedPerAccountSettings.getBOOL("FSEnableDiscordIntegration")); } else { diff --git a/indra/newview/pm_viewer_manifest.py b/indra/newview/pm_viewer_manifest.py index 68046a04..6c01edd2 100644 --- a/indra/newview/pm_viewer_manifest.py +++ b/indra/newview/pm_viewer_manifest.py @@ -128,7 +128,7 @@ class PMViewerManifest: self.pm_save_symbols("linux") - def fs_linux_tar_excludes(self): + def pm_linux_tar_excludes(self): installer_name_components = ['Puma',self.app_name(),self.args.get('arch'),'.'.join(self.args['version'])] installer_name = "_".join(installer_name_components) return "--exclude=%s/bin/.debug" % installer_name @@ -139,8 +139,8 @@ class PMViewerManifest: pdbName = "puma-bin.pdb" try: subprocess.check_call( [ "pdbcopy.exe" , - self.args['configuration'] + "\\firestorm-bin.pdb", - self.args['configuration'] + "\\firestorm-bin-public.pdb", + self.args['configuration'] + "\\puma-bin.pdb", + self.args['configuration'] + "\\puma-bin-public.pdb", "-p" ], stderr=subprocess.PIPE,stdout=subprocess.PIPE ) pdbName = "puma-bin-public.pdb" diff --git a/indra/newview/pmversionvalues.h.in b/indra/newview/pmversionvalues.h.in index 9f843977..f64bec89 100755 --- a/indra/newview/pmversionvalues.h.in +++ b/indra/newview/pmversionvalues.h.in @@ -26,8 +26,8 @@ * $/LicenseInfo$ */ -#ifndef PM_FSVERSIONVALUES_H -#define PM_FSVERSIONVALUES_H +#ifndef PM_VERSIONVALUES_H +#define PM_VERSIONVALUES_H // Define the version and channel substitution macros here instead // of via cmake compile-time defines in order to not force a rebuild diff --git a/indra/newview/skins/default/textures/textures.xml b/indra/newview/skins/default/textures/textures.xml index 5cade89f..56d38444 100644 --- a/indra/newview/skins/default/textures/textures.xml +++ b/indra/newview/skins/default/textures/textures.xml @@ -1136,8 +1136,6 @@ with the same filename but different name - - diff --git a/indra/newview/skins/default/xui/az/floater_fs_discord.xml b/indra/newview/skins/default/xui/az/floater_fs_discord.xml deleted file mode 100644 index c4bb23c9..00000000 --- a/indra/newview/skins/default/xui/az/floater_fs_discord.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - Siz Discord-a qoşulmusunuz: - Discord-a qoşulmayıb. - Discord-a qoşulur... - Discord-a qoşulma problemi - Discord ilə əlaqə kəsilir... - - Discord-a qoşulmayıb. - - - - - - - - Share name of regions with following content rating to Discord: - - - - - - - - - Don't share region names to Discord if they are listed below: - - - - - - - - - Loading... - - diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml index 53400635..8b1fe2a6 100644 --- a/indra/newview/skins/default/xui/en/menu_viewer.xml +++ b/indra/newview/skins/default/xui/en/menu_viewer.xml @@ -842,13 +842,6 @@ - - - [DISPLAY_NAME] - - - - Capture a 360° equirectangular imageStop Animations Stop Animating my Avatar - Discord - Discord - Retain% Detail diff --git a/indra/newview/skins/default/xui/es/panel_profile_secondlife.xml b/indra/newview/skins/default/xui/es/panel_profile_secondlife.xml index 755fe46f..636e8111 100644 --- a/indra/newview/skins/default/xui/es/panel_profile_secondlife.xml +++ b/indra/newview/skins/default/xui/es/panel_profile_secondlife.xml @@ -21,10 +21,6 @@ [DISPLAY_NAME] - - - - - - - - Share name of regions with following content rating to Discord: - - - - - - - - - Don't share region names to Discord if they are listed below: - - - - - - - - - Loading... - - diff --git a/indra/newview/skins/puma/xui/en/menu_viewer.xml b/indra/newview/skins/puma/xui/en/menu_viewer.xml index 7a06b916..08331b34 100644 --- a/indra/newview/skins/puma/xui/en/menu_viewer.xml +++ b/indra/newview/skins/puma/xui/en/menu_viewer.xml @@ -852,13 +852,6 @@ - - - [DISPLAY_NAME] - - - - Capture a 360° equirectangular imageStop Animations Stop Animating my Avatar - Discord - Discord - Retain% Detail diff --git a/indra/newview/skins/puma/xui/es/panel_profile_secondlife.xml b/indra/newview/skins/puma/xui/es/panel_profile_secondlife.xml index 755fe46f..636e8111 100644 --- a/indra/newview/skins/puma/xui/es/panel_profile_secondlife.xml +++ b/indra/newview/skins/puma/xui/es/panel_profile_secondlife.xml @@ -21,10 +21,6 @@ [DISPLAY_NAME] - - - -