mirror of
https://github.com/qgis/QGIS.git
synced 2025-04-14 00:07:35 -04:00
parent
bc002f7ecf
commit
7d75fcc387
@ -118,7 +118,7 @@ class Dialog( QDialog, Ui_Dialog ):
|
||||
if self.inputFiles is None:
|
||||
workDir = QDir( self.leInputDir.text() )
|
||||
workDir.setFilter( QDir.Files | QDir.NoSymLinks | QDir.NoDotAndDotDot )
|
||||
nameFilter = [ "*.shp" << "*.SHP" ]
|
||||
nameFilter = [ "*.shp", "*.SHP" ]
|
||||
workDir.setNameFilters( nameFilter )
|
||||
self.inputFiles = workDir.entryList()
|
||||
if len( self.inputFiles ) == 0:
|
||||
@ -251,22 +251,24 @@ class ShapeMergeThread( QThread ):
|
||||
if not newLayer.isValid():
|
||||
continue
|
||||
|
||||
newLayer.setProviderEncoding( self.inputEncoding )
|
||||
vprovider = newLayer.dataProvider()
|
||||
|
||||
fieldMap[shapeIndex] = {}
|
||||
fieldIndex = 0
|
||||
for layerField in vprovider.fields():
|
||||
fieldFound = False
|
||||
for mergedField in mergedFields:
|
||||
for mergedFieldIndex, mergedField in enumerate(mergedFields):
|
||||
if mergedField.name() == layerField.name() and mergedField.type() == layerField.type():
|
||||
fieldFound = True
|
||||
fieldMap[shapeIndex][fieldIndex] = mergedFieldIndex
|
||||
|
||||
if mergedField.length() < layerField.length():
|
||||
# suit the field size to the field of this layer
|
||||
mergedField.setLength( layerField.length() )
|
||||
break
|
||||
|
||||
if not fieldFound:
|
||||
if not fieldMap.has_key(shapeIndex):
|
||||
fieldMap[shapeIndex]={}
|
||||
|
||||
fieldMap[shapeIndex][fieldIndex] = len(mergedFields)
|
||||
|
||||
mergedFields.append( layerField )
|
||||
|
||||
fieldIndex += 1
|
||||
@ -295,8 +297,8 @@ class ShapeMergeThread( QThread ):
|
||||
newLayer = QgsVectorLayer( layerPath, QFileInfo( layerPath ).baseName(), "ogr" )
|
||||
if not newLayer.isValid():
|
||||
continue
|
||||
newLayer.setProviderEncoding( self.inputEncoding )
|
||||
vprovider = newLayer.dataProvider()
|
||||
vprovider.setEncoding( self.inputEncoding )
|
||||
layerFields = vprovider.fields()
|
||||
nFeat = vprovider.featureCount()
|
||||
self.emit( SIGNAL( "rangeChanged( PyQt_PyObject )" ), nFeat )
|
||||
|
@ -123,7 +123,7 @@ class Dialog(QDialog, Ui_Dialog):
|
||||
provider2 = layer2.dataProvider()
|
||||
|
||||
fieldList2 = ftools_utils.getFieldList(layer2)
|
||||
fieldList = []
|
||||
fieldList = QgsFields()
|
||||
if provider1.crs() != provider2.crs():
|
||||
QMessageBox.warning(self, self.tr("CRS warning!"), self.tr("Warning: Input layers have non-matching CRS.\nThis may cause unexpected results."))
|
||||
if not summary:
|
||||
|
Loading…
x
Reference in New Issue
Block a user