[GRASS-SVN] r45230 - grass/trunk/gui/wxpython/gui_modules

svn_grass at osgeo.org svn_grass at osgeo.org
Fri Jan 28 07:51:38 EST 2011


Author: martinl
Date: 2011-01-28 04:51:38 -0800 (Fri, 28 Jan 2011)
New Revision: 45230

Modified:
   grass/trunk/gui/wxpython/gui_modules/gcpmanager.py
   grass/trunk/gui/wxpython/gui_modules/gdialogs.py
   grass/trunk/gui/wxpython/gui_modules/goutput.py
   grass/trunk/gui/wxpython/gui_modules/histogram.py
   grass/trunk/gui/wxpython/gui_modules/layertree.py
   grass/trunk/gui/wxpython/gui_modules/mapdisp.py
   grass/trunk/gui/wxpython/gui_modules/utils.py
Log:
wxGUI: fix histogram dialog when raster map is not found


Modified: grass/trunk/gui/wxpython/gui_modules/gcpmanager.py
===================================================================
--- grass/trunk/gui/wxpython/gui_modules/gcpmanager.py	2011-01-28 12:12:32 UTC (rev 45229)
+++ grass/trunk/gui/wxpython/gui_modules/gcpmanager.py	2011-01-28 12:51:38 UTC (rev 45230)
@@ -15,7 +15,7 @@
  - EditGCP
  - GrSettingsDialog
 
-(C) 2006-2010 by the GRASS Development Team
+(C) 2006-2011 by the GRASS Development Team
 This program is free software under the GNU General Public License
 (>=v2). Read the file COPYING that comes with GRASS for details.
 
@@ -209,9 +209,9 @@
                 cmdlist = ['d.vect', 'map=%s' % src_map]
             
             self.SwitchEnv('source')
+            name, found = utils.GetLayerNameFromCmd(cmdlist)
             self.SrcMap.AddLayer(type=rendertype, command=cmdlist, l_active=True,
-                              name=utils.GetLayerNameFromCmd(cmdlist),
-                              l_hidden=False, l_opacity=1.0, l_render=False)
+                                 name=name, l_hidden=False, l_opacity=1.0, l_render=False)
 
             if tgt_map:
                 #
@@ -225,9 +225,9 @@
                     cmdlist = ['d.vect', 'map=%s' % tgt_map]
                 
                 self.SwitchEnv('target')
+                name, found = utils.GetLayerNameFromCmd(cmdlist)
                 self.TgtMap.AddLayer(type=rendertype, command=cmdlist, l_active=True,
-                                  name=utils.GetLayerNameFromCmd(cmdlist),
-                                  l_hidden=False, l_opacity=1.0, l_render=False)
+                                     name=name, l_hidden=False, l_opacity=1.0, l_render=False)
             
             #
             # start GCP Manager
@@ -2742,9 +2742,9 @@
             src_map = self.new_src_map
             cmdlist = ['d.rast', 'map=%s' % src_map]
             self.parent.grwiz.SwitchEnv('source')
+            name, found = utils.GetLayerNameFromCmd(cmdlist),
             self.parent.grwiz.SrcMap.AddLayer(type='raster', command=cmdlist, l_active=True,
-                              name=utils.GetLayerNameFromCmd(cmdlist),
-                              l_hidden=False, l_opacity=1.0, l_render=False)
+                              name=name, l_hidden=False, l_opacity=1.0, l_render=False)
 
             self.parent.grwiz.SwitchEnv('target')
             srcrender = True
@@ -2758,9 +2758,9 @@
 
             if tgt_map != '':
                 cmdlist = ['d.rast', 'map=%s' % tgt_map]
+                name, found = utils.GetLayerNameFromCmd(cmdlist)
                 self.parent.grwiz.TgtMap.AddLayer(type='raster', command=cmdlist, l_active=True,
-                                  name=utils.GetLayerNameFromCmd(cmdlist),
-                                  l_hidden=False, l_opacity=1.0, l_render=False)
+                                  name=name, l_hidden=False, l_opacity=1.0, l_render=False)
 
                 tgtrender = True
                 if self.parent.show_target == False:

Modified: grass/trunk/gui/wxpython/gui_modules/gdialogs.py
===================================================================
--- grass/trunk/gui/wxpython/gui_modules/gdialogs.py	2011-01-28 12:12:32 UTC (rev 45229)
+++ grass/trunk/gui/wxpython/gui_modules/gdialogs.py	2011-01-28 12:51:38 UTC (rev 45230)
@@ -464,13 +464,13 @@
         self._CreateOverlay()
 
         if len(self.parent.MapWindow.overlays[self.ovlId]['cmd']) > 1:
-            mapName = utils.GetLayerNameFromCmd(self.parent.MapWindow.overlays[self.ovlId]['cmd'])
+            mapName, found = utils.GetLayerNameFromCmd(self.parent.MapWindow.overlays[self.ovlId]['cmd'])
             if self.parent.MapWindow.overlays[self.ovlId]['propwin'] is None and mapName:
                 # build properties dialog
                 menuform.GUI().ParseCommand(cmd=self.cmd,
                                             completed=(self.GetOptData, self.name, ''),
                                             parentframe=self.parent, show=False)
