From 0098e3e62265c1dc3f70630b95f0dca5cf9c270e Mon Sep 17 00:00:00 2001 From: Tom Grimshaw Date: Wed, 9 Jun 2010 01:54:08 +0100 Subject: Port "Derender" pie option from Emerald. All credit due to the Emerald team. --- linden/indra/newview/llviewermenu.cpp | 32 ++++++++++++++++++++++ .../skins/default/xui/en-us/menu_pie_avatar.xml | 3 ++ .../skins/default/xui/en-us/menu_pie_object.xml | 3 ++ 3 files changed, 38 insertions(+) diff --git a/linden/indra/newview/llviewermenu.cpp b/linden/indra/newview/llviewermenu.cpp index 9e2cc3d..7f45751 100644 --- a/linden/indra/newview/llviewermenu.cpp +++ b/linden/indra/newview/llviewermenu.cpp @@ -2055,6 +2055,37 @@ class LLObjectInspect : public view_listener_t } }; +class LLObjectDerender : public view_listener_t +{ + bool handleEvent(LLPointer event, const LLSD& userdata) + { + LLViewerObject* slct = LLSelectMgr::getInstance()->getSelection()->getFirstObject(); + if(!slct)return true; + LLUUID id = slct->getID(); + LLObjectSelectionHandle selection = LLSelectMgr::getInstance()->getSelection(); + LLUUID root_key; + LLSelectNode* node = selection->getFirstRootNode(); + if(node)root_key = node->getObject()->getID(); + if(root_key.notNull()) + { + id = root_key; + //LLSelectMgr::getInstance()->removeObjectFromSelections(root_key); + } + LLSelectMgr::getInstance()->removeObjectFromSelections(id); + + // ...don't kill the avatar + if (!(id == gAgentID)) + { + LLViewerObject *objectp = gObjectList.findObject(id); + if (objectp) + { + gObjectList.killObject(objectp); + } + } + return true; + } +}; + //--------------------------------------------------------------------------- // Land pie menu @@ -11056,6 +11087,7 @@ void initialize_menus() addMenu(new LLObjectBuy(), "Object.Buy"); addMenu(new LLObjectEdit(), "Object.Edit"); addMenu(new LLObjectInspect(), "Object.Inspect"); + addMenu(new LLObjectDerender(), "Object.DERENDER"); addMenu(new LLObjectCopyUUID(), "Object.CopyUUID"); addMenu(new LLObjectExport(), "Object.Export"); addMenu(new LLObjectImport(), "Object.Import"); diff --git a/linden/indra/newview/skins/default/xui/en-us/menu_pie_avatar.xml b/linden/indra/newview/skins/default/xui/en-us/menu_pie_avatar.xml index ead21cd..065c2e7 100644 --- a/linden/indra/newview/skins/default/xui/en-us/menu_pie_avatar.xml +++ b/linden/indra/newview/skins/default/xui/en-us/menu_pie_avatar.xml @@ -41,6 +41,9 @@ + + + diff --git a/linden/indra/newview/skins/default/xui/en-us/menu_pie_object.xml b/linden/indra/newview/skins/default/xui/en-us/menu_pie_object.xml index 169d0b9..1d3ccf6 100644 --- a/linden/indra/newview/skins/default/xui/en-us/menu_pie_object.xml +++ b/linden/indra/newview/skins/default/xui/en-us/menu_pie_object.xml @@ -54,6 +54,9 @@ + + + -- cgit v1.1