浏览代码

wxGUI/forms: fix datasource handling in modeler (do not backport)

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@68049 15284696-431f-4ddb-bdfa-cd5b030d7da7
Martin Landa 9 年之前
父节点
当前提交
fb4adb7409
共有 1 个文件被更改,包括 13 次插入12 次删除
  1. 13 12
      gui/wxpython/gui_core/forms.py

+ 13 - 12
gui/wxpython/gui_core/forms.py

@@ -1713,18 +1713,19 @@ class CmdPanel(wx.Panel):
                     which_sizer.Add(item = self.win1, proportion = 0,
                                     flag = wx.EXPAND | wx.ALL, border = 3)
                     porf = self.task.get_param('input', element = 'name', raiseError = False)
-                    winDataSource = self.FindWindowById(porf['wxId'][0])
-                    winDataSource.reloadDataRequired.connect(lambda listData: self.win1.LoadData(listData, False))
-                    p['wxId'] = [self.win1.GetId()]
-                    def OnCheckItem(index, flag):
-                        layers = list()
-                        for layer, match, listId in self.win1.GetLayers():
-                            layers.append(layer)
-                        porf = self.task.get_param('layer', element = 'name', raiseError = False)
-                        porf['value'] = ','.join(layers)
-                        self.OnUpdateValues() # TODO: replace by signal
-                    
-                    self.win1.OnCheckItem = OnCheckItem
+                    if porf and 'wxId' in porf:
+                        winDataSource = self.FindWindowById(porf['wxId'][0])
+                        winDataSource.reloadDataRequired.connect(lambda listData: self.win1.LoadData(listData, False))
+                        p['wxId'] = [self.win1.GetId()]
+                        def OnCheckItem(index, flag):
+                            layers = list()
+                            for layer, match, listId in self.win1.GetLayers():
+                                layers.append(layer)
+                            porf = self.task.get_param('layer', element = 'name', raiseError = False)
+                            porf['value'] = ','.join(layers)
+                            self.OnUpdateValues() # TODO: replace by signal
+
+                        self.win1.OnCheckItem = OnCheckItem
                           
             if self.parent.GetName() == 'MainFrame' and (self._giface and hasattr(self._giface, "_model")):
                 parChk = wx.CheckBox(parent = which_panel, id = wx.ID_ANY,