-            if mapName:
+            if found:
                 # enable 'OK' button
                 self.btnOK.Enable()
                 if name == 'legend':

Modified: grass/trunk/gui/wxpython/gui_modules/goutput.py
===================================================================
--- grass/trunk/gui/wxpython/gui_modules/goutput.py	2011-01-28 12:12:32 UTC (rev 45229)
+++ grass/trunk/gui/wxpython/gui_modules/goutput.py	2011-01-28 12:51:38 UTC (rev 45230)
@@ -484,11 +484,11 @@
                 
                 # add layer into layer tree
                 if command[0] == 'd.rast':
-                    lname = utils.GetLayerNameFromCmd(command, fullyQualified = True,
-                                                      layerType = 'raster')
+                    lname, found = utils.GetLayerNameFromCmd(command, fullyQualified = True,
+                                                             layerType = 'raster')
                 elif command[0] == 'd.vect':
-                    lname = utils.GetLayerNameFromCmd(command, fullyQualified = True,
-                                                      layerType = 'vector')
+                    lname, found = utils.GetLayerNameFromCmd(command, fullyQualified = True,
+                                                             layerType = 'vector')
                 else:
                     lname = None
                 
@@ -810,7 +810,8 @@
                         if prompt in ('raster', 'vector', '3d-raster') and \
                                 p.get('age', 'old') == 'new' and \
                                 p.get('value', None):
-                            name = utils.GetLayerNameFromCmd(cmd, fullyQualified=True, param = p.get('name', ''))
+                            name, found = utils.GetLayerNameFromCmd(cmd, fullyQualified = True,
+                                                                    param = p.get('name', ''))
                             
                             if mapTree.GetMap().GetListOfLayers(l_name = name):
                                 continue

Modified: grass/trunk/gui/wxpython/gui_modules/histogram.py
===================================================================
--- grass/trunk/gui/wxpython/gui_modules/histogram.py	2011-01-28 12:12:32 UTC (rev 45229)
+++ grass/trunk/gui/wxpython/gui_modules/histogram.py	2011-01-28 12:51:38 UTC (rev 45230)
@@ -7,12 +7,12 @@
  - BufferedWindow
  - HistFrame
 
-COPYRIGHT: (C) 2007, 2010 by the GRASS Development Team
+COPYRIGHT: (C) 2007, 2010-2011 by the GRASS Development Team
 This program is free software under the GNU General Public License
 (>=v2). Read the file COPYING that comes with GRASS for details.
 
 @author Michael Barton
- at author Various updates by Martin Landa
+ at author Various updates by Martin Landa <landa.martin gmail.com>
 """
 
 import os
@@ -30,6 +30,7 @@
 from preferences import DefaultFontDialog
 from debug import Debug
 from icon import Icons
+from gcmd import GError
 
 class BufferedWindow(wx.Window):
     """!A Buffered window class.
@@ -244,7 +245,7 @@
         # update statusbar
         # Debug.msg (3, "BufferedWindow.UpdateHist(%s): region=%s" % self.Map.region)
         self.Map.SetRegion()
-        self.parent.statusbar.SetStatusText("Raster/Image map layer <%s>" % self.parent.mapname)
+        self.parent.statusbar.SetStatusText("Image/Raster map <%s>" % self.parent.mapname)
         
         # set default font and encoding environmental variables
         if oldfont != "":
