From 6c1872caba43e134fae2af1f63ec6b6b50083c84 Mon Sep 17 00:00:00 2001 From: Liv Erickson Date: Tue, 17 Apr 2018 16:38:29 -0700 Subject: [PATCH 1/4] remove old dependency on domain changed message to fix issue with edit icon not handling domain changes --- scripts/system/edit.js | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/scripts/system/edit.js b/scripts/system/edit.js index fd7a488eb7..ba984cb307 100644 --- a/scripts/system/edit.js +++ b/scripts/system/edit.js @@ -457,6 +457,7 @@ var toolBar = (function () { Window.domainChanged.connect(function () { that.setActive(false); that.clearEntityList(); + handleDomainChange(); }); Entities.canAdjustLocksChanged.connect(function (canAdjustLocks) { @@ -870,17 +871,12 @@ function handleMessagesReceived(channel, message, sender) { handleOverlaySelectionToolUpdates( channel, message, sender ); break; } - case 'Toolbar-DomainChanged': { - handleDomainChange(); - break; - } default: { return; } } } -Messages.subscribe('Toolbar-DomainChanged'); Messages.subscribe("entityToolUpdates"); Messages.messageReceived.connect(handleMessagesReceived); @@ -1314,8 +1310,6 @@ Script.scriptEnding.connect(function () { Messages.messageReceived.disconnect(handleMessagesReceived); Messages.unsubscribe("entityToolUpdates"); - // Messages.unsubscribe("Toolbar-DomainChanged"); // Do not unsubscribe because the shapes.js app also subscribes and - // Messages.subscribe works script engine-wide which would mess things up if they're both run in the same engine. createButton = null; }); From e35efccfa3bbe9ce86d95610a9f9ed3b7554414a Mon Sep 17 00:00:00 2001 From: Liv Erickson Date: Tue, 17 Apr 2018 17:11:37 -0700 Subject: [PATCH 2/4] make icon slightly more robust --- scripts/system/edit.js | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/scripts/system/edit.js b/scripts/system/edit.js index ba984cb307..a1b2c91bef 100644 --- a/scripts/system/edit.js +++ b/scripts/system/edit.js @@ -457,15 +457,25 @@ var toolBar = (function () { Window.domainChanged.connect(function () { that.setActive(false); that.clearEntityList(); - handleDomainChange(); + checkEditPermissionsAndUpdate(); }); Entities.canAdjustLocksChanged.connect(function (canAdjustLocks) { if (isActive && !canAdjustLocks) { that.setActive(false); + tablet.gotoHomeScreen(); } + checkEditPermissionsAndUpdate(); }); + Entities.canRezChanged.connect(function (canRez) { + if (isActive && !canRez) { + that.setActive(false); + tablet.gotoHomeScreen(); + } + checkEditPermissionsAndUpdate(); + }) + var hasRezPermissions = (Entities.canRez() || Entities.canRezTmp() || Entities.canRezCertified() || Entities.canRezTmpCertified()); var createButtonIconRsrc = (hasRezPermissions ? CREATE_ENABLED_ICON : CREATE_DISABLED_ICON); tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system"); @@ -852,7 +862,7 @@ function handleOverlaySelectionToolUpdates(channel, message, sender) { } // Handles any edit mode updates required when domains have switched -function handleDomainChange() { +function checkEditPermissionsAndUpdate() { if ( (createButton === null) || (createButton === undefined) ){ //--EARLY EXIT--( nothing to safely update ) return; From 2a055429cd9bdd1ce5bcbd45e255a9c2fd38d542 Mon Sep 17 00:00:00 2001 From: Liv Erickson Date: Tue, 17 Apr 2018 17:31:16 -0700 Subject: [PATCH 3/4] handle edit changes --- scripts/system/edit.js | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/scripts/system/edit.js b/scripts/system/edit.js index a1b2c91bef..1f8820dd5b 100644 --- a/scripts/system/edit.js +++ b/scripts/system/edit.js @@ -463,18 +463,14 @@ var toolBar = (function () { Entities.canAdjustLocksChanged.connect(function (canAdjustLocks) { if (isActive && !canAdjustLocks) { that.setActive(false); - tablet.gotoHomeScreen(); } checkEditPermissionsAndUpdate(); }); - Entities.canRezChanged.connect(function (canRez) { - if (isActive && !canRez) { - that.setActive(false); - tablet.gotoHomeScreen(); - } - checkEditPermissionsAndUpdate(); - }) + Entities.canRezChanged.connect(checkEditPermissionsAndUpdate); + Entities.canRezTmpChanged.connect(checkEditPermissionsAndUpdate); + Entities.canRezCertifiedChanged.connect(checkEditPermissionsAndUpdate); + Entities.canRezTmpCertifiedChanged.connect(checkEditPermissionsAndUpdate); var hasRezPermissions = (Entities.canRez() || Entities.canRezTmp() || Entities.canRezCertified() || Entities.canRezTmpCertified()); var createButtonIconRsrc = (hasRezPermissions ? CREATE_ENABLED_ICON : CREATE_DISABLED_ICON); @@ -873,6 +869,13 @@ function checkEditPermissionsAndUpdate() { icon: (hasRezPermissions ? CREATE_ENABLED_ICON : CREATE_DISABLED_ICON), captionColor: (hasRezPermissions ? "#ffffff" : "#888888"), }); + + if (!hasRezPermissions) { + if (isActive) { + that.setActive(false); + } + tablet.gotoHomeScreen(); + } } function handleMessagesReceived(channel, message, sender) { @@ -2335,6 +2338,11 @@ var PopupMenu = function () { Controller.mousePressEvent.disconnect(self.mousePressEvent); Controller.mouseMoveEvent.disconnect(self.mouseMoveEvent); Controller.mouseReleaseEvent.disconnect(self.mouseReleaseEvent); + + Entities.canRezChanged.disconnect(checkEditPermissionsAndUpdate); + Entities.canRezTmpChanged.disconnect(checkEditPermissionsAndUpdate); + Entities.canRezCertifiedChanged.disconnect(checkEditPermissionsAndUpdate); + Entities.canRezTmpCertifiedChanged.disconnect(checkEditPermissionsAndUpdate); } Controller.mousePressEvent.connect(self.mousePressEvent); From e795af03ddb573046d6849ef0f77625a8753d33a Mon Sep 17 00:00:00 2001 From: Liv Erickson Date: Wed, 18 Apr 2018 09:56:39 -0700 Subject: [PATCH 4/4] move function out of global scope --- scripts/system/edit.js | 40 +++++++++++++++++++--------------------- 1 file changed, 19 insertions(+), 21 deletions(-) diff --git a/scripts/system/edit.js b/scripts/system/edit.js index 1f8820dd5b..bee9491a6a 100644 --- a/scripts/system/edit.js +++ b/scripts/system/edit.js @@ -452,6 +452,25 @@ var toolBar = (function () { } } + // Handles any edit mode updates required when domains have switched + function checkEditPermissionsAndUpdate() { + if ((createButton === null) || (createButton === undefined)) { + //--EARLY EXIT--( nothing to safely update ) + return; + } + + var hasRezPermissions = (Entities.canRez() || Entities.canRezTmp() || Entities.canRezCertified() || Entities.canRezTmpCertified()); + createButton.editProperties({ + icon: (hasRezPermissions ? CREATE_ENABLED_ICON : CREATE_DISABLED_ICON), + captionColor: (hasRezPermissions ? "#ffffff" : "#888888"), + }); + + if (!hasRezPermissions && isActive) { + that.setActive(false); + tablet.gotoHomeScreen(); + } + } + function initialize() { Script.scriptEnding.connect(cleanup); Window.domainChanged.connect(function () { @@ -857,27 +876,6 @@ function handleOverlaySelectionToolUpdates(channel, message, sender) { } } -// Handles any edit mode updates required when domains have switched -function checkEditPermissionsAndUpdate() { - if ( (createButton === null) || (createButton === undefined) ){ - //--EARLY EXIT--( nothing to safely update ) - return; - } - - var hasRezPermissions = (Entities.canRez() || Entities.canRezTmp() || Entities.canRezCertified() || Entities.canRezTmpCertified()); - createButton.editProperties({ - icon: (hasRezPermissions ? CREATE_ENABLED_ICON : CREATE_DISABLED_ICON), - captionColor: (hasRezPermissions ? "#ffffff" : "#888888"), - }); - - if (!hasRezPermissions) { - if (isActive) { - that.setActive(false); - } - tablet.gotoHomeScreen(); - } -} - function handleMessagesReceived(channel, message, sender) { switch( channel ){ case 'entityToolUpdates': {