diff options
| author | Tofu Linden <tofu.linden@lindenlab.com> | 2010-08-13 12:40:45 +0100 | 
|---|---|---|
| committer | Tofu Linden <tofu.linden@lindenlab.com> | 2010-08-13 12:40:45 +0100 | 
| commit | ed621a6ef02c4699404e8072d83c44b359bfcd24 (patch) | |
| tree | 3742edabdfb3e35f5be67f3e468b8e438574e2c3 /indra | |
| parent | 1f8043e425d70975f0158e411d6670093f818cde (diff) | |
| parent | b241d9769cf5ef21fa90e38ad21c2c4d49aab6f3 (diff) | |
merge from viewer-release
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/newview/llappearancemgr.cpp | 12 | ||||
| -rw-r--r-- | indra/newview/llfolderview.cpp | 48 | ||||
| -rw-r--r-- | indra/newview/llfolderview.h | 2 | ||||
| -rw-r--r-- | indra/newview/llviewertexture.cpp | 9 | 
4 files changed, 30 insertions, 41 deletions
| diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp index cecb2ee6ad..b844803cb6 100644 --- a/indra/newview/llappearancemgr.cpp +++ b/indra/newview/llappearancemgr.cpp @@ -1305,16 +1305,8 @@ bool LLAppearanceMgr::getCanReplaceCOF(const LLUUID& outfit_cat_id)  		return false;  	} -	// Check whether the outfit contains any non-worn wearables. -	LLInventoryModel::cat_array_t cats; -	LLInventoryModel::item_array_t items; -	LLFindWearablesEx not_worn(/*is_worn=*/ false, /*include_body_parts=*/ true); -	gInventory.collectDescendentsIf(outfit_cat_id, -		cats, -		items, -		LLInventoryModel::EXCLUDE_TRASH, -		not_worn); -	return items.size() > 0; +	// Check whether the outfit contains the full set of body parts (shape+skin+hair+eyes). +	return getCanMakeFolderIntoOutfit(outfit_cat_id);  }  void LLAppearanceMgr::purgeBaseOutfitLink(const LLUUID& category) diff --git a/indra/newview/llfolderview.cpp b/indra/newview/llfolderview.cpp index ab36a76153..d37886806b 100644 --- a/indra/newview/llfolderview.cpp +++ b/indra/newview/llfolderview.cpp @@ -105,7 +105,6 @@ void copy_selected_item(void* user_data);  void open_selected_items(void* user_data);  void properties_selected_items(void* user_data);  void paste_items(void* user_data); -void renamer_focus_lost( LLFocusableElement* handler, void* user_data );  //--------------------------------------------------------------------------- @@ -275,6 +274,8 @@ LLFolderView::LLFolderView(const Params& p)  // Destroys the object  LLFolderView::~LLFolderView( void )  { +	closeRenamer(); +  	// The release focus call can potentially call the  	// scrollcontainer, which can potentially be called with a partly  	// destroyed scollcontainer. Just null it out here, and no worries @@ -290,8 +291,6 @@ LLFolderView::~LLFolderView( void )  	LLView::deleteViewByHandle(mPopupMenuHandle); -	gViewerWindow->removePopup(mRenamer); -  	mAutoOpenItems.removeAllNodes();  	clearSelection();  	mItems.clear(); @@ -998,12 +997,7 @@ void LLFolderView::finishRenamingItem( void )  		mRenameItem->rename( mRenamer->getText() );  	} -	gViewerWindow->removePopup(mRenamer); - -	if( mRenameItem ) -	{ -		setSelectionFromRoot( mRenameItem, TRUE ); -	} +	closeRenamer();  	// List is re-sorted alphabeticly, so scroll to make sure the selected item is visible.  	scrollToShowSelection(); @@ -1011,15 +1005,10 @@ void LLFolderView::finishRenamingItem( void )  void LLFolderView::closeRenamer( void )  { -	// will commit current name (which could be same as original name) -	mRenamer->setFocus( FALSE ); -	mRenamer->setVisible( FALSE ); -	gViewerWindow->removePopup(mRenamer); - -	if( mRenameItem ) +	if (mRenamer && mRenamer->getVisible())  	{ -		setSelectionFromRoot( mRenameItem, TRUE ); -		mRenameItem = NULL; +		// Triggers onRenamerLost() that actually closes the renamer. +		gViewerWindow->removePopup(mRenamer);  	}  } @@ -1455,8 +1444,7 @@ void LLFolderView::startRenamingSelectedItem( void )  		mRenamer->setVisible( TRUE );  		// set focus will fail unless item is visible  		mRenamer->setFocus( TRUE ); -		mRenamer->setTopLostCallback(boost::bind(&LLFolderView::onRenamerLost, this, _1)); -		mRenamer->setFocusLostCallback(boost::bind(&LLFolderView::onRenamerLost, this, _1)); +		mRenamer->setTopLostCallback(boost::bind(&LLFolderView::onRenamerLost, this));  		gViewerWindow->addPopup(mRenamer);  	}  } @@ -1977,10 +1965,7 @@ BOOL LLFolderView::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,  void LLFolderView::deleteAllChildren()  { -	if(mRenamer == gFocusMgr.getTopCtrl()) -	{ -		gViewerWindow->removePopup(mRenamer); -	} +	closeRenamer();  	LLView::deleteViewByHandle(mPopupMenuHandle);  	mPopupMenuHandle = LLHandle<LLView>();  	mRenamer = NULL; @@ -2465,13 +2450,20 @@ S32	LLFolderView::notify(const LLSD& info)  /// Local function definitions  ///---------------------------------------------------------------------------- -void LLFolderView::onRenamerLost( LLFocusableElement* renamer) +void LLFolderView::onRenamerLost()  { -	mRenameItem = NULL; -	LLUICtrl* uictrl = dynamic_cast<LLUICtrl*>(renamer); -	if (uictrl) +	if (mRenamer && mRenamer->getVisible())  	{ -		uictrl->setVisible(FALSE); +		mRenamer->setVisible(FALSE); + +		// will commit current name (which could be same as original name) +		mRenamer->setFocus(FALSE); +	} + +	if( mRenameItem ) +	{ +		setSelectionFromRoot( mRenameItem, TRUE ); +		mRenameItem = NULL;  	}  } diff --git a/indra/newview/llfolderview.h b/indra/newview/llfolderview.h index f5f229a602..21004fdb16 100644 --- a/indra/newview/llfolderview.h +++ b/indra/newview/llfolderview.h @@ -283,7 +283,7 @@ protected:  	LLScrollContainer* mScrollContainer;  // NULL if this is not a child of a scroll container.  	void commitRename( const LLSD& data ); -	void onRenamerLost( LLFocusableElement* renamer); +	void onRenamerLost();  	void finishRenamingItem( void );  	void closeRenamer( void ); diff --git a/indra/newview/llviewertexture.cpp b/indra/newview/llviewertexture.cpp index 9d4f6fdd0c..8491b19f89 100644 --- a/indra/newview/llviewertexture.cpp +++ b/indra/newview/llviewertexture.cpp @@ -814,7 +814,7 @@ void LLViewerTexture::generateGLTexture()  LLImageGL* LLViewerTexture::getGLTexture() const  {  	llassert(mGLTexturep.notNull()) ; -	 +  	return mGLTexturep ;  } @@ -1489,8 +1489,13 @@ void LLViewerFetchedTexture::setKnownDrawSize(S32 width, S32 height)  //virtual  void LLViewerFetchedTexture::processTextureStats()  { -	if(mFullyLoaded) +	if(mForceToSaveRawImage && mDesiredSavedRawDiscardLevel >= 0) //force to refetch the texture.  	{ +		mDesiredDiscardLevel = llmin(mDesiredDiscardLevel, (S8)mDesiredSavedRawDiscardLevel) ; +	} + +	if(mFullyLoaded) +	{		  		if(mDesiredDiscardLevel <= mMinDesiredDiscardLevel)//already loaded  		{  			return ; | 
