diff options
| author | Mnikolenko Productengine <mnikolenko@productengine.com> | 2016-12-06 13:25:26 +0200 | 
|---|---|---|
| committer | Mnikolenko Productengine <mnikolenko@productengine.com> | 2016-12-06 13:25:26 +0200 | 
| commit | 391db15f8511efab4093e88fcbc4567abd5b076b (patch) | |
| tree | 1cc1090b4839934c06fff6e30afcf5731083cf29 /indra | |
| parent | 2abd0eef41a94d5626ca9f5f1b18aa959157c50f (diff) | |
MAINT-6963 Object's name is not changed in inventory if object in attached state was renamed through Edit floater.
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/newview/llpanelpermissions.cpp | 51 | ||||
| -rw-r--r-- | indra/newview/llpanelpermissions.h | 3 | 
2 files changed, 47 insertions, 7 deletions
| diff --git a/indra/newview/llpanelpermissions.cpp b/indra/newview/llpanelpermissions.cpp index 6e677bbce5..203c57b732 100644 --- a/indra/newview/llpanelpermissions.cpp +++ b/indra/newview/llpanelpermissions.cpp @@ -63,6 +63,7 @@  #include "roles_constants.h"  #include "llgroupactions.h"  #include "lltrans.h" +#include "llinventorymodel.h"  U8 string_value_to_click_action(std::string p_value); @@ -1016,13 +1017,26 @@ void LLPanelPermissions::onCommitNextOwnerTransfer(LLUICtrl* ctrl, void* data)  // static  void LLPanelPermissions::onCommitName(LLUICtrl*, void* data)  { -	//LL_INFOS() << "LLPanelPermissions::onCommitName()" << LL_ENDL;  	LLPanelPermissions* self = (LLPanelPermissions*)data;  	LLLineEditor*	tb = self->getChild<LLLineEditor>("Object Name"); -	if(tb) +	if (!tb)  	{ -		LLSelectMgr::getInstance()->selectionSetObjectName(tb->getText()); -//		LLSelectMgr::getInstance()->selectionSetObjectName(self->mLabelObjectName->getText()); +		return; +	} +	LLSelectMgr::getInstance()->selectionSetObjectName(tb->getText()); +	LLObjectSelectionHandle selection = LLSelectMgr::getInstance()->getSelection(); +	if (selection->isAttachment() && (selection->getNumNodes() == 1) && !tb->getText().empty()) +	{ +		LLUUID object_id = selection->getFirstObject()->getAttachmentItemID(); +		LLViewerInventoryItem* item = findItem(object_id); +		if (item) +		{ +			LLPointer<LLViewerInventoryItem> new_item = new LLViewerInventoryItem(item); +			new_item->rename(tb->getText()); +			new_item->updateServer(FALSE); +			gInventory.updateItem(new_item); +			gInventory.notifyObservers(); +		}  	}  } @@ -1030,12 +1044,26 @@ void LLPanelPermissions::onCommitName(LLUICtrl*, void* data)  // static  void LLPanelPermissions::onCommitDesc(LLUICtrl*, void* data)  { -	//LL_INFOS() << "LLPanelPermissions::onCommitDesc()" << LL_ENDL;  	LLPanelPermissions* self = (LLPanelPermissions*)data;  	LLLineEditor*	le = self->getChild<LLLineEditor>("Object Description"); -	if(le) +	if (!le)  	{ -		LLSelectMgr::getInstance()->selectionSetObjectDescription(le->getText()); +		return; +	} +	LLSelectMgr::getInstance()->selectionSetObjectDescription(le->getText()); +	LLObjectSelectionHandle selection = LLSelectMgr::getInstance()->getSelection(); +	if (selection->isAttachment() && (selection->getNumNodes() == 1)) +	{ +		LLUUID object_id = selection->getFirstObject()->getAttachmentItemID(); +		LLViewerInventoryItem* item = findItem(object_id); +		if (item) +		{ +			LLPointer<LLViewerInventoryItem> new_item = new LLViewerInventoryItem(item); +			new_item->setDescription(le->getText()); +			new_item->updateServer(FALSE); +			gInventory.updateItem(new_item); +			gInventory.notifyObservers(); +		}  	}  } @@ -1159,3 +1187,12 @@ void LLPanelPermissions::onCommitIncludeInSearch(LLUICtrl* ctrl, void*)  	LLSelectMgr::getInstance()->selectionSetIncludeInSearch(box->get());  } + +LLViewerInventoryItem* LLPanelPermissions::findItem(LLUUID &object_id) +{ +	if (!object_id.isNull()) +	{ +		return gInventory.getItem(object_id); +	} +	return NULL; +} diff --git a/indra/newview/llpanelpermissions.h b/indra/newview/llpanelpermissions.h index 87805bbf90..2d15954baa 100644 --- a/indra/newview/llpanelpermissions.h +++ b/indra/newview/llpanelpermissions.h @@ -37,6 +37,7 @@  //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  class LLNameBox; +class LLViewerInventoryItem;  class LLPanelPermissions : public LLPanel  { @@ -77,6 +78,8 @@ protected:  	static void	onCommitClickAction(LLUICtrl* ctrl, void*);  	static void onCommitIncludeInSearch(LLUICtrl* ctrl, void*); +	static LLViewerInventoryItem* findItem(LLUUID &object_id); +  protected:  	void disableAll(); | 
