SL-13190 Allow Edit Attached Object Position From Inventory

master
Mnikolenko Productengine 2020-05-22 14:37:14 +03:00
parent 62290c7ce3
commit ae24afec8f
47 changed files with 219 additions and 61 deletions

View File

@ -829,6 +829,7 @@ Khyota Wulluf
Kimar Coba
Kithrak Kirkorian
Kitty Barnett
BUG-228664
BUG-228665
VWR-19699
STORM-288

View File

@ -140,10 +140,26 @@ protected:
{
LLUICtrl::CommitCallbackRegistry::ScopedRegistrar registrar;
registrar.add("Attachment.Edit", boost::bind(handleMultiple, handle_item_edit, mUUIDs));
registrar.add("Attachment.Detach", boost::bind(&LLAppearanceMgr::removeItemsFromAvatar, LLAppearanceMgr::getInstance(), mUUIDs));
LLUICtrl::EnableCallbackRegistry::ScopedRegistrar enable_registrar;
enable_registrar.add("Attachment.OnEnable", boost::bind(&CofAttachmentContextMenu::onEnable, this, _2));
return createFromFile("menu_cof_attachment.xml");
}
bool onEnable(const LLSD& userdata)
{
const std::string event_name = userdata.asString();
if ("edit" == event_name)
{
return (1 == mUUIDs.size()) && (get_is_item_editable(mUUIDs.front()));
}
return true;
}
};
//////////////////////////////////////////////////////////////////////////

View File

