From bbdf9f1d9f81fbec7608d24552c03310812fb514 Mon Sep 17 00:00:00 2001 From: Howard Stearns Date: Tue, 26 May 2015 11:14:23 -0700 Subject: [PATCH 1/3] Remove changingEntityID. --- libraries/entities-renderer/src/EntityTreeRenderer.cpp | 9 --------- libraries/entities-renderer/src/EntityTreeRenderer.h | 1 - libraries/entities/src/EntityScriptingInterface.cpp | 2 -- libraries/entities/src/EntityScriptingInterface.h | 1 - libraries/entities/src/EntityTree.h | 1 - libraries/script-engine/src/ScriptEngine.cpp | 6 ------ 6 files changed, 20 deletions(-) diff --git a/libraries/entities-renderer/src/EntityTreeRenderer.cpp b/libraries/entities-renderer/src/EntityTreeRenderer.cpp index a96c1014a2..5dbe5a782d 100644 --- a/libraries/entities-renderer/src/EntityTreeRenderer.cpp +++ b/libraries/entities-renderer/src/EntityTreeRenderer.cpp @@ -113,7 +113,6 @@ void EntityTreeRenderer::init() { connect(entityTree, &EntityTree::deletingEntity, this, &EntityTreeRenderer::deletingEntity); connect(entityTree, &EntityTree::addingEntity, this, &EntityTreeRenderer::addingEntity); connect(entityTree, &EntityTree::entityScriptChanging, this, &EntityTreeRenderer::entitySciptChanging); - connect(entityTree, &EntityTree::changingEntityID, this, &EntityTreeRenderer::changingEntityID); } void EntityTreeRenderer::shutdown() { @@ -1102,14 +1101,6 @@ void EntityTreeRenderer::checkAndCallUnload(const EntityItemID& entityID) { } -void EntityTreeRenderer::changingEntityID(const EntityItemID& oldEntityID, const EntityItemID& newEntityID) { - if (_entityScripts.contains(oldEntityID)) { - EntityScriptDetails details = _entityScripts[oldEntityID]; - _entityScripts.remove(oldEntityID); - _entityScripts[newEntityID] = details; - } -} - void EntityTreeRenderer::playEntityCollisionSound(const QUuid& myNodeID, EntityTree* entityTree, const EntityItemID& id, const Collision& collision) { EntityItem* entity = entityTree->findEntityByEntityItemID(id); if (!entity) { diff --git a/libraries/entities-renderer/src/EntityTreeRenderer.h b/libraries/entities-renderer/src/EntityTreeRenderer.h index 1f03e01e7c..909aaae209 100644 --- a/libraries/entities-renderer/src/EntityTreeRenderer.h +++ b/libraries/entities-renderer/src/EntityTreeRenderer.h @@ -112,7 +112,6 @@ signals: public slots: void addingEntity(const EntityItemID& entityID); void deletingEntity(const EntityItemID& entityID); - void changingEntityID(const EntityItemID& oldEntityID, const EntityItemID& newEntityID); void entitySciptChanging(const EntityItemID& entityID); void entityCollisionWithEntity(const EntityItemID& idA, const EntityItemID& idB, const Collision& collision); diff --git a/libraries/entities/src/EntityScriptingInterface.cpp b/libraries/entities/src/EntityScriptingInterface.cpp index b888a69a8b..351bbc3643 100644 --- a/libraries/entities/src/EntityScriptingInterface.cpp +++ b/libraries/entities/src/EntityScriptingInterface.cpp @@ -46,7 +46,6 @@ void EntityScriptingInterface::setEntityTree(EntityTree* modelTree) { if (_entityTree) { disconnect(_entityTree, &EntityTree::addingEntity, this, &EntityScriptingInterface::addingEntity); disconnect(_entityTree, &EntityTree::deletingEntity, this, &EntityScriptingInterface::deletingEntity); - disconnect(_entityTree, &EntityTree::changingEntityID, this, &EntityScriptingInterface::changingEntityID); disconnect(_entityTree, &EntityTree::clearingEntities, this, &EntityScriptingInterface::clearingEntities); } @@ -55,7 +54,6 @@ void EntityScriptingInterface::setEntityTree(EntityTree* modelTree) { if (_entityTree) { connect(_entityTree, &EntityTree::addingEntity, this, &EntityScriptingInterface::addingEntity); connect(_entityTree, &EntityTree::deletingEntity, this, &EntityScriptingInterface::deletingEntity); - connect(_entityTree, &EntityTree::changingEntityID, this, &EntityScriptingInterface::changingEntityID); connect(_entityTree, &EntityTree::clearingEntities, this, &EntityScriptingInterface::clearingEntities); } } diff --git a/libraries/entities/src/EntityScriptingInterface.h b/libraries/entities/src/EntityScriptingInterface.h index ca6e266e98..d60a63ffd0 100644 --- a/libraries/entities/src/EntityScriptingInterface.h +++ b/libraries/entities/src/EntityScriptingInterface.h @@ -143,7 +143,6 @@ signals: void deletingEntity(const EntityItemID& entityID); void addingEntity(const EntityItemID& entityID); - void changingEntityID(const EntityItemID& oldEntityID, const EntityItemID& newEntityID); void clearingEntities(); private: diff --git a/libraries/entities/src/EntityTree.h b/libraries/entities/src/EntityTree.h index 43cd8780ab..3168495704 100644 --- a/libraries/entities/src/EntityTree.h +++ b/libraries/entities/src/EntityTree.h @@ -171,7 +171,6 @@ signals: void deletingEntity(const EntityItemID& entityID); void addingEntity(const EntityItemID& entityID); void entityScriptChanging(const EntityItemID& entityItemID); - void changingEntityID(const EntityItemID& oldEntityID, const EntityItemID& newEntityID); void clearingEntities(); private: diff --git a/libraries/script-engine/src/ScriptEngine.cpp b/libraries/script-engine/src/ScriptEngine.cpp index a8755c362c..0dc7db758f 100644 --- a/libraries/script-engine/src/ScriptEngine.cpp +++ b/libraries/script-engine/src/ScriptEngine.cpp @@ -426,12 +426,6 @@ void ScriptEngine::addEventHandler(const EntityItemID& entityID, const QString& [=](const EntityItemID& entityID) { _registeredHandlers.remove(entityID); }); - connect(entities.data(), &EntityScriptingInterface::changingEntityID, this, - [=](const EntityItemID& oldEntityID, const EntityItemID& newEntityID) { - if (!_registeredHandlers.contains(oldEntityID)) return; - _registeredHandlers[newEntityID] = _registeredHandlers[oldEntityID]; - _registeredHandlers.remove(oldEntityID); - }); // Two common cases of event handler, differing only in argument signature. auto makeSingleEntityHandler = [=](const QString& eventName) -> std::function { From 5608892a159d2818095f6f9f745996511a3033a2 Mon Sep 17 00:00:00 2001 From: Howard Stearns Date: Tue, 26 May 2015 11:16:11 -0700 Subject: [PATCH 2/3] Remove obsolete comment. --- libraries/script-engine/src/ScriptEngine.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/libraries/script-engine/src/ScriptEngine.cpp b/libraries/script-engine/src/ScriptEngine.cpp index 0dc7db758f..e93c55c4aa 100644 --- a/libraries/script-engine/src/ScriptEngine.cpp +++ b/libraries/script-engine/src/ScriptEngine.cpp @@ -394,7 +394,6 @@ void ScriptEngine::generalHandler(const EntityItemID& entityID, const QString& e if (!_registeredHandlers.contains(entityID)) return; const RegisteredEventHandlers& handlersOnEntity = _registeredHandlers[entityID]; if (!handlersOnEntity.contains(eventName)) return; - // FIXME: Need one more level of indirection. We need to allow multiple handlers per event, registered by different scripts. QScriptValueList handlersForEvent = handlersOnEntity[eventName]; if (!handlersForEvent.isEmpty()) { QScriptValueList args = argGenerator(); From 3a7a290094cc82d095b3d7147e7fd2b42130df77 Mon Sep 17 00:00:00 2001 From: Howard Stearns Date: Tue, 26 May 2015 11:38:36 -0700 Subject: [PATCH 3/3] Uglify conditional returns. :-) --- libraries/script-engine/src/ScriptEngine.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/libraries/script-engine/src/ScriptEngine.cpp b/libraries/script-engine/src/ScriptEngine.cpp index e93c55c4aa..91a4e3c397 100644 --- a/libraries/script-engine/src/ScriptEngine.cpp +++ b/libraries/script-engine/src/ScriptEngine.cpp @@ -391,9 +391,13 @@ void ScriptEngine::registerGetterSetter(const QString& name, QScriptEngine::Func // Look up the handler associated with eventName and entityID. If found, evalute the argGenerator thunk and call the handler with those args void ScriptEngine::generalHandler(const EntityItemID& entityID, const QString& eventName, std::function argGenerator) { - if (!_registeredHandlers.contains(entityID)) return; + if (!_registeredHandlers.contains(entityID)) { + return; + } const RegisteredEventHandlers& handlersOnEntity = _registeredHandlers[entityID]; - if (!handlersOnEntity.contains(eventName)) return; + if (!handlersOnEntity.contains(eventName)) { + return; + } QScriptValueList handlersForEvent = handlersOnEntity[eventName]; if (!handlersForEvent.isEmpty()) { QScriptValueList args = argGenerator(); @@ -404,7 +408,9 @@ void ScriptEngine::generalHandler(const EntityItemID& entityID, const QString& e } // Unregister the handlers for this eventName and entityID. void ScriptEngine::removeEventHandler(const EntityItemID& entityID, const QString& eventName, QScriptValue handler) { - if (!_registeredHandlers.contains(entityID)) return; + if (!_registeredHandlers.contains(entityID)) { + return; + } RegisteredEventHandlers& handlersOnEntity = _registeredHandlers[entityID]; QScriptValueList& handlersForEvent = handlersOnEntity[eventName]; // QScriptValue does not have operator==(), so we can't use QList::removeOne and friends. So iterate.