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
+
+
+
+ -
+