From fa36f1214530252ad86af39da0bf2473b27822a1 Mon Sep 17 00:00:00 2001 From: Seth Alves Date: Thu, 21 Mar 2019 16:12:38 -0700 Subject: [PATCH] lock wearables when adjust-wearables page is opened --- .../src/avatars-renderer/Avatar.cpp | 3 +- scripts/system/avatarapp.js | 31 ++++++------------- 2 files changed, 10 insertions(+), 24 deletions(-) diff --git a/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp b/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp index 8cff1cc52a..b0a8875cbc 100644 --- a/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp +++ b/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp @@ -384,8 +384,7 @@ bool Avatar::applyGrabChanges() { if (success) { std::shared_ptr myAvatar = std::dynamic_pointer_cast(myAvatarSN); if (myAvatar) { - EntityItemProperties properties = entity->getProperties(); - myAvatar->sendPacket(entity->getID(), properties); + myAvatar->sendPacket(entity->getID()); } } } diff --git a/scripts/system/avatarapp.js b/scripts/system/avatarapp.js index eb44bc7fbd..ee337694a2 100644 --- a/scripts/system/avatarapp.js +++ b/scripts/system/avatarapp.js @@ -16,7 +16,6 @@ (function() { // BEGIN LOCAL_SCOPE -// var request = Script.require('request').request; var AVATARAPP_QML_SOURCE = "hifi/AvatarApp.qml"; Script.include("/~/system/libraries/controllers.js"); @@ -24,7 +23,6 @@ Script.include("/~/system/libraries/controllers.js"); var ENTRY_AVATAR_URL = "avatarUrl"; var ENTRY_AVATAR_ENTITIES = "avatarEntites"; var ENTRY_AVATAR_SCALE = "avatarScale"; -// var ENTRY_VERSION = "version"; function executeLater(callback) { Script.setTimeout(callback, 300); @@ -79,7 +77,7 @@ function updateAvatarWearables(avatar, callback, wearablesOverride) { avatar[ENTRY_AVATAR_ENTITIES] = wearables; sendToQml({'method' : 'wearablesUpdated', 'wearables' : wearables}); - sendToQml({ method : 'wearablesLockedChanged', wearablesLocked : getWearablesLocked()}); + sendToQml({ 'method' : 'wearablesLockedChanged', 'wearablesLocked' : getWearablesLocked()}); if(callback) callback(); @@ -174,7 +172,6 @@ function onAnimGraphUrlChanged(url) { } } -var selectedAvatarEntityGrabbable = false; var selectedAvatarEntityID = null; var grabbedAvatarEntityChangeNotifier = null; @@ -240,7 +237,7 @@ function fromQml(message) { // messages are {method, params}, like json-rpc. See AvatarBookmarks.loadBookmark(message.name); Entities.addingWearable.connect(onAddingWearable); Entities.deletingWearable.connect(onDeletingWearable); - sendToQml({ method : 'wearablesLockedChanged', wearablesLocked : getWearablesLocked()}); + sendToQml({ 'method' : 'wearablesLockedChanged', 'wearablesLocked' : getWearablesLocked()}); break; case 'deleteAvatar': AvatarBookmarks.removeBookmark(message.name); @@ -265,6 +262,7 @@ function fromQml(message) { // messages are {method, params}, like json-rpc. See case 'adjustWearablesOpened': currentAvatarWearablesBackup = getMyAvatarWearables(); adjustWearables.setOpened(true); + lockWearables(); Entities.mousePressOnEntity.connect(onSelectedEntity); Messages.subscribe('Hifi-Object-Manipulation'); @@ -409,10 +407,10 @@ function isGrabbable(entityID) { function setGrabbable(entityID, grabbable) { var properties = Entities.getEntityProperties(entityID, ['avatarEntity', 'grab.grabbable']); - if (properties.avatarEntity && properties.grab.grabable != grabbable) { + if (properties.avatarEntity && properties.grab.grabbable != grabbable) { var editProps = { grab: { grabbable: grabbable }}; Entities.editEntity(entityID, editProps); - sendToQml({ method : 'wearablesLockedChanged', wearablesLocked : getWearablesLocked()}); + sendToQml({ 'method' : 'wearablesLockedChanged', 'wearablesLocked' : getWearablesLocked()}); } } @@ -422,18 +420,7 @@ function ensureWearableSelected(entityID) { Script.clearInterval(grabbedAvatarEntityChangeNotifier); grabbedAvatarEntityChangeNotifier = null; } - - if(selectedAvatarEntityID !== null) { - setGrabbable(selectedAvatarEntityID, selectedAvatarEntityGrabbable); - } - selectedAvatarEntityID = entityID; - selectedAvatarEntityGrabbable = isGrabbable(entityID); - - if(selectedAvatarEntityID !== null) { - setGrabbable(selectedAvatarEntityID, true); - } - return true; } @@ -457,14 +444,14 @@ function onAddingWearable(entityID) { updateAvatarWearables(currentAvatar, function() { sendToQml({'method' : 'updateAvatarInBookmarks'}); }); - sendToQml({ method : 'wearablesLockedChanged', wearablesLocked : getWearablesLocked()}); + sendToQml({ 'method' : 'wearablesLockedChanged', 'wearablesLocked' : getWearablesLocked()}); } function onDeletingWearable(entityID) { updateAvatarWearables(currentAvatar, function() { sendToQml({'method' : 'updateAvatarInBookmarks'}); }); - sendToQml({ method : 'wearablesLockedChanged', wearablesLocked : getWearablesLocked()}); + sendToQml({ 'method' : 'wearablesLockedChanged', 'wearablesLocked' : getWearablesLocked()}); } function handleWearableMessages(channel, message, sender) { @@ -647,8 +634,8 @@ function onTabletScreenChanged(type, url) { onAvatarAppScreen = onAvatarAppScreenNow; if(onAvatarAppScreenNow) { - sendToQml({ method : 'initialize', data : { jointNames : MyAvatar.getJointNames() }}); - sendToQml({ method : 'wearablesLockedChanged', wearablesLocked : getWearablesLocked()}); + sendToQml({ 'method' : 'initialize', 'data' : { jointNames : MyAvatar.getJointNames() }}); + sendToQml({ 'method' : 'wearablesLockedChanged', 'wearablesLocked' : getWearablesLocked()}); } }