diff options
26 files changed, 166 insertions, 104 deletions
diff --git a/indra/llcharacter/llmultigesture.cpp b/indra/llcharacter/llmultigesture.cpp index ee60430d97..70a35cba8f 100644 --- a/indra/llcharacter/llmultigesture.cpp +++ b/indra/llcharacter/llmultigesture.cpp @@ -293,7 +293,7 @@ BOOL LLGestureStepAnimation::deserialize(LLDataPacker& dp)  	dp.unpackU32(mFlags, "flags");  	return TRUE;  } -// *TODO: Translate +// *NOTE: result is translated in LLPreviewGesture::getLabel()  std::vector<std::string> LLGestureStepAnimation::getLabel() const   {  	std::vector<std::string> strings; @@ -367,7 +367,7 @@ BOOL LLGestureStepSound::deserialize(LLDataPacker& dp)  	dp.unpackU32(mFlags, "flags");  	return TRUE;  } -// *TODO: Translate +// *NOTE: result is translated in LLPreviewGesture::getLabel()  std::vector<std::string> LLGestureStepSound::getLabel() const  {  	std::vector<std::string> strings; @@ -425,7 +425,7 @@ BOOL LLGestureStepChat::deserialize(LLDataPacker& dp)  	dp.unpackU32(mFlags, "flags");  	return TRUE;  } -// *TODO: Translate +// *NOTE: result is translated in LLPreviewGesture::getLabel()  std::vector<std::string> LLGestureStepChat::getLabel() const  {  	std::vector<std::string> strings; @@ -479,7 +479,7 @@ BOOL LLGestureStepWait::deserialize(LLDataPacker& dp)  	dp.unpackU32(mFlags, "flags");  	return TRUE;  } -// *TODO: Translate +// *NOTE: result is translated in LLPreviewGesture::getLabel()  std::vector<std::string> LLGestureStepWait::getLabel() const  {  	std::vector<std::string> strings; diff --git a/indra/llui/llflatlistview.cpp b/indra/llui/llflatlistview.cpp index 3c79da64f9..12004e2a75 100644 --- a/indra/llui/llflatlistview.cpp +++ b/indra/llui/llflatlistview.cpp @@ -1079,7 +1079,7 @@ void LLFlatListView::setNoItemsCommentVisible(bool visible) const  			mNoItemsCommentTextbox->setRect(comment_rect);  */  		} -		mSelectedItemsBorder->setVisible(FALSE); +		mSelectedItemsBorder->setVisible(!visible);  		mNoItemsCommentTextbox->setVisible(visible);  	}  } diff --git a/indra/llui/llnotifications.cpp b/indra/llui/llnotifications.cpp index 9e272a0949..7fa3c2cf65 100644 --- a/indra/llui/llnotifications.cpp +++ b/indra/llui/llnotifications.cpp @@ -375,6 +375,7 @@ LLNotification::LLNotification(const LLSD& sd) :  LLSD LLNotification::asLLSD()  {  	LLSD output; +	output["id"] = mId;  	output["name"] = mTemplatep->mName;  	output["form"] = getForm()->asLLSD();  	output["substitutions"] = mSubstitutions; diff --git a/indra/llui/llnotifications.h b/indra/llui/llnotifications.h index 8bfada0e71..1cdd744a68 100644 --- a/indra/llui/llnotifications.h +++ b/indra/llui/llnotifications.h @@ -353,6 +353,8 @@ public:  		}  	}; +	LLNotificationResponderPtr getResponderPtr() { return mResponder; } +  private:  	LLUUID mId; diff --git a/indra/newview/lldrawpoolbump.cpp b/indra/newview/lldrawpoolbump.cpp index 68809b0926..c206daf89b 100644 --- a/indra/newview/lldrawpoolbump.cpp +++ b/indra/newview/lldrawpoolbump.cpp @@ -149,7 +149,7 @@ void LLStandardBumpmap::restoreGL()  										0,   										0);									  		gStandardBumpmapList[LLStandardBumpmap::sStandardBumpmapCount].mImage->setBoostLevel(LLViewerTexture::BOOST_BUMP) ; -		gStandardBumpmapList[LLStandardBumpmap::sStandardBumpmapCount].mImage->setLoadedCallback(LLBumpImageList::onSourceStandardLoaded, 0, TRUE, FALSE, NULL, NULL, NULL ); +		gStandardBumpmapList[LLStandardBumpmap::sStandardBumpmapCount].mImage->setLoadedCallback(LLBumpImageList::onSourceStandardLoaded, 0, TRUE, FALSE, NULL, NULL );  		LLStandardBumpmap::sStandardBumpmapCount++;  	} @@ -923,7 +923,7 @@ LLViewerTexture* LLBumpImageList::getBrightnessDarknessImage(LLViewerFetchedText  			// Note: this may create an LLImageGL immediately  			src_image->setBoostLevel(LLViewerTexture::BOOST_BUMP) ; -			src_image->setLoadedCallback( callback_func, 0, TRUE, FALSE, new LLUUID(src_image->getID()), NULL, NULL ); +			src_image->setLoadedCallback( callback_func, 0, TRUE, FALSE, new LLUUID(src_image->getID()), NULL );  			bump = (*entries_list)[src_image->getID()]; // In case callback was called immediately and replaced the image  //			bump_total++; diff --git a/indra/newview/llfloatergroups.cpp b/indra/newview/llfloatergroups.cpp index c71764c2e5..3952c54670 100644 --- a/indra/newview/llfloatergroups.cpp +++ b/indra/newview/llfloatergroups.cpp @@ -47,6 +47,7 @@  #include "llbutton.h"  #include "llgroupactions.h"  #include "llscrolllistctrl.h" +#include "llselectmgr.h"  #include "lltextbox.h"  #include "lluictrlfactory.h"  #include "lltrans.h" @@ -89,6 +90,7 @@ BOOL LLFloaterGroupPicker::postBuild()  		list_ctrl->setContextMenu(LLScrollListCtrl::MENU_GROUP);  	} +	LLSelectMgr::getInstance()->mUpdateSignal.connect(boost::bind(&LLFloaterGroupPicker::onBtnCancel, this));  	childSetAction("OK", onBtnOK, this); diff --git a/indra/newview/llfloatervoicedevicesettings.cpp b/indra/newview/llfloatervoicedevicesettings.cpp index 63365e3461..48095ff200 100644 --- a/indra/newview/llfloatervoicedevicesettings.cpp +++ b/indra/newview/llfloatervoicedevicesettings.cpp @@ -227,7 +227,23 @@ void LLPanelVoiceDeviceSettings::refresh()  				iter != LLVoiceClient::getInstance()->getCaptureDevices().end();  				iter++)  			{ -				mCtrlInputDevices->add( *iter, ADD_BOTTOM ); +				// Lets try to localize some system device names. EXT-8375 +				std::string device_name = *iter; +				LLStringUtil::toLower(device_name); //compare in low case +				if ("default system device" == device_name) +				{ +					device_name = getString(device_name); +				} +				else if ("no device" == device_name) +				{ +					device_name = getString(device_name); +				} +				else +				{ +					// restore original value +					device_name = *iter; +				} +				mCtrlInputDevices->add(device_name, ADD_BOTTOM );  			}  			if(!mCtrlInputDevices->setSimple(mInputDevice)) @@ -244,7 +260,23 @@ void LLPanelVoiceDeviceSettings::refresh()  			for(iter= LLVoiceClient::getInstance()->getRenderDevices().begin();   				iter !=  LLVoiceClient::getInstance()->getRenderDevices().end(); iter++)  			{ -				mCtrlOutputDevices->add( *iter, ADD_BOTTOM ); +				// Lets try to localize some system device names. EXT-8375 +				std::string device_name = *iter; +				LLStringUtil::toLower(device_name); //compare in low case +				if ("default system device" == device_name) +				{ +					device_name = getString(device_name); +				} +				else if ("no device" == device_name) +				{ +					device_name = getString(device_name); +				} +				else +				{ +					// restore original value +					device_name = *iter; +				} +				mCtrlOutputDevices->add(device_name, ADD_BOTTOM );  			}  			if(!mCtrlOutputDevices->setSimple(mOutputDevice)) diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp index 7ec6440dc3..578c68410b 100644 --- a/indra/newview/llinventorybridge.cpp +++ b/indra/newview/llinventorybridge.cpp @@ -4134,7 +4134,7 @@ void LLObjectBridge::buildContextMenu(LLMenuGL& menu, U32 flags)  						}  						LLSD cbparams;  						cbparams["index"] = curiter->first; -						cbparams["label"] = attachment->getName(); +						cbparams["label"] = p.name;  						p.on_click.function_name = "Inventory.AttachObject";  						p.on_click.parameter = LLSD(attachment->getName());  						p.on_enable.function_name = "Attachment.Label"; diff --git a/indra/newview/llpreviewgesture.cpp b/indra/newview/llpreviewgesture.cpp index a7b4873fed..6f9d8a7623 100644 --- a/indra/newview/llpreviewgesture.cpp +++ b/indra/newview/llpreviewgesture.cpp @@ -1625,7 +1625,17 @@ std::string LLPreviewGesture::getLabel(std::vector<std::string> labels)  		result=LLTrans::getString("AnimFlagStart");  	} -	result.append(v_labels[1]); +	// lets localize action value +	std::string action = v_labels[1]; +	if ("None" == action) +	{ +		action = LLTrans::getString("GestureActionNone"); +	} +	else if ("until animations are done" == action) +	{ +		action = LLFloaterReg::getInstance("preview_gesture")->getChild<LLCheckBoxCtrl>("wait_anim_check")->getLabel(); +	} +	result.append(action);  	return result;  } diff --git a/indra/newview/llpreviewtexture.cpp b/indra/newview/llpreviewtexture.cpp index c4cbbbb791..7fdc5c8b5f 100644 --- a/indra/newview/llpreviewtexture.cpp +++ b/indra/newview/llpreviewtexture.cpp @@ -88,7 +88,7 @@ LLPreviewTexture::LLPreviewTexture(const LLSD& key)  LLPreviewTexture::~LLPreviewTexture()  { -	LLLoadedCallbackEntry::cleanUpCallbackList(&mCallbackTextureList, this) ; +	LLLoadedCallbackEntry::cleanUpCallbackList(&mCallbackTextureList) ;  	if( mLoadingFullImage )  	{ @@ -281,7 +281,7 @@ void LLPreviewTexture::saveAs()  	mLoadingFullImage = TRUE;  	getWindow()->incBusyCount();  	mImage->setLoadedCallback( LLPreviewTexture::onFileLoadedForSave,  -								0, TRUE, FALSE, new LLUUID( mItemUUID ), this, &mCallbackTextureList ); +								0, TRUE, FALSE, new LLUUID( mItemUUID ), &mCallbackTextureList );  }  // virtual diff --git a/indra/newview/llviewerattachmenu.cpp b/indra/newview/llviewerattachmenu.cpp index f7f5ec72fd..f683bd8674 100644 --- a/indra/newview/llviewerattachmenu.cpp +++ b/indra/newview/llviewerattachmenu.cpp @@ -84,7 +84,7 @@ void LLViewerAttachMenu::populateMenus(const std::string& attach_to_menu_name, c  		LLSD cbparams;  		cbparams["index"] = curiter->first; -		cbparams["label"] = attachment->getName(); +		cbparams["label"] = p.name;  		p.on_click.function_name = "Object.Attach";  		p.on_click.parameter = LLSD(attachment->getName());  		p.on_enable.function_name = "Attachment.Label"; diff --git a/indra/newview/llviewerinventory.cpp b/indra/newview/llviewerinventory.cpp index bea21931bd..2d57c16889 100644 --- a/indra/newview/llviewerinventory.cpp +++ b/indra/newview/llviewerinventory.cpp @@ -93,6 +93,7 @@ public:  		mInventoryItemsDict["New Tattoo"]		= LLTrans::getString("New Tattoo");  		mInventoryItemsDict["Invalid Wearable"] = LLTrans::getString("Invalid Wearable"); +		mInventoryItemsDict["New Gesture"]		= LLTrans::getString("New Gesture");  		mInventoryItemsDict["New Script"]		= LLTrans::getString("New Script");  		mInventoryItemsDict["New Folder"]		= LLTrans::getString("New Folder");  		mInventoryItemsDict["Contents"]			= LLTrans::getString("Contents"); @@ -120,13 +121,20 @@ public:  		mInventoryItemsDict["Male - Wow"]				= LLTrans::getString("Male - Wow");  		//female +		mInventoryItemsDict["Female - Chuckle"]			= LLTrans::getString("Female - Chuckle"); +		mInventoryItemsDict["Female - Cry"]				= LLTrans::getString("Female - Cry"); +		mInventoryItemsDict["Female - Embarrassed"]		= LLTrans::getString("Female - Embarrassed");  		mInventoryItemsDict["Female - Excuse me"]		= LLTrans::getString("Female - Excuse me");  		mInventoryItemsDict["Female  - Get lost"]		= LLTrans::getString("Female - Get lost"); // double space after Female. EXT-8319  		mInventoryItemsDict["Female - Blow kiss"]		= LLTrans::getString("Female - Blow kiss");  		mInventoryItemsDict["Female - Boo"]				= LLTrans::getString("Female - Boo");  		mInventoryItemsDict["Female - Bored"]			= LLTrans::getString("Female - Bored");  		mInventoryItemsDict["Female - Hey"]				= LLTrans::getString("Female - Hey"); +		mInventoryItemsDict["Female - Hey baby"]		= LLTrans::getString("Female - Hey baby");  		mInventoryItemsDict["Female - Laugh"]			= LLTrans::getString("Female - Laugh"); +		mInventoryItemsDict["Female - Looking good"]	= LLTrans::getString("Female - Looking good"); +		mInventoryItemsDict["Female - Over here"]		= LLTrans::getString("Female - Over here"); +		mInventoryItemsDict["Female - Please"]			= LLTrans::getString("Female - Please");  		mInventoryItemsDict["Female - Repulsed"]		= LLTrans::getString("Female - Repulsed");  		mInventoryItemsDict["Female - Shrug"]			= LLTrans::getString("Female - Shrug");  		mInventoryItemsDict["Female - Stick tougue out"]= LLTrans::getString("Female - Stick tougue out"); diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index 635cc361f3..7cca118392 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -3627,7 +3627,7 @@ class LLEnableEditShape : public view_listener_t  	}  }; -bool enable_sit_object() +bool is_object_sittable()  {  	LLViewerObject* object = LLSelectMgr::getInstance()->getSelection()->getPrimaryObject(); @@ -5513,17 +5513,17 @@ bool enable_pay_object()  	return false;  } -bool visible_object_stand_up() +bool enable_object_stand_up()  { -	// 'Object Stand Up' menu item is visible when agent is sitting on selection +	// 'Object Stand Up' menu item is enabled when agent is sitting on selection  	return sitting_on_selection();  } -bool visible_object_sit() +bool enable_object_sit()  { -	// 'Object Sit' menu item is visible when agent is not sitting on selection -	bool is_sit_visible = !sitting_on_selection(); -	if (is_sit_visible) +	// 'Object Sit' menu item is enabled when agent is not sitting on selection +	bool sitting_on_sel = sitting_on_selection(); +	if (!sitting_on_sel)  	{  		LLMenuItemGL* sit_menu_item = gMenuHolder->getChild<LLMenuItemGL>("Object Sit");  		// Init default 'Object Sit' menu item label @@ -5541,28 +5541,9 @@ bool visible_object_sit()  		}  		sit_menu_item->setLabel(label);  	} -	return is_sit_visible; +	return !sitting_on_sel && is_object_sittable();  } -class LLObjectEnableSitOrStand : public view_listener_t -{ -	bool handleEvent(const LLSD& userdata) -	{ -		bool new_value = false; -		LLViewerObject* dest_object = LLSelectMgr::getInstance()->getSelection()->getPrimaryObject(); - -		if(dest_object) -		{ -			if(dest_object->getPCode() == LL_PCODE_VOLUME) -			{ -				new_value = true; -			} -		} - -		return new_value; -	} -}; -  void dump_select_mgr(void*)  {  	LLSelectMgr::getInstance()->dump(); @@ -8067,7 +8048,7 @@ void initialize_menus()  	view_listener_t::addMenu(new LLObjectBuild(), "Object.Build");  	commit.add("Object.Touch", boost::bind(&handle_object_touch));  	commit.add("Object.SitOrStand", boost::bind(&handle_object_sit_or_stand)); -	enable.add("Object.EnableSit", boost::bind(&enable_sit_object)); +	enable.add("Object.EnableGearSit", boost::bind(&is_object_sittable));  	commit.add("Object.Delete", boost::bind(&handle_object_delete));  	view_listener_t::addMenu(new LLObjectAttachToAvatar(), "Object.AttachToAvatar");  	view_listener_t::addMenu(new LLObjectReturn(), "Object.Return"); @@ -8084,12 +8065,11 @@ void initialize_menus()  	commit.add("Object.Take", boost::bind(&handle_take));  	enable.add("Object.EnableOpen", boost::bind(&enable_object_open));  	view_listener_t::addMenu(new LLObjectEnableTouch(), "Object.EnableTouch"); -	view_listener_t::addMenu(new LLObjectEnableSitOrStand(), "Object.EnableSitOrStand");  	enable.add("Object.EnableDelete", boost::bind(&enable_object_delete));  	enable.add("Object.EnableWear", boost::bind(&object_selected_and_point_valid)); -	enable.add("Object.StandUpVisible", boost::bind(&visible_object_stand_up)); -	enable.add("Object.SitVisible", boost::bind(&visible_object_sit)); +	enable.add("Object.EnableStandUp", boost::bind(&enable_object_stand_up)); +	enable.add("Object.EnableSit", boost::bind(&enable_object_sit));  	view_listener_t::addMenu(new LLObjectEnableReturn(), "Object.EnableReturn");  	view_listener_t::addMenu(new LLObjectEnableReportAbuse(), "Object.EnableReportAbuse"); diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index 53fb01aec3..fe6988c526 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -1215,8 +1215,9 @@ bool highlight_offered_object(const LLUUID& obj_id)  void inventory_offer_mute_callback(const LLUUID& blocked_id,  								   const std::string& first_name,  								   const std::string& last_name, -								   BOOL is_group, LLOfferInfo* offer = NULL) +								   BOOL is_group, boost::shared_ptr<LLNotificationResponderInterface> offer_ptr)  { +	LLOfferInfo* offer =  dynamic_cast<LLOfferInfo*>(offer_ptr.get());  	std::string from_name;  	LLMute::EType type;  	if (is_group) @@ -1406,7 +1407,13 @@ bool LLOfferInfo::inventory_offer_callback(const LLSD& notification, const LLSD&  	// * we can't build two messages at once.  	if (2 == button) // Block  	{ -		gCacheName->get(mFromID, mFromGroup, boost::bind(&inventory_offer_mute_callback,_1,_2,_3,_4,this)); +		LLNotificationPtr notification_ptr = LLNotifications::instance().find(notification["id"].asUUID()); + +		llassert(notification_ptr != NULL); +		if (notification_ptr != NULL) +		{ +			gCacheName->get(mFromID, mFromGroup, boost::bind(&inventory_offer_mute_callback,_1,_2,_3,_4, notification_ptr->getResponderPtr())); +		}  	}  	std::string from_string; // Used in the pop-up. @@ -1540,7 +1547,13 @@ bool LLOfferInfo::inventory_task_offer_callback(const LLSD& notification, const  	// * we can't build two messages at once.  	if (2 == button)  	{ -		gCacheName->get(mFromID, mFromGroup, boost::bind(&inventory_offer_mute_callback,_1,_2,_3,_4,this)); +		LLNotificationPtr notification_ptr = LLNotifications::instance().find(notification["id"].asUUID()); + +		llassert(notification_ptr != NULL); +		if (notification_ptr != NULL) +		{ +			gCacheName->get(mFromID, mFromGroup, boost::bind(&inventory_offer_mute_callback,_1,_2,_3,_4, notification_ptr->getResponderPtr())); +		}  	}  	LLMessageSystem* msg = gMessageSystem; diff --git a/indra/newview/llviewertexture.cpp b/indra/newview/llviewertexture.cpp index 75bb9f84e2..928525244c 100644 --- a/indra/newview/llviewertexture.cpp +++ b/indra/newview/llviewertexture.cpp @@ -114,7 +114,6 @@ LLLoadedCallbackEntry::LLLoadedCallbackEntry(loaded_callback_func cb,  					  BOOL need_imageraw, // Needs image raw for the callback  					  void* userdata,  					  LLLoadedCallbackEntry::source_callback_list_t* src_callback_list, -					  void* source,  					  LLViewerFetchedTexture* target,  					  BOOL pause)   	: mCallback(cb), @@ -123,7 +122,6 @@ LLLoadedCallbackEntry::LLLoadedCallbackEntry(loaded_callback_func cb,  	  mNeedsImageRaw(need_imageraw),  	  mUserData(userdata),  	  mSourceCallbackList(src_callback_list), -	  mSource(source),  	  mPaused(pause)  {  	if(mSourceCallbackList) @@ -145,10 +143,10 @@ void LLLoadedCallbackEntry::removeTexture(LLViewerFetchedTexture* tex)  }  //static  -void LLLoadedCallbackEntry::cleanUpCallbackList(LLLoadedCallbackEntry::source_callback_list_t* callback_list, void* src) +void LLLoadedCallbackEntry::cleanUpCallbackList(LLLoadedCallbackEntry::source_callback_list_t* callback_list)  {  	//clear texture callbacks. -	if(!callback_list->empty()) +	if(callback_list && !callback_list->empty())  	{  		for(LLLoadedCallbackEntry::source_callback_list_t::iterator iter = callback_list->begin();  				iter != callback_list->end(); ++iter) @@ -156,7 +154,7 @@ void LLLoadedCallbackEntry::cleanUpCallbackList(LLLoadedCallbackEntry::source_ca  			LLViewerFetchedTexture* tex = gTextureList.findImage(*iter) ;  			if(tex)  			{ -				tex->deleteCallbackEntry(src) ;			 +				tex->deleteCallbackEntry(callback_list) ;			  			}  		}  		callback_list->clear() ; @@ -514,6 +512,7 @@ LLViewerTexture::LLViewerTexture(const LLImageRaw* raw, BOOL usemipmaps)  LLViewerTexture::~LLViewerTexture()  { +	cleanup();  	sImageCount--;  } @@ -547,7 +546,6 @@ S8 LLViewerTexture::getType() const  	return LLViewerTexture::LOCAL_TEXTURE ;  } -//virtual  void LLViewerTexture::cleanup()  {  	mFaceList.clear() ; @@ -1186,7 +1184,6 @@ S8 LLViewerFetchedTexture::getType() const  	return LLViewerTexture::FETCHED_TEXTURE ;  } -//virtual  void LLViewerFetchedTexture::cleanup()  {  	for(callback_list_t::iterator iter = mLoadedCallbackList.begin(); @@ -1208,8 +1205,6 @@ void LLViewerFetchedTexture::cleanup()  	mCachedRawDiscardLevel = -1 ;  	mCachedRawImageReady = FALSE ;  	mSavedRawImage = NULL ; - -	LLViewerTexture::cleanup();  }  void LLViewerFetchedTexture::setForSculpt() @@ -2038,7 +2033,7 @@ void LLViewerFetchedTexture::setIsMissingAsset()  }  void LLViewerFetchedTexture::setLoadedCallback( loaded_callback_func loaded_callback, -									   S32 discard_level, BOOL keep_imageraw, BOOL needs_aux, void* userdata, void* src, +									   S32 discard_level, BOOL keep_imageraw, BOOL needs_aux, void* userdata,   									   LLLoadedCallbackEntry::source_callback_list_t* src_callback_list, BOOL pause)  {  	// @@ -2057,9 +2052,9 @@ void LLViewerFetchedTexture::setLoadedCallback( loaded_callback_func loaded_call  	if(mPauseLoadedCallBacks && !pause)  	{ -		unpauseLoadedCallbacks(src) ; +		unpauseLoadedCallbacks(src_callback_list) ;  	} -	LLLoadedCallbackEntry* entryp = new LLLoadedCallbackEntry(loaded_callback, discard_level, keep_imageraw, userdata, src_callback_list, src, this, pause); +	LLLoadedCallbackEntry* entryp = new LLLoadedCallbackEntry(loaded_callback, discard_level, keep_imageraw, userdata, src_callback_list, this, pause);  	mLoadedCallbackList.push_back(entryp);	  	mNeedsAux |= needs_aux; @@ -2074,9 +2069,9 @@ void LLViewerFetchedTexture::setLoadedCallback( loaded_callback_func loaded_call  	}  } -void LLViewerFetchedTexture::deleteCallbackEntry(void* src) +void LLViewerFetchedTexture::deleteCallbackEntry(const LLLoadedCallbackEntry::source_callback_list_t* callback_list)  { -	if(mLoadedCallbackList.empty()) +	if(mLoadedCallbackList.empty() || !callback_list)  	{  		return ;  	} @@ -2087,13 +2082,13 @@ void LLViewerFetchedTexture::deleteCallbackEntry(void* src)  			iter != mLoadedCallbackList.end(); )  	{  		LLLoadedCallbackEntry *entryp = *iter; -		if(entryp->mSource == src) +		if(entryp->mSourceCallbackList == callback_list)  		{  			// We never finished loading the image.  Indicate failure.  			// Note: this allows mLoadedCallbackUserData to be cleaned up.  			entryp->mCallback(FALSE, this, NULL, NULL, 0, TRUE, entryp->mUserData); -			delete entryp;  			iter = mLoadedCallbackList.erase(iter) ; +			delete entryp;  		}  		else  		{ @@ -2132,14 +2127,20 @@ void LLViewerFetchedTexture::deleteCallbackEntry(void* src)  	}  } -void LLViewerFetchedTexture::unpauseLoadedCallbacks(void* src) +void LLViewerFetchedTexture::unpauseLoadedCallbacks(const LLLoadedCallbackEntry::source_callback_list_t* callback_list)  { +	if(!callback_list) +	{ +		mPauseLoadedCallBacks = FALSE ; +		return ; +	} +  	BOOL need_raw = FALSE ;  	for(callback_list_t::iterator iter = mLoadedCallbackList.begin();  			iter != mLoadedCallbackList.end(); )  	{  		LLLoadedCallbackEntry *entryp = *iter++; -		if(entryp->mSource == src) +		if(entryp->mSourceCallbackList == callback_list)  		{  			entryp->mPaused = FALSE ;  			if(entryp->mNeedsImageRaw) @@ -2155,15 +2156,20 @@ void LLViewerFetchedTexture::unpauseLoadedCallbacks(void* src)  	}  } -void LLViewerFetchedTexture::pauseLoadedCallbacks(void* src) +void LLViewerFetchedTexture::pauseLoadedCallbacks(const LLLoadedCallbackEntry::source_callback_list_t* callback_list)  { +	if(!callback_list) +	{ +		return ; +	} +  	bool paused = true ;  	for(callback_list_t::iterator iter = mLoadedCallbackList.begin();  			iter != mLoadedCallbackList.end(); )  	{  		LLLoadedCallbackEntry *entryp = *iter++; -		if(entryp->mSource == src) +		if(entryp->mSourceCallbackList == callback_list)  		{  			entryp->mPaused = TRUE ;  		} @@ -2340,10 +2346,6 @@ bool LLViewerFetchedTexture::doLoadedCallbacks()  				BOOL final = mRawDiscardLevel <= entryp->mDesiredDiscard ? TRUE : FALSE;  				//llinfos << "Running callback for " << getID() << llendl;  				//llinfos << mRawImage->getWidth() << "x" << mRawImage->getHeight() << llendl; -				if (final) -				{ -					//llinfos << "Final!" << llendl; -				}  				entryp->mLastUsedDiscard = mRawDiscardLevel;  				entryp->mCallback(TRUE, this, mRawImage, mAuxRawImage, mRawDiscardLevel, final, entryp->mUserData);  				if (final) diff --git a/indra/newview/llviewertexture.h b/indra/newview/llviewertexture.h index b33d04e8dd..1f0d760daf 100644 --- a/indra/newview/llviewertexture.h +++ b/indra/newview/llviewertexture.h @@ -75,7 +75,6 @@ public:  						  BOOL need_imageraw, // Needs image raw for the callback  						  void* userdata,  						  source_callback_list_t* src_callback_list, -						  void* source,  						  LLViewerFetchedTexture* target,  						  BOOL pause);  	~LLLoadedCallbackEntry(); @@ -88,10 +87,9 @@ public:  	BOOL                    mPaused;  	void*					mUserData;  	source_callback_list_t* mSourceCallbackList; -	void*                   mSource;  public: -	static void cleanUpCallbackList(LLLoadedCallbackEntry::source_callback_list_t* callback_list, void* src) ; +	static void cleanUpCallbackList(LLLoadedCallbackEntry::source_callback_list_t* callback_list) ;  };  class LLTextureBar; @@ -265,7 +263,7 @@ public:  	/*virtual*/ void updateBindStatsForTester() ;  protected: -	virtual void cleanup() ; +	void cleanup() ;  	void init(bool firstinit) ;	  	void reorganizeFaceList() ;  	void reorganizeVolumeList() ; @@ -387,13 +385,13 @@ public:  	// Set callbacks to get called when the image gets updated with higher   	// resolution versions.  	void setLoadedCallback(loaded_callback_func cb, -						   S32 discard_level, BOOL keep_imageraw, BOOL needs_aux, void* src, +						   S32 discard_level, BOOL keep_imageraw, BOOL needs_aux,  						   void* userdata, LLLoadedCallbackEntry::source_callback_list_t* src_callback_list, BOOL pause = FALSE);  	bool hasCallbacks() { return mLoadedCallbackList.empty() ? false : true; }	 -	void pauseLoadedCallbacks(void* src); -	void unpauseLoadedCallbacks(void* src); +	void pauseLoadedCallbacks(const LLLoadedCallbackEntry::source_callback_list_t* callback_list); +	void unpauseLoadedCallbacks(const LLLoadedCallbackEntry::source_callback_list_t* callback_list);  	bool doLoadedCallbacks(); -	void deleteCallbackEntry(void* src); +	void deleteCallbackEntry(const LLLoadedCallbackEntry::source_callback_list_t* callback_list);  	void addToCreateTexture(); @@ -488,7 +486,7 @@ protected:  private:  	void init(bool firstinit) ; -	/*virtual*/ void cleanup() ; +	void cleanup() ;  	void saveRawImage() ;  	void setCachedRawImage() ; diff --git a/indra/newview/llviewertexturelist.cpp b/indra/newview/llviewertexturelist.cpp index f2a3839f97..31f0998fab 100644 --- a/indra/newview/llviewertexturelist.cpp +++ b/indra/newview/llviewertexturelist.cpp @@ -1411,7 +1411,7 @@ LLUIImagePtr LLUIImageList::loadUIImage(LLViewerFetchedTexture* imagep, const st  		datap->mImageName = name;  		datap->mImageScaleRegion = scale_rect; -		imagep->setLoadedCallback(onUIImageLoaded, 0, FALSE, FALSE, datap, NULL, NULL); +		imagep->setLoadedCallback(onUIImageLoaded, 0, FALSE, FALSE, datap, NULL);  	}  	return new_imagep;  } diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index 07b98eaf82..53b47ec408 100644 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -835,6 +835,7 @@ LLVOAvatar::~LLVOAvatar()  	mDead = TRUE;  	mAnimationSources.clear(); +	LLLoadedCallbackEntry::cleanUpCallbackList(&mCallbackTextureList) ;  	lldebugs << "LLVOAvatar Destructor end" << llendl;  } @@ -848,7 +849,7 @@ void LLVOAvatar::markDead()  		sNumVisibleChatBubbles--;  	}  	mVoiceVisualizer->markDead(); -	LLLoadedCallbackEntry::cleanUpCallbackList(&mCallbackTextureList, this) ; +	LLLoadedCallbackEntry::cleanUpCallbackList(&mCallbackTextureList) ;  	LLViewerObject::markDead();  } @@ -4255,13 +4256,13 @@ void LLVOAvatar::checkTextureLoading()  		{  			if(pause)//pause texture fetching.  			{ -				tex->pauseLoadedCallbacks(this) ; +				tex->pauseLoadedCallbacks(&mCallbackTextureList) ;  			}  			else//unpause  			{  				static const F32 START_AREA = 100.f ; -				tex->unpauseLoadedCallbacks(this) ; +				tex->unpauseLoadedCallbacks(&mCallbackTextureList) ;  				tex->addTextureStats(START_AREA); //jump start the fetching again  			}  		}		 @@ -6210,11 +6211,9 @@ void LLVOAvatar::updateMeshTextures()  	const BOOL self_customizing = isSelf() && gAgentCamera.cameraCustomizeAvatar(); // During face edit mode, we don't use baked textures  	const BOOL other_culled = !isSelf() && mCulled;  	LLLoadedCallbackEntry::source_callback_list_t* src_callback_list = NULL ; -	void* callback_src = NULL ;  	BOOL paused = FALSE;  	if(!isSelf())  	{ -		callback_src = this ;  		src_callback_list = &mCallbackTextureList ;  		paused = mLoadedCallbacksPaused ;  	} @@ -6290,10 +6289,10 @@ void LLVOAvatar::updateMeshTextures()  				if ( (baked_img->getID() != IMG_INVISIBLE) && ((i == BAKED_HEAD) || (i == BAKED_UPPER) || (i == BAKED_LOWER)) )  				{			  					baked_img->setLoadedCallback(onBakedTextureMasksLoaded, MORPH_MASK_REQUESTED_DISCARD, TRUE, TRUE, new LLTextureMaskData( mID ),  -						callback_src, src_callback_list, paused);	 +						src_callback_list, paused);	  				}  				baked_img->setLoadedCallback(onBakedTextureLoaded, SWITCH_TO_BAKED_DISCARD, FALSE, FALSE, new LLUUID( mID ),  -					callback_src, src_callback_list, paused ); +					src_callback_list, paused );  			}  		}  		else if (mBakedTextureDatas[i].mTexLayerSet  @@ -6754,11 +6753,9 @@ void LLVOAvatar::onFirstTEMessageReceived()  		mFirstTEMessageReceived = TRUE;  		LLLoadedCallbackEntry::source_callback_list_t* src_callback_list = NULL ; -		void* callback_src = NULL ;  		BOOL paused = FALSE ;  		if(!isSelf())  		{ -			callback_src = this ;  			src_callback_list = &mCallbackTextureList ;  			paused = mLoadedCallbacksPaused ;  		} @@ -6777,10 +6774,10 @@ void LLVOAvatar::onFirstTEMessageReceived()  				if ( (image->getID() != IMG_INVISIBLE) && ((i == BAKED_HEAD) || (i == BAKED_UPPER) || (i == BAKED_LOWER)) )  				{  					image->setLoadedCallback( onBakedTextureMasksLoaded, MORPH_MASK_REQUESTED_DISCARD, TRUE, TRUE, new LLTextureMaskData( mID ),  -						callback_src, src_callback_list, paused); +						src_callback_list, paused);  				}  				image->setLoadedCallback( onInitialBakedTextureLoaded, MAX_DISCARD_LEVEL, FALSE, FALSE, new LLUUID( mID ),  -					callback_src, src_callback_list, paused ); +					src_callback_list, paused );  			}  		} diff --git a/indra/newview/llvoavatarself.cpp b/indra/newview/llvoavatarself.cpp index b80e47e11a..8961d2c285 100644 --- a/indra/newview/llvoavatarself.cpp +++ b/indra/newview/llvoavatarself.cpp @@ -1633,7 +1633,7 @@ void LLVOAvatarSelf::setLocalTexture(ETextureIndex type, LLViewerTexture* src_te  				}  				else  				{					 -					tex->setLoadedCallback(onLocalTextureLoaded, desired_discard, TRUE, FALSE, new LLAvatarTexData(getID(), type), NULL, NULL); +					tex->setLoadedCallback(onLocalTextureLoaded, desired_discard, TRUE, FALSE, new LLAvatarTexData(getID(), type), NULL);  				}  			}  			tex->setMinDiscardLevel(desired_discard); diff --git a/indra/newview/llwearable.cpp b/indra/newview/llwearable.cpp index ec9c78ee53..401e2cdb1b 100644 --- a/indra/newview/llwearable.cpp +++ b/indra/newview/llwearable.cpp @@ -445,7 +445,7 @@ BOOL LLWearable::importFile( LLFILE* file )  		}  		image->setBoostLevel(LLViewerTexture::BOOST_AVATAR_SELF) ; -		image->setLoadedCallback(LLVOAvatarSelf::debugOnTimingLocalTexLoaded,0,TRUE,FALSE, new LLVOAvatarSelf::LLAvatarTexData(id, (LLVOAvatarDefines::ETextureIndex)te), NULL, NULL); +		image->setLoadedCallback(LLVOAvatarSelf::debugOnTimingLocalTexLoaded,0,TRUE,FALSE, new LLVOAvatarSelf::LLAvatarTexData(id, (LLVOAvatarDefines::ETextureIndex)te), NULL);  		LLUUID textureid(text_buffer);  		mTEMap[te] = new LLLocalTextureObject(image, textureid); diff --git a/indra/newview/skins/default/xui/en/floater_preview_gesture.xml b/indra/newview/skins/default/xui/en/floater_preview_gesture.xml index 6281bc5272..7be9cfbb71 100644 --- a/indra/newview/skins/default/xui/en/floater_preview_gesture.xml +++ b/indra/newview/skins/default/xui/en/floater_preview_gesture.xml @@ -162,12 +162,16 @@       top_delta="15"       width="180">          <scroll_list.rows +         name="action_animation"           value="Animation" />          <scroll_list.rows +         name="action_sound"           value="Sound" />          <scroll_list.rows +         name="action_chat"           value="Chat" />          <scroll_list.rows +         name="action_wait"           value="Wait" />      </scroll_list>      <button diff --git a/indra/newview/skins/default/xui/en/menu_inspect_object_gear.xml b/indra/newview/skins/default/xui/en/menu_inspect_object_gear.xml index 22df02cd7e..b6f00ef6d1 100644 --- a/indra/newview/skins/default/xui/en/menu_inspect_object_gear.xml +++ b/indra/newview/skins/default/xui/en/menu_inspect_object_gear.xml @@ -22,7 +22,7 @@      <menu_item_call.on_click       function="InspectObject.Sit"/>      <menu_item_call.on_visible -     function="Object.EnableSit" /> +     function="Object.EnableGearSit" />    </menu_item_call>    <menu_item_call     label="Pay" diff --git a/indra/newview/skins/default/xui/en/menu_object.xml b/indra/newview/skins/default/xui/en/menu_object.xml index 397e61c97a..b6cc222e96 100644 --- a/indra/newview/skins/default/xui/en/menu_object.xml +++ b/indra/newview/skins/default/xui/en/menu_object.xml @@ -45,10 +45,7 @@          <menu_item_call.on_click           function="Object.SitOrStand" />          <menu_item_call.on_enable -         function="Object.SitVisible" /> -        <menu_item_call.on_enable -         function="Object.EnableSitOrStand" -         name="EnableSitOrStand" /> +         function="Object.EnableSit" />     </menu_item_call>     <menu_item_call       enabled="false" @@ -57,10 +54,7 @@          <menu_item_call.on_click           function="Object.SitOrStand" />          <menu_item_call.on_enable -         function="Object.StandUpVisible" /> -        <menu_item_call.on_enable -         function="Object.EnableSitOrStand" -         name="EnableSitOrStand" /> +         function="Object.EnableStandUp" />     </menu_item_call>     <menu_item_call         label="Object Profile" diff --git a/indra/newview/skins/default/xui/en/panel_edit_wearable.xml b/indra/newview/skins/default/xui/en/panel_edit_wearable.xml index 484617df34..9fb777e0e7 100644 --- a/indra/newview/skins/default/xui/en/panel_edit_wearable.xml +++ b/indra/newview/skins/default/xui/en/panel_edit_wearable.xml @@ -242,6 +242,7 @@           max_length="63"           name="description"           prevalidate_callback="ascii" +         select_on_focus="true"           text_color="black"           top_pad="3"           width="290" /> diff --git a/indra/newview/skins/default/xui/en/panel_preferences_sound.xml b/indra/newview/skins/default/xui/en/panel_preferences_sound.xml index 65c78ad333..aa760edad3 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_sound.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_sound.xml @@ -408,6 +408,14 @@          name="default_text">          Default        </panel.string> +      <panel.string +        name="default system device"> +        Default system device +      </panel.string> +      <panel.string +        name="no device"> +        No device +      </panel.string>        <icon               height="18"               image_name="Microphone_On" diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml index dfca765783..e5bd549036 100644 --- a/indra/newview/skins/default/xui/en/strings.xml +++ b/indra/newview/skins/default/xui/en/strings.xml @@ -1913,6 +1913,7 @@ Clears (deletes) the media and all params from the given face.  	<string name="AnimFlagStop"  value=" Stop Animation :    " />  	<string name="AnimFlagStart" value=" Start Animation :   " />  	<string name="Wave"          value=" Wave " /> +	<string name="GestureActionNone" value="None" />  	<string name="HelloAvatar"   value=" Hello, avatar! " />  	<string name="ViewAllGestures"  value="  View All >>" />  	<string name="GetMoreGestures"  value="  Get More >>" /> @@ -1960,6 +1961,7 @@ Clears (deletes) the media and all params from the given face.    We should localize both of them with the same value -->  	<string name="InvFolder favorite">Favorites</string>  	<string name="InvFolder Current Outfit">Current Outfit</string> +	<string name="InvFolder Initial Outfits">Initial Outfits</string>  	<string name="InvFolder My Outfits">My Outfits</string>  	<string name="InvFolder Accessories">Accessories</string> @@ -3161,6 +3163,7 @@ Abuse Report</string>    <string name="New Alpha">New Alpha</string>    <string name="New Tattoo">New Tattoo</string>    <string name="Invalid Wearable">Invalid Wearable</string> +  <string name="New Gesture">New Gesture</string>    <string name="New Script">New Script</string>    <string name="New Folder">New Folder</string>    <string name="Contents">Contents</string> @@ -3183,13 +3186,20 @@ Abuse Report</string>    <string name="Male - Stick tougue out">Male - Stick tougue out</string>    <string name="Male - Wow">Male - Wow</string> +  <string name="Female - Chuckle">Female - Chuckle</string> +  <string name="Female - Cry">Female - Cry</string> +  <string name="Female - Embarrassed">Female - Embarrassed</string>    <string name="Female - Excuse me">Female - Excuse me</string>    <string name="Female - Get lost">Female - Get lost</string>    <string name="Female - Blow kiss">Female - Blow kiss</string>    <string name="Female - Boo">Female - Boo</string>    <string name="Female - Bored">Female - Bored</string>    <string name="Female - Hey">Female - Hey</string> +  <string name="Female - Hey baby">Female - Hey baby</string>    <string name="Female - Laugh">Female - Laugh</string> +  <string name="Female - Looking good">Female - Looking good</string> +  <string name="Female - Over here">Female - Over here</string> +  <string name="Female - Please">Female - Please</string>    <string name="Female - Repulsed">Female - Repulsed</string>    <string name="Female - Shrug">Female - Shrug</string>    <string name="Female - Stick tougue out">Female - Stick tougue out</string>  | 
