diff options
| -rw-r--r-- | indra/newview/lloutfitslist.cpp | 8 | ||||
| -rw-r--r-- | indra/newview/lloutfitslist.h | 9 | ||||
| -rw-r--r-- | indra/newview/llpaneloutfitsinventory.cpp | 3 | 
3 files changed, 19 insertions, 1 deletions
diff --git a/indra/newview/lloutfitslist.cpp b/indra/newview/lloutfitslist.cpp index 8dd849f947..c5043e1c3d 100644 --- a/indra/newview/lloutfitslist.cpp +++ b/indra/newview/lloutfitslist.cpp @@ -161,6 +161,7 @@ LLOutfitsList::LLOutfitsList()  	,	mAccordion(NULL)  	,	mListCommands(NULL)  	,	mIsInitialized(false) +	,	mItemSelected(false)  {  	mCategoriesObserver = new LLInventoryCategoriesObserver(); @@ -418,6 +419,11 @@ boost::signals2::connection LLOutfitsList::addSelectionChangeCallback(selection_  	return mSelectionChangeSignal.connect(cb);  } +bool LLOutfitsList::hasItemSelected() +{ +	return mItemSelected; +} +  //////////////////////////////////////////////////////////////////////////  // Private methods  ////////////////////////////////////////////////////////////////////////// @@ -503,6 +509,8 @@ void LLOutfitsList::changeOutfitSelection(LLWearableItemsList* list, const LLUUI  		mSelectedListsMap.clear();  	} +	mItemSelected = list && (list->getSelectedItem() != NULL); +  	mSelectedListsMap.insert(wearables_lists_map_value_t(category_id, list));  	setSelectedOutfitUUID(category_id);  } diff --git a/indra/newview/lloutfitslist.h b/indra/newview/lloutfitslist.h index c984389f87..df65f7187b 100644 --- a/indra/newview/lloutfitslist.h +++ b/indra/newview/lloutfitslist.h @@ -94,6 +94,11 @@ public:  	boost::signals2::connection addSelectionChangeCallback(selection_change_callback_t cb); +	/** +	 * Returns true if there is a selection inside currently selected outfit +	 */ +	bool hasItemSelected(); +  private:  	/**  	 * Reads xml with accordion tab and Flat list from xml file. @@ -183,6 +188,10 @@ private:  	LLListContextMenu*			mOutfitMenu;  	bool							mIsInitialized; +	/** +	 * True if there is a selection inside currently selected outfit +	 */ +	bool							mItemSelected;  };  #endif //LL_LLOUTFITSLIST_H diff --git a/indra/newview/llpaneloutfitsinventory.cpp b/indra/newview/llpaneloutfitsinventory.cpp index 2405b95e7d..714d9cd4c5 100644 --- a/indra/newview/llpaneloutfitsinventory.cpp +++ b/indra/newview/llpaneloutfitsinventory.cpp @@ -661,7 +661,8 @@ BOOL LLPanelOutfitsInventory::isActionEnabled(const LLSD& userdata)  		else // "My Outfits" tab active  		{  			const LLUUID& selected_outfit = mMyOutfitsPanel->getSelectedOutfitUUID(); -			can_delete = LLAppearanceMgr::instance().getCanRemoveOutfit(selected_outfit); +			// first condition prevents trash btn from enabling when items are selected inside outfit (EXT-7847) +			can_delete = !mMyOutfitsPanel->hasItemSelected() && LLAppearanceMgr::instance().getCanRemoveOutfit(selected_outfit);  		}  		return can_delete;  | 
