Clean up inventory bridges

meow-7.2.2
Ansariel 2017-04-27 15:50:46 +02:00
parent f299e9f621
commit d346b873a0
2 changed files with 68 additions and 67 deletions

View File

@ -742,41 +742,6 @@ void hide_context_entries(LLMenuGL& menu,
}
}
// <FS:Ansariel> Inventory Links Replace
void LLInvFVBridge::checkInventoryLinkReplace(menuentry_vec_t& items, menuentry_vec_t& disables_items)
{
const LLInventoryObject* obj = getInventoryObject();
if (isAgentInventory() && obj && obj->getType() != LLAssetType::AT_CATEGORY && obj->getType() != LLAssetType::AT_LINK_FOLDER)
{
items.push_back(std::string("Replace Links"));
if (mRoot->getSelectedCount() != 1)
{
disables_items.push_back(std::string("Replace Links"));
}
}
}
// </FS:Ansariel>
// <FS:Ansariel> Move to default folder
void LLInvFVBridge::checkMoveToDefaultFolder(menuentry_vec_t& items, menuentry_vec_t& disables_items)
{
const LLInventoryObject* obj = getInventoryObject();
if (isAgentInventory() && !isProtectedFolder(true) && obj &&
obj->getActualType() != LLAssetType::AT_CATEGORY &&
obj->getActualType() != LLAssetType::AT_LINK_FOLDER &&
obj->getActualType() != LLAssetType::AT_LINK &&
(!RlvFolderLocks::instance().hasLockedFolder(RLV_LOCK_ANY) ||
RlvFolderLocks::instance().canMoveItem(obj->getUUID(), getInventoryModel()->findCategoryUUIDForType(LLFolderType::assetTypeToFolderType(obj->getActualType()) ) ))
)
{
items.push_back(std::string("Move to Default Folder"));
}
}
// </FS:Ansariel>
// Helper for commonly-used entries
void LLInvFVBridge::getClipboardEntries(bool show_asset_id,
menuentry_vec_t &items,
@ -962,10 +927,10 @@ void LLInvFVBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
}
// <FS:Ansariel> Inventory Links Replace
checkInventoryLinkReplace(items, disabled_items);
addLinkReplaceMenuOption(items, disabled_items);
// <FS:Ansariel> Move to default folder
checkMoveToDefaultFolder(items, disabled_items);
addMoveToDefaultFolderMenuOption(items);
hide_context_entries(menu, items, disabled_items);
}
@ -1167,6 +1132,40 @@ void LLInvFVBridge::addMarketplaceContextMenuOptions(U32 flags,
items.push_back(std::string("Marketplace Listings Separator"));
}
// <FS:Ansariel> Inventory Links Replace
void LLInvFVBridge::addLinkReplaceMenuOption(menuentry_vec_t& items, menuentry_vec_t& disabled_items)
{
const LLInventoryObject* obj = getInventoryObject();
if (isAgentInventory() && obj && obj->getType() != LLAssetType::AT_CATEGORY && obj->getType() != LLAssetType::AT_LINK_FOLDER)
{
items.push_back(std::string("Replace Links"));
if (mRoot->getSelectedCount() != 1)
{
disabled_items.push_back(std::string("Replace Links"));
}
}
}
// </FS:Ansariel>
// <FS:Ansariel> Move to default folder
void LLInvFVBridge::addMoveToDefaultFolderMenuOption(menuentry_vec_t& items)
{
const LLInventoryObject* obj = getInventoryObject();
if (isAgentInventory() && !isProtectedFolder(true) && obj &&
obj->getActualType() != LLAssetType::AT_CATEGORY &&
obj->getActualType() != LLAssetType::AT_LINK_FOLDER &&
obj->getActualType() != LLAssetType::AT_LINK &&
(!RlvFolderLocks::instance().hasLockedFolder(RLV_LOCK_ANY) ||
RlvFolderLocks::instance().canMoveItem(obj->getUUID(), getInventoryModel()->findCategoryUUIDForType(LLFolderType::assetTypeToFolderType(obj->getActualType()) ) ))
)
{
items.push_back(std::string("Move to Default Folder"));
}
}
// </FS:Ansariel>
// *TODO: remove this
BOOL LLInvFVBridge::startDrag(EDragAndDropType* type, LLUUID* id) const
@ -1294,14 +1293,14 @@ BOOL LLInvFVBridge::isProtectedFolder(bool ignore_setting /*= false*/) const
return FALSE;
}
if ((mUUID == FSLSLBridge::instance().getBridgeFolder()
if ((mUUID == FSLSLBridge::instance().getBridgeFolder()
|| model->isObjectDescendentOf(mUUID, FSLSLBridge::instance().getBridgeFolder()))
&& (gSavedPerAccountSettings.getBOOL("ProtectBridgeFolder") || ignore_setting))
{
return TRUE;
}
if ((mUUID == AOEngine::instance().getAOFolder()
if ((mUUID == AOEngine::instance().getAOFolder()
|| model->isObjectDescendentOf(mUUID, AOEngine::instance().getAOFolder()))
&& (gSavedPerAccountSettings.getBOOL("ProtectAOFolders") || ignore_setting))
{
@ -5649,10 +5648,10 @@ void LLTextureBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
}
// <FS:Ansariel> Inventory Links Replace
checkInventoryLinkReplace(items, disabled_items);
addLinkReplaceMenuOption(items, disabled_items);
// <FS:Ansariel> Move to default folder
checkMoveToDefaultFolder(items, disabled_items);
addMoveToDefaultFolderMenuOption(items);
hide_context_entries(menu, items, disabled_items);
}
@ -5727,10 +5726,10 @@ void LLSoundBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
}
// <FS:Ansariel> Inventory Links Replace
checkInventoryLinkReplace(items, disabled_items);
addLinkReplaceMenuOption(items, disabled_items);
// <FS:Ansariel> Move to default folder
checkMoveToDefaultFolder(items, disabled_items);
addMoveToDefaultFolderMenuOption(items);
hide_context_entries(menu, items, disabled_items);
}
@ -5821,10 +5820,10 @@ void LLLandmarkBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
}
// <FS:Ansariel> Inventory Links Replace
checkInventoryLinkReplace(items, disabled_items);
addLinkReplaceMenuOption(items, disabled_items);
// <FS:Ansariel> Move to default folder
checkMoveToDefaultFolder(items, disabled_items);
addMoveToDefaultFolderMenuOption(items);
hide_context_entries(menu, items, disabled_items);
}
@ -6149,10 +6148,10 @@ void LLCallingCardBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
}
// <FS:Ansariel> Inventory Links Replace
checkInventoryLinkReplace(items, disabled_items);
addLinkReplaceMenuOption(items, disabled_items);
// <FS:Ansariel> Move to default folder
checkMoveToDefaultFolder(items, disabled_items);
addMoveToDefaultFolderMenuOption(items);
hide_context_entries(menu, items, disabled_items);
}
@ -6425,10 +6424,10 @@ void LLGestureBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
}
// <FS:Ansariel> Inventory Links Replace
checkInventoryLinkReplace(items, disabled_items);
addLinkReplaceMenuOption(items, disabled_items);
// <FS:Ansariel> Move to default folder
checkMoveToDefaultFolder(items, disabled_items);
addMoveToDefaultFolderMenuOption(items);
hide_context_entries(menu, items, disabled_items);
}
@ -6488,10 +6487,10 @@ void LLAnimationBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
}
// <FS:Ansariel> Inventory Links Replace
checkInventoryLinkReplace(items, disabled_items);
addLinkReplaceMenuOption(items, disabled_items);
// <FS:Ansariel> Move to default folder
checkMoveToDefaultFolder(items, disabled_items);
addMoveToDefaultFolderMenuOption(items);
hide_context_entries(menu, items, disabled_items);
}
@ -6951,10 +6950,10 @@ void LLObjectBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
}
// <FS:Ansariel> Inventory Links Replace
checkInventoryLinkReplace(items, disabled_items);
addLinkReplaceMenuOption(items, disabled_items);
// <FS:Ansariel> Move to default folder
checkMoveToDefaultFolder(items, disabled_items);
addMoveToDefaultFolderMenuOption(items);
hide_context_entries(menu, items, disabled_items);
}
@ -7219,10 +7218,10 @@ void LLWearableBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
}
// <FS:Ansariel> Inventory Links Replace
checkInventoryLinkReplace(items, disabled_items);
addLinkReplaceMenuOption(items, disabled_items);
// <FS:Ansariel> Move to default folder
checkMoveToDefaultFolder(items, disabled_items);
addMoveToDefaultFolderMenuOption(items);
hide_context_entries(menu, items, disabled_items);
}
@ -7397,7 +7396,7 @@ void LLLinkItemBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
}
// <FS:Ansariel> Inventory Links Replace
checkInventoryLinkReplace(items, disabled_items);
addLinkReplaceMenuOption(items, disabled_items);
hide_context_entries(menu, items, disabled_items);
}
@ -7451,10 +7450,10 @@ void LLMeshBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
}
// <FS:Ansariel> Inventory Links Replace
checkInventoryLinkReplace(items, disabled_items);
addLinkReplaceMenuOption(items, disabled_items);
// <FS:Ansariel> Move to default folder
checkMoveToDefaultFolder(items, disabled_items);
addMoveToDefaultFolderMenuOption(items);
hide_context_entries(menu, items, disabled_items);
}

