Commit Graph

19680 Commits (654cd3f89786e5c19cf26472ccf5a402a22ea661)

Author SHA1 Message Date
Nat Goodspeed 654cd3f897 CHOP-763: Make LLView::TemporaryDrilldownFunc boost::noncopyable.
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.
2011-09-04 07:08:23 -04:00
Nat Goodspeed 7215d1a9a9 CHOP-763: Extend LLEventAPI "LLViewerControl" API; add queries.
This is a significant refactoring of planned (but as yet unimplemented) work,
though in fact it's almost completely compatible with the only implemented
operation. The set() operation now requires op="set", where before that was
inferred because set() was the only possibility.
Whereas before LLViewerControlListener dispatched to different bound methods
on the "group" key, with four known "group" string values, it now dispatches
on the "op" key, supporting "set", "toggle", "get", "groups", "vars" -- the
last two exposing query functionality. LLControlGroup is actually derived from
LLInstanceTracker, keyed on string names, so we can look up instances using
LLControlGroup::getInstance(const std::string&), or enumerate all such names.
LLControlGroup similarly permits iterating over all defined LLControlVariables.
The static LLViewerControlListener instance has been wrapped in an unnamed
namespace and removed from llviewercontrollistener.h. The availability of the
API depends on LLEventPumps::obtain(), rather than normal C++ visibility.
2011-09-01 14:05:37 -04:00
Nat Goodspeed 3ddf3aef9b CHOP-763: Promote Response class from llwindowlistener.cpp to LLEventAPI.
This is a generally-useful idiom, extending the sendReply() convenience
function -- it shouldn't remain buried in a single .cpp file.
2011-09-01 13:12:23 -04:00
Nat Goodspeed 54399f1f87 CHOP-763: publish LLControlGroup::typeStringToEnum(), typeEnumToString()
These LLControlGroup methods were marked 'protected'. But they're important
for introspection: LLControlVariable::type() returns an eControlType;
understanding that value outside a C++ context requires typeEnumToString().
2011-09-01 13:01:08 -04:00
Nat Goodspeed 71aec7439c CHOP-763: Introduce static LLView::getPathname(LLView*).
Use it for LLWindowListener to safely report an LLView* which might be NULL.
2011-08-30 15:22:44 -04:00
Andrew A. de Laix 713aa42f61 add responses to key events. 2011-08-30 13:37:10 -05:00
Andrew A. de Laix f08de06bf2 fix crash bug; exclude root from path. 2011-08-30 13:30:18 -05:00
Nat Goodspeed 12dbf4c7b4 CHOP-763: Add Windows magic precompiled header #include. 2011-08-30 11:30:51 -04:00
Nat Goodspeed 6e8ba7e117 CHOP-763: Introduce LLView::getPathname(). 2011-08-30 09:53:43 -04:00
Nat Goodspeed 5fb224bb81 CHOP-763: make sendReply() treat replyKey as optional.
It's not worth bothering to tweak reply LLSD or attempt to send it if the
incoming request has no replyKey, in effect not requesting a reply. This
supports LLEventAPI operations for which the caller might or might not care
about a reply, invoked using either send() (fire and forget) or request()
(send request, wait for response). This logic should be central, instead of
having to perform that test in every caller that cares.
The major alternative would have been to treat missing replyKey as an error
(whether LL_ERRS or exception). But since there's already a mechanism by which
an LLEventAPI operation method can stipulate its replyKey as required, at this
level we can let it be optional.
2011-08-30 09:52:25 -04:00
Nat Goodspeed f08d7fba9f CHOP-763: Implement widget-pathname-based routing for mouse events.
Send mouseDown(), mouseUp(), mouseMove() through static mouseEvent() helper
function. Process new optional ["path"] param, validating corresponding LLView
and capturing certain information about it for caller. Synthesize (x, y) pos
if need be. Use LLView::TemporaryDrilldownFunc and llview::TargetEvent to
temporarily hijack normal LLView mouse-event propagation.
Define Response helper class to capture LLSD blob about the current request
and ensure it gets sent on return.
2011-08-29 15:57:32 -04:00
Andrew A. de Laix 34a620523a a better way to inject key events. 2011-08-29 13:27:17 -05:00
Andrew A. de Laix 1d31559b30 implement path option for key events. 2011-08-26 15:06:14 -05:00
Nat Goodspeed 79f14b7feb CHOP-763: Move llwindowlistener.{h,cpp} from llwindow to newview.
Instantiate LLWindowListener on LLViewerWindow instead of on LLWindow.
This permits LLWindowListener to use machinery from llui, e.g.
LLUI::resolvePath().
Document planned new ["path"], ["reply"] params to "keyDown", "keyUp",
"mouseDown", "mouseUp", "mouseMove" operations; document relationship between
["path"] and ["x"] and ["y"].
NEW PARAMS NOT YET IMPLEMENTED.
2011-08-25 14:54:38 -04:00
Nat Goodspeed f7a6ed85e4 CHOP-763: Add LLView::TemporaryDrilldownFunc to support UI injection.
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.
2011-08-25 14:40:53 -04:00
Nat Goodspeed a548fd52e3 CHOP-763: Collect nontrivial LLView::childrenHandle*() methods.
There are 5 remaining childrenHandleSomething() methods with nontrivial bodies
-- the rest all forward to one of those 5. Move them all to be physically
adjacent in the source file to make it easy to compare/maintain.
2011-08-11 17:54:27 -04:00
Nat Goodspeed a44fb94af2 CHOP-763: Reduce redundancy in LLView::childrenHandle*() methods.
There were 13 different methods that were more or less clones of each other.
Consolidate those down to 5 variations on the basic method body, where each
variation has good (commented!) reason to differ.
Use helper methods to further simplify the remaining distinct method bodies.
Use BOOST_FOREACH() to improve readability of iterating over mChildList.
2011-08-11 17:41:54 -04:00
Nat Goodspeed 45b1b6ff3b CHOP-763: Remove redundant KEY string names from llwindowlistener.cpp.
A couple of the lookup tables in llwindowlistener.cpp essentially duplicated
LLKeyboard::keyFromString() and maskFromString(). Remove those tables and use
LLKeyboard lookup methods instead.
2011-08-03 16:04:45 -04:00
Oz Linden 1ba2176292 merge changes for storm-1474 2011-07-27 20:12:37 -04:00
Oz Linden 825fc273ee merge fix for SH-2031 2011-07-25 14:38:02 -04:00
Oz Linden 4c32fb0455 increment viewer version to 2.8.3 2011-07-25 10:58:48 -04:00
Oz Linden 723d05e6df Added tag 2.8.2-start for changeset 54bc7823ad4e 2011-07-25 10:58:11 -04:00
Oz Linden b8be8820ea close head created by 54e071a92450 2011-07-25 09:49:58 -04:00
Oz Linden e072806525 merge changes for storm-1458 2011-07-25 09:48:57 -04:00
Dave Parks b26ff4b4ed SH-2031 Fix for bad vertex shader/fragment shader varying usage. 2011-07-25 00:00:04 -05:00
Dave Parks 0ebf271a58 merge 2011-07-24 16:19:55 -05:00
Dave Parks 6465218f18 Go back to useful head 2011-07-24 16:18:39 -05:00
Dave Parks 578e44d9b8 dummy check in to make hg happy 2011-07-24 15:55:44 -05:00
Dave Parks a5769e8126 terminating accidental merge
--HG--
branch : oops
2011-07-24 15:44:46 -05:00
Dave Parks 0f86c26fa5 merge 2011-07-24 15:10:13 -05:00
Oz Linden 6df418b7af merge changes for storm-1526 2011-07-22 22:07:50 -04:00
Dave Parks 26a9a6929c SH-2031 Fix for sometimes deadlocking a curl thread. 2011-07-22 16:22:51 -05:00
Oz Linden 7ac2307501 merge back release branch changes 2011-07-22 10:46:25 -04:00
Nat Goodspeed d28e411af6 Automated merge with http://hg.secondlife.com/viewer-development 2011-07-22 10:01:42 -04:00
Oz Linden ebbadcf772 merge changes from snowstorm team review build 2011-07-22 09:06:42 -04:00
Paul ProductEngine 298bb68484 STORM-1474 FIXED Implement Show Last Search in viewer chrome
- Minimize the search floater on teleport
2011-07-22 15:22:59 +03:00
Dave Parks e4a8ef4ce2 SH-2031 Cleanup from threaded curl implementation (remove errors/loops on shutdown). 2011-07-22 02:33:55 -05:00
Dave Parks c337888553 SH-2031 Disable usage of glMapBuffer (again). Despite using MapBufferRange, this is still a source of frame stalls. 2011-07-22 01:07:48 -05:00
Dave Parks 7b6afd1eba SH-2031 Followup to curl threading work -- don't start and stop the thread on every request, use a signal (cuts time spent in Pump IO down from 1-2 ms to 0.1ms) 2011-07-21 23:33:23 -05:00
Dave Parks 764a13a196 SH-2031 Don't do network I/O from the main thread in llcurl.
Reviewed by Kelly
2011-07-21 17:35:04 -05:00
Oz Linden c118ec2099 merge up changes for 2.8.0 release 2011-07-21 15:02:03 -04:00
Dave Parks 65d82fe192 SH-2031 Fix for stall in "Cleanup" 2011-07-21 13:10:28 -05:00
Oz Linden d26356d7e1 merge changes for storm-1519 2011-07-21 09:32:10 -04:00
Oz Linden dcc57bbb0e merge changes for eli2_viewer-development 2011-07-21 09:30:22 -04:00
Oz Linden 91bc7e34cf merge late beta fixes 2011-07-21 09:25:46 -04:00
Oz Linden 09c18af318 merge changes for release tags 2011-07-21 09:25:08 -04:00
Dave Parks aaecc4c53c SH-2020 Fix for avatar skin/eyes and trees being bright/black/busted underwater. 2011-07-21 00:42:48 -05:00
Dave Parks e52caca712 SH-2048 Fix for invisiprims infecting neighboring prims with their invisi-ness. 2011-07-20 23:50:44 -05:00
Dave Parks 78f1bad0e6 SH-2021 Fix for black water at the horizon from occlusion culling madness. 2011-07-20 17:56:22 -05:00
Dave Parks 26568d5c98 SH-1838 Add error handling for allocation of off screen render targets.
Reviewed by Leslie
2011-07-20 16:06:04 -05:00