diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp index e60e921b7..cc4bfcae1 100644 --- a/indra/newview/llinventorybridge.cpp +++ b/indra/newview/llinventorybridge.cpp @@ -4254,6 +4254,22 @@ void LLTextureBridge::openItem() } } +bool LLTextureBridge::canSaveTexture() +{ + const LLInventoryModel* model = getInventoryModel(); + if (!model) + { + return false; + } + + const LLViewerInventoryItem* item = model->getItem(mUUID); + if (item) + { + return item->checkPermissionsSet(PERM_ITEM_UNRESTRICTED); + } + return false; +} + void LLTextureBridge::buildContextMenu(LLMenuGL& menu, U32 flags) { lldebugs << "LLTextureBridge::buildContextMenu()" << llendl; @@ -4274,13 +4290,12 @@ void LLTextureBridge::buildContextMenu(LLMenuGL& menu, U32 flags) getClipboardEntries(true, items, disabled_items, flags); - /* Singu TODO items.push_back(std::string("Texture Separator")); items.push_back(std::string("Save As")); if (!canSaveTexture()) { disabled_items.push_back(std::string("Save As")); - }*/ + } } hide_context_entries(menu, items, disabled_items); } @@ -4288,17 +4303,18 @@ void LLTextureBridge::buildContextMenu(LLMenuGL& menu, U32 flags) // virtual void LLTextureBridge::performAction(LLInventoryModel* model, std::string action) { - /* Singu TODO if ("save_as" == action) { - LLFloaterReg::showInstance("preview_texture", LLSD(mUUID), TAKE_FOCUS_YES); - LLPreviewTexture* preview_texture = LLFloaterReg::findTypedInstance("preview_texture", mUUID); + const LLViewerInventoryItem* item(getItem()); + if (!item) return; + open_texture(mUUID, std::string("Texture: ") + item->getName(), FALSE); + LLPreview* preview_texture = LLPreview::find(mUUID); if (preview_texture) { - preview_texture->openToSave(); + preview_texture->saveAs(); } } - else*/ LLItemBridge::performAction(model, action); + else LLItemBridge::performAction(model, action); } // +=================================================+ diff --git a/indra/newview/skins/default/xui/en-us/menu_inventory.xml b/indra/newview/skins/default/xui/en-us/menu_inventory.xml index 0a04c547c..24baaa63c 100644 --- a/indra/newview/skins/default/xui/en-us/menu_inventory.xml +++ b/indra/newview/skins/default/xui/en-us/menu_inventory.xml @@ -291,6 +291,10 @@ name="Deactivate" width="128"> + + + + diff --git a/indra/newview/skins/default/xui/es/menu_inventory.xml b/indra/newview/skins/default/xui/es/menu_inventory.xml index 8688cf47a..7e88fa82b 100644 --- a/indra/newview/skins/default/xui/es/menu_inventory.xml +++ b/indra/newview/skins/default/xui/es/menu_inventory.xml @@ -74,6 +74,7 @@ + diff --git a/indra/newview/skins/default/xui/fr/menu_inventory.xml b/indra/newview/skins/default/xui/fr/menu_inventory.xml index c4ea76358..072fa63a8 100644 --- a/indra/newview/skins/default/xui/fr/menu_inventory.xml +++ b/indra/newview/skins/default/xui/fr/menu_inventory.xml @@ -69,6 +69,7 @@ + diff --git a/indra/newview/skins/default/xui/pt/menu_inventory.xml b/indra/newview/skins/default/xui/pt/menu_inventory.xml index 7b290db40..2ef389835 100644 --- a/indra/newview/skins/default/xui/pt/menu_inventory.xml +++ b/indra/newview/skins/default/xui/pt/menu_inventory.xml @@ -55,6 +55,7 @@ +