View File

@ -151,6 +151,12 @@ protected:
virtual void addMarketplaceContextMenuOptions(U32 flags,
menuentry_vec_t &items,
menuentry_vec_t &disabled_items);
// <FS:Ansariel> Inventory Links Replace
virtual void addLinkReplaceMenuOption(menuentry_vec_t& items,
menuentry_vec_t& disabled_items);
// <FS:Ansariel> Move to default folder
virtual void addMoveToDefaultFolderMenuOption(menuentry_vec_t& items);
protected:
LLInvFVBridge(LLInventoryPanel* inventory, LLFolderView* root, const LLUUID& uuid);
@ -161,22 +167,18 @@ protected:
BOOL isLinkedObjectMissing() const; // Is this a linked obj whose baseobj is not in inventory?
BOOL isAgentInventory() const; // false if lost or in the inventory library
BOOL isCOFFolder() const; // true if COF or descendant of
BOOL isInboxFolder() const; // true if COF or descendant of marketplace inbox
BOOL isMarketplaceListingsFolder() const; // true if descendant of Marketplace listings folder
// [SL:KB] - Patch: Inventory-Misc | Checked: 2011-05-28 (Catznip-2.6.0a) | Added: Catznip-2.6.0a
BOOL isLibraryInventory() const;
BOOL isLostInventory() const;
// [/SL:KB]
BOOL isCOFFolder() const; // true if COF or descendent of
// <FS:TT> Client LSL Bridge
BOOL isProtectedFolder(bool ignore_setting = false) const;
// </FS:TT>
BOOL isInboxFolder() const; // true if COF or descendent of marketplace inbox
BOOL isMarketplaceListingsFolder() const; // true if descendant of Marketplace listings folder
// <FS:Ansariel> Inventory Links Replace
void checkInventoryLinkReplace(menuentry_vec_t& items, menuentry_vec_t& disables_items);
// <FS:Ansariel> Move to default folder
void checkMoveToDefaultFolder(menuentry_vec_t& items, menuentry_vec_t& disables_items);
virtual BOOL isItemPermissive() const;
static void changeItemParent(LLInventoryModel* model,