Explorar o código

wxGUI: add layer when import is finished

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@41964 15284696-431f-4ddb-bdfa-cd5b030d7da7
Martin Landa %!s(int64=15) %!d(string=hai) anos
pai
achega
02a6fba003
Modificáronse 1 ficheiros con 30 adicións e 26 borrados
  1. 30 26
      gui/wxpython/gui_modules/gdialogs.py

+ 30 - 26
gui/wxpython/gui_modules/gdialogs.py

@@ -1379,35 +1379,39 @@ class MultiImportDialog(wx.Dialog):
                 cmd.append('--overwrite')
                 cmd.append('--overwrite')
             
             
             # run in Layer Manager
             # run in Layer Manager
-            self.parent.goutput.RunCmd(cmd, switchPage=True)
-
-        if self.add.IsChecked():
-            maptree = self.parent.curr_page.maptree
-            for layer, output in data:
-                if '@' not in output:
-                    name = output + '@' + grass.gisenv()['MAPSET']
-                else:
-                    name = output
-                # add imported layers into layer tree
-                if self.importType == 'gdal':
-                    cmd = ['d.rast',
-                           'map=%s' % name]
-                    if UserSettings.Get(group='cmd', key='rasterOpaque', subkey='enabled'):
-                        cmd.append('-n')
-
-                    maptree.AddLayer(ltype='raster',
-                                     lname=name,
-                                     lcmd=cmd)
-                else:
-                    maptree.AddLayer(ltype='vector',
-                                     lname=name,
-                                     lcmd=['d.vect',
-                                           'map=%s' % name])
-        
-        ### wx.CallAfter(self.parent.notebook.SetSelection, 0)
+            self.parent.goutput.RunCmd(cmd, switchPage=True,
+                                       onDone = self._addLayers)
         
         
         self.OnCancel()
         self.OnCancel()
         
         
+    def _addLayers(self, returncode):
+        """!Add imported/linked layers into layer tree"""
+        if not self.add.IsChecked():
+            return
+        
+        data = self.list.GetLayers()
+        maptree = self.parent.curr_page.maptree
+        for layer, output in data:
+            if '@' not in output:
+                name = output + '@' + grass.gisenv()['MAPSET']
+            else:
+                name = output
+            # add imported layers into layer tree
+            if self.importType == 'gdal':
+                cmd = ['d.rast',
+                       'map=%s' % name]
+                if UserSettings.Get(group='cmd', key='rasterOpaque', subkey='enabled'):
+                    cmd.append('-n')
+
+                maptree.AddLayer(ltype='raster',
+                                 lname=name,
+                                 lcmd=cmd)
+            else:
+                maptree.AddLayer(ltype='vector',
+                                 lname=name,
+                                 lcmd=['d.vect',
+                                       'map=%s' % name])
+                
     def OnAbort(self, event):
     def OnAbort(self, event):
         """!Abort running import
         """!Abort running import