* reimplemented button bars as static panels not as list items (creating accordion - button bar - list view - adaptor/container)
* added management of items' buttons assording to inventory items' states
* assigned actions to clothing/bodyparts items' buttons
* got rid of separators as distinct items and made them as part of items
* removed ad-hoc up/down buttons
* removed "+" button from a button bar
Reviewed by Mike Antipov at https://codereview.productengine.com/secondlife/r/322
--HG--
branch : product-engine
Applyied Aimee's patch to enable blocking of avaline caller:
added an "External" mute type which isn't sent to the SL servers or stored in the cache across sessions.
The caller's ID will change each time so there's no point cluttering up the mute list by persisting them.
Known issue: Right now the mute is added with the caller's phone number as the name shown in the block list,
so that will need changing to "Avaline Caller 1" etc
--HG--
branch : product-engine
llui:
- Added accordion tab title setter.
- Added setters for accordion tab focus changes callbacks.
newview:
- Fixed observer used for outfit items collecting. Added checking number of fetched items.
- Added outfit selection and enabled "replace outfit" and "add to outfit" commands for selected outfit.
Reviewed by Mike Antipov https://codereview.productengine.com/secondlife/r/332/
--HG--
branch : product-engine
Added new wearable list item - LLPanelDummyClothingListItem for not worn wearable types, it displays grayed wearable type icon, grayed
title '<clothing type> not worn' and 'add' button.
Modified base class to be more flexible.
Moved init() to protected section.
Modified COF panel to use dummy item.
Reviewed by Mike Antipov - https://codereview.productengine.com/secondlife/r/335/
--HG--
branch : product-engine
Use LLMutexLock (stack-based locker/unlocker) for the straightforward cases instead of explicit lock()/unlock().
There are still a couple of cases (one overlapping lock lifetime and two loops that unlock the mutex to call another function inside the loop) where I'm leaving explicit lock/unlock calls.
Rename LLPluginProcessParent::sPollThread to sReadThread, for consistency.
Made the LLPluginProcessParent destructor hold mIncomingQueueMutex while removing the instance from the global list -- this should prevent a possible race condition in LLPluginProcessParent::poll().
Removed a redundant check when calling LLPluginProcessParent::setUseReadThread().
Replaced LLPanelInventoryListItem with LLPanelInventoryListItem. This class is capable of showing widgets on left and right sides of panel.
Implemented LLPanelClothingListItem and LLPanelBodyPartListItem - makes use of new LLPanelInventoryListItem and is able to show buttons specified in tickets. Buttons are
shown on mouse_enter event and hidden on mouse_leave event. Buttons are - delete, move up, move down, lock, edit. It's item's user responsibility
to control buttons visibility.
Made LLInventoryItemsList::addNewItem virtual to allow inheritors create specific(non-default) items.
Reviewed by Mike Antipov - https://codereview.productengine.com/secondlife/r/325/
--HG--
branch : product-engine