Merge pull request #12929 from misslivirose/fix/misc-edit-bugs

Fix edit icon behavior
This commit is contained in:
John Conklin II 2018-04-18 13:46:38 -07:00 committed by GitHub
commit eedc8a8c0a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -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 () {
@ -460,14 +479,21 @@ var toolBar = (function () {
}
that.setActive(false);
that.clearEntityList();
checkEditPermissionsAndUpdate();
});
Entities.canAdjustLocksChanged.connect(function (canAdjustLocks) {
if (isActive && !canAdjustLocks) {
that.setActive(false);
}
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);
tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system");
@ -853,37 +879,18 @@ function handleOverlaySelectionToolUpdates(channel, message, sender) {
}
}
// Handles any edit mode updates required when domains have switched
function handleDomainChange() {
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"),
});
}
function handleMessagesReceived(channel, message, sender) {
switch( channel ){
case 'entityToolUpdates': {
handleOverlaySelectionToolUpdates( channel, message, sender );
break;
}
case 'Toolbar-DomainChanged': {
handleDomainChange();
break;
}
default: {
return;
}
}
}
Messages.subscribe('Toolbar-DomainChanged');
Messages.subscribe("entityToolUpdates");
Messages.messageReceived.connect(handleMessagesReceived);
@ -1317,8 +1324,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;
});
@ -2334,6 +2339,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);