Commit Graph

36 Commits (05935d09124db6834ed7262b94de7558b6738590)

Author SHA1 Message Date
Kitty Barnett 54d1669a5e - added : "RLVaWearReplaceUnlocked" to not block replace when at least one attachment on the target attachment point is non-detachable
-> 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
2011-06-13 19:20:52 +02:00
Kitty Barnett d47980b3d7 - fixed : silly GCC compiler warnings (thankies Satomi and Arrehn)
--HG--
branch : RLVa
2011-06-05 12:51:59 +02:00
Kitty Barnett e248153477 Merged with RLVa-1.3.1a tip
--HG--
branch : RLVa
2011-05-27 15:54:30 +02:00
Kitty Barnett 330b78817d - internal : header dependency cleanup for common RLVa cpp files
--HG--
branch : RLVa
2011-05-22 16:23:59 +02:00
Kitty Barnett c80812fb9f - internal : header dependency cleanup for rlvcommon.h and rlvhandler.h
--HG--
branch : RLVa
2011-05-22 11:34:34 +02:00
Kitty Barnett 78e17b0bf8 - fixed : "Wear" and "Add" aren't grayed out on context menus when @addttach=n restricted
-> 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
2011-05-22 03:21:14 +02:00
Kitty Barnett c55f28def1 - internal : updated copyright year
--HG--
branch : RLVa
2011-05-21 23:10:45 +02:00
Kitty Barnett c834c86cd8 Merged with RLVa-1.3.0g tip
--HG--
branch : RLVa
2011-05-21 22:51:45 +02:00
Kitty Barnett 44f003b537 Merged with RLVa-1.3.0f tip
--HG--
branch : RLVa
2011-05-21 18:22:10 +02:00
Kitty Barnett fc31320f2f - fixed : crash at start-up on Linux (thankies Arrehn)
-> 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
2011-04-13 23:07:16 +02:00
Kitty Barnett 363659fc22 - added : wearable and attachments related @notify notifications
--HG--
branch : RLVa
2011-04-01 02:45:06 +02:00
Kitty Barnett d3c9adad04 - fixed : inventory item move, rename or removal should be subject to folder locks as well
--HG--
branch : RLVa
2011-03-30 21:19:44 +02:00
Kitty Barnett 04d1e98bfb - changed : more fiddling with moving, removing and renaming of locked folders
-> 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
2011-03-30 19:42:00 +02:00
Kitty Barnett 1a1f35ca6c - fixed : locked folder lookups aren't refreshed for canMove(), canRename() or canRemove()
--HG--
branch : RLVa
2011-03-29 15:04:02 +02:00
Kitty Barnett 1edb9bde6f - changed : block renaming of PERM_ALLOW locked folders in addition to PERM_DENY
-> @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
2011-03-29 11:43:30 +02:00
Kitty Barnett 45180e6f19 - changed : only block renaming a locked folder if the folder (or one of its descendents) is locked by shared path
-> @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
2011-03-29 10:25:49 +02:00
Kitty Barnett 1458f852ac - internal : added a callback signal when the tracked #RLV shared root changes
--HG--
branch : RLVa
2011-03-29 08:49:14 +02:00
Kitty Barnett 6d9c8064fa - internal : added ST_FOLDER as a folder lock source type to lock a folder by its inventory UUID
-> supports locking down the inventory root

--HG--
branch : RLVa
2011-03-28 17:25:11 +01:00
Kitty Barnett 538b3ee6d4 - internal : introduced ELockSourceType to differentiate between different folder lock source types
-> 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
2011-03-28 16:49:09 +01:00
Kitty Barnett d32a9cc5b0 - internal : extensive rewrite of RlvFolderLocks to accomodate PERM_ALLOW type folder locks (aka folder lock exceptions)
--HG--
branch : RLVa
2011-03-27 20:48:36 +01:00
Kitty Barnett 8c1fab0782 - internal : split folder locks into "deny locks" and "allow locks"
-> no functional change yet, "allow locks" are currently ignored