@@ -325,7 +326,13 @@
         created in menuform.py
         """
         if dcmd:
-            name = utils.GetLayerNameFromCmd(dcmd, fullyQualified = True)
+            name, found = utils.GetLayerNameFromCmd(dcmd, fullyQualified = True,
+                                                    layerType = 'raster')
+            if not found:
+                GError(parent = propwin,
+                       message = _("Raster map <%s> not found") % name)
+                return
+            
             self.SetHistLayer(name)
         self.params = params
         self.propwin = propwin

Modified: grass/trunk/gui/wxpython/gui_modules/layertree.py
===================================================================
--- grass/trunk/gui/wxpython/gui_modules/layertree.py	2011-01-28 12:12:32 UTC (rev 45229)
+++ grass/trunk/gui/wxpython/gui_modules/layertree.py	2011-01-28 12:51:38 UTC (rev 45230)
@@ -829,7 +829,7 @@
             if lcmd and len(lcmd) > 1:
                 cmd = lcmd
                 render = False
-                name = utils.GetLayerNameFromCmd(lcmd)
+                name, found = utils.GetLayerNameFromCmd(lcmd)
             else:
                 cmd = []
                 if ltype == 'command' and lname:
@@ -1359,9 +1359,9 @@
         opacity  = int(mapLayer.GetOpacity(float = True) * 100)
         if not mapname:
             dcmd    = self.GetPyData(item)[0]['cmd']
-            mapname = utils.GetLayerNameFromCmd(dcmd, layerType = mapLayer.GetType(),
-                                                fullyQualified = True)
-        if not mapname:
+            mapname, found = utils.GetLayerNameFromCmd(dcmd, layerType = mapLayer.GetType(),
+                                                       fullyQualified = True)
+        if not found:
             return None
         
         return mapname + ' (%s %d' % (_('opacity:'), opacity) + '%)'
@@ -1374,16 +1374,10 @@
         if dcmd:
             self.GetPyData(layer)[0]['cmd'] = dcmd
             mapText  = self._getLayerName(layer)
-            mapName  = utils.GetLayerNameFromCmd(dcmd)
+            mapName, found = utils.GetLayerNameFromCmd(dcmd)
             mapLayer = self.GetPyData(layer)[0]['maplayer']
             self.SetItemText(layer, mapName)
             
-            found = True
-            if mapLayer and \
-                    mapLayer.GetType() in ('raster', '3d-raster', 'vector') and \
-                    not grass.find_file(name = mapName, element = mapLayer.GetElement())['fullname']:
-                found = False
-            
             if not mapText or not found:
                 propwin.Hide()
                 GWarning(parent = self,
@@ -1491,8 +1485,8 @@
                 chk = self.IsItemChecked(item)
                 hidden = not self.IsVisible(item)
                 # determine layer name
-                layerName = utils.GetLayerNameFromCmd(cmdlist, fullyQualified = True)
-                if not layerName:
+                layerName, found = utils.GetLayerNameFromCmd(cmdlist, fullyQualified = True)
+                if not found:
                     layerName = self.GetItemText(item)
         
         maplayer = self.Map.ChangeLayer(layer = self.GetPyData(item)[0]['maplayer'], type = type,

Modified: grass/trunk/gui/wxpython/gui_modules/mapdisp.py
===================================================================
--- grass/trunk/gui/wxpython/gui_modules/mapdisp.py	2011-01-28 12:12:32 UTC (rev 45229)
+++ grass/trunk/gui/wxpython/gui_modules/mapdisp.py	2011-01-28 12:51:38 UTC (rev 45230)
@@ -1283,8 +1283,8 @@
         for layer in self.tree.GetSelections():
             type = self.tree.GetPyData(layer)[0]['maplayer'].GetType()
             dcmd = self.tree.GetPyData(layer)[0]['cmd']
-            name = utils.GetLayerNameFromCmd(dcmd)
-            if name == '':
+            name, found = utils.GetLayerNameFromCmd(dcmd)
+            if not found:
                 continue
             if type in ('raster', 'rgb', 'his'):
                 raststr += "%s," % name

Modified: grass/trunk/gui/wxpython/gui_modules/utils.py
===================================================================
--- grass/trunk/gui/wxpython/gui_modules/utils.py	2011-01-28 12:12:32 UTC (rev 45229)
+++ grass/trunk/gui/wxpython/gui_modules/utils.py	2011-01-28 12:51:38 UTC (rev 45230)
@@ -42,8 +42,7 @@
         return shlex.split(s)
 
 def GetTempfile(pref=None):
-    """
-    Creates GRASS temporary file using defined prefix.
+    """!Creates GRASS temporary file using defined prefix.
 
     @todo Fix path on MS Windows/MSYS
 
@@ -78,17 +77,16 @@
     
     @param dcmd GRASS command (given as list)
     @param fullyQualified change map name to be fully qualified
-    @param force parameter otherwise 'input'/'map'
-    @param update change map name in command
+    @param param params directory
     @param layerType check also layer type ('raster', 'vector', '3d-raster', ...)
     
-    @return map name
-    @return '' if no map name found in command
+    @return tuple (name, found)
     """
     mapname = ''
+    found   = True
     
     if len(dcmd) < 1:
-        return mapname
+        return mapname, False
     
     if 'd.grid' == dcmd[0]:
         mapname = 'grid'
@@ -120,7 +118,7 @@
             if len(dcmd) > 1 and '=' not in dcmd[1]:
                 params.append((1, None, dcmd[1]))
             else:
-                return mapname
+                return mapname, False
         
         mapname = params[0][2]
         mapset = ''
@@ -131,11 +129,11 @@
                         findType = 'cell'
                     else:
                         findType = layerType
-                    mapset = grass.find_file(mapname, element=findType)['mapset']
+                    mapset = grass.find_file(mapname, element = findType)['mapset']
                 except AttributeError, e: # not found
-                    return ''
+                    return '', False
                 if not mapset:
-                    mapset = grass.gisenv()['MAPSET']
+                    found = False
             else:
                 mapset = grass.gisenv()['MAPSET']
             
@@ -143,7 +141,9 @@
             for i, p, v in params:
                 if p == 'layer':
                     continue
-                dcmd[i] = p + '=' + v + '@' + mapset
+                dcmd[i] = p + '=' + v
+                if mapset:
+                    dcmd[i] += '@' + mapset
         
         maps = list()
         ogr = False
@@ -156,7 +156,7 @@
         
         mapname = '\n'.join(maps)
     
-    return mapname
+    return mapname, found
 
 def GetValidLayerName(name):
     """!Make layer name SQL compliant, based on G_str_to_sql()



More information about the grass-commit mailing list