Sfoglia il codice sorgente

wxGUI/workspace: do not parse task node for command layer

Parsing caused TypeError because task node is not saved for command layer.
But command layer is loaded or rendered in some other way which makes 'pass' to be a sufficient solution.


git-svn-id: https://svn.osgeo.org/grass/grass/trunk@61279 15284696-431f-4ddb-bdfa-cd5b030d7da7
Vaclav Petras 10 anni fa
parent
commit
cfe3ef1f61
1 ha cambiato i file con 22 aggiunte e 15 eliminazioni
  1. 22 15
      gui/wxpython/core/workspace.py

+ 22 - 15
gui/wxpython/core/workspace.py

@@ -214,21 +214,28 @@ class ProcessWorkspaceFile:
         # layer attributes (task) - 2D settings
         #
         node_task = layer.find('task')
-        cmd.append(node_task.get('name', "unknown"))
-        
-        # flags
-        for p in node_task.findall('flag'):
-            flag = p.get('name', '')
-            if len(flag) > 1:
-                cmd.append('--' + flag)
-            else:
-                cmd.append('-' + flag)
-        
-        # parameters
-        for p in node_task.findall('parameter'):
-            cmd.append('%s=%s' % (p.get('name', ''),
-                                  self.__filterValue(self.__getNodeText(p, 'value'))))
-        
+        if node_task is None and layer.get('type') == 'command':
+            # TODO: perhaps the XML format should be changed and command
+            # should be changed to contain task
+            # TODO: where the command layer gets actually processed?
+            pass
+        else:
+            cmd.append(node_task.get('name', "unknown"))
+
+            # flags
+            for p in node_task.findall('flag'):
+                flag = p.get('name', '')
+                if len(flag) > 1:
+                    cmd.append('--' + flag)
+                else:
+                    cmd.append('-' + flag)
+
+            # parameters
+            for p in node_task.findall('parameter'):
+                cmd.append('%s=%s' % (p.get('name', ''),
+                                      self.__filterValue(
+                                          self.__getNodeText(p, 'value'))))
+
         if layer.find('selected') is not None:
             selected = True
         else: