[GRASS-SVN] r57437 - in grass/trunk/gui/wxpython: gui_core lmgr vdigit web_services

svn_grass at osgeo.org svn_grass at osgeo.org
Thu Aug 8 09:20:37 PDT 2013


Author: wenzeslaus
Date: 2013-08-08 09:20:37 -0700 (Thu, 08 Aug 2013)
New Revision: 57437

Modified:
   grass/trunk/gui/wxpython/gui_core/dialogs.py
   grass/trunk/gui/wxpython/lmgr/layertree.py
   grass/trunk/gui/wxpython/vdigit/toolbars.py
   grass/trunk/gui/wxpython/web_services/dialogs.py
Log:
wxGUI/giface: giface for ImportDialog and SaveWMSLayerDialog (also removing wrong param for ManageSettingsWidget, adding some info messages)

Modified: grass/trunk/gui/wxpython/gui_core/dialogs.py
===================================================================
--- grass/trunk/gui/wxpython/gui_core/dialogs.py	2013-08-08 13:45:54 UTC (rev 57436)
+++ grass/trunk/gui/wxpython/gui_core/dialogs.py	2013-08-08 16:20:37 UTC (rev 57437)
@@ -1183,10 +1183,11 @@
     
 class ImportDialog(wx.Dialog):
     """!Dialog for bulk import of various data (base class)"""
