[QGIS Commit] r13312 - trunk/qgis/python/plugins/fTools/tools
svn_qgis at osgeo.org
svn_qgis at osgeo.org
Wed Apr 14 20:24:03 EDT 2010
Author: cfarmer
Date: 2010-04-14 20:24:02 -0400 (Wed, 14 Apr 2010)
New Revision: 13312
Modified:
trunk/qgis/python/plugins/fTools/tools/doGeoprocessing.py
trunk/qgis/python/plugins/fTools/tools/doRegPoints.py
Log:
Adds validators for numeric input text edits. Patch supplied by Alexander Bruy
Modified: trunk/qgis/python/plugins/fTools/tools/doGeoprocessing.py
===================================================================
--- trunk/qgis/python/plugins/fTools/tools/doGeoprocessing.py 2010-04-14 16:50:56 UTC (rev 13311)
+++ trunk/qgis/python/plugins/fTools/tools/doGeoprocessing.py 2010-04-15 00:24:02 UTC (rev 13312)
@@ -12,6 +12,7 @@
QDialog.__init__( self )
self.iface = iface
self.setupUi( self )
+ self.param.setValidator(QDoubleValidator(self.param))
self.myFunction = function
QObject.connect( self.btnBrowse, SIGNAL( "clicked()" ), self.outFile )
QObject.connect( self.inShapeA, SIGNAL( "currentIndexChanged(QString)" ), self.checkA )
@@ -541,12 +542,14 @@
vproviderA = self.vlayerA.dataProvider()
allAttrsA = vproviderA.attributeIndexes()
fields = vproviderA.fields()
- writer = QgsVectorFileWriter( self.myName, self.myEncoding,
+ writer = QgsVectorFileWriter( self.myName, self.myEncoding,
fields, vproviderA.geometryType(), vproviderA.crs() )
inFeat = QgsFeature()
outFeat = QgsFeature()
vproviderA.rewind()
nElement = 0
+ inGeom = QgsGeometry()
+ geoms = []
# there is selection in input layer
if self.mySelectionA:
nFeat = self.vlayerA.selectedFeatureCount()
@@ -556,24 +559,21 @@
self.emit( SIGNAL( "runRange(PyQt_PyObject)" ), ( 0, nFeat ) )
first = True
for inFeat in selectionA:
- nElement += 1
+ nElement += 0.5
self.emit( SIGNAL( "runStatus(PyQt_PyObject)" ), nElement )
if first:
attrs = inFeat.attributeMap()
- tmpInGeom = QgsGeometry( inFeat.geometry() )
- outFeat.setGeometry( tmpInGeom )
+ inGeom = QgsGeometry( inFeat.geometry() )
first = False
else:
- tmpInGeom = QgsGeometry( inFeat.geometry() )
- tmpOutGeom = QgsGeometry( outFeat.geometry() )
- try:
- tmpOutGeom = QgsGeometry( tmpOutGeom.combine( tmpInGeom ) )
- outFeat.setGeometry( tmpOutGeom )
- except:
- GEOS_EXCEPT = False
- continue
- outFeat.setAttributeMap( attrs )
- writer.addFeature( outFeat )
+ tmp_geom = QgsGeometry( inFeat.geometry() )
+ geoms.append(tmp_geom)
+ outGeom = QgsGeometry(inGeom.combineCascaded(geoms))
+ nElement += nFeat/2
+ self.emit( SIGNAL( "runStatus(PyQt_PyObject)" ), nElement )
+ outFeat.setGeometry(outGeom)
+ outFeat.setAttributeMap(attrs)
+ writer.addFeature(outFeat)
else:
unique = vproviderA.uniqueValues( int( self.myParam ) )
nFeat = nFeat * len( unique )
@@ -584,31 +584,25 @@
add = False
vproviderA.select( allAttrsA )
vproviderA.rewind()
- for inFeat in selectionA:
- nElement += 1
+ filtered = [feat for feat in selectionA if feat.attributeMap()[
+ self.myParam].toString().trimmed() == item.toString().trimmed()]
+ for inFeat in filtered:
+ nElement += 0.5
self.emit( SIGNAL( "runStatus(PyQt_PyObject)" ), nElement )
atMap = inFeat.attributeMap()
- tempItem = atMap[ self.myParam ]
- if tempItem.toString().trimmed() == item.toString().trimmed():
- add = True
- if first:
- QgsGeometry( inFeat.geometry() )
- tmpInGeom = QgsGeometry( inFeat.geometry() )
- outFeat.setGeometry( tmpInGeom )
- first = False
- attrs = inFeat.attributeMap()
- else:
- tmpInGeom = QgsGeometry( inFeat.geometry() )
- tmpOutGeom = QgsGeometry( outFeat.geometry() )
- try:
- tmpOutGeom = QgsGeometry( tmpOutGeom.combine( tmpInGeom ) )
- outFeat.setGeometry( tmpOutGeom )
- except:
- GEOS_EXCEPT = False
- add = False
- if add:
- outFeat.setAttributeMap( attrs )
- writer.addFeature( outFeat )
+ if first:
+ inGeom = QgsGeometry( inFeat.geometry() )
+ first = False
+ attrs = inFeat.attributeMap()
+ else:
+ tmp_geom = QgsGeometry( inFeat.geometry() )
+ geoms.append(tmp_geom)
+ outGeom = QgsGeometry(inGeom.combineCascaded(geoms))
+ nElement += nFeat/2
+ self.emit( SIGNAL( "runStatus(PyQt_PyObject)" ), nElement )
+ outFeat.setGeometry(outGeom)
+ outFeat.setAttributeMap(attrs)
+ writer.addFeature(outFeat)
# there is no selection in input layer
else:
nFeat = vproviderA.featureCount()
@@ -617,58 +611,51 @@
self.emit( SIGNAL( "runRange(PyQt_PyObject)" ), ( 0, nFeat ) )
first = True
while vproviderA.nextFeature( inFeat ):
- nElement += 1
+ nElement += 0.5
self.emit( SIGNAL( "runStatus(PyQt_PyObject)" ), nElement )
if first:
attrs = inFeat.attributeMap()
- tmpInGeom = QgsGeometry( inFeat.geometry() )
- outFeat.setGeometry( tmpInGeom )
+ inGeom = QgsGeometry( inFeat.geometry() )
first = False
else:
- tmpInGeom = QgsGeometry( inFeat.geometry() )
- tmpOutGeom = QgsGeometry( outFeat.geometry() )
- try:
- tmpOutGeom = QgsGeometry( tmpOutGeom.combine( tmpInGeom ) )
- outFeat.setGeometry( tmpOutGeom )
- except:
- GEOS_EXCEPT = False
- continue
- outFeat.setAttributeMap( attrs )
- writer.addFeature( outFeat )
+ tmp_geom = QgsGeometry( inFeat.geometry() )
+ geoms.append(tmp_geom)
+ outGeom = QgsGeometry(inGeom.combineCascaded(geoms))
+ nElement += nFeat/2
+ self.emit( SIGNAL( "runStatus(PyQt_PyObject)" ), nElement )
+ outFeat.setGeometry(outGeom)
+ outFeat.setAttributeMap(attrs)
+ writer.addFeature(outFeat)
else:
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:
+ geoms = []
first = True
add = True
vproviderA.select( allAttrsA )
vproviderA.rewind()
while vproviderA.nextFeature( inFeat ):
- nElement += 1
+ nElement += 0.5
self.emit( SIGNAL( "runStatus(PyQt_PyObject)" ), nElement )
atMap = inFeat.attributeMap()
tempItem = atMap[ self.myParam ]
if tempItem.toString().trimmed() == item.toString().trimmed():
if first:
- QgsGeometry( inFeat.geometry() )
- tmpInGeom = QgsGeometry( inFeat.geometry() )
- outFeat.setGeometry( tmpInGeom )
+ inGeom = QgsGeometry( inFeat.geometry() )
first = False
attrs = inFeat.attributeMap()
else:
- tmpInGeom = QgsGeometry( inFeat.geometry() )
- tmpOutGeom = QgsGeometry( outFeat.geometry() )
- try:
- tmpOutGeom = QgsGeometry( tmpOutGeom.combine( tmpInGeom ) )
- outFeat.setGeometry( tmpOutGeom )
- except:
- GEOS_EXCEPT = False
- add = False
- if add:
- outFeat.setAttributeMap( attrs )
- writer.addFeature( outFeat )
+ tmp_geom = QgsGeometry( inFeat.geometry() )
+ geoms.append(tmp_geoms)
+ outGeom = QgsGeometry(inGeom.combineCascaded(geoms))
+ nElement += nFeat/2
+ self.emit( SIGNAL( "runStatus(PyQt_PyObject)" ), nElement )
+ outFeat.setGeometry(outGeom)
+ outFeat.setAttributeMap(attrs)
+ writer.addFeature(outFeat)
del writer
return GEOS_EXCEPT, FEATURE_EXCEPT, True
Modified: trunk/qgis/python/plugins/fTools/tools/doRegPoints.py
===================================================================
--- trunk/qgis/python/plugins/fTools/tools/doRegPoints.py 2010-04-14 16:50:56 UTC (rev 13311)
+++ trunk/qgis/python/plugins/fTools/tools/doRegPoints.py 2010-04-15 00:24:02 UTC (rev 13312)
@@ -44,6 +44,10 @@
QDialog.__init__(self)
self.iface = iface
self.setupUi(self)
+ self.xMin.setValidator(QDoubleValidator(self.xMin))
+ self.xMax.setValidator(QDoubleValidator(self.xMax))
+ self.yMin.setValidator(QDoubleValidator(self.yMin))
+ self.yMax.setValidator(QDoubleValidator(self.yMax))
QObject.connect(self.toolOut, SIGNAL("clicked()"), self.outFile)
self.setWindowTitle( self.tr("Regular points") )
self.progressBar.setValue(0)
More information about the QGIS-commit
mailing list