- Added methods responsible for saving and loading order of buttons to bottomtray. Order is saved after each drag'n'drop to
ensure user's customization of bottomtray is not lost because of crash.
- Added additional argument to layoutstack movePanel() method which tells it to move panel to the beginning of mPanels vector
without requiring a pointer to panel before which it should be inserted.
Reviewed by Vadim Savchuk.
- Though visually user drags buttons, layout panels are really moved. To move one panel before other, new method movePanelBeforeOther() was added to layout stack.
- When drag'n'drop is finished, order of panels in layout stack mToolbarStack is changed, and also order vectors are updated in bottomtray.These are vectors mButtonsProcessOrder and mButtonsOrder. mButtonsOrder was introduced in this changeset to store order of all bottomtray buttons that may change place via drag'n'drop and should save and load it between sessions. mButtonsProcessOrder is not enough for it because it contains only buttons that may be hidden(and for example Speak button is not included in it).
- To pass mouse events from buttons to bottomtray, new class LLBottomtrayButton was added (and new widget bottomtray_button for it).
Reviewed by Vadim Savchuk.
Buttons belonging items of some FlatListView instances didn't work (i.e. click on them didn't invoke the callback)
if the list was inside a detached sidebar tab.
I'm working around that by a simple XML fix (disabled focusing the broken buttons), but the issue needs further investigation.
Affected panels: avatar list, group list, teleport history.
Reviewed by Sergey Litovchuk
It is now possible to detach some sidebar tabs, exit the viewer, login again and see those tabs still detached.
Also fixed incorrect saving of tabs dimensions implemented in the previous commit (766d6e749836).
Reviewed by Sergey Litovchuk
Added checking when item in COF list selected: IF (FolderListView is shown) THEN (don't switch to the FlatListView AND set proper filter for FlatListView).
Reviewed by Vadim Savchuk
- After wearable removed from COF list, check: whether any outfit of the same wearable type as removed left in COF. If left then select it.
- Added method selectClothing(LLWearableType::EType) to the LLCOFWearables that selects first clothing from COF of specified WearableType
Reviewed by Vadim Savchuk
Probably a regression from the prevalidator rework - was enforcing non-negative int when precision=0 (i.e. non-float), should have been enforcing only full int range.