Fix tablet-close behavior for PAL; remove users-tablet.js

This commit is contained in:
Zach Fox 2017-03-29 14:53:45 -07:00
parent b776f25b3b
commit 1b74576259
4 changed files with 23 additions and 5 deletions

View file

@ -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 };

View file

@ -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",

View file

@ -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);

View file

@ -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");