@@ -74,10 +74,14 @@ def changeMode( self ):
74
74
self .label .setText ( self .tr ( "Input files" ) )
75
75
QObject .disconnect ( self .btnSelectDir , SIGNAL ( "clicked()" ), self .inputDir )
76
76
QObject .connect ( self .btnSelectDir , SIGNAL ( "clicked()" ), self .inputFile )
77
+ self .lblGeometry .setEnabled ( False )
78
+ self .cmbGeometry .setEnabled ( False )
77
79
else :
78
80
self .label .setText ( self .tr ( "Input directory" ) )
79
81
QObject .disconnect ( self .btnSelectDir , SIGNAL ( "clicked()" ), self .inputFile )
80
82
QObject .connect ( self .btnSelectDir , SIGNAL ( "clicked()" ), self .inputDir )
83
+ self .lblGeometry .setEnabled ( True )
84
+ self .cmbGeometry .setEnabled ( True )
81
85
82
86
def reject ( self ):
83
87
QDialog .reject ( self )
@@ -95,25 +99,28 @@ def accept( self ):
95
99
self .inputFiles = None
96
100
return
97
101
98
- self .progressFiles .setRange ( 0 , self .inputFiles .count () )
99
-
100
102
if self .outFileName is None :
101
103
QMessageBox .warning ( self , self .tr ( "No output file" ),
102
104
self .tr ( "Please specify output file." ) )
103
105
return
104
106
105
- outFile = QFile ( self .outFileName )
106
- if outFile .exists ():
107
- if not QgsVectorFileWriter .deleteShapeFile ( self .outFileName ):
108
- QMessageBox .warning ( self , self .tr ( "Delete error" ), self .tr ( "Can't delete file %1" ).arg ( outFileName ) )
109
- return
110
-
111
107
if self .chkListMode .isChecked ():
112
108
files = self .leInputDir .text ().split ( ";" )
113
109
baseDir = QFileInfo ( files [ 0 ] ).absolutePath ()
114
110
else :
115
111
baseDir = self .leInputDir .text ()
116
112
113
+ # look for shapes with specified geometry type
114
+ self .inputFiles = ftools_utils .getShapesByGeometryType ( baseDir , self .inputFiles , self .cmbGeometry .currentIndex () )
115
+
116
+ self .progressFiles .setRange ( 0 , self .inputFiles .count () )
117
+
118
+ outFile = QFile ( self .outFileName )
119
+ if outFile .exists ():
120
+ if not QgsVectorFileWriter .deleteShapeFile ( self .outFileName ):
121
+ QMessageBox .warning ( self , self .tr ( "Delete error" ), self .tr ( "Can't delete file %1" ).arg ( outFileName ) )
122
+ return
123
+
117
124
QApplication .setOverrideCursor ( QCursor ( Qt .WaitCursor ) )
118
125
self .btnOk .setEnabled ( False )
119
126
@@ -197,6 +204,8 @@ def run( self ):
197
204
for fileName in self .shapes :
198
205
layerPath = QFileInfo ( self .baseDir + "/" + fileName ).absoluteFilePath ()
199
206
newLayer = QgsVectorLayer ( layerPath , QFileInfo ( layerPath ).baseName (), "ogr" )
207
+ if not newLayer .isValid ():
208
+ continue
200
209
vprovider = newLayer .dataProvider ()
201
210
allAttrs = vprovider .attributeIndexes ()
202
211
vprovider .select ( allAttrs )
0 commit comments