@ -6385,6 +6385,10 @@ void LLObjectBridge::performAction(LLInventoryModel* model, std::string action)
{
LLAppearanceMgr::instance().wearItemOnAvatar(mUUID, true, false); // Don't replace if adding.
}
else if ("edit" == action)
{
handle_attachment_edit(mUUID);
}
else if (isRemoveAction(action))
{
LLAppearanceMgr::instance().removeItemFromAvatar(mUUID);
@ -6535,6 +6539,13 @@ void LLObjectBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
if( get_is_item_worn( mUUID ) )
{
items.push_back(std::string("Wearable And Object Separator"));
items.push_back(std::string("Wearable Edit"));
if ( ((flags & FIRST_SELECTED_ITEM) == 0) || !get_is_item_editable(mUUID) )
{
disabled_items.push_back(std::string("Wearable Edit"));
}
items.push_back(std::string("Detach From Yourself"));
}
else if (!isItemInTrash() && !isLinkedObjectInTrash() && !isLinkedObjectMissing() && !isCOFFolder())

View File

@ -78,6 +78,7 @@
#include "lltooldraganddrop.h"
#include "lltrans.h"
#include "lluictrlfactory.h"
#include "llviewermenu.h"
#include "llviewermessage.h"
#include "llviewerfoldertype.h"
#include "llviewerobjectlist.h"
@ -655,6 +656,50 @@ BOOL get_is_item_removable(const LLInventoryModel* model, const LLUUID& id)
return TRUE;
}
bool get_is_item_editable(const LLUUID& inv_item_id)
{
if (const LLInventoryItem* inv_item = gInventory.getLinkedItem(inv_item_id))
{
switch (inv_item->getType())
{
case LLAssetType::AT_BODYPART:
case LLAssetType::AT_CLOTHING:
return gAgentWearables.isWearableModifiable(inv_item_id);
case LLAssetType::AT_OBJECT:
return true;
default:
return false;;
}
}
return gAgentAvatarp->getWornAttachment(inv_item_id) != nullptr;
}
void handle_item_edit(const LLUUID& inv_item_id)
{
if (get_is_item_editable(inv_item_id))
{
if (const LLInventoryItem* inv_item = gInventory.getLinkedItem(inv_item_id))
{
switch (inv_item->getType())
{
case LLAssetType::AT_BODYPART:
case LLAssetType::AT_CLOTHING:
LLAgentWearables::editWearable(inv_item_id);
break;
case LLAssetType::AT_OBJECT:
handle_attachment_edit(inv_item_id);
break;
default:
break;
}
}
else
{
handle_attachment_edit(inv_item_id);
}
}
}
BOOL get_is_category_removable(const LLInventoryModel* model, const LLUUID& id)
{
// NOTE: This function doesn't check the folder's children.

View File

@ -53,6 +53,10 @@ BOOL get_can_item_be_worn(const LLUUID& id);
BOOL get_is_item_removable(const LLInventoryModel* model, const LLUUID& id);
// Performs the appropiate edit action (if one exists) for this item
bool get_is_item_editable(const LLUUID& inv_item_id);
void handle_item_edit(const LLUUID& inv_item_id);
BOOL get_is_category_removable(const LLInventoryModel* model, const LLUUID& id);
BOOL get_is_category_renameable(const LLInventoryModel* model, const LLUUID& id);

View File

@ -64,7 +64,8 @@ public:
LLUICtrl::CommitCallbackRegistry::ScopedRegistrar registrar;
LLUICtrl::EnableCallbackRegistry::ScopedRegistrar enable_registrar;
registrar.add("Gear.Edit", boost::bind(&edit_outfit));
registrar.add("Gear.EditItem", boost::bind(&LLWearingGearMenu::handleMultiple, this, handle_item_edit));
registrar.add("Gear.EditOutfit", boost::bind(&edit_outfit));
registrar.add("Gear.TakeOff", boost::bind(&LLPanelWearing::onRemoveItem, mPanelWearing));
registrar.add("Gear.Copy", boost::bind(&LLPanelWearing::copyToClipboard, mPanelWearing));
@ -78,6 +79,16 @@ public:
LLToggleableMenu* getMenu() { return mMenu; }
private:
void handleMultiple(std::function<void(const LLUUID& id)> functor)
{
uuid_vec_t selected_item_ids;
mPanelWearing->getSelectedItemsUUIDs(selected_item_ids);
for (const LLUUID& item_id : selected_item_ids)
{
functor(item_id);
}
}
LLToggleableMenu* mMenu;
LLPanelWearing* mPanelWearing;
@ -92,7 +103,8 @@ protected:
{
LLUICtrl::CommitCallbackRegistry::ScopedRegistrar registrar;
registrar.add("Wearing.Edit", boost::bind(&edit_outfit));
registrar.add("Wearing.EditItem", boost::bind(handleMultiple, handle_item_edit, mUUIDs));
registrar.add("Wearing.EditOutfit", boost::bind(&edit_outfit));
registrar.add("Wearing.ShowOriginal", boost::bind(show_item_original, mUUIDs.front()));
registrar.add("Wearing.TakeOff",
boost::bind(&LLAppearanceMgr::removeItemsFromAvatar, LLAppearanceMgr::getInstance(), mUUIDs));
@ -138,14 +150,16 @@ protected:
}
// Enable/disable some menu items depending on the selection.
bool show_edit = bp_selected || clothes_selected || attachments_selected;
bool allow_detach = !bp_selected && !clothes_selected && attachments_selected;
bool allow_take_off = !bp_selected && clothes_selected && !attachments_selected;
menu->setItemVisible("edit_item", show_edit);
menu->setItemEnabled("edit_item", 1 == mUUIDs.size() && get_is_item_editable(mUUIDs.front()));
menu->setItemVisible("take_off", allow_take_off);
menu->setItemVisible("detach", allow_detach);
menu->setItemVisible("edit_outfit_separator", allow_take_off || allow_detach);
menu->setItemVisible("edit_outfit_separator", show_edit | allow_take_off || allow_detach);
menu->setItemVisible("show_original", mUUIDs.size() == 1);
menu->setItemVisible("edit_item", FALSE);
}
};
@ -173,12 +187,13 @@ protected:
void updateMenuItemsVisibility(LLContextMenu* menu)
{
menu->setItemVisible("edit_item", TRUE);
menu->setItemEnabled("edit_item", 1 == mUUIDs.size());
menu->setItemVisible("take_off", FALSE);
menu->setItemVisible("detach", TRUE);
menu->setItemVisible("edit_outfit_separator", TRUE);
menu->setItemVisible("edit_outfit_separator", FALSE);
menu->setItemVisible("show_original", FALSE);
menu->setItemVisible("edit_item", TRUE);
menu->setItemVisible("edit", FALSE);
menu->setItemVisible("edit_outfit", FALSE);
}
LLPanelWearing* mPanelWearing;
@ -350,6 +365,14 @@ bool LLPanelWearing::isActionEnabled(const LLSD& userdata)
}
}
uuid_vec_t selected_uuids;
getSelectedItemsUUIDs(selected_uuids);
if (command_name == "edit_item")
{
return (1 == selected_uuids.size()) && (get_is_item_editable(selected_uuids.front()));
}
return false;
}

