diff options
| author | Nat Goodspeed <nat@lindenlab.com> | 2012-03-27 18:40:17 -0400 | 
|---|---|---|
| committer | Nat Goodspeed <nat@lindenlab.com> | 2012-03-27 18:40:17 -0400 | 
| commit | fdd018783a0cc06a467443ca7c9ea0876a87ef49 (patch) | |
| tree | b99d4dfaf888450b914b7f414f6b740992033622 | |
| parent | b187aeb8f177bd76e792652e773617beff18b47b (diff) | |
CHOP-854: move change_(item|category)_parent() into LLInventoryModel.
It's not really clear why they're in llinventoryfunctions.{h,cpp} instead of
LLInventoryModel, and in fact LLInventoryModel::removeItem() already contains
code essentially cloned from change_item_parent() -- or perhaps vice-versa.
This changeset addresses only migrating the functions, and fixing up existing
references, to simplify code review.
| -rw-r--r-- | indra/newview/llinventorybridge.cpp | 4 | ||||
| -rw-r--r-- | indra/newview/llinventoryfunctions.cpp | 59 | ||||
| -rw-r--r-- | indra/newview/llinventoryfunctions.h | 10 | ||||
| -rw-r--r-- | indra/newview/llinventorymodel.cpp | 52 | ||||
| -rw-r--r-- | indra/newview/llinventorymodel.h | 10 | ||||
| -rw-r--r-- | indra/newview/llpreviewnotecard.cpp | 3 | 
6 files changed, 68 insertions, 70 deletions
| diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp index c0065a94e6..21f03e3d66 100644 --- a/indra/newview/llinventorybridge.cpp +++ b/indra/newview/llinventorybridge.cpp @@ -910,7 +910,7 @@ void LLInvFVBridge::changeItemParent(LLInventoryModel* model,  									 const LLUUID& new_parent_id,  									 BOOL restamp)  { -	change_item_parent(model, item, new_parent_id, restamp); +	model->changeItemParent(item, new_parent_id, restamp);  }  // static @@ -919,7 +919,7 @@ void LLInvFVBridge::changeCategoryParent(LLInventoryModel* model,  										 const LLUUID& new_parent_id,  										 BOOL restamp)  { -	change_category_parent(model, cat, new_parent_id, restamp); +	model->changeCategoryParent(cat, new_parent_id, restamp);  }  LLInvFVBridge* LLInvFVBridge::createBridge(LLAssetType::EType asset_type, diff --git a/indra/newview/llinventoryfunctions.cpp b/indra/newview/llinventoryfunctions.cpp index dd92188e9d..ae8d11c3f7 100644 --- a/indra/newview/llinventoryfunctions.cpp +++ b/indra/newview/llinventoryfunctions.cpp @@ -109,58 +109,6 @@ void append_path(const LLUUID& id, std::string& path)  	path.append(temp);  } -void change_item_parent(LLInventoryModel* model, -						LLViewerInventoryItem* item, -						const LLUUID& new_parent_id, -						BOOL restamp) -{ -	if (item->getParentUUID() != new_parent_id) -	{ -		LLInventoryModel::update_list_t update; -		LLInventoryModel::LLCategoryUpdate old_folder(item->getParentUUID(),-1); -		update.push_back(old_folder); -		LLInventoryModel::LLCategoryUpdate new_folder(new_parent_id, 1); -		update.push_back(new_folder); -		gInventory.accountForUpdate(update); - -		LLPointer<LLViewerInventoryItem> new_item = new LLViewerInventoryItem(item); -		new_item->setParent(new_parent_id); -		new_item->updateParentOnServer(restamp); -		model->updateItem(new_item); -		model->notifyObservers(); -	} -} - -void change_category_parent(LLInventoryModel* model, -	LLViewerInventoryCategory* cat, -	const LLUUID& new_parent_id, -	BOOL restamp) -{ -	if (!model || !cat) -	{ -		return; -	} - -	// Can't move a folder into a child of itself. -	if (model->isObjectDescendentOf(new_parent_id, cat->getUUID())) -	{ -		return; -	} - -	LLInventoryModel::update_list_t update; -	LLInventoryModel::LLCategoryUpdate old_folder(cat->getParentUUID(), -1); -	update.push_back(old_folder); -	LLInventoryModel::LLCategoryUpdate new_folder(new_parent_id, 1); -	update.push_back(new_folder); -	model->accountForUpdate(update); - -	LLPointer<LLViewerInventoryCategory> new_cat = new LLViewerInventoryCategory(cat); -	new_cat->setParent(new_parent_id); -	new_cat->updateParentOnServer(restamp); -	model->updateCategory(new_cat); -	model->notifyObservers(); -} -  void remove_category(LLInventoryModel* model, const LLUUID& cat_id)  {  	if (!model || !get_is_category_removable(model, cat_id)) @@ -190,7 +138,7 @@ void remove_category(LLInventoryModel* model, const LLUUID& cat_id)  	if (cat)  	{  		const LLUUID trash_id = model->findCategoryUUIDForType(LLFolderType::FT_TRASH); -		change_category_parent(model, cat, trash_id, TRUE); +		model->changeCategoryParent(cat, trash_id, TRUE);  	}  } @@ -568,8 +516,7 @@ void move_to_outbox_cb_action(const LLSD& payload)  		LLUUID parent = viitem->getParentUUID(); -		change_item_parent( -			&gInventory, +		gInventory.changeItemParent(  			viitem,  			dest_folder_id,  			false); @@ -670,7 +617,7 @@ void move_item_within_outbox(LLInventoryItem* inv_item, LLUUID dest_folder, S32  	LLViewerInventoryItem * viewer_inv_item = (LLViewerInventoryItem *) inv_item; -	change_item_parent(&gInventory, +	gInventory.changeItemParent(  					   viewer_inv_item,  					   dest_folder,  					   false); diff --git a/indra/newview/llinventoryfunctions.h b/indra/newview/llinventoryfunctions.h index ce2b89b22e..602c411104 100644 --- a/indra/newview/llinventoryfunctions.h +++ b/indra/newview/llinventoryfunctions.h @@ -57,16 +57,6 @@ void show_task_item_profile(const LLUUID& item_uuid, const LLUUID& object_id);  void show_item_original(const LLUUID& item_uuid); -void change_item_parent(LLInventoryModel* model, -									 LLViewerInventoryItem* item, -									 const LLUUID& new_parent_id, -									 BOOL restamp); - -void change_category_parent(LLInventoryModel* model, -	LLViewerInventoryCategory* cat, -	const LLUUID& new_parent_id, -	BOOL restamp); -  void remove_category(LLInventoryModel* model, const LLUUID& cat_id);  void rename_category(LLInventoryModel* model, const LLUUID& cat_id, const std::string& new_name); diff --git a/indra/newview/llinventorymodel.cpp b/indra/newview/llinventorymodel.cpp index a71b699fdd..6cc0d6768e 100644 --- a/indra/newview/llinventorymodel.cpp +++ b/indra/newview/llinventorymodel.cpp @@ -1017,6 +1017,58 @@ void LLInventoryModel::moveObject(const LLUUID& object_id, const LLUUID& cat_id)  	}  } +// Migrated from llinventoryfunctions +void LLInventoryModel::changeItemParent(LLViewerInventoryItem* item, +										const LLUUID& new_parent_id, +										BOOL restamp) +{ +	if (item->getParentUUID() != new_parent_id) +	{ +		LLInventoryModel::update_list_t update; +		LLInventoryModel::LLCategoryUpdate old_folder(item->getParentUUID(),-1); +		update.push_back(old_folder); +		LLInventoryModel::LLCategoryUpdate new_folder(new_parent_id, 1); +		update.push_back(new_folder); +		accountForUpdate(update); + +		LLPointer<LLViewerInventoryItem> new_item = new LLViewerInventoryItem(item); +		new_item->setParent(new_parent_id); +		new_item->updateParentOnServer(restamp); +		updateItem(new_item); +		notifyObservers(); +	} +} + +// Migrated from llinventoryfunctions +void LLInventoryModel::changeCategoryParent(LLViewerInventoryCategory* cat, +											const LLUUID& new_parent_id, +											BOOL restamp) +{ +	if (!cat) +	{ +		return; +	} + +	// Can't move a folder into a child of itself. +	if (isObjectDescendentOf(new_parent_id, cat->getUUID())) +	{ +		return; +	} + +	LLInventoryModel::update_list_t update; +	LLInventoryModel::LLCategoryUpdate old_folder(cat->getParentUUID(), -1); +	update.push_back(old_folder); +	LLInventoryModel::LLCategoryUpdate new_folder(new_parent_id, 1); +	update.push_back(new_folder); +	accountForUpdate(update); + +	LLPointer<LLViewerInventoryCategory> new_cat = new LLViewerInventoryCategory(cat); +	new_cat->setParent(new_parent_id); +	new_cat->updateParentOnServer(restamp); +	updateCategory(new_cat); +	notifyObservers(); +} +  // Delete a particular inventory object by ID.  void LLInventoryModel::deleteObject(const LLUUID& id)  { diff --git a/indra/newview/llinventorymodel.h b/indra/newview/llinventorymodel.h index 7cd85c4ab7..f4602ce922 100644 --- a/indra/newview/llinventorymodel.h +++ b/indra/newview/llinventorymodel.h @@ -306,6 +306,16 @@ public:  	// observer notification, or server update is performed.  	void moveObject(const LLUUID& object_id, const LLUUID& cat_id); +	// Migrated from llinventoryfunctions +	void changeItemParent(LLViewerInventoryItem* item, +						  const LLUUID& new_parent_id, +						  BOOL restamp); + +	// Migrated from llinventoryfunctions +	void changeCategoryParent(LLViewerInventoryCategory* cat, +							  const LLUUID& new_parent_id, +							  BOOL restamp); +  	//--------------------------------------------------------------------  	// Delete  	//-------------------------------------------------------------------- diff --git a/indra/newview/llpreviewnotecard.cpp b/indra/newview/llpreviewnotecard.cpp index 4974dde282..3a9360fd23 100644 --- a/indra/newview/llpreviewnotecard.cpp +++ b/indra/newview/llpreviewnotecard.cpp @@ -29,7 +29,6 @@  #include "llpreviewnotecard.h"  #include "llinventory.h" -#include "llinventoryfunctions.h" // for change_item_parent()  #include "llagent.h"  #include "llassetuploadresponders.h" @@ -494,7 +493,7 @@ void LLPreviewNotecard::deleteNotecard()  	if (item != NULL)  	{  		const LLUUID trash_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_TRASH); -		change_item_parent(&gInventory, item, trash_id, FALSE); +		gInventory.changeItemParent(item, trash_id, FALSE);  	}  	closeFloater(); | 
