diff --git a/gui/wxpython/datacatalog/tree.py b/gui/wxpython/datacatalog/tree.py index 76aee7e5eff..e6dc218fc70 100644 --- a/gui/wxpython/datacatalog/tree.py +++ b/gui/wxpython/datacatalog/tree.py @@ -1480,15 +1480,19 @@ def InsertMapset(self, name, location_node): return mapset_node def InsertLocation(self, name, grassdb_node): - """Insert new location into model and refresh tree""" - location_node = self._model.AppendNode( - parent=grassdb_node, data={"type": "location", "name": name} - ) - # reload new location since it has a mapset - self._reloadLocationNode(location_node) - self._model.SortChildren(grassdb_node) - self.RefreshNode(grassdb_node, recursive=True) - return location_node + """ + Insert new location into model and refresh tree. + Check if not already added. + """ + if not self.GetDbNode(grassdb=grassdb_node, location=name): + location_node = self._model.AppendNode( + parent=grassdb_node, data={"type": "location", "name": name} + ) + # reload new location since it has a mapset + self._reloadLocationNode(location_node) + self._model.SortChildren(grassdb_node) + self.RefreshNode(grassdb_node, recursive=True) + return location_node def InsertGrassDb(self, name): """ @@ -1796,8 +1800,6 @@ def _updateAfterGrassdbChanged( node = self.GetDbNode(grassdb=grassdb) if not node: node = self.InsertGrassDb(name=grassdb) - if node: - self.InsertLocation(location, node) elif action == "delete": node = self.GetDbNode(grassdb=grassdb) if node: