[GRASS-SVN] r62582 - grass/trunk/gui/wxpython/lmgr

svn_grass at osgeo.org svn_grass at osgeo.org
Mon Nov 3 11:46:24 PST 2014


Author: martinl
Date: 2014-11-03 11:46:24 -0800 (Mon, 03 Nov 2014)
New Revision: 62582

Modified:
   grass/trunk/gui/wxpython/lmgr/datacatalog.py
Log:
wxGUI/datacatalog: fix when destination mapset has no maps


Modified: grass/trunk/gui/wxpython/lmgr/datacatalog.py
===================================================================
--- grass/trunk/gui/wxpython/lmgr/datacatalog.py	2014-11-03 18:43:48 UTC (rev 62581)
+++ grass/trunk/gui/wxpython/lmgr/datacatalog.py	2014-11-03 19:46:24 UTC (rev 62582)
@@ -27,7 +27,7 @@
 import wx.gizmos as gizmos
 
 from core.gcmd import RunCommand, GError, GMessage
-from core.utils import GetListOfLocations
+from core.utils import GetListOfLocations, ListOfMapsets
 from core.gthread import gThread
 from core.debug import Debug
 from gui_core.dialogs import TextEntryDialog
@@ -114,8 +114,13 @@
                 first = False
             else:
                 self.ChangeEnvironment(location)
+            
             varloc = self.AppendItem(self.root, loc)
-            #get list of all maps in location
+            # add all mapsets
+            for mapset in ListOfMapsets():
+                self.AppendItem(varloc, mapset)
+            
+            # get list of all maps in location
             maplist = RunCommand('g.list', flags='mt', type='rast,rast3d,vect', mapset=','.join(mapsets),
                                  quiet=True, read=True)
             maplist = maplist.splitlines()
@@ -126,16 +131,19 @@
                 mapset = parts2[1]
                 mlayer = parts2[0]
                 ltype = parts1[0]
+
+                # add mapset
                 if self.itemExists(mapset, varloc) == False:
                     varmapset = self.AppendItem(varloc, mapset)
-                if (self.GetItemText(varmapset) == mapset):
-                    if (self.itemExists(ltype, varmapset) == False):
-                        vartype = self.AppendItem(varmapset, ltype)
                 else:
                     varmapset = self.getItemByName(mapset, varloc)
-                    if (self.itemExists(ltype, varmapset) == False):
-                        vartype = self.AppendItem(varmapset, ltype)
+
+                # add type node if not exists
+                if self.itemExists(ltype, varmapset) == False:
+                    vartype = self.AppendItem(varmapset, ltype)
+                
                 self.AppendItem(vartype, mlayer)
+            
         self.RestoreBackup()          
         Debug.msg(1, "Tree filled")    
 
@@ -388,9 +396,12 @@
             else:
                 pasted = RunCommand('g.copy', rast3d=string)
                 node = 'rast3d'
-            if (pasted==0):
-                if (self.selected_type == None):
+            if pasted == 0:
+                if self.selected_type == None:
                     self.selected_type = self.getItemByName(node, self.selected_mapset)
+                    if self.selected_type == None:
+                        # add type node if not exists
+                        self.selected_type = self.AppendItem(self.selected_mapset, node)
                 self.AppendItem(self.selected_type,self.new_name) 
                 self.SortChildren(self.selected_type)
                 Debug.msg(1,"COPIED TO: "+self.new_name)
@@ -400,6 +411,10 @@
             GError(_("Failed to copy layer: action is allowed only within the same location."),
                    parent=self)
         
+        # expand selected mapset
+        self.ExpandAllChildren(self.selected_mapset)
+        self.EnsureVisible(self.selected_mapset)
+        
         self.RestoreBackup()
         
         



More information about the grass-commit mailing list