From 1b64453199cb8c31886b1debe6b5268d731f2298 Mon Sep 17 00:00:00 2001
From: Mnikolenko ProductEngine <mnikolenko@productengine.com>
Date: Fri, 10 Oct 2014 11:41:06 +0300
Subject: [PATCH] MAINT-4554 FIXED Show group name and open group profile for
 group-owned objects.

---
 indra/newview/llfloaterinspect.cpp | 53 +++++++++++++++++++++++-------
 1 file changed, 42 insertions(+), 11 deletions(-)

diff --git a/indra/newview/llfloaterinspect.cpp b/indra/newview/llfloaterinspect.cpp
index 5a1dfc99ab5..568fc74c493 100755
--- a/indra/newview/llfloaterinspect.cpp
+++ b/indra/newview/llfloaterinspect.cpp
@@ -32,6 +32,7 @@
 #include "llfloatertools.h"
 #include "llavataractions.h"
 #include "llavatarnamecache.h"
+#include "llgroupactions.h"
 #include "llscrolllistctrl.h"
 #include "llscrolllistitem.h"
 #include "llselectmgr.h"
@@ -147,8 +148,17 @@ void LLFloaterInspect::onClickOwnerProfile()
 		LLSelectNode* node = mObjectSelection->getFirstNode(&func);
 		if(node)
 		{
-			const LLUUID& owner_id = node->mPermissions->getOwner();
-			LLAvatarActions::showProfile(owner_id);
+			if(node->mPermissions->isGroupOwned())
+			{
+				const LLUUID& idGroup = node->mPermissions->getGroup();
+				LLGroupActions::show(idGroup);
+			}
+			else
+			{
+				const LLUUID& owner_id = node->mPermissions->getOwner();
+				LLAvatarActions::showProfile(owner_id);
+			}
+
 		}
 	}
 }
@@ -219,21 +229,42 @@ void LLFloaterInspect::refresh()
 		const LLUUID& idCreator = obj->mPermissions->getCreator();
 		LLAvatarName av_name;
 
-		// Only work with the names if we actually get a result
-		// from the name cache. If not, defer setting the
-		// actual name and set a placeholder.
-		if (LLAvatarNameCache::get(idOwner, &av_name))
+		if(obj->mPermissions->isGroupOwned())
 		{
-			owner_name = av_name.getCompleteName();
+			std::string group_name;
+			const LLUUID& idGroup = obj->mPermissions->getGroup();
+			if(gCacheName->getGroupName(idGroup, group_name))
+			{
+				owner_name = group_name;
+			}
+			else
+			{
+				owner_name = LLTrans::getString("RetrievingData");
+				if (mOwnerNameCacheConnection.connected())
+				{
+					mOwnerNameCacheConnection.disconnect();
+				}
+				mOwnerNameCacheConnection = gCacheName->getGroup(idGroup, boost::bind(&LLFloaterInspect::onGetOwnerNameCallback, this));
+			}
 		}
 		else
 		{
-			owner_name = LLTrans::getString("RetrievingData");
-			if (mOwnerNameCacheConnection.connected())
+			// Only work with the names if we actually get a result
+			// from the name cache. If not, defer setting the
+			// actual name and set a placeholder.
+			if (LLAvatarNameCache::get(idOwner, &av_name))
+			{
+				owner_name = av_name.getCompleteName();
+			}
+			else
 			{
-				mOwnerNameCacheConnection.disconnect();
+				owner_name = LLTrans::getString("RetrievingData");
+				if (mOwnerNameCacheConnection.connected())
+				{
+					mOwnerNameCacheConnection.disconnect();
+				}
+				mOwnerNameCacheConnection = LLAvatarNameCache::get(idOwner, boost::bind(&LLFloaterInspect::onGetOwnerNameCallback, this));
 			}
-			mOwnerNameCacheConnection = LLAvatarNameCache::get(idOwner, boost::bind(&LLFloaterInspect::onGetOwnerNameCallback, this));
 		}
 
 		if (LLAvatarNameCache::get(idCreator, &av_name))
-- 
GitLab