Commit graph

1661 commits

Author SHA1 Message Date
David Rowe
71de106594 Tidying 2016-12-04 15:14:47 +13:00
David Rowe
b84bcaf629 Highlight Web overlay with focus 2016-12-04 13:42:12 +13:00
David Rowe
38e6c8075c Direct keyboard input to Web overlay when has focus 2016-12-04 12:28:44 +13:00
David Rowe
a75d0b3fe8 Merge branch 'master' into 21089 2016-11-30 14:50:51 +13:00
howard-stearns
5188de924f allow for SnapshotReview dialog to be up during a change of href for all
media capture
2016-11-22 11:09:43 -08:00
Zach Fox
2c0cfdf241 Fix build for real? 2016-11-18 14:39:30 -08:00
Zach Fox
a81289a0d7 Huge progress today. Buggy behavior with multiple snapshots remains 2016-11-18 14:39:29 -08:00
Zach Fox
8f9ffd2bc5 Framerate is stable, and GIF duration is correctgit add -A! 2016-11-18 14:39:29 -08:00
Zach Fox
25471d9fae Still unstable, but maybe better? 2016-11-18 14:39:29 -08:00
Zach Fox
fc21cae904 More stable than ever! Uses external GifCreator lib. Still frame timing issues. 2016-11-18 14:39:29 -08:00
Zach Fox
f726ea546f code cleanup; simultaneous gif and still capture 2016-11-18 14:39:29 -08:00
Zach Fox
1158ae8b3d Much more stability. 2016-11-18 14:39:29 -08:00
Zach Fox
045dfff158 It's workinggit add -A! Stack corruption errors? Must fix. 2016-11-18 14:39:29 -08:00
Zach Fox
c39a8da3b8 Getting theregit add -A! 2016-11-18 14:39:29 -08:00
Zach Fox
b6dd795b00 It crashes, but it's the start of a new architecture 2016-11-18 14:39:28 -08:00
Zach Fox
ee21d1ccc7 IT WORKSgit add -A! Mega amounts of cleanup to do now. 2016-11-18 14:39:28 -08:00
Zach Fox
704476c197 Initial progressgit add -A! 2016-11-18 14:39:28 -08:00
David Rowe
76de7bf03c Fix typo 2016-11-08 13:53:37 +13:00
David Rowe
090065ee34 Add user feedback on download process 2016-11-08 13:05:35 +13:00
David Rowe
d33ac21aaa Merge branch 'master' into 21089 2016-11-08 08:23:10 +13:00
Zach Fox
a12e0325bf Making progress... 2016-11-03 10:39:55 -07:00
David Rowe
427c8008c6 Merge branch 'master' into 21089 2016-11-03 09:18:25 +13:00
David Rowe
cee8b66ce9 Handle duplicate Clara download asset names 2016-11-01 13:26:05 +13:00
David Rowe
8ab56fe871 Automatically download Clara model to ATP and add to world 2016-10-31 16:02:20 +13:00
David Rowe
12747d26e0 Add parameter that enables automatically adding download model to world 2016-10-30 13:58:17 +13:00
Seth Alves
3ad748cfe2 Merge branch 'master' of github.com:highfidelity/hifi into possible-fix-for-2068 2016-10-28 16:41:39 -07:00
Zach Pomerantz
be23668ca8 delete websurfaces on shutdown 2016-10-28 14:29:52 -07:00
Seth Alves
f47aeae2a7 stop passing bare pointers to EntityTreeRenderer all around 2016-10-27 10:10:22 -07:00
Clément Brisset
b63eb6ba9f Merge pull request #8665 from zzmp/feat/audio-stats
move audio stats to QML/JS, with graphs
2016-10-20 16:43:49 -07:00
Brad Hefta-Gaub
d46170bec0 auto shutdown of sandbox when interface quits 2016-10-17 07:55:24 -07:00
Clément Brisset
d18394f249 Merge pull request #8596 from huffman/feat/my-avatar-self-id
Add ability to parent overlays to MyAvatar for use across servers
2016-10-05 12:03:01 -07:00
Zach Pomerantz
277eefafd7 remove the audio stats dialog 2016-09-23 14:39:07 -07:00
Brad Davis
f33d3a3b36 Migrate logging functionality to shared library 2016-09-23 12:04:58 -07:00
Brad Hefta-Gaub
5d3d4bdbd9 add support for redirection on domain at max capacity 2016-09-21 18:12:38 -07:00
Ryan Huffman
23450e929b Add special avatar id for attaching overlays 2016-09-13 16:33:58 -07:00
Anthony J. Thibault
dc0d0c2d5c Merge branch 'master' into feature/tablet-ui-foundation 2016-09-07 09:49:55 -07:00
Anthony J. Thibault
9122a33fff only raise the webEntity virtual keyboard in HMD mode 2016-09-02 16:53:40 -07:00
Brad Davis
94210d2e69 Use dynamic count for global thread pool 2016-09-02 15:23:35 -07:00
Howard Stearns
89b00883dd Merge pull request #8428 from highfidelity/discovery
Snapshot of Snapshot-Discovery to master
2016-08-23 14:32:10 -07:00
howard-stearns
a3d64dbd9c code cleanup 2016-08-19 14:14:31 -07:00
howard-stearns
f6670a6374 new optional aspect-ratio argument to snapshot chain (javascript through
c++ display plugin). When non-zero, it pulls out the largest piece from
the center that maintains that ratio.  Snapshot button uses 1.91.
2016-08-18 16:29:42 -07:00
howard-stearns
e75f950ac7 Signal receivedHifiSchemeURL 2016-08-17 16:34:59 -07:00
Anthony J. Thibault
7de8cc6422 Merge branch 'master' into feature/hand-controller-web-entity-integration 2016-08-16 16:49:57 -07:00
Anthony J. Thibault
c407818d63 send pointer events from handControllerGrab.js to webEntities 2016-08-16 15:26:14 -07:00
howard-stearns
2b75240771 Merge branch 'master' of https://github.com/highfidelity/hifi into discovery 2016-08-16 11:14:36 -07:00
samcake
8d12a23efb Merge pull request #8325 from jherico/deferred_batches_threaded
Threaded rendering
2016-08-15 09:59:44 -07:00
Bradley Austin Davis
274321de8a First pass at threaded rendering 2016-08-12 22:18:36 -07:00
Anthony J. Thibault
1be434342b Work In Progress snapshot
* Added new PointerEvent type.
* Mouse events are still sent from Application to EntityTreeRenderer, however, EntityTreeRenderer converts them to PointerEvents
* All outgoing signals from EntityTreeRenderer use PointerEvents instead of MouseEvents
* Associated JavaScript entity methods will receive PointerEvents instead of MouseEvents
* Events from handControllerGrab.js to entities are currently broken.
2016-08-12 17:11:59 -07:00
Zander Otavka
62f4e3536b Expose showing asset server to script interface 2016-08-12 15:18:30 -07:00
howard-stearns
e6746acf4c Merge branch 'master' of https://github.com/highfidelity/hifi into discovery 2016-08-11 15:40:26 -07:00
Anthony J. Thibault
8dac45c99e Merge branch 'master' into feature/hand-controller-web-entity-integration 2016-08-10 11:27:21 -07:00
Ryan Huffman
5b69ca03f0 Move default skybox out of global and make irradiance gen optional 2016-08-08 16:03:03 -07:00
David Kelly
c8f3a898d2 First cut of a snapshot uploader
Will need to test end-to-end shortly, etc...
2016-08-08 15:27:27 -07:00
Ryan Huffman
8044910bf2 Add show-address-bar when disconnected from domain 2016-08-04 14:39:53 -07:00
Anthony J. Thibault
6d768d8327 hand controllers send touch events instead of mouse events to web entities
This gives a much better experience when scrolling web content.
2016-08-02 15:23:46 -07:00
David Kelly
1d7cdff2bc Snapshot button plus script
Minor change to allow snapshots to not notify (though the old way
with CTRL+S still does).  Added button to do it, saves them to disk.

