[QGIS Commit] r10095 - trunk/qgis/python/plugins/fTools/tools

svn_qgis at osgeo.org svn_qgis at osgeo.org
Mon Feb 2 18:00:43 EST 2009


Author: cfarmer
Date: 2009-02-02 18:00:43 -0500 (Mon, 02 Feb 2009)
New Revision: 10095

Modified:
   trunk/qgis/python/plugins/fTools/tools/doGeoprocessing.py
Log:
improved handeling of postGIS layers


Modified: trunk/qgis/python/plugins/fTools/tools/doGeoprocessing.py
===================================================================
--- trunk/qgis/python/plugins/fTools/tools/doGeoprocessing.py	2009-02-02 20:47:16 UTC (rev 10094)
+++ trunk/qgis/python/plugins/fTools/tools/doGeoprocessing.py	2009-02-02 23:00:43 UTC (rev 10095)
@@ -276,7 +276,6 @@
 	def convex_hull(self, useField ):
 		vproviderA = self.vlayerA.dataProvider()
 		allAttrsA = vproviderA.attributeIndexes()
-		vproviderA.select( allAttrsA )
 		fields = vproviderA.fields()
 		writer = QgsVectorFileWriter( self.myName, self.myEncoding, 
 		fields, QGis.WKBPolygon, vproviderA.crs() )
@@ -291,10 +290,11 @@
 			self.emit( SIGNAL( "runStatus(PyQt_PyObject)" ), 0)
 			self.emit( SIGNAL( "runRange(PyQt_PyObject)" ), ( 0, nFeat ) )
 			for i in unique:
-				vproviderA.rewind()
 				hull = []
 				first = True
 				outID = 0
+				vproviderA.select( allAttrsA )
+				vproviderA.rewind()
 				while vproviderA.nextFeature( inFeat ):
 					nElement += 1
 					self.emit( SIGNAL( "runStatus(PyQt_PyObject)" ),  nElement )
@@ -339,7 +339,6 @@
 	def dissolve( self, useField ):
 		vproviderA = self.vlayerA.dataProvider()
 		allAttrsA = vproviderA.attributeIndexes()
-		vproviderA.select( allAttrsA )
 		fields = vproviderA.fields()
 		writer = QgsVectorFileWriter( self.myName, self.myEncoding, 
 		fields, vproviderA.geometryType(), vproviderA.crs() )
@@ -368,17 +367,20 @@
 			outFeat.setAttributeMap( attrs )
 			writer.addFeature( outFeat )
 		else:
-			unique = ftools_utils.getUniqueValues( vproviderA, int( self.myParam ) )
+			unique = vproviderA.uniqueValues( int( self.myParam ) )
 			nFeat = nFeat * len( unique )
 			self.emit( SIGNAL( "runStatus(PyQt_PyObject)" ), 0)
 			self.emit( SIGNAL( "runRange(PyQt_PyObject)" ), ( 0, nFeat ) )
 			for item in unique:
 				first = True
+				vproviderA.select( allAttrsA )
 				vproviderA.rewind()
 				while vproviderA.nextFeature( inFeat ):
 					nElement += 1
 					self.emit( SIGNAL( "runStatus(PyQt_PyObject)" ),  nElement )
-					if inFeat.attributeMap()[ self.myParam ].toString().trimmed() == item.toString().trimmed():
+					atMap = inFeat.attributeMap()
+					tempItem = atMap[ self.myParam ]
+					if tempItem.toString().trimmed() == item.toString().trimmed():
 						if first:
 							QgsGeometry( inFeat.geometry() )
 							tmpInGeom = QgsGeometry( inFeat.geometry() )



More information about the QGIS-commit mailing list