Reason:
LLFocusMgr::setKeyboardFocus() which is called from LLLineEditor::setFocus()
makes the folder view the edit menu handler, thus it receives the Delete key
presses instead of the line editor.
Fix:
Make sure the line editor becomes the edit menu handler whenever it's focused,
no matter is it a child of a folder view or not.
The recursive logic always used to recur to the point where there were no
children -- where the next level of recursion returned NULL -- and then return
that NULL. Fix so when that lowest-level call returns NULL, we return one
level above that.
changed ordering of template loading relative to constructor setting of params
moved a lot of constructor-set params to template files
reviewed by Leslie
Code review with Alain turned up the fact that TemporaryDrilldownFunc, simple
to the point of naivety, doesn't address the case of its being copied. Making
it boost::noncopyable should turn any such usage into a compile error.
EXP-1003 FIX -- Renaming a folder in Received Items panel resets the New flag for that folder
EXP-1001 FIX -- Newness is removed on next login if you log out or crash before opening inventory panel
EXP-857 FIX -- Add context menu entries as alternate path to populate outbox
EXP-858 FIX -- Outbox sync failure error handling
EXP-1158 FIX -- Viewer crash when deleting items from Outbox when some folders are open
* Made inbox, outbox and inventory panels all legit tab stops for keyboard focus
* Added mouse over indication on inventory panel primarily for increased clarity on outbox error messages
* Disabled "Rename" option on inbox items
* Added context menu option to copy/move an item to the merchant outbox
* Context menu option to copy/move to outbox is visible and/or enabled/disabled when appropriate
* "LastInventoryInboxCollapse" no longer written out as a setting when the panel is not visible
* Fixed up collapse time check to not try to parse empty string on first load (deminishes text spam in log greatly)
* Disabled double-click as a way to equip items in the inbox or outbox
* Viewer code no longer removes items from the outbox after sync. We rely on the sim to do this now.
* Basic outbox sync error handling now displays error messages as tooltips along with badge over item in outbox
* Moved some scroll container default values out of code and into xml
Instead of unconditionally calling LLView::pointInView(),
LLView::visibleAndContains() now consults a class-static boost::function
called sDrilldown -- which is initialized to LLView::pointInView().
Introduce LLView::TemporaryDrilldownFunc, instantiated with a callable whose
signature is compatible with LLView::pointInView(). This replaces sDrilldown,
but only for the life of the TemporaryDrilldownFunc object.
Introduce llview::TargetEvent, an object intended to serve as a
TemporaryDrilldownFunc callable. Construct it with a desired target LLView*
and pass it to TemporaryDrilldownFunc. When called with each candidate child
LLView*, instead of selecting the one containing the particular (x, y) point,
it selects the one that will lead to the ultimate desired target LLView*.
Add optional 'recur' param to LLView::childFromPoint(); default is current
one-level behavior. But when you pass recur=true, it should return the
frontmost visible leaf LLView containing the passed (x, y) point.