This commit is contained in:
Howard Stearns 2017-01-04 20:37:56 -08:00
parent 9709bedca7
commit 12fffe8530
2 changed files with 37 additions and 4 deletions

View file

@ -3,6 +3,7 @@ var ENTITY_LIST_HTML_URL = Script.resolvePath('../html/entityList.html');
EntityListTool = function(opts) { EntityListTool = function(opts) {
var that = {}; var that = {};
var url = ENTITY_LIST_HTML_URL; var url = ENTITY_LIST_HTML_URL;
var webView = new OverlayWebWindow({ var webView = new OverlayWebWindow({
title: 'Entity List', source: url, toolWindow: true title: 'Entity List', source: url, toolWindow: true
@ -98,7 +99,6 @@ EntityListTool = function(opts) {
webView.emitScriptEvent(JSON.stringify(data)); webView.emitScriptEvent(JSON.stringify(data));
} }
webView.webEventReceived.connect(function(data) { webView.webEventReceived.connect(function(data) {
data = JSON.parse(data); data = JSON.parse(data);
if (data.type == "selectionUpdate") { if (data.type == "selectionUpdate") {
@ -121,9 +121,19 @@ EntityListTool = function(opts) {
MyAvatar.position = selectionManager.worldPosition; MyAvatar.position = selectionManager.worldPosition;
} }
} else if (data.type == "pal") { } else if (data.type == "pal") {
print("fixme got pal"); var sessionIds = {}; // Collect the sessionsIds of all selected entitities, w/o duplicates.
if (selectionManager.hasSelection()) { selectionManager.selections.forEach(function (id) {
print('fixme selection', JSON.stringify(selectionManager.selections)); var lastEditedBy = Entities.getEntityProperties(id, 'lastEditedBy').lastEditedBy;
if (lastEditedBy) {
sessionIds[lastEditedBy] = true;
}
});
var dedupped = Object.keys(sessionIds);
if (!dedupped.length) {
Window.alert('There were no recent users of the ' + selectionManager.selections.length + ' selected objects.');
} else {
// No need to subscribe if we're just sending.
Messages.sendMessage('com.highfidelity.pal', JSON.stringify({method: 'select', params: dedupped}), 'local');
} }
} else if (data.type == "delete") { } else if (data.type == "delete") {
deleteSelectedEntities(); deleteSelectedEntities();

View file

@ -256,6 +256,27 @@ function removeOverlays() {
ExtendedOverlay.some(function (overlay) { overlay.deleteOverlay(); }); ExtendedOverlay.some(function (overlay) { overlay.deleteOverlay(); });
} }
//
// Message from other scripts, such as edit.js
//
var CHANNEL = 'com.highfidelity.pal';
function receiveMessage(channel, messageString, senderID) {
if ((channel !== CHANNEL) ||
(senderID !== MyAvatar.sessionUUID)) {
return;
}
var message = JSON.parse(messageString);
switch (message.method) {
case 'select':
print('fixme processing', message.params);
break;
default:
print('Unrecognized PAL message', messageString);
}
}
Messages.subscribe(CHANNEL);
Messages.messageReceived.connect(receiveMessage);
// //
// Clicks. // Clicks.
// //
@ -412,6 +433,8 @@ Script.scriptEnding.connect(function () {
Users.usernameFromIDReply.disconnect(usernameFromIDReply); Users.usernameFromIDReply.disconnect(usernameFromIDReply);
Window.domainChanged.disconnect(clearIgnoredInQMLAndClosePAL); Window.domainChanged.disconnect(clearIgnoredInQMLAndClosePAL);
Window.domainConnectionRefused.disconnect(clearIgnoredInQMLAndClosePAL); Window.domainConnectionRefused.disconnect(clearIgnoredInQMLAndClosePAL);
Messages.unsubscribe(CHANNEL);
Messages.messageReceived.disconnect(receiveMessage);
off(); off();
}); });