summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
authorAndrey Lihatskiy <alihatskiy@productengine.com>2024-07-29 14:32:37 +0300
committerGitHub <noreply@github.com>2024-07-29 14:32:37 +0300
commit2ee039c736f64c91bb4f16e403360cddb0089707 (patch)
treee565fac793bebb6d97fb6f2ec35bc484615a749f /indra/newview
parente687250b90e63e71c9115ed97c3efd60ceefbcb6 (diff)
parent3e322df4fb71cbeff27aab85bb48c7da595b548c (diff)
Merge branch 'develop' into marchcat/b-develop
Diffstat (limited to 'indra/newview')
-rw-r--r--indra/newview/CMakeLists.txt2
-rw-r--r--indra/newview/app_settings/settings.xml11
-rw-r--r--indra/newview/llappviewerwin32.cpp2
-rw-r--r--indra/newview/llhudeffectlookat.cpp21
-rw-r--r--indra/newview/llpanelprofile.cpp48
-rw-r--r--indra/newview/lltranslate.cpp16
-rw-r--r--indra/newview/llvoicewebrtc.cpp2
-rw-r--r--indra/newview/llweb.cpp1
-rw-r--r--indra/newview/skins/default/xui/en/menu_viewer.xml10
-rwxr-xr-xindra/newview/viewer_manifest.py4
10 files changed, 74 insertions, 43 deletions
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index ee4968d1db..e67286af3d 100644
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -44,7 +44,6 @@ include(ViewerManager)
include(VisualLeakDetector)
include(VulkanGltf)
include(ZLIBNG)
-include(URIPARSER)
include(LLPrimitive)
if (NOT HAVOK_TPV)
@@ -1730,7 +1729,6 @@ if (WINDOWS)
${CMAKE_SOURCE_DIR}/../scripts/messages/message_template.msg
${SHARED_LIB_STAGING_DIR}/openjp2.dll
${SHARED_LIB_STAGING_DIR}/libhunspell.dll
- ${SHARED_LIB_STAGING_DIR}/uriparser.dll
${SHARED_LIB_STAGING_DIR}/llwebrtc.dll
#${SHARED_LIB_STAGING_DIR}/${LL_INTDIR}/SLVoice.exe
#${SHARED_LIB_STAGING_DIR}/${LL_INTDIR}/libsndfile-1.dll
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index cf9aef986f..092cd5b87b 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -14230,6 +14230,17 @@
<key>Value</key>
<integer>0</integer>
</map>
+ <key>DisableLookAtAnimation</key>
+ <map>
+ <key>Comment</key>
+ <string>Avatar follows cursor with avatars eyes, when disabled, avatar will look forward</string>
+ <key>Persist</key>
+ <integer>0</integer>
+ <key>Type</key>
+ <string>Boolean</string>
+ <key>Value</key>
+ <integer>0</integer>
+ </map>
<key>WebProfileFloaterRect</key>
<map>
<key>Comment</key>
diff --git a/indra/newview/llappviewerwin32.cpp b/indra/newview/llappviewerwin32.cpp
index 625a7b7fba..ad817d5747 100644
--- a/indra/newview/llappviewerwin32.cpp
+++ b/indra/newview/llappviewerwin32.cpp
@@ -683,7 +683,7 @@ bool LLAppViewerWin32::init()
}
else
{
- boost::json::error_code ec;
+ boost::system::error_code ec;
boost::json::value build_data = boost::json::parse(inf, ec);
if(ec.failed())
{
diff --git a/indra/newview/llhudeffectlookat.cpp b/indra/newview/llhudeffectlookat.cpp
index c8b7e00776..d0d2ee191a 100644
--- a/indra/newview/llhudeffectlookat.cpp
+++ b/indra/newview/llhudeffectlookat.cpp
@@ -36,6 +36,7 @@
#include "llvoavatar.h"
#include "lldrawable.h"
#include "llviewerobjectlist.h"
+#include "llviewercontrol.h"
#include "llrendersphere.h"
#include "llselectmgr.h"
#include "llglheaders.h"
@@ -561,8 +562,16 @@ void LLHUDEffectLookAt::update()
{
if (calcTargetPosition())
{
+ static LLCachedControl<bool> disable_look_at(gSavedSettings, "DisableLookAtAnimation", true);
LLMotion* head_motion = ((LLVOAvatar*)(LLViewerObject*)mSourceObject)->findMotion(ANIM_AGENT_HEAD_ROT);
- if (!head_motion || head_motion->isStopped())
+ if (disable_look_at())
+ {
+ if (head_motion)
+ {
+ ((LLVOAvatar*)(LLViewerObject*)mSourceObject)->stopMotion(ANIM_AGENT_HEAD_ROT);
+ }
+ }
+ else if (!head_motion || head_motion->isStopped())
{
((LLVOAvatar*)(LLViewerObject*)mSourceObject)->startMotion(ANIM_AGENT_HEAD_ROT);
}
@@ -665,7 +674,15 @@ bool LLHUDEffectLookAt::calcTargetPosition()
if (!mTargetPos.isFinite())
return false;
- source_avatar->setAnimationData("LookAtPoint", (void *)&mTargetPos);
+ static LLCachedControl<bool> disable_look_at(gSavedSettings, "DisableLookAtAnimation", true);
+ if (disable_look_at())
+ {
+ source_avatar->removeAnimationData("LookAtPoint");
+ }
+ else
+ {
+ source_avatar->setAnimationData("LookAtPoint", (void*)&mTargetPos);
+ }
return true;
}
diff --git a/indra/newview/llpanelprofile.cpp b/indra/newview/llpanelprofile.cpp
index fcf0757073..8f44b28ebe 100644
--- a/indra/newview/llpanelprofile.cpp
+++ b/indra/newview/llpanelprofile.cpp
@@ -1020,7 +1020,7 @@ void LLPanelProfileSecondLife::fillCommonData(const LLAvatarData* avatar_data)
setDescriptionText(avatar_data->about_text);
- mSecondLifePic->setValue(avatar_data->image_id);
+ mSecondLifePic->setValue(avatar_data->image_id);
if (getSelfProfile())
{
@@ -1168,10 +1168,10 @@ void LLPanelProfileSecondLife::fillAgeData(const LLAvatarData* avatar_data)
}
else
{
- std::string register_date = getString("age_format");
- LLSD args_age;
+ std::string register_date = getString("age_format");
+ LLSD args_age;
args_age["[AGE]"] = LLDateUtil::ageFromDate(avatar_data->born_on, LLDate::now());
- LLStringUtil::format(register_date, args_age);
+ LLStringUtil::format(register_date, args_age);
userAgeCtrl->setValue(register_date);
}
@@ -1614,12 +1614,12 @@ void LLPanelProfileSecondLife::onShowInSearchCallback()
if (value == mAllowPublish)
return;
- mAllowPublish = value;
+ mAllowPublish = value;
saveAgentUserInfoCoro("allow_publish", value);
- }
+}
void LLPanelProfileSecondLife::onHideAgeCallback()
- {
+{
bool value = mHideAgeCombo->getValue().asInteger();
if (value == mHideAge)
return;
@@ -1768,35 +1768,35 @@ void LLPanelProfileSecondLife::onCommitProfileImage(const LLUUID& id)
if (mSecondLifePic->getImageAssetId() == id)
return;
- std::function<void(bool)> callback = [id](bool result)
+ std::function<void(bool)> callback = [id](bool result)
+ {
+ if (result)
{
- if (result)
- {
- LLAvatarIconIDCache::getInstance()->add(gAgentID, id);
+ LLAvatarIconIDCache::getInstance()->add(gAgentID, id);
// Should trigger callbacks in icon controls (or request Legacy)
- LLAvatarPropertiesProcessor::getInstance()->sendAvatarPropertiesRequest(gAgentID);
- }
- };
+ LLAvatarPropertiesProcessor::getInstance()->sendAvatarPropertiesRequest(gAgentID);
+ }
+ };
if (!saveAgentUserInfoCoro("sl_image_id", id, callback))
return;
mSecondLifePic->setValue(id);
- LLFloater *floater = mFloaterProfileTextureHandle.get();
- if (floater)
- {
- LLFloaterProfileTexture * texture_view = dynamic_cast<LLFloaterProfileTexture*>(floater);
+ LLFloater *floater = mFloaterProfileTextureHandle.get();
+ if (floater)
+ {
+ LLFloaterProfileTexture * texture_view = dynamic_cast<LLFloaterProfileTexture*>(floater);
if (id == LLUUID::null)
- {
- texture_view->resetAsset();
- }
- else
- {
+ {
+ texture_view->resetAsset();
+ }
+ else
+ {
texture_view->loadAsset(id);
- }
}
}
+}
//////////////////////////////////////////////////////////////////////////
// LLPanelProfileWeb
diff --git a/indra/newview/lltranslate.cpp b/indra/newview/lltranslate.cpp
index b6fbcaa330..72e30bd765 100644
--- a/indra/newview/lltranslate.cpp
+++ b/indra/newview/lltranslate.cpp
@@ -398,7 +398,7 @@ bool LLGoogleTranslationHandler::parseResponse(
{
const std::string& text = !body.empty() ? body : http_response["error_body"].asStringRef();
- boost::json::error_code ec;
+ boost::system::error_code ec;
boost::json::value root = boost::json::parse(text, ec);
if (ec.failed())
{
@@ -431,7 +431,7 @@ void LLGoogleTranslationHandler::parseErrorResponse(
int& status,
std::string& err_msg)
{
- boost::json::error_code ec;
+ boost::system::error_code ec;
auto message = root.find_pointer("/data/message", ec);
auto code = root.find_pointer("/data/code", ec);
if (!message || !code)
@@ -456,7 +456,7 @@ bool LLGoogleTranslationHandler::parseTranslation(
std::string& translation,
std::string& detected_lang)
{
- boost::json::error_code ec;
+ boost::system::error_code ec;
auto translated_text = root.find_pointer("/data/translations/0/translatedText", ec);
if (!translated_text) return false;
@@ -656,7 +656,7 @@ bool LLAzureTranslationHandler::checkVerificationResponse(
// Expected: "{\"error\":{\"code\":400000,\"message\":\"One of the request inputs is not valid.\"}}"
// But for now just verify response is a valid json
- boost::json::error_code ec;
+ boost::system::error_code ec;
boost::json::value root = boost::json::parse(response["error_body"].asString(), ec);
if (ec.failed())
{
@@ -686,7 +686,7 @@ bool LLAzureTranslationHandler::parseResponse(
//Example:
// "[{\"detectedLanguage\":{\"language\":\"en\",\"score\":1.0},\"translations\":[{\"text\":\"Hello, what is your name?\",\"to\":\"en\"}]}]"
- boost::json::error_code ec;
+ boost::system::error_code ec;
boost::json::value root = boost::json::parse(body, ec);
if (ec.failed())
{
@@ -726,7 +726,7 @@ std::string LLAzureTranslationHandler::parseErrorResponse(
// Expected: "{\"error\":{\"code\":400000,\"message\":\"One of the request inputs is not valid.\"}}"
// But for now just verify response is a valid json with an error
- boost::json::error_code ec;
+ boost::system::error_code ec;
boost::json::value root = boost::json::parse(body, ec);
if (ec.failed())
{
@@ -956,7 +956,7 @@ bool LLDeepLTranslationHandler::parseResponse(
//Example:
// "{\"translations\":[{\"detected_source_language\":\"EN\",\"text\":\"test\"}]}"
- boost::json::error_code ec;
+ boost::system::error_code ec;
boost::json::value root = boost::json::parse(body, ec);
if (ec.failed())
{
@@ -1004,7 +1004,7 @@ std::string LLDeepLTranslationHandler::parseErrorResponse(
const std::string& body)
{
// Example: "{\"message\":\"One of the request inputs is not valid.\"}"
- boost::json::error_code ec;
+ boost::system::error_code ec;
boost::json::value root = boost::json::parse(body, ec);
if (ec.failed())
{
diff --git a/indra/newview/llvoicewebrtc.cpp b/indra/newview/llvoicewebrtc.cpp
index 123bd5e6ec..bd0b0eaff3 100644
--- a/indra/newview/llvoicewebrtc.cpp
+++ b/indra/newview/llvoicewebrtc.cpp
@@ -2789,7 +2789,7 @@ void LLVoiceWebRTCConnection::OnDataReceivedImpl(const std::string &data, bool b
return;
}
- boost::json::error_code ec;
+ boost::system::error_code ec;
boost::json::value voice_data_parsed = boost::json::parse(data, ec);
if (!ec) // don't collect comments
{
diff --git a/indra/newview/llweb.cpp b/indra/newview/llweb.cpp
index d8852de954..a319aa00bc 100644
--- a/indra/newview/llweb.cpp
+++ b/indra/newview/llweb.cpp
@@ -50,7 +50,6 @@
#include "llviewerwindow.h"
#include "llnotificationsutil.h"
#include "lluriparser.h"
-#include "uriparser/Uri.h"
bool on_load_url_external_response(const LLSD& notification, const LLSD& response, bool async );
diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml
index e17dbbeb2f..e9ce774e8c 100644
--- a/indra/newview/skins/default/xui/en/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/en/menu_viewer.xml
@@ -3967,6 +3967,16 @@ function="World.EnvPreset"
parameter="AllowSelectAvatar" />
</menu_item_check>
<menu_item_check
+ label="Disable Look At Animation"
+ name="Disable Look At Animation">
+ <menu_item_check.on_check
+ function="CheckControl"
+ parameter="DisableLookAtAnimation" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="DisableLookAtAnimation" />
+ </menu_item_check>
+ <menu_item_check
label="Render Only Friends"
name="Render Only Friends">
<menu_item_check.on_check
diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py
index 876fbb3734..156c9aaf87 100755
--- a/indra/newview/viewer_manifest.py
+++ b/indra/newview/viewer_manifest.py
@@ -563,9 +563,6 @@ class Windows_x86_64_Manifest(ViewerManifest):
# For textures
self.path("openjp2.dll")
- # Uriparser
- self.path("uriparser.dll")
-
# These need to be installed as a SxS assembly, currently a 'private' assembly.
# See http://msdn.microsoft.com/en-us/library/ms235291(VS.80).aspx
self.path("msvcp140.dll")
@@ -1024,7 +1021,6 @@ class Darwin_x86_64_Manifest(ViewerManifest):
# libnghttp2.major.dylib, which is a symlink to
# libnghttp2.version.dylib. Get all of them.
"libnghttp2.*dylib",
- "liburiparser.*dylib",
):
dylibs += path_optional(os.path.join(relpkgdir, libfile), libfile)