From 1b74576259041be426de5e8b6cb61aa8a50d6d78 Mon Sep 17 00:00:00 2001 From: Zach Fox <fox@highfidelity.io> Date: Wed, 29 Mar 2017 14:53:45 -0700 Subject: [PATCH] Fix tablet-close behavior for PAL; remove users-tablet.js --- libraries/script-engine/src/TabletScriptingInterface.h | 9 +++++++++ scripts/defaultScripts.js | 1 - scripts/system/pal.js | 10 ++++++++++ scripts/system/tablet-ui/tabletUI.js | 8 ++++---- 4 files changed, 23 insertions(+), 5 deletions(-) diff --git a/libraries/script-engine/src/TabletScriptingInterface.h b/libraries/script-engine/src/TabletScriptingInterface.h index 2e7b91fa4c..2cb15a5087 100644 --- a/libraries/script-engine/src/TabletScriptingInterface.h +++ b/libraries/script-engine/src/TabletScriptingInterface.h @@ -85,6 +85,7 @@ class TabletProxy : public QObject { Q_OBJECT Q_PROPERTY(QString name READ getName) Q_PROPERTY(bool toolbarMode READ getToolbarMode WRITE setToolbarMode) + Q_PROPERTY(bool tabletShown MEMBER _tabletShown NOTIFY tabletShownChanged) public: TabletProxy(QString name); @@ -206,6 +207,13 @@ signals: */ void screenChanged(QVariant type, QVariant url); + /** jsdoc + * Signaled when the tablet becomes visible or becomes invisible + * @function TabletProxy#isTabletShownChanged + * @returns {Signal} + */ + void tabletShownChanged(); + protected slots: void addButtonsToHomeScreen(); void desktopWindowClosed(); @@ -224,6 +232,7 @@ protected: QObject* _qmlOffscreenSurface { nullptr }; QmlWindowClass* _desktopWindow { nullptr }; bool _toolbarMode { false }; + bool _tabletShown { false }; enum class State { Uninitialized, Home, Web, Menu, QML }; State _state { State::Uninitialized }; diff --git a/scripts/defaultScripts.js b/scripts/defaultScripts.js index d557083cf2..81ce72d901 100644 --- a/scripts/defaultScripts.js +++ b/scripts/defaultScripts.js @@ -25,7 +25,6 @@ var DEFAULT_SCRIPTS_COMBINED = [ "system/tablet-goto.js", "system/marketplaces/marketplaces.js", "system/edit.js", - "system/tablet-users.js", "system/selectAudioDevice.js", "system/notifications.js", "system/dialTone.js", diff --git a/scripts/system/pal.js b/scripts/system/pal.js index a7c4f56ea6..63d59f5719 100644 --- a/scripts/system/pal.js +++ b/scripts/system/pal.js @@ -690,6 +690,7 @@ function startup() { tablet.fromQml.connect(fromQml); button.clicked.connect(onTabletButtonClicked); tablet.screenChanged.connect(onTabletScreenChanged); + tablet.tabletShownChanged.connect(tabletVisibilityChanged); Users.usernameFromIDReply.connect(usernameFromIDReply); Window.domainChanged.connect(clearLocalQMLDataAndClosePAL); Window.domainConnectionRefused.connect(clearLocalQMLDataAndClosePAL); @@ -723,6 +724,14 @@ function off() { Users.requestsDomainListData = false; } +function tabletVisibilityChanged() { + if (tablet.tabletShown) { + onTabletButtonClicked(); + } else { + off(); + } +} + var onPalScreen = false; var shouldActivateButton = false; @@ -868,6 +877,7 @@ function shutdown() { button.clicked.disconnect(onTabletButtonClicked); tablet.removeButton(button); tablet.screenChanged.disconnect(onTabletScreenChanged); + tablet.tabletShownChanged.disconnect(tabletVisibilityChanged); Users.usernameFromIDReply.disconnect(usernameFromIDReply); Window.domainChanged.disconnect(clearLocalQMLDataAndClosePAL); Window.domainConnectionRefused.disconnect(clearLocalQMLDataAndClosePAL); diff --git a/scripts/system/tablet-ui/tabletUI.js b/scripts/system/tablet-ui/tabletUI.js index a010cb0a9c..a653d193bd 100644 --- a/scripts/system/tablet-ui/tabletUI.js +++ b/scripts/system/tablet-ui/tabletUI.js @@ -16,7 +16,6 @@ MyAvatar, Menu */ (function() { // BEGIN LOCAL_SCOPE - var tabletShown = false; var tabletRezzed = false; var activeHand = null; var DEFAULT_WIDTH = 0.4375; @@ -93,7 +92,7 @@ } function showTabletUI() { - tabletShown = true; + Tablet.getTablet("com.highfidelity.interface.tablet.system").tabletShown = true; if (!tabletRezzed || !tabletIsValid()) { closeTabletUI() @@ -117,7 +116,7 @@ } function hideTabletUI() { - tabletShown = false; + Tablet.getTablet("com.highfidelity.interface.tablet.system").tabletShown = false; if (!UIWebTablet) { return; } @@ -141,7 +140,7 @@ } function closeTabletUI() { - tabletShown = false; + Tablet.getTablet("com.highfidelity.interface.tablet.system").tabletShown = false; if (UIWebTablet) { if (UIWebTablet.onClose) { UIWebTablet.onClose(); @@ -168,6 +167,7 @@ var now = Date.now(); // close the WebTablet if it we go into toolbar mode. + var tabletShown = Tablet.getTablet("com.highfidelity.interface.tablet.system").tabletShown; var toolbarMode = Tablet.getTablet("com.highfidelity.interface.tablet.system").toolbarMode; var visibleToOthers = Settings.getValue("tabletVisibleToOthers");