The plan is for us to add UI to share (or not) the snapshot.  That's
why we are not going through the notifications.  Also, the
script makes sure to hide/unhide hud and overlays.  Next we will upload
the pick to AWS via data-web (if you are logged in), and _then_ make
the share UI.
2016-08-01 18:21:01 -07:00
Anthony Thibault
cf7450beb7 handControllerGrab and web entity input integration 2016-07-29 17:50:45 -07:00
Brad Hefta-Gaub
83dc9ea6bb punish slow scripts and don't send updates while physics is still loading 2016-07-25 21:46:30 -07:00
Anthony J. Thibault
837b19ed1b fix for pushing avatar into floor when exiting away mode.
* Removed MyAvatar.reset() access from JavaScript
* Added HMD.centerUI() to JavaScript, which can be used to reset the 3D UI sphere around the current HMD orientation.
* Added MyAvatar.clearIKJOintLimitHistory() which can be used to reset any remembered IK joint limit history.
* Added MyAvatar.centerBody() which can be used to instantly re-orient the avatar's so that the hips and toes
  are facing the same direction as the current HMD orientation.

away.js now uses the above new API's instead of MyAvatar.reset()
2016-07-19 14:42:24 -07:00
Brad Hefta-Gaub
bcee128de0 Merge pull request #6959 from Triplelexx/20769
CR for Job #20769 - Touchscreen camera input for Interface
2016-07-11 14:24:52 -07:00
Stephen Birarda
43967dc9a6 handle running of non .svo.json JSON files from mp CDN 2016-07-08 15:47:56 -07:00
Stephen Birarda
5bce924eda keep signature for askToLoadScript 2016-07-08 14:34:42 -07:00
Stephen Birarda
216e47b29a hide the long URL prefix of scripts from marketplace 2016-07-08 09:43:11 -07:00
Triplelexx
fd4d9761ce merge master and resolve conflicts
* remove use of jointsCaptured flag in inputDevice update, TouchscreenDevice now locks the userInputMapper * resolve conflict in Application.cpp, userInputMapper no longer loads default mapping
2016-06-24 03:34:39 +01:00
howard-stearns
f8391f0062 fix reticle bugs 2016-06-23 16:51:15 -07:00
Ryan Huffman
70be7b3273 Merge branch 'master' of https://github.com/highfidelity/hifi into feat/user-actions 2016-06-21 16:39:25 -07:00
Brad Hefta-Gaub
c322317878 rework plugins to not depend on PluginContainer unless they want to 2016-06-21 12:07:05 -07:00
Ryan Huffman
c7955900ab Add new user activity events 2016-06-16 13:17:18 -07:00
Stephen Birarda
4b5a554122 remove check in version downgrading from NodeList 2016-06-09 15:53:19 -07:00
Atlante45
ee62a211ac Remove "Input Devices" menu 2016-06-06 13:28:36 -07:00
Atlante45
d8493f960a Add command line option to enable/disable plugins 2016-06-06 13:28:36 -07:00
Brad Hefta-Gaub
2eef07e414 cleanup and dead code removal 2016-05-24 15:38:08 -07:00
Brad Hefta-Gaub
12a1857280 check point with protocol refusal working 2016-05-24 15:20:11 -07:00
Brad Hefta-Gaub
1cf8236860 Merge branch 'master' of https://github.com/highfidelity/hifi into protocolVersionCheck 2016-05-24 13:31:36 -07:00
Brad Hefta-Gaub
1d9981e624 first cut at support for verifying all protocol version compatibility 2016-05-24 13:31:19 -07:00
Zach Pomerantz
7dabce9cff Check throttle before idling/painting 2016-05-23 19:04:35 -07:00
Zach Pomerantz
9a4b30a50b Fix AvatarInputs phantom movement 2016-05-19 13:19:15 -07:00
Ryan Huffman
cf49c8e2bf Add getUserAgent function that includes plugin information 2016-05-18 15:35:29 -07:00
Zach Pomerantz
65e81077cb Merge branch 'master' of github.com:highfidelity/hifi into perf/idle-event 2016-05-13 16:24:42 -07:00
Anthony Thibault
8fecb51dde Merge pull request #7846 from hyperlogic/tony/improved-avatar-debug-draw
Eye tracking bug fix and debug rendering improvements
2016-05-11 17:41:49 -07:00
Brad Hefta-Gaub
d656f61c64 Merge pull request #7759 from jherico/app_plugin_type
Don't expose raw pointer to the display plugin
2016-05-11 14:49:22 -07:00
Zach Pomerantz
2d4fd783bd Rename Paint/Idle events to Present 2016-05-10 16:09:04 -07:00
Anthony J. Thibault
80a349c65b Merge branch 'master' into tony/improved-avatar-debug-draw 2016-05-10 14:50:13 -07:00
Zach Pomerantz
783be53125 Trigger Idle from present Paint 2016-05-10 14:39:23 -07:00
Brad Hefta-Gaub
350743454b Merge pull request #7839 from sethalves/entity-simulation-smart-pointers-1
use smart pointers for entity simulations
2016-05-10 11:35:57 -07:00
Clément Brisset
c3ce463b6c Merge pull request #7854 from zzmp/refactor/delayLoad
Clean up resource cache's encapsulation of asynchronous loading
2016-05-10 10:47:23 -07:00
Brad Hefta-Gaub
d7eee98acc Merge pull request #7827 from AndrewMeadows/threadsafe-viewfrustum
resurrection of threadsafe ViewFrustum
2016-05-10 09:06:38 -07:00
Seth Alves
b761ecf44f merge from upstream 2016-05-10 08:18:45 -07:00
Zach Pomerantz
9ac783a88d Black box asynch resource retrieval 2016-05-09 18:03:19 -07:00
Atlante45
5c196f3df5 Remove Deadlock status 2016-05-09 15:53:45 -07:00
Anthony J. Thibault
641e152699 Eye tracking bug fix and debug rendering improvement
* Bug fix for eye tracking in HMD, the "up" orientation of your eyes now match your head.
* DebugDraw: added drawRay method.
* Application: Renamed preRender to postUpdate
* AvatarManager: added postUpdate method that iterates over all avatars.
* MyAvatar: Renamed preRender to preDisplaySide
* MyAvatar: split preRender code into postUpdate and preDisplaySide.
* Removed "Show who is looking at me", "Render focus indicator" and "Render lookat target" debug draw.
* Split "Show Look At Vectors" into "Show My Look At Vectors" and "Show Other Look At Vectors", to make it easier to debug eye tracking.
* "Show Look at Vectors" now draws the right eye red and the left eye blue.
* Removed Avatar and MyAvatar renderBody
* Removed look at rendering from head.
* GLMHelpers: Bugfix for generateBasisVectors when up primary and secondary axis were orthogonal
2016-05-08 16:20:32 -07:00
Brad Davis
c54d0bc993 Don't expose raw pointer to the display plugin 2016-05-08 10:35:31 -07:00
Seth Alves
a0771f8ee5 use smart pointers for entity simulations 2016-05-07 09:14:33 -07:00
Andrew Meadows
778820edb4 fix broken dupe method implementation 2016-05-06 09:07:03 -07:00
Andrew Meadows
635e2e78e3 minor cleanup 2016-05-05 18:43:08 -07:00
Andrew Meadows
71b2d647e8 add locks and explicitly copy ViewFrustums 2016-05-05 18:28:27 -07:00
Andrew Meadows
bcf2cc8074 use references not pointers for ViewFrustums
also unravelling some spaghetti:
(1) split Octree stuff out of ViewFrustum
(2) moved ViewFrustum from octree to shared lib
(3) removed some cruft
2016-05-05 18:28:27 -07:00
Andrew Meadows
60a72c6660 getViewFrustum() provides const pointer 2016-05-05 18:28:27 -07:00
Brad Hefta-Gaub
8f3d48190a switch to QRect instead of vec4 2016-04-16 16:59:47 -07:00
Brad Hefta-Gaub
c7f58dc17c first cut at exposing recommend overlay rectangle 2016-04-14 20:47:31 -07:00
Brad Hefta-Gaub
7b5075cce5 Merge pull request #7645 from sethalves/dont-run-bullet-too-soon
add a heuristic for deciding when it's safe to enable bullet
2016-04-14 09:35:58 -07:00
Ryan Huffman
47c2a1722b Merge branch 'master' of https://github.com/highfidelity/hifi into feat/crash-menu 2016-04-13 14:40:46 -07:00
Ryan Huffman
bc247ec058 Remove unused Application::crashApplication() 2016-04-13 14:01:41 -07:00
Seth Alves
e4c91e5064 add a heuristic for deciding when it's safe to enable bullet 2016-04-12 11:46:00 -07:00
Brad Davis
df8ad57185 Fix FPS counter 2016-04-11 00:25:16 -07:00
Brad Hefta-Gaub
157dd96303 Merge pull request #7612 from ZappoMan/mirrorReturnsToLastView
when using the fullscreen mirror hot key, return to the view mode you were in when leaving full screen mirror
2016-04-07 14:56:53 -07:00
Brad Hefta-Gaub
81bb5ff07d when using the fullscreen mirror hot key, return to the view mode you were in when leaving full screen mirror 2016-04-07 13:13:19 -07:00
Brad Hefta-Gaub
bd1eb5842a fix crash related to menu vs watchdog create order 2016-04-07 12:45:24 -07:00
Brad Hefta-Gaub
47aed9c8bd fix redraw issue when logging in to or out of a domain 2016-04-06 14:56:20 -07:00
Anthony J. Thibault
07ff687bfe Application: change keyboard input focus when using ui overlay.
call focusOutEvent on keyboard input plugin when an offscreen ui has activeFocus.
2016-04-05 18:12:02 -07:00
Triplelexx
a4775983a2 Merge branch 'master' into 20769
# Conflicts:
# interface/src/Application.cpp

