Merge branch 'master' of git://github.com/siana/SingularityViewer.git into V2MultiWear

Conflicts:
	indra/newview/llfloateravatarlist.cpp
	indra/newview/llfloateropenobject.cpp
	indra/newview/llinventorybridge.cpp
	indra/newview/llviewerinventory.cpp
This commit is contained in:
Shyotl
2012-02-24 13:21:59 -06:00
177 changed files with 9551 additions and 2012 deletions

View File

@@ -263,6 +263,7 @@
#include "hippogridmanager.h"
using namespace LLOldEvents;
using namespace LLVOAvatarDefines;
void init_client_menu(LLMenuGL* menu);
void init_server_menu(LLMenuGL* menu);
@@ -2243,25 +2244,78 @@ class LLObjectDerender : public view_listener_t
{
bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
{
LLViewerObject* slct = LLSelectMgr::getInstance()->getSelection()->getFirstObject();
LLViewerObject* slct = LLSelectMgr::getInstance()->getSelection()->getPrimaryObject();
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())
//delivers null in linked parts if used as getFirstRootNode()
LLSelectNode* node = selection->getFirstRootNode(NULL,TRUE);
/*this works for derendering entire object if child is selected
LLSelectNode* node = selection->getFirstNode();
//Delivers node even when linked parts, but only first node
LLViewerObject* obj = node->getObject();
LLViewerObject* parent = (LLViewerObject*)obj->getParent();*/
if(node)
{
id = root_key;
//LLSelectMgr::getInstance()->removeObjectFromSelections(root_key);
root_key = node->getObject()->getID();
llinfos << "Derender node has key " << root_key << llendl;
}
LLSelectMgr::getInstance()->removeObjectFromSelections(id);
// ...don't kill the avatar
//if (!(id == gAgentID))
// <dogmode> Kill 'em all
if (true)
else
{
llinfos << "Derender node is null " << llendl;
}
LLViewerRegion* cur_region = gAgent.getRegion();
std::string entry_name;
if(slct->isAvatar()){
LLNameValue* firstname = slct->getNVPair("FirstName");
LLNameValue* lastname = slct->getNVPair("LastName");
entry_name = llformat("Derendered: (AV) %s %s",firstname->getString(),lastname->getString());
}
else{
if(root_key.isNull())
{
return true;
}
id = root_key;
if(!node->mName.empty())
{
if(cur_region)
entry_name = llformat("Derendered: %s in region %s",node->mName.c_str(),cur_region->getName().c_str());
else
entry_name = llformat("Derendered: %s",node->mName.c_str());
}
else
{
if(cur_region)
entry_name = llformat("Derendered: (unkown object) in region %s",cur_region->getName().c_str());
else
entry_name = "Derendered: (unkown object)";
}
}
LLSD indata;
indata["entry_type"] = 6; //AT_TEXTURE
indata["entry_name"] = entry_name;
indata["entry_agent"] = gAgent.getID();
// ...don't kill the avatar
if (!(id == gAgentID))
{
LLFloaterBlacklist::addEntry(id,indata);
LLSelectMgr::getInstance()->deselectAll();
LLViewerObject *objectp = gObjectList.findObject(id);
if (objectp)
{