From b38eba3d0e314bf7730229fc28346201500caefd Mon Sep 17 00:00:00 2001 From: "Nathan.Woodrow" Date: Mon, 17 Mar 2014 15:09:39 +1000 Subject: [PATCH] Move field dict generation out of loop --- src/roam/featureform.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/roam/featureform.py b/src/roam/featureform.py index a459d9948..60fe6dce3 100644 --- a/src/roam/featureform.py +++ b/src/roam/featureform.py @@ -215,6 +215,11 @@ def setupui(self): """ widgetsconfig = self.formconfig['widgets'] + layer = self.form.QGISLayer + # Crash in QGIS if you lookup a field that isn't found. + # We just make a dict with all fields lower because QgsFields is case sensitive. + fields = {field.name().lower():field for field in layer.pendingFields().toList()} + for config in widgetsconfig: widgettype = config['widget'] field = config['field'].lower() @@ -233,10 +238,6 @@ def setupui(self): utils.warning("Not label found for {}".format(field)) widgetconfig = config.get('config', {}) - layer = self.form.QGISLayer - # Crash in QGIS if you lookup a field that isn't found. - # We just make a dict with all fields lower because QgsFields is case sensitive. - fields = {field.name().lower():field for field in layer.pendingFields().toList()} qgsfield = fields[field] try: widgetwrapper = WidgetsRegistry.widgetwrapper(widgettype=widgettype,