diff --git a/indra/newview/lltexturectrl.cpp b/indra/newview/lltexturectrl.cpp index e0fdc668b..738da0ca7 100644 --- a/indra/newview/lltexturectrl.cpp +++ b/indra/newview/lltexturectrl.cpp @@ -67,6 +67,10 @@ #include "llglheaders.h" #include "lluictrlfactory.h" #include "lltrans.h" +// +#include "llmenugl.h" +#include "lllocalinventory.h" +// static const S32 CLOSE_BTN_WIDTH = 100; @@ -152,6 +156,7 @@ public: static void onBtnSelect( void* userdata ); static void onBtnCancel( void* userdata ); static void onBtnPipette( void* userdata ); + static void onBtnUUID( void* userdata ); //static void onBtnRevert( void* userdata ); static void onBtnWhite( void* userdata ); static void onBtnInvisible( void* userdata ); @@ -281,6 +286,7 @@ LLFloaterTexturePicker::LLFloaterTexturePicker( } childSetAction("Pipette", LLFloaterTexturePicker::onBtnPipette,this); + childSetAction("ApplyUUID", LLFloaterTexturePicker::onBtnUUID,this); childSetAction("Cancel", LLFloaterTexturePicker::onBtnCancel,this); childSetAction("Select", LLFloaterTexturePicker::onBtnSelect,this); @@ -303,6 +309,7 @@ void LLFloaterTexturePicker::setImageID(const LLUUID& image_id) mNoCopyTextureSelected = FALSE; mIsDirty = TRUE; mImageAssetID = image_id; + /* I'm good, thanks LLUUID item_id = findItemID(mImageAssetID, FALSE); if (item_id.isNull()) { @@ -310,6 +317,7 @@ void LLFloaterTexturePicker::setImageID(const LLUUID& image_id) } else { + LLInventoryItem* itemp = gInventory.getItem(image_id); if (itemp && !itemp->getPermissions().allowCopyBy(gAgent.getID())) { @@ -319,6 +327,7 @@ void LLFloaterTexturePicker::setImageID(const LLUUID& image_id) } mInventoryPanel->setSelection(item_id, TAKE_FOCUS_NO); } + */ } } @@ -390,9 +399,11 @@ BOOL LLFloaterTexturePicker::handleDragAndDrop( if (mod) item_perm_mask |= PERM_MODIFY; if (xfer) item_perm_mask |= PERM_TRANSFER; - //PermissionMask filter_perm_mask = getFilterPermMask(); Commented out due to no-copy texture loss. - PermissionMask filter_perm_mask = mImmediateFilterPermMask; - if ( (item_perm_mask & filter_perm_mask) == filter_perm_mask ) + // + //PermissionMask filter_perm_mask = mImmediateFilterPermMask; + //if ( (item_perm_mask & filter_perm_mask) == filter_perm_mask ) + if(1) + // { if (drop) { @@ -546,6 +557,7 @@ void LLFloaterTexturePicker::draw() childSetEnabled("Select", mActive); childSetEnabled("Pipette", mActive); childSetValue("Pipette", LLToolMgr::getInstance()->getCurrentTool() == LLToolPipette::getInstance()); + childSetValue("texture_uuid", mImageAssetID); //RN: reset search bar to reflect actual search query (all caps, for example) mSearchEdit->setText(mInventoryPanel->getFilterSubString()); @@ -782,6 +794,23 @@ void LLFloaterTexturePicker::onBtnPipette( void* userdata ) } +// static +void LLFloaterTexturePicker::onBtnUUID( void* userdata ) +{ + LLFloaterTexturePicker* self = (LLFloaterTexturePicker*) userdata; + + if ( self) + { + std::string texture_uuid = self->childGetValue("texture_uuid").asString(); + if (texture_uuid.length() == 36) + { + self->setImageID( LLUUID(texture_uuid) ); + self->mIsDirty = TRUE; + self->commitIfImmediateSet(); + } + } +} + // static void LLFloaterTexturePicker::onSelectionChange(const std::deque &items, BOOL user_action, void* data) { @@ -882,13 +911,18 @@ void LLFloaterTexturePicker::onTextureSelect( const LLTextureEntry& te, void *da { LLFloaterTexturePicker* self = (LLFloaterTexturePicker*)data; - LLUUID inventory_item_id = self->findItemID(te.getID(), TRUE); - if (self && inventory_item_id.notNull()) + // + //LLUUID inventory_item_id = self->findItemID(te.getID(), TRUE); + //if (self && inventory_item_id.notNull()) + if(self) + // { LLToolPipette::getInstance()->setResult(TRUE, ""); self->setImageID(te.getID()); self->mNoCopyTextureSelected = FALSE; + // + /* LLInventoryItem* itemp = gInventory.getItem(inventory_item_id); if (itemp && !itemp->getPermissions().allowCopyBy(gAgent.getID())) @@ -896,6 +930,8 @@ void LLFloaterTexturePicker::onTextureSelect( const LLTextureEntry& te, void *da // no copy texture self->mNoCopyTextureSelected = TRUE; } + */ + // self->commitIfImmediateSet(); } @@ -1412,8 +1448,11 @@ BOOL LLTextureCtrl::allowDrop(LLInventoryItem* item) // PermissionMask filter_perm_mask = mCanApplyImmediately ? commented out due to no-copy texture loss. // mImmediateFilterPermMask : mNonImmediateFilterPermMask; - PermissionMask filter_perm_mask = mImmediateFilterPermMask; - if ( (item_perm_mask & filter_perm_mask) == filter_perm_mask ) + // + //PermissionMask filter_perm_mask = mImmediateFilterPermMask; + //if ( (item_perm_mask & filter_perm_mask) == filter_perm_mask ) + if(1) + // { if(mDragCallback) { diff --git a/indra/newview/skins/default/xui/en-us/floater_texture_ctrl.xml b/indra/newview/skins/default/xui/en-us/floater_texture_ctrl.xml index b2790ea0d..880fdc389 100644 --- a/indra/newview/skins/default/xui/en-us/floater_texture_ctrl.xml +++ b/indra/newview/skins/default/xui/en-us/floater_texture_ctrl.xml @@ -1,7 +1,7 @@ Click to choose a picture @@ -54,10 +54,14 @@