-    def __init__(self, parent, itype,
+    def __init__(self, parent, giface, itype,
                  id = wx.ID_ANY, title = _("Multiple import"),
                  style = wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER):
         self.parent = parent    # GMFrame 
+        self._giface = giface  # used to add layers
         self.importType = itype
         self.options = dict()   # list of options
         
@@ -1346,10 +1347,12 @@
         """!Add imported/linked layers into layer tree"""
         if not self.add.IsChecked() or returncode != 0:
             return
-        
+
+        # TODO: if importing map creates more map the folowing does not work
+        # * do nothing if map does not exist or
+        # * try to determine names using regexp or
+        # * persuade import tools to report map names
         self.commandId += 1
-        maptree = self.parent.GetLayerTree()
-        
         layer, output = self.list.GetLayers()[self.commandId]
         
         if '@' not in output:
@@ -1358,24 +1361,26 @@
             name = output
         
         # add imported layers into layer tree
+        # an alternative would be emit signal (mapCreated) and (optionally)
+        # connect to this signal
+        llist = self._giface.GetLayerList()
         if self.importType == 'gdal':
             cmd = ['d.rast',
                    'map=%s' % name]
             if UserSettings.Get(group = 'rasterLayer', key = 'opaque', subkey = 'enabled'):
                 cmd.append('-n')
-            
-            item = maptree.AddLayer(ltype = 'raster',
-                                    lname = name, lchecked = False,
-                                    lcmd = cmd, multiple = False)
+
+            llist.AddLayer(ltype='raster',
+                           name=name, checked=False,
+                           cmd=cmd)
         else:
-            item = maptree.AddLayer(ltype = 'vector',
-                                    lname = name, lchecked = False,
-                                    lcmd = ['d.vect',
-                                            'map=%s' % name] + GetDisplayVectSettings(),
-                                    multiple = False)
-        
-        maptree.mapdisplay.MapWindow.ZoomToMap()
-        
+            llist.AddLayer(ltype='vector',
+                           name=name, checked=False,
+                           cmd=['d.vect',
+                                'map=%s' % name] + GetDisplayVectSettings())
+
+        self._giface.GetMapWindow().ZoomToMap()
+
     def OnAbort(self, event):
         """!Abort running import
 
@@ -1398,13 +1403,13 @@
         self.ogr  = ogr
         
         if ogr:
-            ImportDialog.__init__(self, parent, itype = 'ogr')
+            ImportDialog.__init__(self, parent, giface=giface, itype='ogr')
             if link:
                 self.SetTitle(_("Link external vector data"))
             else:
                 self.SetTitle(_("Import vector data"))
         else:
-            ImportDialog.__init__(self, parent, itype = 'gdal') 
+            ImportDialog.__init__(self, parent, giface=giface, itype='gdal') 
             if link:
                 self.SetTitle(_("Link external raster data"))
             else:
@@ -1413,11 +1418,14 @@
         self.dsnInput = GdalSelect(parent = self, panel = self.panel,
                                    ogr = ogr, link = link)
         self.dsnInput.reloadDataRequired.connect(lambda data: self.list.LoadData(data))
-        
+
+        mightNotWork = _("this might not work for multiple bands")
         if link:
-            self.add.SetLabel(_("Add linked layers into layer tree"))
+            self.add.SetLabel(_("Add linked layers into layer tree"
+                                " ({mightNotWork})".format(mightNotWork=mightNotWork)))
         else:
-            self.add.SetLabel(_("Add imported layers into layer tree"))
+            self.add.SetLabel(_("Add imported layers into layer tree"
+                                " ({mightNotWork})".format(mightNotWork=mightNotWork)))
         
         self.add.SetValue(UserSettings.Get(group = 'cmd', key = 'addNewLayer', subkey = 'enabled'))
 
@@ -1606,7 +1614,7 @@
 class DxfImportDialog(ImportDialog):
     """!Dialog for bulk import of DXF layers""" 
     def __init__(self, parent, giface):
-        ImportDialog.__init__(self, parent, itype = 'dxf',
+        ImportDialog.__init__(self, parent, giface=giface, itype='dxf',
                               title = _("Import DXF layers"))
         self._giface = giface
         self.dsnInput = filebrowse.FileBrowseButton(parent = self.panel, id = wx.ID_ANY, 

Modified: grass/trunk/gui/wxpython/lmgr/layertree.py
===================================================================
--- grass/trunk/gui/wxpython/lmgr/layertree.py	2013-08-08 13:45:54 UTC (rev 57436)
+++ grass/trunk/gui/wxpython/lmgr/layertree.py	2013-08-08 16:20:37 UTC (rev 57437)
@@ -157,9 +157,9 @@
         
         # init associated map display
         pos = wx.Point((self.displayIndex + 1) * 25, (self.displayIndex + 1) * 25)
-        gifaceForDisplay = LayerManagerGrassInterfaceForMapDisplay(self._giface,
-                                                                   self)
-        self.mapdisplay = MapFrame(self, giface = gifaceForDisplay,
+        self._gifaceForDisplay = LayerManagerGrassInterfaceForMapDisplay(self._giface,
+                                                                         self)
+        self.mapdisplay = MapFrame(self, giface=self._gifaceForDisplay,
                                    id = wx.ID_ANY, pos = pos,
                                    size = globalvar.MAP_WINDOW_SIZE,
                                    style = wx.DEFAULT_FRAME_STYLE,
@@ -552,7 +552,8 @@
     def OnSaveWs(self, event):
         """!Show dialog for saving web service layer into GRASS vector/raster layer"""
         mapLayer = self.GetLayerInfo(self.layer_selected, key = 'maplayer')
-        dlg = SaveWMSLayerDialog(parent = self, layer = mapLayer, ltree = self)
+        dlg = SaveWMSLayerDialog(parent=self, layer=mapLayer,
+                                 giface=self._gifaceForDisplay)
         dlg.CentreOnScreen()
         dlg.Show()
 

Modified: grass/trunk/gui/wxpython/vdigit/toolbars.py
===================================================================
--- grass/trunk/gui/wxpython/vdigit/toolbars.py	2013-08-08 13:45:54 UTC (rev 57436)
+++ grass/trunk/gui/wxpython/vdigit/toolbars.py	2013-08-08 16:20:37 UTC (rev 57437)
@@ -694,9 +694,9 @@
                 # add layer to map layer tree
                 if self.layerTree:
                     mapName = dlg.GetName() + '@' + grass.gisenv()['MAPSET']
-                    self.layerTree.AddLayer(ltype = 'vector',
-                                            lname = mapName,
-                                            lcmd = ['d.vect', 'map=%s' % mapName])
+                    self._giface.GetLayerList().AddLayer(ltype='vector',
+                                                         name=mapName,
+                                                         cmd=['d.vect', 'map=%s' % mapName])
                     
                     vectLayers = self.UpdateListOfLayers(updateTool = True)
                     selection = vectLayers.index(mapName)

Modified: grass/trunk/gui/wxpython/web_services/dialogs.py
===================================================================
--- grass/trunk/gui/wxpython/web_services/dialogs.py	2013-08-08 13:45:54 UTC (rev 57436)
+++ grass/trunk/gui/wxpython/web_services/dialogs.py	2013-08-08 16:20:37 UTC (rev 57437)
@@ -82,9 +82,8 @@
 
         settingsFile = os.path.join(GetSettingsPath(), 'wxWS')
 
-        self.settsManager = ManageSettingsWidget(parent = self, 
-                                                 id = wx.ID_ANY,
-                                                 settingsFile = settingsFile)
+        self.settsManager = ManageSettingsWidget(parent=self,
+                                                 settingsFile=settingsFile)
 
         self.settingsBox = wx.StaticBox(parent = self, 
                                         id = wx.ID_ANY,
@@ -523,6 +522,16 @@
         if not lcmd:
             return None
 
+        # TODO: It is not clear how to do GetOptData in giface
+        # knowing what GetOptData is doing might help
+        # (maybe Get... is not the right name)
+        # please fix giface if you know
+        # tree -> giface
+        # GetLayerTree -> GetLayerList
+        # AddLayer -> AddLayer (but tree ones returns some layer,
+        # giface ones nothing)
+        # GetLayerInfo -> Layer object can by used instead
+        # GetOptData -> unknown
         ltree = self.giface.GetLayerTree()
 
         active_ws = self.active_ws_panel.GetWebService()
@@ -760,12 +769,12 @@
 
     @todo Implement saving data in region of map display.
     """
-    def __init__(self, parent, layer, ltree):
+    def __init__(self, parent, layer, giface):
         
         wx.Dialog.__init__(self, parent = parent, title = ("Save web service layer"), id = wx.ID_ANY)
 
         self.layer = layer
-        self.ltree = ltree
+        self._giface = giface
 
         self.cmd = self.layer.GetCmd()
 
@@ -990,12 +999,13 @@
     def _addLayer(self):
         """!Add layer into layer tree.
         """
-        if self.ltree.FindItemByData(key = 'name', value = self.output) is None: 
+        llist = self._giface.GetLayerList()
+        if len(llist.GetLayersByName(self.output)) == 0:
             cmd = ['d.rast', 'map=' + self.output]
-            self.ltree.AddLayer(ltype = 'raster',
-                                lname = self.output,
-                                lcmd = cmd,
-                                lchecked = True)
+            llist.AddLayer(ltype='raster',
+                           name=self.output,
+                           cmd=cmd,
+                           checked=True)
 
     def OnCmdOutput(self, event):
         """!Handle cmd output according to debug level.



More information about the grass-commit mailing list