summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrad Payne (Vir Linden) <vir@lindenlab.com>2009-12-16 11:34:46 -0500
committerBrad Payne (Vir Linden) <vir@lindenlab.com>2009-12-16 11:34:46 -0500
commitadec0ba983c6b01c3d6c08692f3d5c7979ba90bb (patch)
tree0ad774429ed9933878652c2208a1fc4b376127a9
parent2dd09062d199ebfe7af8d67c59ec1bdc26e124a9 (diff)
For EXT-3114: [BSI] Can't right click > edit a no-mod attachment
--HG-- branch : avatar-pipeline
-rw-r--r--indra/newview/llselectmgr.cpp20
-rw-r--r--indra/newview/llselectmgr.h1
-rw-r--r--indra/newview/llviewermenu.cpp2
3 files changed, 22 insertions, 1 deletions
diff --git a/indra/newview/llselectmgr.cpp b/indra/newview/llselectmgr.cpp
index 44930f03c5..59ca54a147 100644
--- a/indra/newview/llselectmgr.cpp
+++ b/indra/newview/llselectmgr.cpp
@@ -2277,6 +2277,26 @@ BOOL LLSelectMgr::selectGetAllValid()
return TRUE;
}
+//-----------------------------------------------------------------------------
+// selectGetAllValidAndObjectsFound() - return TRUE if selections are
+// valid and objects are found.
+//
+// For EXT-3114 - same as selectGetModify() without the modify check.
+//-----------------------------------------------------------------------------
+BOOL LLSelectMgr::selectGetAllValidAndObjectsFound()
+{
+ for (LLObjectSelection::iterator iter = getSelection()->begin();
+ iter != getSelection()->end(); iter++ )
+ {
+ LLSelectNode* node = *iter;
+ LLViewerObject* object = node->getObject();
+ if( !object || !node->mValid )
+ {
+ return FALSE;
+ }
+ }
+ return TRUE;
+}
//-----------------------------------------------------------------------------
// selectGetModify() - return TRUE if current agent can modify all
diff --git a/indra/newview/llselectmgr.h b/indra/newview/llselectmgr.h
index 6641be335a..f8ecfd0674 100644
--- a/indra/newview/llselectmgr.h
+++ b/indra/newview/llselectmgr.h
@@ -535,6 +535,7 @@ public:
// Returns TRUE if the viewer has information on all selected objects
BOOL selectGetAllRootsValid();
BOOL selectGetAllValid();
+ BOOL selectGetAllValidAndObjectsFound();
// returns TRUE if you can modify all selected objects.
BOOL selectGetRootsModify();
diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp
index e38d03c60b..313b161ce5 100644
--- a/indra/newview/llviewermenu.cpp
+++ b/indra/newview/llviewermenu.cpp
@@ -2630,7 +2630,7 @@ bool enable_object_edit()
enable = LLViewerParcelMgr::getInstance()->allowAgentBuild()
|| LLSelectMgr::getInstance()->getSelection()->isAttachment();
}
- else if (LLSelectMgr::getInstance()->selectGetModify())
+ else if (LLSelectMgr::getInstance()->selectGetAllValidAndObjectsFound())
{
enable = true;
}