conflicting line 2528 wheelEvent is now const
2016-04-04 19:19:55 +01:00
Thijs Wenker
142f37da1c fix accidentally violated style rule 3.1.2.1 2016-04-04 17:33:47 +02:00
Thijs Wenker
b2058376ba used "ReSharper C++" to fix some style and spelling in Application.(h|cpp) 2016-04-04 17:03:05 +02:00
Triplelexx
fb242be50f resolved merge conflict
got to stick to command line, this should have been added with add
command at merge....
2016-04-03 22:59:48 +01:00
Seth Alves
5fa9f662fc Merge pull request #7542 from birarda/refresh-on-asset-connect
refresh/close the asset browser dialog on domain switch
2016-04-01 18:08:59 -07:00
Stephen Birarda
ee7bee95f8 use nodeActivated to trigger refresh of Asset Browser 2016-04-01 11:35:33 -07:00
Anthony J. Thibault
3d43f73a88 Application: don't call Model::simulate on network thread.
This can cause a crash.

On startup the Application::processOctreeStats method on the network thread will call into entities entity->isReadyToComputeShape() (without a tree lock) and trigger Model::simulate.  Model is NOT thread safe.  This was leading to a single model to be initialized on two threads simultaneously.

This might be somewhat rare, I only caught it because I was running a debug build.
2016-03-31 17:57:20 -07:00
Brad Hefta-Gaub
d99dcf5450 Merge pull request #7487 from hyperlogic/tony/animated-culling
Improved render bounding boxes for animated models
2016-03-30 09:27:43 -07:00
howard-stearns
4ebf816166 cleanup 2016-03-29 16:17:19 -07:00
Anthony J. Thibault
115fd607a0 Address performance issues introduced with this PR.
* Prevent clusterMatrices from being invalidated and re-computed in each updateItem lambda.
  We do this by not setting _model->_needsUpdateClusterMatrices = true;
