History

Trying to make selection threadsafe

samcake committed 8 years ago

Commit aa163db1 parent a74372b2 files · +15 −4Browse files

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

Unified · Split

interface/src/scripting/SelectionScriptingInterface.cpp+13−2
@@ -72,12 +72,14 @@ bool SelectionScriptingInterface::removeFromSelectedItemsList(const QString& lis · 71 unmodified lines
7272 }
7373
7474 bool SelectionScriptingInterface::clearSelectedItemsList(const QString& listName) {
75+ // QWriteLocker lock(&_selectionListsLock);
7576 _selectedItemsListMap.insert(listName, GameplayObjects());
7677 onSelectedItemsListChanged(listName);
7778 return true;
7879 }
7980
8081 bool SelectionScriptingInterface::enableListHighlight(const QString& listName, const QVariantMap& highlightStyleValues) {
82+ // QWriteLocker lock(&_selectionListsLock);
8183
8284 auto highlightStyle = _highlightedListMap.find(listName);
8385 if (highlightStyle == _highlightedListMap.end()) {
@@ -111,6 +113,7 @@ bool SelectionScriptingInterface::enableListHighlight(const QString& listName, c · 27 unmodified lines
111113 }
112114
113115 bool SelectionScriptingInterface::disableListHighlight(const QString& listName) {
116+ // QWriteLocker lock(&_selectionListsLock);
114117 auto highlightStyle = _highlightedListMap.find(listName);
115118 if (highlightStyle != _highlightedListMap.end()) {
116119 // if ((*highlightStyle).isBoundToList()) {
@@ -134,6 +137,7 @@ bool SelectionScriptingInterface::disableListHighlight(const QString& listName) · 17 unmodified lines
134137 }
135138
136139 QVariantMap SelectionScriptingInterface::getListHighlightStyle(const QString& listName) const {
140+ // QReadLocker lock(&_selectionListsLock);
137141 auto highlightStyle = _highlightedListMap.find(listName);
138142 if (highlightStyle == _highlightedListMap.end()) {
139143 return QVariantMap();
@@ -143,6 +147,7 @@ QVariantMap SelectionScriptingInterface::getListHighlightStyle(const QString& li · 3 unmodified lines
143147 }
144148
145149 render::HighlightStyle SelectionScriptingInterface::getHighlightStyle(const QString& listName) const {
150+ // QReadLocker lock(&_selectionListsLock);
146151 auto highlightStyle = _highlightedListMap.find(listName);
147152 if (highlightStyle == _highlightedListMap.end()) {
148153 return render::HighlightStyle();
@@ -152,6 +157,8 @@ render::HighlightStyle SelectionScriptingInterface::getHighlightStyle(const QStr · 3 unmodified lines
152157 }
153158
154159 template <class T> bool SelectionScriptingInterface::addToGameplayObjects(const QString& listName, T idToAdd) {
160+ // QWriteLocker lock(&_selectionListsLock);
161+
155162 GameplayObjects currentList = _selectedItemsListMap.value(listName);
156163 currentList.addToGameplayObjects(idToAdd);
157164 _selectedItemsListMap.insert(listName, currentList);
@@ -160,6 +167,7 @@ template <class T> bool SelectionScriptingInterface::addToGameplayObjects(const · 2 unmodified lines
160167 return true;
161168 }
162169 template <class T> bool SelectionScriptingInterface::removeFromGameplayObjects(const QString& listName, T idToRemove) {
170+ // QWriteLocker lock(&_selectionListsLock);
163171 GameplayObjects currentList = _selectedItemsListMap.value(listName);
164172 if (currentList.getContainsData()) {
165173 currentList.removeFromGameplayObjects(idToRemove);
@@ -176,10 +184,12 @@ template <class T> bool SelectionScriptingInterface::removeFromGameplayObjects(c · 10 unmodified lines
176184 //
177185
178186 GameplayObjects SelectionScriptingInterface::getList(const QString& listName) {
187+ // QReadLocker lock(&_selectionListsLock);
179188 return _selectedItemsListMap.value(listName);
180189 }
181190
182191 void SelectionScriptingInterface::printList(const QString& listName) {
192+ // QReadLocker lock(&_selectionListsLock);
183193 auto currentList = _selectedItemsListMap.find(listName);
184194 if (currentList != _selectedItemsListMap.end()) {
185195 if ((*currentList).getContainsData()) {
@@ -212,6 +222,7 @@ void SelectionScriptingInterface::printList(const QString& listName) { · 26 unmodified lines
212222 }
213223
214224 bool SelectionScriptingInterface::removeListFromMap(const QString& listName) {
225+ // QWriteLocker lock(&_selectionListsLock);
215226 if (_selectedItemsListMap.remove(listName)) {
216227 onSelectedItemsListChanged(listName);
217228 return true;
@@ -221,6 +232,7 @@ bool SelectionScriptingInterface::removeListFromMap(const QString& listName) { · 3 unmodified lines
221232 }
222233
223234 void SelectionScriptingInterface::setupHandler(const QString& selectionName) {
235+ // QWriteLocker lock(&_selectionListsLock);
224236 auto handler = _handlerMap.find(selectionName);
225237 if (handler == _handlerMap.end()) {
226238 handler = _handlerMap.insert(selectionName, new SelectionToSceneHandler());
@@ -233,6 +245,7 @@ void SelectionScriptingInterface::setupHandler(const QString& selectionName) { · 6 unmodified lines
233245 }
234246
235247 void SelectionScriptingInterface::onSelectedItemsListChanged(const QString& listName) {
248+ // QWriteLocker lock(&_selectionListsLock);
236249 auto handler = _handlerMap.find(listName);
237250 if (handler != _handlerMap.end()) {
238251 (*handler)->updateSceneFromSelectedList();
@@ -245,8 +258,6 @@ SelectionToSceneHandler::SelectionToSceneHandler() { · 6 unmodified lines
245258
246259 void SelectionToSceneHandler::initialize(const QString& listName) {
247260 _listName = listName;
248−
249−
250261 updateSceneFromSelectedList();
251262 }
252263