diff --git a/indra/newview/daeexport.cpp b/indra/newview/daeexport.cpp index aaf5150b3e..9a7695212e 100644 --- a/indra/newview/daeexport.cpp +++ b/indra/newview/daeexport.cpp @@ -260,7 +260,7 @@ void ColladaExportFloater::addSelectedObjects() { mTotal++; LLSelectNode* node = *iter; - if (!node->getObject()->getVolume() || !FSExportPermsCheck::canExportNode(node)) continue; + if (!node->getObject()->getVolume() || !FSExportPermsCheck::canExportNode(node, true)) continue; mIncluded++; mSaver.add(node->getObject(), node->mName); } diff --git a/indra/newview/fsexportperms.cpp b/indra/newview/fsexportperms.cpp index 5d57ea6735..e0c14ebc77 100644 --- a/indra/newview/fsexportperms.cpp +++ b/indra/newview/fsexportperms.cpp @@ -35,7 +35,7 @@ #define FOLLOW_PERMS 1 -bool FSExportPermsCheck::canExportNode(LLSelectNode* node) +bool FSExportPermsCheck::canExportNode(LLSelectNode* node, bool dae) { if (!node) { @@ -97,8 +97,17 @@ bool FSExportPermsCheck::canExportNode(LLSelectNode* node) { if(volobjp->isMesh()) { - LLSD mesh_header = gMeshRepo.getMeshHeader(sculpt_params->getSculptTexture()); - exportable = mesh_header["creator"].asUUID() == gAgentID; + if (dae) + { + LLSD mesh_header = gMeshRepo.getMeshHeader(sculpt_params->getSculptTexture()); + exportable = mesh_header["creator"].asUUID() == gAgentID; + } + else + { + // can not export mesh to oxp + LL_INFOS("export") << "Mesh can not be exported to oxp." << LL_ENDL; + return false; + } } else if (sculpt_params) { diff --git a/indra/newview/fsexportperms.h b/indra/newview/fsexportperms.h index 5cf2d6e35c..64006ca4fe 100644 --- a/indra/newview/fsexportperms.h +++ b/indra/newview/fsexportperms.h @@ -31,7 +31,7 @@ const S32 OXP_FORMAT_VERSION = 2; namespace FSExportPermsCheck { - bool canExportNode(LLSelectNode* node); + bool canExportNode(LLSelectNode* node, bool dae); bool canExportAsset(LLUUID asset_id, std::string* name = NULL, std::string* description = NULL); }; diff --git a/indra/newview/fsfloaterexport.cpp b/indra/newview/fsfloaterexport.cpp index 418d163356..5b85f4b033 100644 --- a/indra/newview/fsfloaterexport.cpp +++ b/indra/newview/fsfloaterexport.cpp @@ -372,7 +372,7 @@ void FSFloaterObjectExport::addPrim(LLViewerObject* object, bool root) } func(object_id); LLSelectNode* node = LLSelectMgr::getInstance()->getSelection()->getFirstNode(&func); - default_prim = (!FSExportPermsCheck::canExportNode(node)); + default_prim = (!FSExportPermsCheck::canExportNode(node, false)); if (root) { @@ -1155,7 +1155,7 @@ void FSFloaterObjectExport::addSelectedObjects() { node = *iter; mTotal++; - if (!node->getObject()->getVolume() || !FSExportPermsCheck::canExportNode(node)) continue; + if (!node->getObject()->getVolume() || !FSExportPermsCheck::canExportNode(node, false)) continue; mIncluded++; addObject(node->getObject(), node->mName); }