summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrey Lihatskiy <alihatskiy@productengine.com>2025-05-28 21:39:43 +0300
committerGitHub <noreply@github.com>2025-05-28 21:39:43 +0300
commit3375fb1348de8768ea3cac4b06cd4fdd4fbd13a9 (patch)
tree0b5b5eae982fd99ccd3175708f683420613e995b
parent0dbf2b40f6f30728858fadb6390c465dc36669aa (diff)
parentde8275b14b30bf754cdba1da867cb2e6c2783639 (diff)
Merge pull request #4182 from secondlife/main
GLTF Mesh Import: Post-release merge
-rw-r--r--indra/llui/lltextbase.cpp2
-rw-r--r--indra/newview/icons/release/secondlife.icnsbin113020 -> 302511 bytes
-rw-r--r--indra/newview/icons/release/secondlife.iconset/icon_128x128.pngbin0 -> 8653 bytes
-rw-r--r--indra/newview/icons/release/secondlife.iconset/icon_128x128@2x.pngbin0 -> 19795 bytes
-rw-r--r--indra/newview/icons/release/secondlife.iconset/icon_16x16.pngbin0 -> 681 bytes
-rw-r--r--indra/newview/icons/release/secondlife.iconset/icon_16x16@2x.pngbin0 -> 1508 bytes
-rw-r--r--indra/newview/icons/release/secondlife.iconset/icon_256x256.pngbin0 -> 19795 bytes
-rw-r--r--indra/newview/icons/release/secondlife.iconset/icon_256x256@2x.pngbin0 -> 50874 bytes
-rw-r--r--indra/newview/icons/release/secondlife.iconset/icon_32x32.pngbin0 -> 1508 bytes
-rw-r--r--indra/newview/icons/release/secondlife.iconset/icon_32x32@2x.pngbin0 -> 3697 bytes
-rw-r--r--indra/newview/icons/release/secondlife.iconset/icon_512x512.pngbin0 -> 50874 bytes
-rw-r--r--indra/newview/icons/release/secondlife.iconset/icon_512x512@2x.pngbin0 -> 105494 bytes
-rw-r--r--indra/newview/icons/release/secondlife_1024.pngbin0 -> 105494 bytes
-rw-r--r--indra/newview/icons/release/secondlife_128.pngbin5320 -> 0 bytes
-rw-r--r--indra/newview/icons/release/secondlife_16.pngbin669 -> 0 bytes
-rw-r--r--indra/newview/icons/release/secondlife_256.pngbin11572 -> 0 bytes
-rw-r--r--indra/newview/icons/release/secondlife_32.pngbin1283 -> 0 bytes
-rw-r--r--indra/newview/icons/release/secondlife_48.pngbin1958 -> 0 bytes
-rw-r--r--indra/newview/lllogininstance.cpp27
-rw-r--r--indra/newview/lllogininstance.h2
-rw-r--r--indra/newview/lloutfitgallery.cpp19
-rw-r--r--indra/newview/lloutfitgallery.h3
-rw-r--r--indra/newview/llstartup.cpp20
-rw-r--r--indra/newview/llvoicewebrtc.cpp32
-rw-r--r--indra/newview/tests/lllogininstance_test.cpp1
25 files changed, 51 insertions, 55 deletions
diff --git a/indra/llui/lltextbase.cpp b/indra/llui/lltextbase.cpp
index c1b01f420b..778b253c3c 100644
--- a/indra/llui/lltextbase.cpp
+++ b/indra/llui/lltextbase.cpp
@@ -483,7 +483,7 @@ std::vector<std::pair<LLRect, LLUIColor>> LLTextBase::getHighlightedBgRects()
F32 left_precise = (F32)line_iter->mRect.mLeft;
F32 right_precise = (F32)line_iter->mRect.mLeft;
- for (; segment_iter != mSegments.end(); ++segment_iter)
+ for (; segment_iter != mSegments.end(); ++segment_iter, segment_offset = 0)
{
LLTextSegmentPtr segmentp = *segment_iter;
diff --git a/indra/newview/icons/release/secondlife.icns b/indra/newview/icons/release/secondlife.icns
index a30b51b67a..00d9867814 100644
--- a/indra/newview/icons/release/secondlife.icns
+++ b/indra/newview/icons/release/secondlife.icns
Binary files differ
diff --git a/indra/newview/icons/release/secondlife.iconset/icon_128x128.png b/indra/newview/icons/release/secondlife.iconset/icon_128x128.png
new file mode 100644
index 0000000000..4c519db265
--- /dev/null
+++ b/indra/newview/icons/release/secondlife.iconset/icon_128x128.png
Binary files differ
diff --git a/indra/newview/icons/release/secondlife.iconset/icon_128x128@2x.png b/indra/newview/icons/release/secondlife.iconset/icon_128x128@2x.png
new file mode 100644
index 0000000000..2a3a0092b2
--- /dev/null
+++ b/indra/newview/icons/release/secondlife.iconset/icon_128x128@2x.png
Binary files differ
diff --git a/indra/newview/icons/release/secondlife.iconset/icon_16x16.png b/indra/newview/icons/release/secondlife.iconset/icon_16x16.png
new file mode 100644
index 0000000000..fda2f276ee
--- /dev/null
+++ b/indra/newview/icons/release/secondlife.iconset/icon_16x16.png
Binary files differ
diff --git a/indra/newview/icons/release/secondlife.iconset/icon_16x16@2x.png b/indra/newview/icons/release/secondlife.iconset/icon_16x16@2x.png
new file mode 100644
index 0000000000..aa4a74f204
--- /dev/null
+++ b/indra/newview/icons/release/secondlife.iconset/icon_16x16@2x.png
Binary files differ
diff --git a/indra/newview/icons/release/secondlife.iconset/icon_256x256.png b/indra/newview/icons/release/secondlife.iconset/icon_256x256.png
new file mode 100644
index 0000000000..2a3a0092b2
--- /dev/null
+++ b/indra/newview/icons/release/secondlife.iconset/icon_256x256.png
Binary files differ
diff --git a/indra/newview/icons/release/secondlife.iconset/icon_256x256@2x.png b/indra/newview/icons/release/secondlife.iconset/icon_256x256@2x.png
new file mode 100644
index 0000000000..4c28add76c
--- /dev/null
+++ b/indra/newview/icons/release/secondlife.iconset/icon_256x256@2x.png
Binary files differ
diff --git a/indra/newview/icons/release/secondlife.iconset/icon_32x32.png b/indra/newview/icons/release/secondlife.iconset/icon_32x32.png
new file mode 100644
index 0000000000..aa4a74f204
--- /dev/null
+++ b/indra/newview/icons/release/secondlife.iconset/icon_32x32.png
Binary files differ
diff --git a/indra/newview/icons/release/secondlife.iconset/icon_32x32@2x.png b/indra/newview/icons/release/secondlife.iconset/icon_32x32@2x.png
new file mode 100644
index 0000000000..23a36f66cb
--- /dev/null
+++ b/indra/newview/icons/release/secondlife.iconset/icon_32x32@2x.png
Binary files differ
diff --git a/indra/newview/icons/release/secondlife.iconset/icon_512x512.png b/indra/newview/icons/release/secondlife.iconset/icon_512x512.png
new file mode 100644
index 0000000000..4c28add76c
--- /dev/null
+++ b/indra/newview/icons/release/secondlife.iconset/icon_512x512.png
Binary files differ
diff --git a/indra/newview/icons/release/secondlife.iconset/icon_512x512@2x.png b/indra/newview/icons/release/secondlife.iconset/icon_512x512@2x.png
new file mode 100644
index 0000000000..a53a6697f1
--- /dev/null
+++ b/indra/newview/icons/release/secondlife.iconset/icon_512x512@2x.png
Binary files differ
diff --git a/indra/newview/icons/release/secondlife_1024.png b/indra/newview/icons/release/secondlife_1024.png
new file mode 100644
index 0000000000..a53a6697f1
--- /dev/null
+++ b/indra/newview/icons/release/secondlife_1024.png
Binary files differ
diff --git a/indra/newview/icons/release/secondlife_128.png b/indra/newview/icons/release/secondlife_128.png
deleted file mode 100644
index 2f21c1c7fc..0000000000
--- a/indra/newview/icons/release/secondlife_128.png
+++ /dev/null
Binary files differ
diff --git a/indra/newview/icons/release/secondlife_16.png b/indra/newview/icons/release/secondlife_16.png
deleted file mode 100644
index 68f1427309..0000000000
--- a/indra/newview/icons/release/secondlife_16.png
+++ /dev/null
Binary files differ
diff --git a/indra/newview/icons/release/secondlife_256.png b/indra/newview/icons/release/secondlife_256.png
deleted file mode 100644
index 8f324910e7..0000000000
--- a/indra/newview/icons/release/secondlife_256.png
+++ /dev/null
Binary files differ
diff --git a/indra/newview/icons/release/secondlife_32.png b/indra/newview/icons/release/secondlife_32.png
deleted file mode 100644
index 2b7cdef03d..0000000000
--- a/indra/newview/icons/release/secondlife_32.png
+++ /dev/null
Binary files differ
diff --git a/indra/newview/icons/release/secondlife_48.png b/indra/newview/icons/release/secondlife_48.png
deleted file mode 100644
index c2ef372dd7..0000000000
--- a/indra/newview/icons/release/secondlife_48.png
+++ /dev/null
Binary files differ
diff --git a/indra/newview/lllogininstance.cpp b/indra/newview/lllogininstance.cpp
index cbc3744aa3..4bffe7feac 100644
--- a/indra/newview/lllogininstance.cpp
+++ b/indra/newview/lllogininstance.cpp
@@ -329,6 +329,15 @@ void LLLoginInstance::handleLoginFailure(const LLSD& event)
LL_DEBUGS("LLLogin") << "reason " << reason_response
<< " message " << message_response
<< LL_ENDL;
+
+ if (response.has("mfa_hash"))
+ {
+ mRequestData["params"]["mfa_hash"] = response["mfa_hash"];
+ mRequestData["params"]["token"] = "";
+
+ saveMFAHash(response);
+ }
+
// For the cases of critical message or TOS agreement,
// start the TOS dialog. The dialog response will be handled
// by the LLLoginInstance::handleTOSResponse() callback.
@@ -593,6 +602,24 @@ bool LLLoginInstance::handleMFAChallenge(LLSD const & notif, LLSD const & respon
return true;
}
+void LLLoginInstance::saveMFAHash(LLSD const& response)
+{
+ std::string grid(LLGridManager::getInstance()->getGridId());
+ std::string user_id(LLStartUp::getUserId());
+
+ // Only save mfa_hash for future logins if the user wants their info remembered.
+ if (response.has("mfa_hash") && gSavedSettings.getBOOL("RememberUser") && LLLoginInstance::getInstance()->saveMFA())
+ {
+ gSecAPIHandler->addToProtectedMap("mfa_hash", grid, user_id, response["mfa_hash"]);
+ }
+ else if (!LLLoginInstance::getInstance()->saveMFA())
+ {
+ gSecAPIHandler->removeFromProtectedMap("mfa_hash", grid, user_id);
+ }
+ // TODO(brad) - related to SL-17223 consider building a better interface that sync's automatically
+ gSecAPIHandler->syncProtectedMap();
+}
+
std::string construct_start_string()
{
std::string start;
diff --git a/indra/newview/lllogininstance.h b/indra/newview/lllogininstance.h
index 748909c069..941b378b14 100644
--- a/indra/newview/lllogininstance.h
+++ b/indra/newview/lllogininstance.h
@@ -70,6 +70,8 @@ public:
void setNotificationsInterface(LLNotificationsInterface* ni) { mNotifications = ni; }
LLNotificationsInterface& getNotificationsInterface() const { return *mNotifications; }
+ void saveMFAHash(LLSD const& response);
+
private:
typedef std::shared_ptr<LLEventAPI::Response> ResponsePtr;
void constructAuthParams(LLPointer<LLCredential> user_credentials);
diff --git a/indra/newview/lloutfitgallery.cpp b/indra/newview/lloutfitgallery.cpp
index b84b0b3a8c..98b7d74cd2 100644
--- a/indra/newview/lloutfitgallery.cpp
+++ b/indra/newview/lloutfitgallery.cpp
@@ -69,7 +69,6 @@ const S32 GALLERY_ITEMS_PER_ROW_MIN = 2;
LLOutfitGallery::LLOutfitGallery(const LLOutfitGallery::Params& p)
: LLOutfitListBase(),
- mOutfitsObserver(NULL),
mScrollPanel(NULL),
mGalleryPanel(NULL),
mLastRowPanel(NULL),
@@ -730,12 +729,6 @@ LLOutfitGallery::~LLOutfitGallery()
{
delete mOutfitGalleryMenu;
- if (gInventory.containsObserver(mOutfitsObserver))
- {
- gInventory.removeObserver(mOutfitsObserver);
- }
- delete mOutfitsObserver;
-
while (!mUnusedRowPanels.empty())
{
LLPanel* panelp = mUnusedRowPanels.back();
@@ -797,7 +790,7 @@ void LLOutfitGallery::updateAddedCategory(LLUUID cat_id)
{
// Assume a subfolder that contains or will contain outfits, track it
const LLUUID outfits = gInventory.findCategoryUUIDForType(LLFolderType::FT_MY_OUTFITS);
- mOutfitsObserver->addCategory(cat_id, [this, outfits]()
+ mCategoriesObserver->addCategory(cat_id, [this, outfits]()
{
observerCallback(outfits);
});
@@ -820,14 +813,8 @@ void LLOutfitGallery::updateAddedCategory(LLUUID cat_id)
if (!outfit_category)
return;
- if (mOutfitsObserver == NULL)
- {
- mOutfitsObserver = new LLInventoryCategoriesObserver();
- gInventory.addObserver(mOutfitsObserver);
- }
-
// Start observing changes in "My Outfits" category.
- mOutfitsObserver->addCategory(cat_id,
+ mCategoriesObserver->addCategory(cat_id,
boost::bind(&LLOutfitGallery::refreshOutfit, this, cat_id), true);
outfit_category->fetch();
@@ -840,7 +827,7 @@ void LLOutfitGallery::updateRemovedCategory(LLUUID cat_id)
if (outfits_iter != mOutfitMap.end())
{
// 0. Remove category from observer.
- mOutfitsObserver->removeCategory(cat_id);
+ mCategoriesObserver->removeCategory(cat_id);
//const LLUUID& outfit_id = outfits_iter->first;
LLOutfitGalleryItem* item = outfits_iter->second;
diff --git a/indra/newview/lloutfitgallery.h b/indra/newview/lloutfitgallery.h
index 541ea2f9d4..a2a5fe26eb 100644
--- a/indra/newview/lloutfitgallery.h
+++ b/indra/newview/lloutfitgallery.h
@@ -184,9 +184,6 @@ private:
typedef item_num_map_t::value_type item_numb_map_value_t;
item_num_map_t mItemIndexMap;
std::map<S32, LLOutfitGalleryItem*> mIndexToItemMap;
-
-
- LLInventoryCategoriesObserver* mOutfitsObserver;
};
class LLOutfitGalleryContextMenu : public LLOutfitContextMenu
{
diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp
index 4f60f98b49..cc4f49c0b4 100644
--- a/indra/newview/llstartup.cpp
+++ b/indra/newview/llstartup.cpp
@@ -3884,25 +3884,7 @@ bool process_login_success_response()
LLViewerMedia::getInstance()->openIDSetup(openid_url, openid_token);
}
-
- // Only save mfa_hash for future logins if the user wants their info remembered.
- if(response.has("mfa_hash")
- && gSavedSettings.getBOOL("RememberUser")
- && LLLoginInstance::getInstance()->saveMFA())
- {
- std::string grid(LLGridManager::getInstance()->getGridId());
- std::string user_id(gUserCredential->userID());
- gSecAPIHandler->addToProtectedMap("mfa_hash", grid, user_id, response["mfa_hash"]);
- // TODO(brad) - related to SL-17223 consider building a better interface that sync's automatically
- gSecAPIHandler->syncProtectedMap();
- }
- else if (!LLLoginInstance::getInstance()->saveMFA())
- {
- std::string grid(LLGridManager::getInstance()->getGridId());
- std::string user_id(gUserCredential->userID());
- gSecAPIHandler->removeFromProtectedMap("mfa_hash", grid, user_id);
- gSecAPIHandler->syncProtectedMap();
- }
+ LLLoginInstance::getInstance()->saveMFAHash(response);
bool success = false;
// JC: gesture loading done below, when we have an asset system
diff --git a/indra/newview/llvoicewebrtc.cpp b/indra/newview/llvoicewebrtc.cpp
index 08fcec86ac..9835a69e4e 100644
--- a/indra/newview/llvoicewebrtc.cpp
+++ b/indra/newview/llvoicewebrtc.cpp
@@ -985,7 +985,10 @@ void LLWebRTCVoiceClient::updatePosition(void)
LLWebRTCVoiceClient::participantStatePtr_t participant = findParticipantByID("Estate", gAgentID);
if(participant)
{
- participant->mRegion = gAgent.getRegion()->getRegionID();
+ if (participant->mRegion != region->getRegionID()) {
+ participant->mRegion = region->getRegionID();
+ setMuteMic(mMuteMic);
+ }
}
}
}
@@ -3104,23 +3107,20 @@ LLVoiceWebRTCSpatialConnection::~LLVoiceWebRTCSpatialConnection()
void LLVoiceWebRTCSpatialConnection::setMuteMic(bool muted)
{
- if (mMuted != muted)
+ mMuted = muted;
+ if (mWebRTCAudioInterface)
{
- mMuted = muted;
- if (mWebRTCAudioInterface)
+ LLViewerRegion *regionp = gAgent.getRegion();
+ if (regionp && mRegionID == regionp->getRegionID())
{
- LLViewerRegion *regionp = gAgent.getRegion();
- if (regionp && mRegionID == regionp->getRegionID())
- {
- mWebRTCAudioInterface->setMute(muted);
- }
- else
- {
- // Always mute this agent with respect to neighboring regions.
- // Peers don't want to hear this agent from multiple regions
- // as that'll echo.
- mWebRTCAudioInterface->setMute(true);
- }
+ mWebRTCAudioInterface->setMute(muted);
+ }
+ else
+ {
+ // Always mute this agent with respect to neighboring regions.
+ // Peers don't want to hear this agent from multiple regions
+ // as that'll echo.
+ mWebRTCAudioInterface->setMute(true);
}
}
}
diff --git a/indra/newview/tests/lllogininstance_test.cpp b/indra/newview/tests/lllogininstance_test.cpp
index bff2289a7c..29ca903256 100644
--- a/indra/newview/tests/lllogininstance_test.cpp
+++ b/indra/newview/tests/lllogininstance_test.cpp
@@ -66,6 +66,7 @@ static LLEventStream gTestPump("test_pump");
#include "../llstartup.h"
LLSLURL LLStartUp::sStartSLURL;
LLSLURL& LLStartUp::getStartSLURL() { return sStartSLURL; }
+std::string LLStartUp::getUserId() { return ""; };
#include "lllogin.h"