Refactored LLWearableDictionary to look more like LLAssetType/LLFolderType/etc. in terms of code design. This required a lot of superficial changes across many files. Overall functionality has not changed.
- added grouping clothing items by wearable type (shirt, jeans etc.)
- added sorting clothing items by wearing order in groups
- added separators between items of the same wearable type (lists: clothing, body parts)
- added list specific button bars
- partially added dummy items for missing wearable types in the COF (clothing list)
Reviewed by Mike Antipov at https://codereview.productengine.com/secondlife/r/322
--HG--
branch : product-engine
corrected dirty state management - taking into account changes in ordering between wearables of COF and Base Outfit
Reviewed by Neal Orman at https://codereview.productengine.com/secondlife/r/280/
--HG--
branch : product-engine
- COF items get checked for correct ordering when COF is loaded (LLAppearanceMgr::updateAppearanceFromCOF..., LLAppearanceMgr::updateClothingOrderingInfo() ), and also when COF is saved to a new outfit, base outfit.
- wearables are arranged in LLAgentWearables in a proper order
* updateClothingOrderingInfo() [struggling with naming] does integrity checking and updates "invalid" items (items with wrong, gapped descriptions)
* moved LLAgentWearables::makeNewOutfitLinks(...) and LLShowCreatedOutfit to a more natural place (llappearancemgr.cpp), because they use LLAppearanceMgr's methods a lot
* changed link_inventory_item(...), added the "new_description" parameter
Reviewed by Neal Orman at https://codereview.productengine.com/secondlife/r/268/
--HG--
branch : product-engine
Implemented "Save", "Save as new" functionality. If the base outfit doesn't exist "Save as new" functionality is employed
Reviewed by Neal Orman at https://codereview.productengine.com/secondlife/r/179
--HG--
branch : product-engine
Fixed several areas of code that were not multi-wearables enabled.
Specifically allowed for the wearing of created outfits that had links to
multiple items of the same type. Such outfits can be created by dragging
multiple items of the same type into an unworn outfit folder. When you
wear the outfit, all items (up to 5 per type) should be worn. Does not
affect right-click options or other buttons.
Code reviewed by Vir.
EXT-6372 : Can waer non-links in COF
Some minor changes to account for non-link items appearing in the COF (non-links shouldn't appear in COF, but this can happen due to bugs or 1.23 usage).
First fix allows for these items to be deleted.
Second fix ignores these items from being processed/worn.
EXT-5673 : Autopopulation: Created outfits copy subfolder contents as well as immediate folder contents
EXT-5632 : Autopopulation is including subfolders even if those aren't outfits
DEV-46683 : Post-Deployment Cleanup
This is a series of changes to fix autopopulation behavior that was broken due to the new surprise web avatar deploy. That deploy surfaced a number of serious issues with the original AP code. I did not write this code and the person who did is no longer here, so I've done my best to fix those issues up.
This is a fairly comprehensive set of changes, but it's necessary given the poor state of the pre-existing code and how many problems it caused the new web avatar deploy.
This new version of the AP code will:
(1) Look for a Library->Clothing->Initial Outfits folder and use that if it exists
(2) Not create outfits out of folders that aren't complete outfits
(3) No longer string match against "More Outfits" in order to ignore outfits
(4) No longer recursively collect folder contents when creating an outfit (i.e. will only look at direct descendents)
EXT-4997 : Centralize right-click menu options for delete/remove link
EXT-4998 : Automatically reject double separators from right click menu
Disabled/hid delete button from COF right-click menu, also means that trash icon is disabled.
Added generalized function to remove consecutive separators from right-click menu.
Made a minor cosmetic change to have all code duplication for adding "delete" menu item instead call a common function.
When switching from one pair of pants to another we were temporarily using
an in-between state without pants as a valid rendering state. Removed a call
to removeWearable to keep your pants on until the update from COF swaps the old
pair of pants for the new. Lower body is redrawn only once lowest discard level
of new pants arrives.
Code reviewed by Bigpapi
EXT-4660 : Can delete a bodypart from the COF through inventory view or WEARING tab delete key
EXT-4662 : remove leading separator from COF right-click menu
EXT-4633 : AppearanceSP trash button doesn't update enabled state correctly
Bunch of UI fixes related to the trash/delete functionality in InventoryFloater/SP and AppearanceSP "WEARING" tab. The main idea is that we don't want to allow deletion of bodyparts and folder links from the COF by the user.
Corrected bug where saving an outfit wouldn't update the "unsaved" marker on
the UI. Also switched the UI to use a popup dialog to request the name of
the outfit being made, as we could not convey everything we needed to on the
button alone.
Code reviewed by Vir
We now show a string "(unsaved)" under the appearance panel outfit title
when the currently loaded outfit has been modified from its original state.
Tested with following conditions:
1) item added to loaded outfit
2) item removed from loaded outfit
3) item replaced in loaded outfit
Appears to work properly on login as well. Checking is a manual folder compare,
but should be fairly efficient.
XUI changes submitted by Erica
Entire diff reviewed by Vir
now on creating a new outfit we remove the old base folder link and replace it
with a link to the newly created outfit folder. Responsive UI FTW!
Code reviewed by Vir
Added appearanceSP button to toggle folder closed/open state.
Also fixed up some bugs with current outfit title placement in appearanceSP.xml
Also added a generic call for getting the current outfit folder link
Added gInventory.notifyObservers to idle callbacks so it gets triggered without explicit notifyObservers synchronization.
Added more state tracking for attachments, wearables, and links of those types, so that they're marked as changed properly.
1. Changed sidepanel names to have "sidepanel" (e.g. panel_appearance -> sidepanel_appearance)
2. Changed some "Looks" names to "Outfits"
3. Changed LLPanelLooks to LLPanelOutfitsInventory (to match other inventory panel naming)
4. Took out tab from sidepanel_appearance.
--HG--
branch : avatar-pipeline
Both double-clicking on an outfit to wear, and wearing an outfit from side panel, will now update the current look string.
--HG--
branch : avatar-pipeline