mirror of
https://github.com/overte-org/overte.git
synced 2025-04-16 00:41:16 +02:00
Merge pull request #12929 from misslivirose/fix/misc-edit-bugs
Fix edit icon behavior
This commit is contained in:
commit
eedc8a8c0a
1 changed files with 31 additions and 21 deletions
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue