Skip to content

Commit

Permalink
Adds validators for numeric input text edits. Patch supplied by Alexa…
Browse files Browse the repository at this point in the history
…nder Bruy

git-svn-id: http://svn.osgeo.org/qgis/trunk/qgis@13312 c8812cc2-4d05-0410-92ff-de0c093fc19c
  • Loading branch information
cfarmer committed Apr 15, 2010
1 parent 5a264a2 commit a020030
Show file tree
Hide file tree
Showing 2 changed files with 56 additions and 65 deletions.
117 changes: 52 additions & 65 deletions python/plugins/fTools/tools/doGeoprocessing.py
Expand Up @@ -12,6 +12,7 @@ def __init__( self, iface, function ):
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 )
Expand Down Expand Up @@ -541,12 +542,14 @@ def dissolve( self, useField ):
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()
Expand All @@ -556,24 +559,21 @@ def dissolve( self, useField ):
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 )
Expand All @@ -584,31 +584,25 @@ def dissolve( self, useField ):
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()
Expand All @@ -617,58 +611,51 @@ def dissolve( self, useField ):
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

Expand Down
4 changes: 4 additions & 0 deletions python/plugins/fTools/tools/doRegPoints.py
Expand Up @@ -44,6 +44,10 @@ def __init__(self, iface):
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)
Expand Down

0 comments on commit a020030

Please sign in to comment.