diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp index 94c6e2b063..c6d7a8db3f 100644 --- a/indra/newview/llinventorybridge.cpp +++ b/indra/newview/llinventorybridge.cpp @@ -742,41 +742,6 @@ void hide_context_entries(LLMenuGL& menu, } } -// 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")); - } - } -} -// - -// 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")); - } -} -// - // 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) } // Inventory Links Replace - checkInventoryLinkReplace(items, disabled_items); + addLinkReplaceMenuOption(items, disabled_items); // 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")); } +// 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")); + } + } +} +// + +// 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")); + } +} +// // *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) } // Inventory Links Replace - checkInventoryLinkReplace(items, disabled_items); + addLinkReplaceMenuOption(items, disabled_items); // 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) } // Inventory Links Replace - checkInventoryLinkReplace(items, disabled_items); + addLinkReplaceMenuOption(items, disabled_items); // 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) } // Inventory Links Replace - checkInventoryLinkReplace(items, disabled_items); + addLinkReplaceMenuOption(items, disabled_items); // 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) } // Inventory Links Replace - checkInventoryLinkReplace(items, disabled_items); + addLinkReplaceMenuOption(items, disabled_items); // 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) } // Inventory Links Replace - checkInventoryLinkReplace(items, disabled_items); + addLinkReplaceMenuOption(items, disabled_items); // 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) } // Inventory Links Replace - checkInventoryLinkReplace(items, disabled_items); + addLinkReplaceMenuOption(items, disabled_items); // 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) } // Inventory Links Replace - checkInventoryLinkReplace(items, disabled_items); + addLinkReplaceMenuOption(items, disabled_items); // 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) } // Inventory Links Replace - checkInventoryLinkReplace(items, disabled_items); + addLinkReplaceMenuOption(items, disabled_items); // 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) } // 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) } // Inventory Links Replace - checkInventoryLinkReplace(items, disabled_items); + addLinkReplaceMenuOption(items, disabled_items); // Move to default folder - checkMoveToDefaultFolder(items, disabled_items); + addMoveToDefaultFolderMenuOption(items); hide_context_entries(menu, items, disabled_items); } diff --git a/indra/newview/llinventorybridge.h b/indra/newview/llinventorybridge.h index 97f32b5bbb..74c10a403e 100644 --- a/indra/newview/llinventorybridge.h +++ b/indra/newview/llinventorybridge.h @@ -151,6 +151,12 @@ protected: virtual void addMarketplaceContextMenuOptions(U32 flags, menuentry_vec_t &items, menuentry_vec_t &disabled_items); + // Inventory Links Replace + virtual void addLinkReplaceMenuOption(menuentry_vec_t& items, + menuentry_vec_t& disabled_items); + // 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 // Client LSL Bridge BOOL isProtectedFolder(bool ignore_setting = false) const; // - BOOL isInboxFolder() const; // true if COF or descendent of marketplace inbox - BOOL isMarketplaceListingsFolder() const; // true if descendant of Marketplace listings folder - - // Inventory Links Replace - void checkInventoryLinkReplace(menuentry_vec_t& items, menuentry_vec_t& disables_items); - - // Move to default folder - void checkMoveToDefaultFolder(menuentry_vec_t& items, menuentry_vec_t& disables_items); virtual BOOL isItemPermissive() const; static void changeItemParent(LLInventoryModel* model,