History

changes of the day

samcake committed 8 years ago

Commit 08dd76c1 parent 3a0b2654 files · +56 −56Browse files

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

Unified · Split

interface/src/scripting/SelectionScriptingInterface.cpp+50−34
@@ -83,38 +83,56 @@ bool SelectionScriptingInterface::enableListHighlight(const QString& listName, c · 82 unmodified lines
8383 auto highlightStyle = _highlightedListMap.find(listName);
8484 if (highlightStyle == _highlightedListMap.end()) {
8585 highlightStyle = _highlightedListMap.insert(listName, SelectionHighlightStyle());
86− doSetupHandler = true;
86+
8787 }
8888
8989 if (!(*highlightStyle).isBoundToList()) {
90− GameplayObjects currentList = _selectedItemsListMap.value(listName);
91− if (!currentList.getContainsData()) {
92− _selectedItemsListMap.insert(listName, currentList);
93− doSetupHandler = true;
90+ auto currentList = _selectedItemsListMap.find(listName);
91+ if (currentList == _selectedItemsListMap.end()) {
92+ _selectedItemsListMap.insert(listName, GameplayObjects());
93+ setupHandler(listName);
94+ // doSetupHandler = true;
9495 }
9596 (*highlightStyle).setBoundToList(true);
9697 }
9798
9899 (*highlightStyle).fromVariantMap(highlightStyleValues);
99100
100− if (doSetupHandler) {
101+/* if (doSetupHandler) {
101102 setupHandler(listName);
103+ }*/
104+
105+ auto mainScene = qApp->getMain3DScene();
106+ if (mainScene) {
107+ render::Transaction transaction;
108+ transaction.resetSelectionHighlight(listName.toStdString(), (*highlightStyle).getStyle());
109+ mainScene->enqueueTransaction(transaction);
110+ }
111+ else {
112+ qWarning() << "SelectionToSceneHandler::highlightStyleChanged(), Unexpected null scene, possibly during application shutdown";
102113 }
103114
104− emit highlightStyleChanged(listName);
105115 return true;
106116 }
107117
108118 bool SelectionScriptingInterface::disableListHighlight(const QString& listName) {
109119 auto highlightStyle = _highlightedListMap.find(listName);
110120 if (highlightStyle != _highlightedListMap.end()) {
111− if ((*highlightStyle).isBoundToList()) {
112− GameplayObjects currentList = _selectedItemsListMap.value(listName);
113− if (currentList.getContainsData()) {
114− }
121+ // if ((*highlightStyle).isBoundToList()) {
115122 _highlightedListMap.erase(highlightStyle);
116− emit selectedItemsListChanged(listName);
117− }
123+
124+ auto mainScene = qApp->getMain3DScene();
125+ if (mainScene) {
126+ render::Transaction transaction;
127+ transaction.removeHighlightFromSelection(listName.toStdString());
128+ mainScene->enqueueTransaction(transaction);
129+ }
130+ else {
131+ qWarning() << "SelectionToSceneHandler::highlightStyleChanged(), Unexpected null scene, possibly during application shutdown";
132+ }
133+ // emit highlightStyleRemoved(listName);
134+
135+ // }
118136 }
119137
120138 return true;
@@ -126,7 +144,7 @@ QVariantMap SelectionScriptingInterface::getListHighlightStyle(const QString& li · 5 unmodified lines
126144
127145 render::HighlightStyle SelectionScriptingInterface::getHighlightStyle(const QString& listName) const {
128146 auto highlightStyle = _highlightedListMap.find(listName);
129− if (highlightStyle != _highlightedListMap.end()) {
147+ if (highlightStyle == _highlightedListMap.end()) {
130148 return render::HighlightStyle();
131149 } else {
132150 return (*highlightStyle).getStyle();
@@ -196,14 +214,6 @@ bool SelectionScriptingInterface::removeListFromMap(const QString& listName) { · 63 unmodified lines
196214 }
197215 }
198216
199−void SelectionScriptingInterface::onSelectedItemsListChanged(const QString& listName) {
200− emit selectedItemsListChanged(listName);
201−}
202−
203−void SelectionScriptingInterface::onHighlightStyleChanged(const QString& listName) {
204− emit onHighlightStyleChanged(listName);
205−}
206−
207217 void SelectionScriptingInterface::setupHandler(const QString& selectionName) {
208218 auto handler = _handlerMap.find(selectionName);
209219 if (handler == _handlerMap.end()) {
@@ -223,14 +233,9 @@ void SelectionToSceneHandler::initialize(const QString& listName) { · 13 unmodified lines
223233 _listName = listName;
224234
225235 connect(&(*DependencyManager::get<SelectionScriptingInterface>()), &SelectionScriptingInterface::selectedItemsListChanged, this, &SelectionToSceneHandler::selectedItemsListChanged);
226− connect(&(*DependencyManager::get<SelectionScriptingInterface>()), &SelectionScriptingInterface::highlightStyleChanged, this, &SelectionToSceneHandler::highlightStyleChanged);
236+ // connect(&(*DependencyManager::get<SelectionScriptingInterface>()), &SelectionScriptingInterface::highlightStyleChanged, this, &SelectionToSceneHandler::highlightStyleChanged);
237+ // connect(&(*DependencyManager::get<SelectionScriptingInterface>()), &SelectionScriptingInterface::highlightStyleRemoved, this, &SelectionToSceneHandler::highlightStyleRemoved);
227238
228− auto mainScene = qApp->getMain3DScene();
229− if (mainScene) {
230− render::Transaction transaction;
231− transaction.resetSelectionHighlight(listName.toStdString(), DependencyManager::get<SelectionScriptingInterface>()->getHighlightStyle(listName));
232− mainScene->enqueueTransaction(transaction);
233− }
234239 }
235240
236241 void SelectionToSceneHandler::selectedItemsListChanged(const QString& listName) {
@@ -284,25 +289,36 @@ void SelectionToSceneHandler::updateSceneFromSelectedList() { · 47 unmodified lines
284289 qWarning() << "SelectionToSceneHandler::updateRendererSelectedList(), Unexpected null scene, possibly during application shutdown";
285290 }
286291 }
287−
292+/*
288293 void SelectionToSceneHandler::highlightStyleChanged(const QString& listName) {
289294 if (listName == _listName) {
290295 auto mainScene = qApp->getMain3DScene();
291296 if (mainScene) {
292297 auto thisStyle = DependencyManager::get<SelectionScriptingInterface>()->getHighlightStyle(listName);
293298 render::Transaction transaction;
294− render::ItemIDs finalList;
295−
296299 transaction.resetSelectionHighlight(listName.toStdString(), thisStyle);
297−
298300 mainScene->enqueueTransaction(transaction);
299301 }
300302 else {
301− qWarning() << "SelectionToSceneHandler::updateRendererSelectedList(), Unexpected null scene, possibly during application shutdown";
303+ qWarning() << "SelectionToSceneHandler::highlightStyleChanged(), Unexpected null scene, possibly during application shutdown";
302304 }
303305 }
304306 }
305307
308+void SelectionToSceneHandler::highlightStyleRemoved(const QString& listName) {
309+ if (listName == _listName) {
310+ auto mainScene = qApp->getMain3DScene();
311+ if (mainScene) {
312+ render::Transaction transaction;
313+ transaction.removeHighlightFromSelection(listName.toStdString());
314+ mainScene->enqueueTransaction(transaction);
315+ }
316+ else {
317+ qWarning() << "SelectionToSceneHandler::highlightStyleRemoved(), Unexpected null scene, possibly during application shutdown";
318+ }
319+ }
320+}
321+*/
306322 bool SelectionHighlightStyle::fromVariantMap(const QVariantMap& properties) {
307323 auto outlineColor = properties["outlineColor"];
308324 if (outlineColor.isValid()) {