--HG--
branch : RLVa
2011-03-27 09:26:17 +01:00
Kitty Barnett 3666f5e305 Merged with RLVa-1.3.0b tip
--HG--
branch : RLVa
2011-02-03 00:55:54 +01:00
Kitty Barnett 7e35c80fb3 - internal : added caching of folder UUIDs for @attachthis[:<option>]=n and @detachthis[:<option>]=n
--HG--
branch : RLVa
2010-11-30 19:22:40 +01:00
Kitty Barnett d26ba4ca71 - internal : inlined the has*() and is*() functions of RlvFolderLocks
--HG--
branch : RLVa
2010-11-30 18:35:12 +01:00
Kitty Barnett f78b60ba5a - internal : reviewed RlvFolderLocks::getLockedFoldersRem()
--HG--
branch : RLVa
2010-11-30 18:34:36 +01:00
Kitty Barnett f3ee0b3f91 - internal : mark cached folder locked items as dirty on every change to COF
-> rebuilding the item list is post-poned until the first call that actually needs it so this is essentially "free"

--HG--
branch : RLVa
2010-11-30 17:41:57 +01:00
Kitty Barnett 4518f5234c - internal : extended @detach*this[:<option>]=n to also RLV_LOCK_REMOVE individual wearables
-> only the worn wearable is remove-locked, not the entire wearable type

--HG--
branch : RLVa
2010-11-30 17:36:23 +01:00
Kitty Barnett 9307712aaf - internal : minimal implementation of @detach*this[:<option>]=n
-> test code currently only prevents attachments in locked folders from being detached (or replaced)
    -> TODO: RlvAttachmentLocks::isLockedAttachmentExcept(...) and RlvAttachmentLocks::isLockedAttachmentPointExcept(...)

--HG--
branch : RLVa
2010-11-30 17:23:33 +01:00
Kitty Barnett 91989b6a6e - internal : added minimal interface to support @attach*this[:<option>]=n and @detach*this[:<option>]=n
--HG--
branch : RLVa
2010-11-30 15:13:47 +01:00
Kitty Barnett a80ef78845 - internal : moved initialization of RlvAttachPtLookup from RlvHandler::onLoginComplete() to LLVOAvatarSelf::initInstance()
--HG--
branch : RLVa
2010-12-12 01:13:35 +01:00
Kitty Barnett 419d3de5c9 - fixed : when checking if an attach is allowed the restrictions at the time of the wear request should be checked (not those in effect at attach time)
-> the force-wear in @attach:folderA=force,addattach=n should succeed in spite of the @addattach=n restriction that's present on actual attach
- internal : added typedefs for vectors containing (const) LLViewerObject pointers
    -> std::vector is apparantly faster for small lists than std::list
- fixed : "Add to Outfit" and "Replace Outfit" already place the attachment links into COF and don't need to be tracked through mPendingObjLinks

--HG--
branch : RLVa
2010-09-24 07:23:31 +02:00
Kitty Barnett 24955c2d39 - internal : SVC-5383 appears to be fixed so we'll use RezMultipleAttachmentsFromInv for force-wearing once more
--HG--
branch : RLVa
2010-09-15 23:39:56 +02:00
Kitty Barnett b04ea28222 - internal : moved code from confirm_attachment_rez() to LLAttachmentsMgr class
- internal : RlvAttachmentLockWatchdog::attach() uses RezSingleAttachmentFromInv directly
    -> check whether http://jira.secondlife.com/browse/SVC-5383 is still an issue

--HG--
branch : RLVa
2010-09-15 23:27:14 +02:00
Kitty Barnett e6e551cb41 Merged with default tip (Revision 7a739cbdce56)
--HG--
branch : RLVa
2010-08-28 02:06:00 +02:00
Kitty Barnett 8c32b5fe60 - fixed : LLPipeline::sShowHUDAttachments isn't reset to TRUE when an attachment is worn on an empty RLV_LOCK_REMOVE locked HUD attachment point
-> @remattach:top=n (with no current attachment on "top" or any other locked HUD attachments)
    -> uncheck "Show HUD Attachments" (allowed because RlvAttachmentLocks::hasLockedHUD() will return FALSE when there are no locked HUDs)
    -> attach HUD attachment to top => invisible
- fixed : HUD zoom level should be restricted when a HUD attachment is non-detachable
- fixed : wireframe should be disabled when a HUD attachment is non-detachable

--HG--
branch : RLVa
2010-08-22 18:41:57 +02:00
Kitty Barnett b6a073c659 Initial commit of RLVa-1.2.0i
--HG--
branch : RLVa
2010-08-22 10:57:22 +02:00