summaryrefslogtreecommitdiff
path: root/indra/newview/llviewermessage.cpp
diff options
context:
space:
mode:
authorAlexander Gavriliuk <alexandrgproductengine@lindenlab.com>2024-09-18 11:44:03 +0200
committerGuru <alexandrgproductengine@lindenlab.com>2024-09-18 17:13:59 +0200
commit27b8e6d576346e3174760087a15811478a90459e (patch)
treeae0f6943799c426872019b3adacb13f9b5626d26 /indra/newview/llviewermessage.cpp
parentd9da5bbb33ce70e3bc799ba6696c8b10de0e5f04 (diff)
#2408 The long covenant with emojis significantly slows down some operations in the viewer
Diffstat (limited to 'indra/newview/llviewermessage.cpp')
-rw-r--r--indra/newview/llviewermessage.cpp36
1 files changed, 26 insertions, 10 deletions
diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp
index 0861b439eb..1d4828fd33 100644
--- a/indra/newview/llviewermessage.cpp
+++ b/indra/newview/llviewermessage.cpp
@@ -6739,7 +6739,8 @@ void onCovenantLoadComplete(const LLUUID& asset_uuid,
{
LL_DEBUGS("Messaging") << "onCovenantLoadComplete()" << LL_ENDL;
std::string covenant_text;
- if(0 == status)
+ std::unique_ptr<LLViewerTextEditor> editorp;
+ if (0 == status)
{
LLFileSystem file(asset_uuid, type, LLFileSystem::READ);
@@ -6760,13 +6761,13 @@ void onCovenantLoadComplete(const LLUUID& asset_uuid,
{
LL_WARNS("Messaging") << "Problem importing estate covenant." << LL_ENDL;
covenant_text = "Problem importing estate covenant.";
+ delete editor;
}
else
{
// Version 0 (just text, doesn't include version number)
- covenant_text = editor->getText();
+ editorp.reset(editor); // Use covenant from editorp;
}
- delete editor;
}
else
{
@@ -6792,17 +6793,32 @@ void onCovenantLoadComplete(const LLUUID& asset_uuid,
LL_WARNS("Messaging") << "Problem loading notecard: " << status << LL_ENDL;
}
- LLPanelEstateCovenant::updateCovenantText(covenant_text, asset_uuid);
- LLPanelLandCovenant::updateCovenantText(covenant_text);
- LLFloaterBuyLand::updateCovenantText(covenant_text, asset_uuid);
- LLPanelPlaceProfile* panel = LLFloaterSidePanelContainer::getPanel<LLPanelPlaceProfile>("places", "panel_place_profile");
- if (panel)
+ if (editorp)
{
- panel->updateCovenantText(covenant_text);
+ LLPanelEstateCovenant::updateCovenant(editorp.get(), asset_uuid);
+ LLPanelLandCovenant::updateCovenant(editorp.get());
+ LLFloaterBuyLand::updateCovenant(editorp.get(), asset_uuid);
+ }
+ else
+ {
+ LLPanelEstateCovenant::updateCovenantText(covenant_text, asset_uuid);
+ LLPanelLandCovenant::updateCovenantText(covenant_text);
+ LLFloaterBuyLand::updateCovenantText(covenant_text, asset_uuid);
}
-}
+ if (LLPanelPlaceProfile* panel = LLFloaterSidePanelContainer::getPanel<LLPanelPlaceProfile>("places", "panel_place_profile"))
+ {
+ if (editorp)
+ {
+ panel->updateCovenant(editorp.get());
+ }
+ else
+ {
+ panel->updateCovenantText(covenant_text);
+ }
+ }
+}
void process_feature_disabled_message(LLMessageSystem* msg, void**)
{