diff options
| author | Brad Payne (Vir Linden) <vir@lindenlab.com> | 2013-04-24 16:09:33 -0400 | 
|---|---|---|
| committer | Brad Payne (Vir Linden) <vir@lindenlab.com> | 2013-04-24 16:09:33 -0400 | 
| commit | a9fa707a7da9977914db8527f15b59bb6a4bc6b7 (patch) | |
| tree | 74bd7e9814eb5d8b089129e4a93575427f2f48c4 /indra | |
| parent | 4967998a5c10abcc64e097a4e95505f9adbe4de7 (diff) | |
SH-4128 - more cleanup of COF-link manipulating functions
Diffstat (limited to 'indra')
| -rwxr-xr-x | indra/newview/llappearancemgr.cpp | 60 | ||||
| -rw-r--r-- | indra/newview/llfloatergesture.cpp | 3 | 
2 files changed, 32 insertions, 31 deletions
| diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp index 5a9901f12d..792220c385 100755 --- a/indra/newview/llappearancemgr.cpp +++ b/indra/newview/llappearancemgr.cpp @@ -430,6 +430,16 @@ LLUpdateAppearanceOnDestroy::LLUpdateAppearanceOnDestroy(bool update_base_outfit  	selfStartPhase("update_appearance_on_destroy");  } +void LLUpdateAppearanceOnDestroy::fire(const LLUUID& inv_item) +{ +	LLViewerInventoryItem* item = (LLViewerInventoryItem*)gInventory.getItem(inv_item); +	const std::string item_name = item ? item->getName() : "ITEM NOT FOUND"; +#ifndef LL_RELEASE_FOR_DOWNLOAD +	LL_DEBUGS("Avatar") << self_av_string() << "callback fired [ name:" << item_name << " UUID:" << inv_item << " count:" << mFireCount << " ] " << LL_ENDL; +#endif +	mFireCount++; +} +  LLUpdateAppearanceOnDestroy::~LLUpdateAppearanceOnDestroy()  {  	if (!LLApp::isExiting()) @@ -443,16 +453,6 @@ LLUpdateAppearanceOnDestroy::~LLUpdateAppearanceOnDestroy()  	}  } -void LLUpdateAppearanceOnDestroy::fire(const LLUUID& inv_item) -{ -	LLViewerInventoryItem* item = (LLViewerInventoryItem*)gInventory.getItem(inv_item); -	const std::string item_name = item ? item->getName() : "ITEM NOT FOUND"; -#ifndef LL_RELEASE_FOR_DOWNLOAD -	LL_DEBUGS("Avatar") << self_av_string() << "callback fired [ name:" << item_name << " UUID:" << inv_item << " count:" << mFireCount << " ] " << LL_ENDL; -#endif -	mFireCount++; -} -  LLUpdateAppearanceAndEditWearableOnDestroy::LLUpdateAppearanceAndEditWearableOnDestroy(const LLUUID& item_id):  	mItemID(item_id)  { @@ -460,20 +460,23 @@ LLUpdateAppearanceAndEditWearableOnDestroy::LLUpdateAppearanceAndEditWearableOnD  LLUpdateAppearanceAndEditWearableOnDestroy::~LLUpdateAppearanceAndEditWearableOnDestroy()  { -	LLAppearanceMgr::instance().updateAppearanceFromCOF(); -	 -	// Start editing the item if previously requested. -	gAgentWearables.editWearableIfRequested(mItemID); -	 -	// TODO: camera mode may not be changed if a debug setting is tweaked -	if( gAgentCamera.cameraCustomizeAvatar() ) +	if (!LLApp::isExiting())  	{ -		// If we're in appearance editing mode, the current tab may need to be refreshed -		LLSidepanelAppearance *panel = dynamic_cast<LLSidepanelAppearance*>( -			LLFloaterSidePanelContainer::getPanel("appearance")); -		if (panel) +		LLAppearanceMgr::instance().updateAppearanceFromCOF(); +		 +		// Start editing the item if previously requested. +		gAgentWearables.editWearableIfRequested(mItemID); +		 +		// TODO: camera mode may not be changed if a debug setting is tweaked +		if( gAgentCamera.cameraCustomizeAvatar() )  		{ -			panel->showDefaultSubpart(); +			// If we're in appearance editing mode, the current tab may need to be refreshed +			LLSidepanelAppearance *panel = dynamic_cast<LLSidepanelAppearance*>( +				LLFloaterSidePanelContainer::getPanel("appearance")); +			if (panel) +			{ +				panel->showDefaultSubpart(); +			}  		}  	}  } @@ -1587,13 +1590,10 @@ void LLAppearanceMgr::purgeBaseOutfitLink(const LLUUID& category, LLPointer<LLIn  		LLViewerInventoryItem *item = items.get(i);  		if (item->getActualType() != LLAssetType::AT_LINK_FOLDER)  			continue; -		if (item->getIsLinkType()) +		LLViewerInventoryCategory* catp = item->getLinkedCategory(); +		if(catp && catp->getPreferredType() == LLFolderType::FT_OUTFIT)  		{ -			LLViewerInventoryCategory* catp = item->getLinkedCategory(); -			if(catp && catp->getPreferredType() == LLFolderType::FT_OUTFIT) -			{ -				remove_inventory_item(item->getUUID(), cb); -			} +			remove_inventory_item(item->getUUID(), cb);  		}  	}  } @@ -2276,7 +2276,7 @@ bool areMatchingWearables(const LLViewerInventoryItem *a, const LLViewerInventor  class LLDeferredCOFLinkObserver: public LLInventoryObserver  {  public: -	LLDeferredCOFLinkObserver(const LLUUID& item_id, LLPointer<LLInventoryCallback> cb = NULL, std::string description = ""): +	LLDeferredCOFLinkObserver(const LLUUID& item_id, LLPointer<LLInventoryCallback> cb, const std::string& description):  		mItemID(item_id),  		mCallback(cb),  		mDescription(description) @@ -2293,7 +2293,7 @@ public:  		if (item)  		{  			gInventory.removeObserver(this); -			LLAppearanceMgr::instance().addCOFItemLink(item, mCallback); +			LLAppearanceMgr::instance().addCOFItemLink(item, mCallback, mDescription);  			delete this;  		}  	} diff --git a/indra/newview/llfloatergesture.cpp b/indra/newview/llfloatergesture.cpp index def4d40f9f..af5c11e12c 100644 --- a/indra/newview/llfloatergesture.cpp +++ b/indra/newview/llfloatergesture.cpp @@ -617,9 +617,10 @@ void LLFloaterGesture::addToCurrentOutFit()  	uuid_vec_t ids;  	getSelectedIds(ids);  	LLAppearanceMgr* am = LLAppearanceMgr::getInstance(); +	LLPointer<LLInventoryCallback> cb = new LLUpdateAppearanceOnDestroy;  	for(uuid_vec_t::const_iterator it = ids.begin(); it != ids.end(); it++)  	{ -		am->addCOFItemLink(*it, new LLUpdateAppearanceAndEditWearableOnDestroy(*it)); +		am->addCOFItemLink(*it, cb);  	}  } | 
