diff --git a/python/plugins/GdalTools/tools/doPolygonize.py b/python/plugins/GdalTools/tools/doPolygonize.py index fcbfd60bd82..9d7a4150a88 100644 --- a/python/plugins/GdalTools/tools/doPolygonize.py +++ b/python/plugins/GdalTools/tools/doPolygonize.py @@ -25,15 +25,18 @@ class GdalToolsDialog(QWidget, Ui_Widget, BasePluginWidget): [ (self.inSelector, SIGNAL("filenameChanged()")), (self.outSelector, SIGNAL("filenameChanged()")), + (self.maskSelector, SIGNAL("filenameChanged()"), self.maskCheck), (self.fieldEdit, SIGNAL("textChanged(const QString &)"), self.fieldCheck) ] ) self.connect(self.inSelector, SIGNAL("selectClicked()"), self.fillInputFileEdit) self.connect(self.outSelector, SIGNAL("selectClicked()"), self.fillOutputFileEdit) + self.connect(self.maskSelector, SIGNAL("selectClicked()"), self.fillMaskFileEdit) def onLayersChanged(self): self.inSelector.setLayers( Utils.LayerRegistry.instance().getRasterLayers() ) + self.maskSelector.setLayers( Utils.LayerRegistry.instance().getRasterLayers() ) def fillInputFileEdit(self): lastUsedFilter = Utils.FileFilter.lastUsedRasterFilter() @@ -55,10 +58,23 @@ class GdalToolsDialog(QWidget, Ui_Widget, BasePluginWidget): self.outSelector.setFilename(outputFile) self.lastEncoding = encoding + def fillMaskFileEdit(self): + lastUsedFilter = Utils.FileFilter.lastUsedRasterFilter() + maskFile = Utils.FileDialog.getOpenFileName(self, self.tr( "Select the input file for Polygonize" ), Utils.FileFilter.allRastersFilter(), lastUsedFilter ) + if maskFile.isEmpty(): + return + Utils.FileFilter.setLastUsedRasterFilter(lastUsedFilter) + + self.maskSelector.setFilename(maskFile) + def getArguments(self): arguments = QStringList() arguments << self.getInputFileName() outputFn = self.getOutputFileName() + maskFn = self.getMaskFileName() + if self.maskCheck.isChecked() and not maskFn.isEmpty(): + arguments << "-mask" + arguments << maskFn if not outputFn.isEmpty(): arguments << "-f" arguments << self.outputFormat @@ -74,6 +90,9 @@ class GdalToolsDialog(QWidget, Ui_Widget, BasePluginWidget): def getInputFileName(self): return self.inSelector.filename() + + def getMaskFileName(self): + return self.maskSelector.filename() def addLayerIntoCanvas(self, fileInfo): vl = self.iface.addVectorLayer(fileInfo.filePath(), fileInfo.baseName(), "ogr") diff --git a/python/plugins/GdalTools/tools/widgetPolygonize.ui b/python/plugins/GdalTools/tools/widgetPolygonize.ui index 6bab002bb00..93e5cfc5c3f 100644 --- a/python/plugins/GdalTools/tools/widgetPolygonize.ui +++ b/python/plugins/GdalTools/tools/widgetPolygonize.ui @@ -6,8 +6,8 @@ 0 0 - 449 - 94 + 446 + 121 @@ -19,50 +19,56 @@ Polygonize (Raster to vector) - - - - - - - &Input file (raster) - - - inSelector - - - - - - - &Output file for polygons (shapefile) - - - outSelector - - - - - - - &Field name - - - - - - - DN - - - - - - - - - - + + + + + &Input file (raster) + + + inSelector + + + + + + + + + + &Output file for polygons (shapefile) + + + outSelector + + + + + + + + + + &Field name + + + + + + + DN + + + + + + + Use mask + + + + +