소스 검색

wxGUI/datacatalog: fix error handling and add busy cursor when loading, refresh as loading dbs (#957)

Anna Petrasova 4 년 전
부모
커밋
ee86195b8b
1개의 변경된 파일7개의 추가작업 그리고 2개의 파일을 삭제
  1. 7 2
      gui/wxpython/datacatalog/tree.py

+ 7 - 2
gui/wxpython/datacatalog/tree.py

@@ -478,6 +478,8 @@ class DataCatalogTree(TreeView):
                 queue_list = []
                 loc_list = []
                 location_nodes = []
+                # refresh after each chunk to make GUI more responsive
+                self.RefreshItems()
 
         for node in all_location_nodes:
             self._model.SortChildren(node)
@@ -500,10 +502,11 @@ class DataCatalogTree(TreeView):
                 grassdb_node = grassdb_nodes[0]
             error = self._reloadGrassDBNode(grassdb_node)
             if error:
-                errors.append(error)
+                errors += error
 
         if errors:
-            wx.CallAfter(GWarning, '\n'.join(errors))
+            # WriteWarning/Error results in crash
+            self._giface.WriteLog('\n'.join(errors))
         Debug.msg(1, "Tree filled")
 
         self.UpdateCurrentDbLocationMapsetNode()
@@ -540,7 +543,9 @@ class DataCatalogTree(TreeView):
 
     def ReloadTreeItems(self):
         """Reload dbs, locations, mapsets and layers in the tree."""
+        busy = wx.BusyCursor()
         self._reloadTreeItems()
+        del busy
 
     def ReloadCurrentMapset(self):
         """Reload current mapset tree only."""