From 663fff7c3f969c1435417d2a700d06ebaf744f1b Mon Sep 17 00:00:00 2001
From: Richard Nelson <richard@lindenlab.com>
Date: Sat, 24 Feb 2007 01:47:17 +0000
Subject: [PATCH] svn merge -r 58007:58273
 svn+ssh://svn.lindenlab.com/svn/linden/branches/maintenance

---
 indra/newview/llfloatertos.cpp      |  9 ++++++-
 indra/newview/llfolderview.cpp      | 22 ----------------
 indra/newview/llpanelgrouproles.cpp |  3 +++
 indra/newview/llselectmgr.cpp       | 39 ++++++++++++-----------------
 indra/newview/lltooldraganddrop.cpp | 13 +++++-----
 indra/newview/llviewermessage.cpp   | 10 ++++----
 6 files changed, 39 insertions(+), 57 deletions(-)

diff --git a/indra/newview/llfloatertos.cpp b/indra/newview/llfloatertos.cpp
index e2fa576fa90..34f394610fc 100644
--- a/indra/newview/llfloatertos.cpp
+++ b/indra/newview/llfloatertos.cpp
@@ -144,13 +144,20 @@ BOOL LLFloaterTOS::postBuild()
 		tos_agreement->setEnabled( false );
 	};
 
+	// hide the SL text widget if we're displaying TOS with using a browser widget.
+	LLTextEditor *editor = LLUICtrlFactory::getTextEditorByName(this, "tos_text");
+	if ( editor )
+	{
+		editor->setVisible( FALSE );
+	};
+
 	LLWebBrowserCtrl* web_browser = LLUICtrlFactory::getWebBrowserCtrlByName(this, "tos_html");
 	if ( web_browser )
 	{
 		// start to observe it so we see navigate complete events
 		if ( web_browser )
 		{
-			web_browser->addObserver( this );		
+			web_browser->addObserver( this );
 		};
 
 		gResponsePtr = LLIamHere::build( this );
diff --git a/indra/newview/llfolderview.cpp b/indra/newview/llfolderview.cpp
index 39cf48c5c96..462e1515fdc 100644
--- a/indra/newview/llfolderview.cpp
+++ b/indra/newview/llfolderview.cpp
@@ -3839,28 +3839,6 @@ BOOL LLFolderView::handleKeyHere( KEY key, MASK mask, BOOL called_from_parent )
 			search(getCurSelectedItem(), mSearchString.c_str(), FALSE);
 			handled = TRUE;
 		}
-		else if (mask & MASK_CONTROL && key == 'N')
-		{
-			LLFolderViewItem* selection = getCurSelectedItem();
-			if (selection)
-			{
-				selection = selection->getNextOpenNode();
-			}
-			search(selection, mSearchString.c_str(), FALSE);
-			mSearchTimer.reset();
-			handled = TRUE;
-		}
-		else if (mask & MASK_CONTROL && key == 'P')
-		{
-			LLFolderViewItem* selection = getCurSelectedItem();
-			if (selection)
-			{
-				selection = selection->getPreviousOpenNode();
-			}
-			search(selection, mSearchString.c_str(), TRUE);
-			mSearchTimer.reset();
-			handled = TRUE;
-		}
 	}
 
 	if (handled)
diff --git a/indra/newview/llpanelgrouproles.cpp b/indra/newview/llpanelgrouproles.cpp
index 4b90a205d6c..0e295df94a1 100644
--- a/indra/newview/llpanelgrouproles.cpp
+++ b/indra/newview/llpanelgrouproles.cpp
@@ -166,6 +166,9 @@ BOOL LLPanelGroupRoles::postBuild()
 
 BOOL LLPanelGroupRoles::isVisibleByAgent(LLAgent* agentp)
 {
+	if (agentp->isGodlike())
+		return TRUE;
+	
 	/* This power was removed to make group roles simpler
 	return agentp->hasPowerInGroup(mGroupID, 
 								   GP_ROLE_CREATE |
diff --git a/indra/newview/llselectmgr.cpp b/indra/newview/llselectmgr.cpp
index b1c6ea7213f..078132b99f2 100644
--- a/indra/newview/llselectmgr.cpp
+++ b/indra/newview/llselectmgr.cpp
@@ -1272,39 +1272,32 @@ void LLSelectMgr::selectionSetImage(const LLUUID& imageid)
 	LLViewerObject* objectp;
 	S32 te;
 
-	// Apply the texture to each side
-	for (mSelectedObjects->getFirstTE(&objectp, &te); objectp; mSelectedObjects->getNextTE(&objectp, &te))
+	mSelectedObjects->getFirstTE(&objectp, &te);
+	
+	for (objectp = mSelectedObjects->getFirstObject(); objectp; objectp = mSelectedObjects->getNextObject())
 	{
-
 		if (item)
 		{
-			LLToolDragAndDrop::dropTextureOneFace(objectp,te,item,LLToolDragAndDrop::SOURCE_AGENT,LLUUID::null);
-			
-			// HACK! HACK! ARG!
-			// *TODO: Replace mSelectedObjects with a REAL container class!
-			LLViewerObject* tmp_object;
-			S32 tmp_te;
-			mSelectedObjects->getCurrentTE(&tmp_object,&tmp_te);
-			if ((tmp_object != objectp) || (tmp_te != te) )
-			{
-				//AAARG someone has moved our list around!
-				mSelectedObjects->getFirstTE(&tmp_object, &tmp_te);
-				while ((tmp_object != objectp) || (tmp_te != te))
-				{
-					mSelectedObjects->getNextTE(&tmp_object, &tmp_te);
-				}
-			}
+			LLToolDragAndDrop::dropTextureAllFaces(objectp,
+											item,
+											LLToolDragAndDrop::SOURCE_AGENT,
+											LLUUID::null);
 		}
 		else
 		{
-			// Texture picker defaults aren't inventory items
-			// * Don't need to worry about permissions for them
-			// * Can just apply the texture and be done with it.
-			objectp->setTEImage(te, gImageList.getImage(imageid));
+			S32 num_faces = objectp->getNumTEs();
+			for( S32 face = 0; face < num_faces; face++ )
+			{
+				// Texture picker defaults aren't inventory items
+				// * Don't need to worry about permissions for them
+				// * Can just apply the texture and be done with it.
+				objectp->setTEImage(face, gImageList.getImage(imageid));
+			}
 			objectp->sendTEUpdate();
 		}
 	}
 
+
 	// 1 particle effect per object
 	if (mSelectedObjects->mSelectType != SELECT_TYPE_HUD)
 	{
diff --git a/indra/newview/lltooldraganddrop.cpp b/indra/newview/lltooldraganddrop.cpp
index 5d7b323660d..1eb27f91652 100644
--- a/indra/newview/lltooldraganddrop.cpp
+++ b/indra/newview/lltooldraganddrop.cpp
@@ -1219,7 +1219,6 @@ BOOL LLToolDragAndDrop::handleDropTextureProtections(LLViewerObject* hit_obj,
 				return FALSE;
 			}
 		}
-std::cout << "ASSET ID:  " << new_item->getAssetUUID() << "\n";
 		hit_obj->updateInventory(new_item, TASK_INVENTORY_ASSET_KEY, true);
 	}
 	else if(!item->getPermissions().allowOperationBy(PERM_TRANSFER,
@@ -1233,7 +1232,6 @@ std::cout << "ASSET ID:  " << new_item->getAssetUUID() << "\n";
 		// *FIX: may want to make sure agent can paint hit_obj.
 
 		// make sure the object has the texture in it's inventory.
-std::cout << "ASSET ID:  " << new_item->getAssetUUID() << "\n";
 		hit_obj->updateInventory(new_item, TASK_INVENTORY_ASSET_KEY, true);
 	}
 	return TRUE;
@@ -1244,6 +1242,11 @@ void LLToolDragAndDrop::dropTextureAllFaces(LLViewerObject* hit_obj,
 											LLToolDragAndDrop::ESource source,
 											const LLUUID& src_id)
 {
+	if (!item)
+	{
+		llwarns << "LLToolDragAndDrop::dropTextureAllFaces no texture item." << llendl;
+		return;
+	}
 	LLUUID asset_id = item->getAssetUUID();
 	BOOL success = handleDropTextureProtections(hit_obj, item, source, src_id);
 	if(!success)
@@ -1259,11 +1262,9 @@ void LLToolDragAndDrop::dropTextureAllFaces(LLViewerObject* hit_obj,
 		// update viewer side image in anticipation of update from simulator
 		hit_obj->setTEImage(face, image);
 		dialog_refresh_all();
-		
-		// send the update to the simulator
-		hit_obj->sendTEUpdate();
 	}
-
+	// send the update to the simulator
+	hit_obj->sendTEUpdate();
 }
 
 /*
diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp
index 502171584c6..e1f51586f44 100644
--- a/indra/newview/llviewermessage.cpp
+++ b/indra/newview/llviewermessage.cpp
@@ -922,9 +922,9 @@ void inventory_offer_callback(S32 option, void* user_data)
 			}
 			
 		}
-		if (!info->mFromGroup)
+		if (!info->mFromGroup && !info->mFromObject)
 		{
-		busy_message(msg,info->mFromID);
+			busy_message(msg,info->mFromID);
 		}
 		break;
 	}
@@ -1155,7 +1155,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
 	chat.mFromID = from_id;
 	chat.mFromName = name;
 
-	LLViewerObject *source = gObjectList.findObject(session_id);
+	LLViewerObject *source = gObjectList.findObject(session_id); //Session ID is probably the wrong thing.
 	if (source)
 	{
 		is_owned_by_me = source->permYouOwner();
@@ -1511,8 +1511,8 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
 			info->mFromName = name;
 			info->mDesc = message;
 			info->mHost = msg->getSender();
-			//if (!is_linden && ((is_busy && !is_owned_by_me) || is_muted))
-			if (((is_busy && !is_owned_by_me) || is_muted))
+			//if (((is_busy && !is_owned_by_me) || is_muted))
+			if ( is_muted )
 			{
 				// Same as closing window
 				inventory_offer_callback(-1, info);
-- 
GitLab