View File

@ -2777,7 +2777,6 @@ class LLObjectBuild : public view_listener_t
}
};
void handle_object_edit()
{
LLViewerParcelMgr::getInstance()->deselectLand();
@ -2822,6 +2821,20 @@ void handle_object_edit()
return;
}
void handle_attachment_edit(const LLUUID& inv_item_id)
{
if (isAgentAvatarValid())
{
if (LLViewerObject* attached_obj = gAgentAvatarp->getWornAttachment(inv_item_id))
{
LLSelectMgr::getInstance()->deselectAll();
LLSelectMgr::getInstance()->selectObjectAndFamily(attached_obj);
handle_object_edit();
}
}
}
void handle_object_inspect()
{
LLObjectSelectionHandle selection = LLSelectMgr::getInstance()->getSelection();

View File

@ -109,6 +109,7 @@ void handle_zoom_to_object(LLUUID object_id);
void handle_object_return();
void handle_object_delete();
void handle_object_edit();
void handle_attachment_edit(const LLUUID& inv_item_id);
void handle_buy_land();

View File

@ -794,7 +794,7 @@ LLContextMenu* LLWearableItemsList::ContextMenu::createMenu()
// Register handlers common for all wearable types.
registrar.add("Wearable.Wear", boost::bind(wear_multiple, ids, true));
registrar.add("Wearable.Add", boost::bind(wear_multiple, ids, false));
registrar.add("Wearable.Edit", boost::bind(handleMultiple, LLAgentWearables::editWearable, ids));
registrar.add("Wearable.Edit", boost::bind(handle_item_edit, selected_id));
registrar.add("Wearable.CreateNew", boost::bind(createNewWearable, selected_id));
registrar.add("Wearable.ShowOriginal", boost::bind(show_item_original, selected_id));
registrar.add("Wearable.TakeOffDetach",
@ -858,7 +858,7 @@ void LLWearableItemsList::ContextMenu::updateItemsVisibility(LLContextMenu* menu
const LLWearableType::EType wearable_type = item->getWearableType();
const bool is_link = item->getIsLinkType();
const bool is_worn = get_is_item_worn(id);
const bool is_editable = gAgentWearables.isWearableModifiable(id);
const bool is_editable = get_is_item_editable(id);
const bool is_already_worn = gAgentWearables.selfHasWearable(wearable_type);
if (is_worn)
{
@ -893,8 +893,8 @@ void LLWearableItemsList::ContextMenu::updateItemsVisibility(LLContextMenu* menu
setMenuItemEnabled(menu, "wear_add", LLAppearanceMgr::instance().canAddWearables(ids));
setMenuItemVisible(menu, "wear_replace", n_worn == 0 && n_already_worn != 0 && can_be_worn);
//visible only when one item selected and this item is worn
setMenuItemVisible(menu, "edit", !standalone && mask & (MASK_CLOTHING|MASK_BODYPART) && n_worn == n_items && n_worn == 1);
setMenuItemEnabled(menu, "edit", n_editable == 1 && n_worn == 1 && n_items == 1);
setMenuItemVisible(menu, "edit", !standalone && mask & (MASK_CLOTHING|MASK_BODYPART|MASK_ATTACHMENT) && n_worn == n_items);
setMenuItemEnabled(menu, "edit", n_editable && n_worn == 1 && n_items == 1);
setMenuItemVisible(menu, "create_new", mask & (MASK_CLOTHING|MASK_BODYPART) && n_items == 1);
setMenuItemEnabled(menu, "create_new", LLAppearanceMgr::instance().canAddWearables(ids));
setMenuItemVisible(menu, "show_original", !standalone);

View File

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="COF Attachment">
<menu_item_call label="Redigér" name="edit_item" />
<menu_item_call label="Tag af" name="detach"/>
</context_menu>

View File

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<menu name="Gear Wearing">
<menu_item_call label="Redigér sæt" name="edit"/>
<menu_item_call label="Redigér" name="edit_item"/>
<menu_item_call label="Redigér sæt" name="edit_outfit"/>
<menu_item_call label="Tag af" name="takeoff"/>
</menu>

View File

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Wearing">
<menu_item_call label="Redigér" name="edit_item"/>
<menu_item_call label="Tag af" name="take_off"/>
<menu_item_call label="Tag af" name="detach"/>
<menu_item_call label="Redigér sæt" name="edit"/>
<menu_item_call label="Redigér sæt" name="edit_outfit"/>
</context_menu>

View File

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="COF Attachment">
<menu_item_call label="Bearbeiten" name="edit_item" />
<menu_item_call label="Abnehmen" name="detach"/>
</context_menu>

View File

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<toggleable_menu name="Gear Wearing">
<menu_item_call label="Outfit bearbeiten" name="edit"/>
<menu_item_call label="Bearbeiten" name="edit_item"/>
<menu_item_call label="Outfit bearbeiten" name="edit_outfit"/>
<menu_item_call label="Ausziehen" name="takeoff"/>
<menu_item_call label="Outfitliste in Zwischenablage kopieren" name="copy"/>
</toggleable_menu>

View File

@ -2,7 +2,7 @@
<context_menu name="Wearing">
<menu_item_call label="Ausziehen" name="take_off"/>
<menu_item_call label="Abnehmen" name="detach"/>
<menu_item_call label="Outfit bearbeiten" name="edit"/>
<menu_item_call label="Outfit bearbeiten" name="edit_outfit"/>
<menu_item_call label="Bearbeiten" name="edit_item"/>
<menu_item_call label="Original anzeigen" name="show_original"/>
</context_menu>

View File

@ -2,6 +2,16 @@
<context_menu
layout="topleft"
name="COF Attachment">
<menu_item_call
label="Edit"
layout="topleft"
name="edit_item">
<on_click
function="Attachment.Edit" />
<on_enable
function="Attachment.OnEnable"
parameter="edit" />
</menu_item_call>
<menu_item_call
label="Detach"
layout="topleft"

View File

@ -810,14 +810,6 @@
<menu_item_separator
layout="topleft"
name="Wearable And Object Separator"/>
<menu_item_call
label="Detach From Yourself"
layout="topleft"
name="Detach From Yourself">
<menu_item_call.on_click
function="Inventory.DoToSelected"
parameter="detach" />
</menu_item_call>
<!-- COMMENTED OUT for DEV-32347 -->
<!--
<menu_item_call
@ -861,6 +853,14 @@
function="Inventory.DoToSelected"
parameter="wear_add" />
</menu_item_call>
<menu_item_call
label="Detach From Yourself"
layout="topleft"
name="Detach From Yourself">
<menu_item_call.on_click
function="Inventory.DoToSelected"
parameter="detach" />
</menu_item_call>
<menu_item_call
label="Take Off"
layout="topleft"

View File

@ -22,6 +22,12 @@
<on_click
function="Wearable.Add" />
</menu_item_call>
<menu_item_call
label="Edit"
layout="topleft"
name="edit"
on_click.function="Wearable.Edit"
/>
<menu_item_call
label="Take Off / Detach"
layout="topleft"
@ -51,13 +57,6 @@
<on_click
function="Clothing.TakeOff" />
</menu_item_call>
<menu_item_call
label="Edit"
layout="topleft"
name="edit">
<on_click
function="Wearable.Edit" />
</menu_item_call>
<menu_item_call
label="Item Profile"
layout="topleft"

View File

@ -4,11 +4,14 @@
visible="false"
name="Gear Wearing">
<menu_item_call
label="Edit Outfit"
label="Edit"
layout="topleft"
name="edit">
name="edit_item">
<on_click
function="Gear.Edit" />
function="Gear.EditItem" />
<on_enable
function="Gear.OnEnable"
parameter="edit_item" />
</menu_item_call>
<menu_item_call
label="Take Off"
@ -20,6 +23,14 @@
function="Gear.OnEnable"
parameter="take_off" />
</menu_item_call>
<menu_item_separator />
<menu_item_call
label="Edit Outfit"
layout="topleft"
name="edit_outfit">
<on_click
function="Gear.EditOutfit" />
</menu_item_call>
<menu_item_call
label="Copy outfit list to clipboard"
layout="topleft"

View File

@ -2,6 +2,13 @@
<context_menu
layout="topleft"
name="Wearing">
<menu_item_call
label="Edit"
layout="topleft"
name="edit_item">
<on_click
function="Wearing.EditItem" />
</menu_item_call>
<menu_item_call
label="Take Off"
layout="topleft"
@ -23,16 +30,9 @@
<menu_item_call
label="Edit Outfit"
layout="topleft"
name="edit">
name="edit_outfit">
<on_click
function="Wearing.Edit" />
</menu_item_call>
<menu_item_call
label="Edit"
layout="topleft"
name="edit_item">
<on_click
function="Wearing.EditItem" />
function="Wearing.EditOutfit" />
</menu_item_call>
<menu_item_call
label="Show Original"

View File

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="COF Attachment">
<menu_item_call label="Editar" name="edit_item" />
<menu_item_call label="Quitar" name="detach"/>
</context_menu>

View File

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<toggleable_menu name="Gear Wearing">
<menu_item_call label="Editar el vestuario" name="edit"/>
<menu_item_call label="Editar" name="edit_item"/>
<menu_item_call label="Editar el vestuario" name="edit_outfit"/>
<menu_item_call label="Quitarme" name="takeoff"/>
<menu_item_call label="Copiar la lista del vestuario al portapapeles" name="copy"/>
</toggleable_menu>

View File

@ -2,7 +2,7 @@
<context_menu name="Wearing">
<menu_item_call label="Quitarme" name="take_off"/>
<menu_item_call label="Quitar" name="detach"/>
<menu_item_call label="Editar el vestuario" name="edit"/>
<menu_item_call label="Editar el vestuario" name="edit_outfit"/>
<menu_item_call label="Editar" name="edit_item"/>
<menu_item_call label="Mostrar original" name="show_original"/>
</context_menu>

View File

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="COF Attachment">
<menu_item_call label="Modifier" name="edit_item" />
<menu_item_call label="Détacher" name="detach"/>
</context_menu>

View File

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<toggleable_menu name="Gear Wearing">
<menu_item_call label="Modifier la tenue" name="edit"/>
<menu_item_call label="Modifier" name="edit_item"/>
<menu_item_call label="Modifier la tenue" name="edit_outfit"/>
<menu_item_call label="Enlever" name="takeoff"/>
<menu_item_call label="Copier la liste de la tenue dans le presse-papiers" name="copy"/>
</toggleable_menu>

View File

@ -2,7 +2,7 @@
<context_menu name="Wearing">
<menu_item_call label="Enlever" name="take_off"/>
<menu_item_call label="Détacher" name="detach"/>
<menu_item_call label="Modifier la tenue" name="edit"/>
<menu_item_call label="Modifier la tenue" name="edit_outfit"/>
<menu_item_call label="Modifier" name="edit_item"/>
<menu_item_call label="Afficher loriginal" name="show_original"/>
</context_menu>

View File

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="COF Attachment">
<menu_item_call label="Modifica" name="edit_item" />
<menu_item_call label="Stacca" name="detach"/>
</context_menu>

View File

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<toggleable_menu name="Gear Wearing">
<menu_item_call label="Modifica vestiario" name="edit"/>
<menu_item_call label="Modifica" name="edit_item"/>
<menu_item_call label="Modifica vestiario" name="edit_outfit"/>
<menu_item_call label="Togli" name="takeoff"/>
<menu_item_call label="Copia gruppo vestiti negli Appunti" name="copy"/>
</toggleable_menu>

View File

@ -2,7 +2,7 @@
<context_menu name="Wearing">
<menu_item_call label="Togli" name="take_off"/>
<menu_item_call label="Stacca" name="detach"/>
<menu_item_call label="Modifica vestiario" name="edit"/>
<menu_item_call label="Modifica vestiario" name="edit_outfit"/>
<menu_item_call label="Modifica" name="edit_item"/>
<menu_item_call label="Mostra originale" name="show_original"/>
</context_menu>

View File

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="COF Attachment">
<menu_item_call label="編集" name="edit_item" />
<menu_item_call label="取り外す" name="detach"/>
</context_menu>

View File

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<toggleable_menu name="Gear Wearing">
<menu_item_call label="アウトフットの編集" name="edit"/>
<menu_item_call label="編集" name="edit_item"/>
<menu_item_call label="アウトフットの編集" name="edit_outfit"/>
<menu_item_call label="取り外す" name="takeoff"/>
<menu_item_call label="アウトフィットのリストをクリップボードにコピー" name="copy"/>
</toggleable_menu>

View File

@ -2,7 +2,7 @@
<context_menu name="Wearing">
<menu_item_call label="取り外す" name="take_off"/>
<menu_item_call label="取り外す" name="detach"/>
<menu_item_call label="アウトフットの編集" name="edit"/>
<menu_item_call label="アウトフットの編集" name="edit_outfit"/>
<menu_item_call label="編集" name="edit_item"/>
<menu_item_call label="オリジナルを表示" name="show_original"/>
</context_menu>

View File

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<context_menu name="COF Attachment">
<menu_item_call label="Edytuj" name="edit_item" />
<menu_item_call label="Odłącz" name="detach" />
</context_menu>

View File

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<toggleable_menu name="Gear Wearing">
<menu_item_call label="Edytuj strój" name="edit" />
<menu_item_call label="Edytuj" name="edit_item"/>
<menu_item_call label="Edytuj strój" name="edit_outfit" />
<menu_item_call label="Zdejmij" name="takeoff" />
<menu_item_call label="Kopiuj listę przedmiotów stroju do schowka" name="copy" />
</toggleable_menu>

View File

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<context_menu name="Wearing">
<menu_item_call label="Edytuj" name="edit_item"/>
<menu_item_call label="Zdejmij" name="take_off" />
<menu_item_call label="Odłącz" name="detach" />
<menu_item_call label="Edytuj strój" name="edit" />
<menu_item_call label="Edytuj strój" name="edit_outfit" />
</context_menu>

View File

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="COF Attachment">
<menu_item_call label="Editar" name="edit_item" />
<menu_item_call label="Separar" name="detach"/>
</context_menu>

View File

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<toggleable_menu name="Gear Wearing">
<menu_item_call label="Editar look" name="edit"/>
<menu_item_call label="Editar" name="edit_item"/>
<menu_item_call label="Editar look" name="edit_outfit"/>
<menu_item_call label="Tirar" name="takeoff"/>
<menu_item_call label="Copiar lista do look para a área de transferência" name="copy"/>
</toggleable_menu>

View File

@ -2,7 +2,7 @@
<context_menu name="Wearing">
<menu_item_call label="Tirar" name="take_off"/>
<menu_item_call label="Tirar" name="detach"/>
<menu_item_call label="Editar look" name="edit"/>
<menu_item_call label="Editar look" name="edit_outfit"/>
<menu_item_call label="Editar" name="edit_item"/>
<menu_item_call label="Mostrar original" name="show_original"/>
</context_menu>

View File

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="COF Attachment">
<menu_item_call label="Изменить" name="edit_item" />
<menu_item_call label="Отсоединить" name="detach"/>
</context_menu>

View File

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<toggleable_menu name="Gear Wearing">
<menu_item_call label="Изменить костюм" name="edit"/>
<menu_item_call label="Изменить" name="edit_item"/>
<menu_item_call label="Изменить костюм" name="edit_outfit"/>
<menu_item_call label="Снять" name="takeoff"/>
<menu_item_call label="Копировать список костюмов в буфер обмена" name="copy"/>
</toggleable_menu>

View File

@ -2,7 +2,7 @@
<context_menu name="Wearing">
<menu_item_call label="Снять" name="take_off"/>
<menu_item_call label="Отсоединить" name="detach"/>
<menu_item_call label="Изменить костюм" name="edit"/>
<menu_item_call label="Изменить костюм" name="edit_outfit"/>
<menu_item_call label="Изменить" name="edit_item"/>
<menu_item_call label="Показать оригинал" name="show_original"/>
</context_menu>

View File

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="COF Attachment">
<menu_item_call label="Düzenle" name="edit_item" />
<menu_item_call label="Ayır" name="detach"/>
</context_menu>

View File

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<toggleable_menu name="Gear Wearing">
<menu_item_call label="Dış Görünümü Düzenle" name="edit"/>
<menu_item_call label="Düzenle" name="edit_item"/>
<menu_item_call label="Dış Görünümü Düzenle" name="edit_outfit"/>
<menu_item_call label=ıkar" name="takeoff"/>
<menu_item_call label="Dış görünüm listesini panoya kopyala" name="copy"/>
</toggleable_menu>

View File

@ -2,7 +2,7 @@
<context_menu name="Wearing">
<menu_item_call label=ıkar" name="take_off"/>
<menu_item_call label="Ayır" name="detach"/>
<menu_item_call label="Dış Görünümü Düzenle" name="edit"/>
<menu_item_call label="Dış Görünümü Düzenle" name="edit_outfit"/>
<menu_item_call label="Düzenle" name="edit_item"/>
<menu_item_call label="Orijinali Göster" name="show_original"/>
</context_menu>

View File

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="COF Attachment">
<menu_item_call label="編輯" name="edit_item" />
<menu_item_call label="卸下" name="detach"/>
</context_menu>

View File

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<toggleable_menu name="Gear Wearing">
<menu_item_call label="編輯裝扮" name="edit"/>
<menu_item_call label="編輯" name="edit_item"/>
<menu_item_call label="編輯裝扮" name="edit_outfit"/>
<menu_item_call label="脫下" name="takeoff"/>
<menu_item_call label="複製裝扮清單到剪貼簿" name="copy"/>
</toggleable_menu>

View File

@ -2,7 +2,7 @@
<context_menu name="Wearing">
<menu_item_call label="脫下" name="take_off"/>
<menu_item_call label="卸下" name="detach"/>
<menu_item_call label="編輯裝扮" name="edit"/>
<menu_item_call label="編輯裝扮" name="edit_outfit"/>
<menu_item_call label="編輯" name="edit_item"/>
<menu_item_call label="顯示原件" name="show_original"/>
</context_menu>