* Prevent redundant work if Model::enqueueLocationChange is called multiple times per frame.
  We do this by introducing a preRenderLambdas map in the Application class.
  Instead of adding work directly to the scene PendingChanges queue Model::enqueueLocationChange
  adds a lambda to the Application preRenderLambdas map.  The Application ensures that only one lambda will
  be invoked for each model per frame.
2016-03-28 19:47:30 -07:00
Brad Davis
520cccb219 Make display plugin switching atomic from other threads 2016-03-24 15:19:46 -07:00
Brad Hefta-Gaub
2b0670718f Merge pull request #7449 from howard-stearns/report-previous-session-data
Report previous session data
2016-03-23 20:58:51 -07:00
howard-stearns
c435ca212a Report previous session time. 2016-03-23 16:59:17 -07:00
howard-stearns
550738776c Pass whether or not previous session crashed to the UserActivityLogger. 2016-03-23 15:56:29 -07:00
Zach Pomerantz
9c11474dd7 Expose qApp->updateHeartbeat 2016-03-22 17:17:36 -07:00
Anthony J. Thibault
ce47f83288 Prevent deadlock if idle is called during rendering
This extraordinary event can occur if a MessageBox is popped up by the opengl driver.

* removed AvatarData::avatarLock
* removed AvatarUpdate

