Skip to content

Commit 3af4645

Browse files
Fix duplicated resources in Tree
1 parent 3effd5f commit 3af4645

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

src/robotide/ui/treeplugin.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,7 @@ def __init__(self, parent, action_registerer, settings=None):
248248
self._clear_tree_data()
249249
self._editor = None
250250
self._execution_results = None
251-
self._resources = []
251+
self._resources = set()
252252
self._right_click = False
253253
self.dirty = False
254254
# DEBUG: This menu is not working because is being attached to main frame
@@ -480,7 +480,7 @@ def _clear_tree_data(self):
480480
self.root = self.AddRoot('')
481481
self._resource_root = self._create_resource_root()
482482
self.datafile_nodes = []
483-
self._resources = []
483+
self._resources = set()
484484
self.controller.clear_history()
485485

486486
def _create_resource_root(self):
@@ -544,13 +544,19 @@ def _render_datafile(self, parent_node, controller, index=None):
544544
node = self._create_node_with_handler(parent_node, controller, index)
545545
if not node:
546546
return None
547+
# avoid repeated resources
548+
if hasattr(controller, 'source') and os.path.isfile(self._normalize(controller.source)):
549+
if not self._normalize(controller.source) in self._resources:
550+
self._resources.add(self._normalize(controller.source))
551+
547552
if controller.dirty:
548553
self.controller.mark_node_dirty(node)
549554
self.datafile_nodes.append(node)
550555
self.SetItemHasChildren(node, True)
551556

552557
for child in controller.children:
553-
self._render_datafile(node, child)
558+
if not self._normalize(child.source) in self._resources:
559+
self._render_datafile(node, child)
554560
return node
555561

556562
@staticmethod

0 commit comments

Comments
 (0)