summaryrefslogtreecommitdiff
path: root/indra/newview/llmaterialeditor.cpp
diff options
context:
space:
mode:
authorMnikolenko Productengine <mnikolenko@productengine.com>2022-11-03 13:18:14 +0200
committerMnikolenko Productengine <mnikolenko@productengine.com>2022-11-03 15:17:09 +0200
commita0c7a7ecdc7b9fb53fa1175babf0d8497a3e9112 (patch)
tree9fa9ca18f29c07f4c2f42c169840701735cd04f1 /indra/newview/llmaterialeditor.cpp
parent0f20cf17fd31abb051efd5bd14399ed6329112cf (diff)
SL-18548 fix for crash when trying to Save material without caps
Diffstat (limited to 'indra/newview/llmaterialeditor.cpp')
-rw-r--r--indra/newview/llmaterialeditor.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/indra/newview/llmaterialeditor.cpp b/indra/newview/llmaterialeditor.cpp
index 00105c1e8f..397a302069 100644
--- a/indra/newview/llmaterialeditor.cpp
+++ b/indra/newview/llmaterialeditor.cpp
@@ -883,6 +883,11 @@ static U32 write_texture(const LLUUID& id, tinygltf::Model& model)
void LLMaterialEditor::onClickSave()
{
+ if (!capabilitiesAvalaible())
+ {
+ LLNotificationsUtil::add("MissingMaterialCaps");
+ return;
+ }
if (!can_afford_transaction(mExpectedUploadCost))
{
LLSD args;
@@ -2809,3 +2814,17 @@ void LLMaterialEditor::loadDefaults()
setFromGltfModel(model_in, 0, true);
}
+bool LLMaterialEditor::capabilitiesAvalaible()
+{
+ const LLViewerRegion* region = gAgent.getRegion();
+ if (!region)
+ {
+ LL_WARNS("MaterialEditor") << "Not connected to a region, cannot save material." << LL_ENDL;
+ return false;
+ }
+ std::string agent_url = region->getCapability("UpdateMaterialAgentInventory");
+ std::string task_url = region->getCapability("UpdateMaterialTaskInventory");
+
+ return (!agent_url.empty() && !task_url.empty());
+}
+