This code was left over from an earlier avatar threading experiment.

Removed AvatarData avatarLock and AvatarUpdate class
2016-03-21 15:11:15 -07:00
Brad Hefta-Gaub
edcf642410 Merge pull request #7374 from jherico/plugin_switch_crash
Reduce crashes on switching display plugins
2016-03-17 15:51:39 -07:00
Anthony J. Thibault
a8bc8a7843 Application: prevent crash on startup when "Interface Crashed" dialog is shown.
If the application "Interface Crashed" dialog is shown at startup, it can cause Application to receive events before it has been fully constructed.
In this case the QMainWindow _window pointer is uninitialized, causing Menu::getInstance() to de-reference an invalid pointer.

The fix for this is three fold.

1. Construct the QMainWindow before calling setupEssentials (which in turn spawns the "Interface Crashed" dialog).
2. Change Menu::getInstance() from a static_cast to a dynamic_cast.  This will cause it to return a nullptr if [QMainWindow::menuBar()](http://doc.qt.io/qt-4.8/qmainwindow.html#menuBar) returns an instance of QMenuBar and not a ui::Menu instance.
3. In Application::event return false if Menu::getInstance() returns a nullptr.  This should prevent any code that relies on having a valid ui::Menu instance from running.
2016-03-17 12:13:01 -07:00
Bradley Austin Davis
7045680bc7 Reduce crashes on switching display plugins 2016-03-17 10:13:52 -07:00
Atlante45
4a90ec303c Fix drag&drop 2016-03-15 11:22:42 -07:00
Stephen Birarda
72c64532f5 Merge branch 'master' of https://github.com/highfidelity/hifi into atp 2016-03-15 09:12:49 -07:00
Anthony J. Thibault
807d31743c Removed Hand, HandData & PalmData
Instead, we just store two controller::Poses in MyAvatar.
Existing behavior and scripting APIs have been preserved.

The hand controller debug drawing is slightly different, but still works.
2016-03-10 19:33:31 -08:00
Stephen Birarda
57ea51d244 Merge pull request #84 from Atlante45/feat/atp
Replace old drag&drop with new UI
2016-03-09 14:26:49 -08:00
Stephen Birarda
9a2b2b4c16 Merge branch 'master' of https://github.com/highfidelity/hifi into atp 2016-03-09 12:16:46 -08:00
Atlante45
5a0beec1f5 Replace old drag&drop with new UI 2016-03-09 11:47:31 -08:00
Brad Davis
95f5d82d37 Add a watchdog thread to trigger a crash on detecting a deadlock 2016-03-09 00:32:46 -08:00
Atlante45
ded449072f Rename window 2016-03-08 13:13:45 -08:00
Atlante45
784f669998 First draft Assets Manager 2016-03-08 13:13:45 -08:00
Brad Davis
28103cf5ef Migrate composition of the overlay and pointer to the present thread 2016-03-07 17:14:41 -08:00
Stephen Birarda
f44cf3903c re-instate verified domain ownership for full automatic networking
This reverts commit 34408c8144.
2016-03-01 13:04:37 -08:00
Stephen Birarda
b0c11e6562 Merge pull request #7217 from huffman/udt-random-seq
Randomize initial send sequence number in UDT
2016-03-01 12:59:10 -08:00
Atlante45
4944d0a8d0 Handle threading inside AssetServer 2016-03-01 12:00:43 -08:00
Ryan Huffman
cc9c87d281 Fix packet version mismatch not showing for domain packets 2016-03-01 11:36:49 -08:00
Brad Hefta-Gaub
2c3fdc995f Away improvements 2016-02-29 20:23:06 -08:00
Zach Pomerantz
3c53078178 Merge pull request #7194 from ZappoMan/toggleOverlay
add toggleOverlays menu item and action
2016-02-26 10:17:24 -08:00
Anthony J. Thibault
1fdae13de1 Application: don't simulate until we are ready to render. 2016-02-25 17:48:55 -08:00
Brad Hefta-Gaub
b0c286bc3b Merge branch 'master' of https://github.com/highfidelity/hifi into toggleOverlay
Conflicts:
	interface/src/Application.cpp
2016-02-25 16:21:38 -08:00
Clément Brisset
2e7c7eace5 Merge pull request #7179 from birarda/domain-security
verified domain ownership for full automatic networking
2016-02-25 15:24:09 -08:00
Brad Hefta-Gaub
366aa39be8 handle startup overlay visibility correctly 2016-02-25 14:46:08 -08:00
Brad Hefta-Gaub
5828c32041 add toggleOverlays menu item and action 2016-02-25 08:31:11 -08:00