diff options
Diffstat (limited to 'indra/newview')
| -rw-r--r-- | indra/newview/lldrawpoolbump.cpp | 5 | ||||
| -rw-r--r-- | indra/newview/llfloaterbuyland.cpp | 14 | ||||
| -rw-r--r-- | indra/newview/llviewermessage.cpp | 9 | ||||
| -rw-r--r-- | indra/newview/llviewerparcelmgr.cpp | 5 | ||||
| -rw-r--r-- | indra/newview/llviewertexturelist.cpp | 36 | ||||
| -rw-r--r-- | indra/newview/llviewertexturelist.h | 9 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/floater_snapshot.xml | 2 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/notifications.xml | 28 | ||||
| -rw-r--r-- | indra/newview/skins/minimal/xui/en/main_view.xml | 14 | 
9 files changed, 96 insertions, 26 deletions
| diff --git a/indra/newview/lldrawpoolbump.cpp b/indra/newview/lldrawpoolbump.cpp index 223e4a438c..c987847c66 100644 --- a/indra/newview/lldrawpoolbump.cpp +++ b/indra/newview/lldrawpoolbump.cpp @@ -853,6 +853,11 @@ void LLBumpImageList::destroyGL()  void LLBumpImageList::restoreGL()  { +	if(!gTextureList.isInitialized())
 +	{
 +		return ;
 +	} +  	LLStandardBumpmap::restoreGL();  	// Images will be recreated as they are needed.  } diff --git a/indra/newview/llfloaterbuyland.cpp b/indra/newview/llfloaterbuyland.cpp index 83105ef27c..50b19a4221 100644 --- a/indra/newview/llfloaterbuyland.cpp +++ b/indra/newview/llfloaterbuyland.cpp @@ -459,10 +459,18 @@ void LLFloaterBuyLandUI::updateParcelInfo()  			return;  		} -		if (!authorizedBuyer.isNull()  &&  buyer != authorizedBuyer) +		if (!authorizedBuyer.isNull() && buyer != authorizedBuyer)  		{ -			mCannotBuyReason = getString("set_to_sell_to_other"); -			return; +			// Maybe the parcel is set for sale to a group we are in.
 +			bool authorized_group =
 +				gAgent.hasPowerInGroup(authorizedBuyer,GP_LAND_DEED)
 +				&& gAgent.hasPowerInGroup(authorizedBuyer,GP_LAND_SET_SALE_INFO);
 +
 +			if (!authorized_group)
 +			{
 +				mCannotBuyReason = getString("set_to_sell_to_other");
 +				return;
 +			}  		}  	}  	else diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index fc11cbc28a..298e789f65 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -344,6 +344,11 @@ void process_layer_data(LLMessageSystem *mesgsys, void **user_data)  {  	LLViewerRegion *regionp = LLWorld::getInstance()->getRegion(mesgsys->getSender()); +	if(!regionp) +	{ +		llwarns << "Invalid region for layer data." << llendl; +		return; +	}  	S32 size;  	S8 type; @@ -2208,7 +2213,9 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)  	name = clean_name_from_im(name, dialog);  	BOOL is_busy = gAgent.getBusy(); -	BOOL is_muted = LLMuteList::getInstance()->isMuted(from_id, name, LLMute::flagTextChat); +	BOOL is_muted = LLMuteList::getInstance()->isMuted(from_id, name, LLMute::flagTextChat) +		// object IMs contain sender object id in session_id (STORM-1209) +		|| dialog == IM_FROM_TASK && LLMuteList::getInstance()->isMuted(session_id);  	BOOL is_linden = LLMuteList::getInstance()->isLinden(name);  	BOOL is_owned_by_me = FALSE;  	BOOL is_friend = (LLAvatarTracker::instance().getBuddyInfo(from_id) == NULL) ? false : true; diff --git a/indra/newview/llviewerparcelmgr.cpp b/indra/newview/llviewerparcelmgr.cpp index e84e4a859a..c84a14f62c 100644 --- a/indra/newview/llviewerparcelmgr.cpp +++ b/indra/newview/llviewerparcelmgr.cpp @@ -2200,7 +2200,10 @@ bool LLViewerParcelMgr::canAgentBuyParcel(LLParcel* parcel, bool forGroup) const  		= parcelOwner == (forGroup ? gAgent.getGroupID() : gAgent.getID());  	bool isAuthorized -		= (authorizeBuyer.isNull() || (gAgent.getID() == authorizeBuyer)); +			= (authorizeBuyer.isNull()
 +				|| (gAgent.getID() == authorizeBuyer)
 +				|| (gAgent.hasPowerInGroup(authorizeBuyer,GP_LAND_DEED)
 +					&& gAgent.hasPowerInGroup(authorizeBuyer,GP_LAND_SET_SALE_INFO)));  	return isForSale && !isOwner && isAuthorized  && isEmpowered;  } diff --git a/indra/newview/llviewertexturelist.cpp b/indra/newview/llviewertexturelist.cpp index 8cf9b98d5d..33e7328cd7 100644 --- a/indra/newview/llviewertexturelist.cpp +++ b/indra/newview/llviewertexturelist.cpp @@ -76,18 +76,23 @@ LLStat LLViewerTextureList::sFormattedMemStat(32, TRUE);  LLViewerTextureList gTextureList;  static LLFastTimer::DeclareTimer FTM_PROCESS_IMAGES("Process Images"); +U32 LLViewerTextureList::sRenderThreadID = 0 ;  ///////////////////////////////////////////////////////////////////////////////  LLViewerTextureList::LLViewerTextureList()   	: mForceResetTextureStats(FALSE),  	mUpdateStats(FALSE),  	mMaxResidentTexMemInMegaBytes(0), -	mMaxTotalTextureMemInMegaBytes(0) +	mMaxTotalTextureMemInMegaBytes(0), +	mInitialized(FALSE)  {  }  void LLViewerTextureList::init()  { +	sRenderThreadID = LLThread::currentID() ; + +	mInitialized = TRUE ;  	sNumImages = 0;  	mMaxResidentTexMemInMegaBytes = 0;  	mMaxTotalTextureMemInMegaBytes = 0 ; @@ -105,6 +110,10 @@ void LLViewerTextureList::doPreloadImages()  {  	LL_DEBUGS("ViewerImages") << "Preloading images..." << LL_ENDL; +	llassert_always(mInitialized) ;
 +	llassert_always(mImageList.empty()) ;
 +	llassert_always(mUUIDMap.empty()) ; +  	// Set the "missing asset" image  	LLViewerFetchedTexture::sMissingAssetImagep = LLViewerTextureManager::getFetchedTextureFromFile("missing_asset.tga", MIPMAP_NO, LLViewerFetchedTexture::BOOST_UI); @@ -300,6 +309,7 @@ void LLViewerTextureList::destroyGL(BOOL save_state)  void LLViewerTextureList::restoreGL()  { +	llassert_always(mInitialized) ;  	LLImageGL::restoreGL();  } @@ -477,8 +487,10 @@ LLViewerFetchedTexture *LLViewerTextureList::findImage(const LLUUID &image_id)  	return iter->second;  } -void LLViewerTextureList::addImageToList(LLViewerFetchedTexture *image) +void LLViewerTextureList::addImageToList(LLViewerFetchedTexture *image, U32 thread_id)  { +	llassert_always(mInitialized) ; +	llassert_always(sRenderThreadID == thread_id);  	llassert(image);  	if (image->isInImageList())  	{ @@ -492,8 +504,10 @@ void LLViewerTextureList::addImageToList(LLViewerFetchedTexture *image)  	image->setInImageList(TRUE) ;  } -void LLViewerTextureList::removeImageFromList(LLViewerFetchedTexture *image) +void LLViewerTextureList::removeImageFromList(LLViewerFetchedTexture *image, U32 thread_id)  { +	llassert_always(mInitialized) ; +	llassert_always(sRenderThreadID == thread_id);  	llassert(image);  	if (!image->isInImageList())  	{ @@ -690,9 +704,9 @@ void LLViewerTextureList::updateImagesDecodePriorities()  			if ((decode_priority_test < old_priority_test * .8f) ||  				(decode_priority_test > old_priority_test * 1.25f))  			{ -				removeImageFromList(imagep); +				removeImageFromList(imagep, sRenderThreadID);  				imagep->setDecodePriority(decode_priority); -				addImageToList(imagep); +				addImageToList(imagep, sRenderThreadID);  			}  			update_counter--;  		} @@ -769,9 +783,8 @@ void LLViewerTextureList::forceImmediateUpdate(LLViewerFetchedTexture* imagep)  	imagep->processTextureStats();  	F32 decode_priority = LLViewerFetchedTexture::maxDecodePriority() ;  	imagep->setDecodePriority(decode_priority); -	mImageList.insert(imagep); -	imagep->setInImageList(TRUE) ; - +	addImageToList(imagep); +	  	return ;  } @@ -864,7 +877,9 @@ void LLViewerTextureList::updateImagesUpdateStats()  void LLViewerTextureList::decodeAllImages(F32 max_time)  {  	LLTimer timer; -	 + +	llassert_always(sRenderThreadID == LLThread::currentID()); +  	// Update texture stats and priorities  	std::vector<LLPointer<LLViewerFetchedTexture> > image_list;  	for (image_priority_list_t::iterator iter = mImageList.begin(); @@ -882,8 +897,7 @@ void LLViewerTextureList::decodeAllImages(F32 max_time)  		imagep->processTextureStats();  		F32 decode_priority = imagep->calcDecodePriority();  		imagep->setDecodePriority(decode_priority); -		mImageList.insert(imagep); -		imagep->setInImageList(TRUE) ; +		addImageToList(imagep);  	}  	image_list.clear(); diff --git a/indra/newview/llviewertexturelist.h b/indra/newview/llviewertexturelist.h index d508ce1ac6..27aab0c081 100644 --- a/indra/newview/llviewertexturelist.h +++ b/indra/newview/llviewertexturelist.h @@ -83,6 +83,7 @@ public:  	void dump();  	void destroyGL(BOOL save_state = TRUE);  	void restoreGL(); +	BOOL isInitialized() const {return mInitialized;}  	LLViewerFetchedTexture *findImage(const LLUUID &image_id); @@ -120,8 +121,8 @@ private:  	void addImage(LLViewerFetchedTexture *image);  	void deleteImage(LLViewerFetchedTexture *image); -	void addImageToList(LLViewerFetchedTexture *image); -	void removeImageFromList(LLViewerFetchedTexture *image); +	void addImageToList(LLViewerFetchedTexture *image, U32 thread_id = LLThread::currentID()); +	void removeImageFromList(LLViewerFetchedTexture *image, U32 thread_id = LLThread::currentID());  	LLViewerFetchedTexture * getImage(const LLUUID &image_id,									   									 BOOL usemipmap = TRUE, @@ -187,6 +188,7 @@ private:  	// simply holds on to LLViewerFetchedTexture references to stop them from being purged too soon  	std::set<LLPointer<LLViewerFetchedTexture> > mImagePreloads; +	BOOL mInitialized ;  	BOOL mUpdateStats;  	S32	mMaxResidentTexMemInMegaBytes;  	S32 mMaxTotalTextureMemInMegaBytes; @@ -206,6 +208,9 @@ public:  private:  	static S32 sNumImages;  	static void (*sUUIDCallback)(void**, const LLUUID &); + +	//debug use +	static U32 sRenderThreadID;  };  class LLUIImageList : public LLImageProviderInterface, public LLSingleton<LLUIImageList> diff --git a/indra/newview/skins/default/xui/en/floater_snapshot.xml b/indra/newview/skins/default/xui/en/floater_snapshot.xml index 857932e51a..e413228ddc 100644 --- a/indra/newview/skins/default/xui/en/floater_snapshot.xml +++ b/indra/newview/skins/default/xui/en/floater_snapshot.xml @@ -11,7 +11,7 @@   save_rect="true"   save_visibility="true"   title="SNAPSHOT PREVIEW" - width="215"> + width="245">      <floater.string       name="unknown">          unknown diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index c64d492612..06614dd218 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -6817,6 +6817,34 @@ Deed to group failed.    <notification     icon="notifytip.tga" +   name="ReleaseLandThrottled" +   type="notifytip"> +The parcel [PARCEL_NAME] can not be abandoned at this time. +   tag>fail</tag> +  </notification> +	 +  <notification +   icon="notifytip.tga" +   name="ReleasedLandWithReclaim" +   type="notifytip"> +The [AREA] m² parcel '[PARCEL_NAME]' has been released. + +You will have [RECLAIM_PERIOD] hours to reclaim for L$0 before it is set for sale to anyone. +   <tag>fail</tag> +  </notification> +	 +  <notification +   icon="notifytip.tga" +   name="ReleasedLandNoReclaim" +   type="notifytip"> +The [AREA] m² parcel '[PARCEL_NAME]' has been released. + +It is now available for purchase by anyone. +   <tag>fail</tag> +  </notification> + +  <notification +   icon="notifytip.tga"     name="AvatarRezNotification"     type="notifytip">  ( [EXISTENCE] seconds alive ) diff --git a/indra/newview/skins/minimal/xui/en/main_view.xml b/indra/newview/skins/minimal/xui/en/main_view.xml index ac5bae2f3b..6e8ad9adaf 100644 --- a/indra/newview/skins/minimal/xui/en/main_view.xml +++ b/indra/newview/skins/minimal/xui/en/main_view.xml @@ -8,6 +8,13 @@   tab_stop="false"    name="main_view"   width="1024"> +              <panel top="0" +               follows="all" +               height="768" +               mouse_opaque="false" +               name="login_panel_holder" +               width="1024"/> +    <layout_stack border_size="0"                  follows="all"                  mouse_opaque="false" @@ -90,13 +97,6 @@                       visible="false"                       width="500"/> -              <panel top="0" -               follows="all" -               height="500" -               mouse_opaque="false" -               name="login_panel_holder" -               width="1024"/> -                <panel follows="all"  										 height="500"  										 left="0" | 
