-> see previous commit as well
-> lookups ended up refreshing before the actual attachments were attached leaving them (from a user's perspective unpredictably) detachable
--HG--
branch : RLVa
-> locked (cuff) attachment on left and right lower leg
-> ankle boots with attachments on left and right lower leg
-> FALSE: "Wear" on a new set of ankle boots will fail (can not replace the non-detachable ankle cuffs)
TRUE : "Wear" on a new set of ankle boots will replace the existing boots (ankle cuffs are not affected)
--HG--
branch : RLVa
-> RlvAttachmentLocks::canAttach() would return RLV_WEAR and allow the attach
-> RlvAttachmentLockWatchdog would detach the attachment as soon as it attached due to the @remattach=n
--HG--
branch : RLVa
-> the RlvFolderLocks constructor (indirectly) adds an inventory observer
-> depending on the order of construction of gRlvFolderLocks and gInventoryModel the constructor will either work as intended or crash
=> changed RlvFolderLocks into a singleton since the construction order of globals is up to the compiler
--HG--
branch : RLVa
-> added checking for a combination of lock source types [see hasLockedFolderDescendent() and isLockedFolderEntry()]
-> added getting the lock source of a locked folder [see isLockedFolder()]
-> clarified which function parameters in RlvFolderLocks will accept an enumeration mask
-> blocked being able to move a shared folder out of #RLV when @unshared*wear restricted
-> blocked being able to rename attachment/attachment point/wearable type locked folders to "dot" folders and invalidate the folder lock
--HG--
branch : RLVa
-> @unshared*wear will PERM_DENY the inventory root and PERM_ALLOW the #RLV shared root
-> no folders are blocked from being rename'able though only #RLV and descendants are wearable/removable
-> user can't move folders into (or out of) #RLV
-> user renames #RLV -> #RLV-2 and FolderWithThingsToWear to #RLV
=> user bypassed @unshared*wear
--HG--
branch : RLVa
-> @attachthis:some/path=n relies on folder names to lookup the locked folder => block rename on the path only
-> @attachthis:spine=n is looked up through attachments' inventory item UUID => allow rename
-> @unshared*wear=n locks down the inventory root and shouldn't also blanket block the ability to rename
--HG--
branch : RLVa
-> an attachment would be identified by its object UUID
-> an non-shared inventory folder would be identify by its category UUID
=> the same type can't have two different meanings so we needed an additional explicit type qualifier
--HG--
branch : RLVa
-> test code currently only prevents attachments in locked folders from being detached (or replaced)
-> TODO: RlvAttachmentLocks::isLockedAttachmentExcept(...) and RlvAttachmentLocks::isLockedAttachmentPointExcept(...)
--HG--
branch : RLVa