diff options
author | Dave Parks <davep@lindenlab.com> | 2022-10-28 11:20:06 -0500 |
---|---|---|
committer | Dave Parks <davep@lindenlab.com> | 2022-10-28 11:20:06 -0500 |
commit | 2752ab3b6212266047bd6b63b076d5be9b2a2d64 (patch) | |
tree | cfae87bddb01cdf623a54b2a27c78ab2801c4a56 /indra/newview/llviewermenu.cpp | |
parent | 81553613551ffc7c8253d67a3fb3a24137d19d51 (diff) | |
parent | 467c9f627c22dd88d9e9d058583b8279a2c5564e (diff) |
Merge branch 'DRTVWR-559' of ssh://bitbucket.org/lindenlab/viewer into DRTVWR-559
Diffstat (limited to 'indra/newview/llviewermenu.cpp')
-rw-r--r-- | indra/newview/llviewermenu.cpp | 30 |
1 files changed, 16 insertions, 14 deletions
diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index e1b92e5f2e..3161579482 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -2809,37 +2809,39 @@ void handle_object_open() LLFloaterReg::showInstance("openobject"); } -struct LLSelectedTEGetmatIdAndPermissions : public LLSelectedTEGetFunctor<LLUUID> +struct LLSelectedTEGetmatIdAndPermissions : public LLSelectedTEFunctor { LLSelectedTEGetmatIdAndPermissions() : mCanCopy(true), mCanModify(true), mCanTransfer(true) {} - LLUUID get(LLViewerObject* object, S32 te_index) + bool apply(LLViewerObject* objectp, S32 te_index) { - mCanCopy &= (bool)object->permCopy(); - mCanTransfer &= (bool)object->permTransfer(); - mCanModify &= (bool)object->permModify(); - // return true if all ids are identical - return object->getRenderMaterialID(te_index); + mCanCopy &= (bool)objectp->permCopy(); + mCanTransfer &= (bool)objectp->permTransfer(); + mCanModify &= (bool)objectp->permModify(); + LLUUID mat_id = objectp->getRenderMaterialID(te_index); + if (mat_id.notNull()) + { + mMaterialId = mat_id; + } + return true; } bool mCanCopy; bool mCanModify; bool mCanTransfer; + LLUUID mMaterialId; }; bool enable_object_edit_gltf_material() { LLSelectedTEGetmatIdAndPermissions func; - LLUUID mat_id; - LLSelectMgr::getInstance()->getSelection()->getSelectedTEValue(&func, mat_id); - - return func.mCanModify; + LLSelectMgr::getInstance()->getSelection()->applyToTEs(&func); + return func.mCanModify && func.mMaterialId.notNull(); } bool enable_object_save_gltf_material() { LLSelectedTEGetmatIdAndPermissions func; - LLUUID mat_id; - LLSelectMgr::getInstance()->getSelection()->getSelectedTEValue(&func, mat_id); - return func.mCanCopy && mat_id.notNull(); + LLSelectMgr::getInstance()->getSelection()->applyToTEs(&func); + return func.mCanCopy && func.mMaterialId.notNull(); } bool enable_object_open() |