MAINT-6963 Object's name is not changed in inventory if object in attached state was renamed through Edit floater.

master
Mnikolenko Productengine 2016-12-06 13:25:26 +02:00
parent 2abd0eef41
commit 391db15f85
2 changed files with 47 additions and 7 deletions

View File

@ -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;
}

View File

@ -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();