History

Progress

Zach Fox committed 9 years ago

Commit e834e9d1 parent 92e8f844 files · +26 −18Browse files

Showing the changes to interface/src/scripting/SelectionScriptingInterface.cpp (1 of 4 files). Show all

Unified · Split

interface/src/scripting/SelectionScriptingInterface.cpp+15−10
@@ -73,7 +73,7 @@ template <class T> bool SelectionScriptingInterface::addToGameplayObjects(const · 72 unmodified lines
7373 currentList.addToGameplayObjects(idToAdd);
7474 _selectedItemsListMap.insert(listName, currentList);
7575
76− updateRendererSelectedList(listName);
76+ emit selectedItemsListChanged(listName);
7777 return true;
7878 } else {
7979 _selectedItemsListMap.insert(listName, GameplayObjects());
@@ -86,7 +86,7 @@ template <class T> bool SelectionScriptingInterface::removeFromGameplayObjects(c · 6 unmodified lines
8686 currentList.removeFromGameplayObjects(idToRemove);
8787 _selectedItemsListMap.insert(listName, currentList);
8888
89− updateRendererSelectedList(listName);
89+ emit selectedItemsListChanged(listName);
9090 return true;
9191 } else {
9292 return false;
@@ -132,7 +132,7 @@ void SelectionScriptingInterface::printList(const QString& listName) { · 39 unmodified lines
132132
133133 bool SelectionScriptingInterface::removeListFromMap(const QString& listName) {
134134 if (_selectedItemsListMap.remove(listName)) {
135− updateRendererSelectedList(listName);
135+ //updateRendererSelectedList(listName);
136136 return true;
137137 } else {
138138 return false;
@@ -148,9 +148,15 @@ void SelectionToSceneHandler::initialize(render::ScenePointer mainScene, const Q · 9 unmodified lines
148148 _listName = listName;
149149 }
150150
151−void SelectionToSceneHandler::updateRendererSelectedList() {
151+void SelectionToSceneHandler::selectedItemsListChanged(const QString& listName) {
152+ if (listName == _listName) {
153+ updateSceneFromSelectedList();
154+ }
155+}
156+
157+void SelectionToSceneHandler::updateSceneFromSelectedList() {
152158 if (_mainScene) {
153− GameplayObjects* thisList = DependencyManager::get<SelectionScriptingInterface>()->getList(_listName);
159+ GameplayObjects* thisList = &DependencyManager::get<SelectionScriptingInterface>()->getList(_listName);
154160 render::Transaction transaction;
155161
156162 if (thisList != NULL) {
@@ -158,9 +164,8 @@ void SelectionToSceneHandler::updateRendererSelectedList() { · 1 unmodified line
158164 render::ItemID currentID;
159165 auto entityTree = qApp->getEntities()->getTree();
160166 auto& overlays = qApp->getOverlays();
161− auto currentList = thisList.value(_listName);
162167
163− for (QUuid& currentAvatarID : currentList.getAvatarIDs()) {
168+ for (QUuid& currentAvatarID : thisList->getAvatarIDs()) {
164169 auto avatar = std::static_pointer_cast<Avatar>(DependencyManager::get<AvatarManager>()->getAvatarBySessionID(currentAvatarID));
165170 if (avatar) {
166171 currentID = avatar->getRenderItemID();
@@ -170,7 +175,7 @@ void SelectionToSceneHandler::updateRendererSelectedList() { · 3 unmodified lines
170175 }
171176 }
172177
173− for (EntityItemID& currentEntityID : currentList.getEntityIDs()) {
178+ for (EntityItemID& currentEntityID : thisList->getEntityIDs()) {
174179 entityTree->withReadLock([&] {
175180 auto entityItem = entityTree->findEntityByEntityItemID(currentEntityID);
176181 if (entityItem != NULL) {
@@ -185,7 +190,7 @@ void SelectionToSceneHandler::updateRendererSelectedList() { · 8 unmodified lines
185190 });
186191 }
187192
188− for (OverlayID& currentOverlayID : currentList.getOverlayIDs()) {
193+ for (OverlayID& currentOverlayID : thisList->getOverlayIDs()) {
189194 auto overlay = overlays.getOverlay(currentOverlayID);
190195 if (overlay != NULL) {
191196 currentID = overlay->getRenderItemID();
@@ -203,6 +208,6 @@ void SelectionToSceneHandler::updateRendererSelectedList() { · 11 unmodified lines
203208 qWarning() << "List of GameplayObjects doesn't exist in thisList";
204209 }
205210 } else {
206− qWarning() << "SelectionScriptingInterface::updateRendererSelectedList(), Unexpected null scene, possibly during application shutdown";
211+ qWarning() << "SelectionToSceneHandler::updateRendererSelectedList(), Unexpected null scene, possibly during application shutdown";
207212 }
208213 }