diff --git a/python/plugins/GdalTools/tools/GdalTools_utils.py b/python/plugins/GdalTools/tools/GdalTools_utils.py index 3a4c3eb863f..730712f965f 100644 --- a/python/plugins/GdalTools/tools/GdalTools_utils.py +++ b/python/plugins/GdalTools/tools/GdalTools_utils.py @@ -430,6 +430,30 @@ class FileFilter: return self.rastersFilter + # Retrieves the filter for supported raster files to save + # Skip *, *.zip and *.vrt and move tif to top + # TODO: only the formats with GDAL_DCAP_CREATE + @classmethod + def saveRastersFilter(self): + # move tif to top if available + available = self.allRastersFilter().split(";;") + + filters = [] + + for f in available: + if "*.tif" in f: + filters.append( f ) + break + + for f in available: + if "*.tif" in f or "*.zip" in f or "(*)" in f: + continue + + filters.append( f ) + + return ";;".join( filters ) + + # Retrieves the last used filter for raster files # Note: filter string is in a list @classmethod diff --git a/python/plugins/GdalTools/tools/doClipper.py b/python/plugins/GdalTools/tools/doClipper.py index d1e70ba33b5..a0e715e9e99 100644 --- a/python/plugins/GdalTools/tools/doClipper.py +++ b/python/plugins/GdalTools/tools/doClipper.py @@ -112,7 +112,7 @@ class GdalToolsDialog(QWidget, Ui_Widget, BasePluginWidget): def fillOutputFileEdit(self): lastUsedFilter = Utils.FileFilter.lastUsedRasterFilter() - outputFile = Utils.FileDialog.getSaveFileName(self, self.tr( "Select the raster file to save the results to" ), Utils.FileFilter.allRastersFilter(), lastUsedFilter) + outputFile = Utils.FileDialog.getSaveFileName(self, self.tr( "Select the raster file to save the results to" ), Utils.FileFilter.saveRastersFilter(), lastUsedFilter) if outputFile == '': return Utils.FileFilter.setLastUsedRasterFilter(lastUsedFilter) diff --git a/python/plugins/GdalTools/tools/doDEM.py b/python/plugins/GdalTools/tools/doDEM.py index 8a5ba5925fa..2343553c3e5 100644 --- a/python/plugins/GdalTools/tools/doDEM.py +++ b/python/plugins/GdalTools/tools/doDEM.py @@ -108,7 +108,7 @@ class GdalToolsDialog(QWidget, Ui_Widget, BasePluginWidget): def fillOutputFileEdit(self): lastUsedFilter = Utils.FileFilter.lastUsedRasterFilter() - outputFile = Utils.FileDialog.getSaveFileName(self, self.tr( "Select the raster file to save the results to" ), Utils.FileFilter.allRastersFilter(), lastUsedFilter ) + outputFile = Utils.FileDialog.getSaveFileName(self, self.tr( "Select the raster file to save the results to" ), Utils.FileFilter.saveRastersFilter(), lastUsedFilter ) if not outputFile: return Utils.FileFilter.setLastUsedRasterFilter(lastUsedFilter) diff --git a/python/plugins/GdalTools/tools/doFillNodata.py b/python/plugins/GdalTools/tools/doFillNodata.py index 7b1f6710ff1..2099a27db83 100644 --- a/python/plugins/GdalTools/tools/doFillNodata.py +++ b/python/plugins/GdalTools/tools/doFillNodata.py @@ -118,7 +118,7 @@ class GdalToolsDialog( QWidget, Ui_Widget, BaseBatchWidget ): def fillOutputFile( self ): lastUsedFilter = Utils.FileFilter.lastUsedRasterFilter() - outputFile = Utils.FileDialog.getSaveFileName( self, self.tr( "Select the raster file to save the results to" ), Utils.FileFilter.allRastersFilter(), lastUsedFilter ) + outputFile = Utils.FileDialog.getSaveFileName( self, self.tr( "Select the raster file to save the results to" ), Utils.FileFilter.saveRastersFilter(), lastUsedFilter ) if not outputFile: return Utils.FileFilter.setLastUsedRasterFilter( lastUsedFilter ) diff --git a/python/plugins/GdalTools/tools/doGrid.py b/python/plugins/GdalTools/tools/doGrid.py index 4203f64d6c1..0170d3655fe 100644 --- a/python/plugins/GdalTools/tools/doGrid.py +++ b/python/plugins/GdalTools/tools/doGrid.py @@ -113,7 +113,7 @@ class GdalToolsDialog(QWidget, Ui_Widget, BasePluginWidget): def fillOutputFileEdit(self): lastUsedFilter = Utils.FileFilter.lastUsedRasterFilter() - outputFile = Utils.FileDialog.getSaveFileName(self, self.tr( "Select the raster file to save the results to" ), Utils.FileFilter.allRastersFilter(), lastUsedFilter ) + outputFile = Utils.FileDialog.getSaveFileName(self, self.tr( "Select the raster file to save the results to" ), Utils.FileFilter.saveRastersFilter(), lastUsedFilter ) if not outputFile: return Utils.FileFilter.setLastUsedRasterFilter(lastUsedFilter) diff --git a/python/plugins/GdalTools/tools/doMerge.py b/python/plugins/GdalTools/tools/doMerge.py index efa9f2456c0..f2098a6651b 100644 --- a/python/plugins/GdalTools/tools/doMerge.py +++ b/python/plugins/GdalTools/tools/doMerge.py @@ -121,7 +121,7 @@ class GdalToolsDialog(QWidget, Ui_Widget, BasePluginWidget): def fillOutputFileEdit(self): lastUsedFilter = Utils.FileFilter.lastUsedRasterFilter() - outputFile = Utils.FileDialog.getSaveFileName(self, self.tr( "Select where to save the Merge output" ), Utils.FileFilter.allRastersFilter(), lastUsedFilter ) + outputFile = Utils.FileDialog.getSaveFileName(self, self.tr( "Select where to save the Merge output" ), Utils.FileFilter.saveRastersFilter(), lastUsedFilter ) if not outputFile: return Utils.FileFilter.setLastUsedRasterFilter(lastUsedFilter) diff --git a/python/plugins/GdalTools/tools/doNearBlack.py b/python/plugins/GdalTools/tools/doNearBlack.py index d23f41ce478..f1ef1307ff5 100644 --- a/python/plugins/GdalTools/tools/doNearBlack.py +++ b/python/plugins/GdalTools/tools/doNearBlack.py @@ -73,7 +73,7 @@ class GdalToolsDialog(QWidget, Ui_Widget, BasePluginWidget): def fillOutputFileEdit(self): lastUsedFilter = Utils.FileFilter.lastUsedRasterFilter() - outputFile = Utils.FileDialog.getSaveFileName(self, self.tr( "Select the raster file to save the results to" ), Utils.FileFilter.allRastersFilter(), lastUsedFilter) + outputFile = Utils.FileDialog.getSaveFileName(self, self.tr( "Select the raster file to save the results to" ), Utils.FileFilter.saveRastersFilter(), lastUsedFilter) if not outputFile: return Utils.FileFilter.setLastUsedRasterFilter(lastUsedFilter) diff --git a/python/plugins/GdalTools/tools/doPctRgb.py b/python/plugins/GdalTools/tools/doPctRgb.py index c5bd7cd7b64..b0e499b7916 100644 --- a/python/plugins/GdalTools/tools/doPctRgb.py +++ b/python/plugins/GdalTools/tools/doPctRgb.py @@ -109,7 +109,7 @@ class GdalToolsDialog(QWidget, Ui_Widget, BaseBatchWidget): def fillOutputFileEdit(self): lastUsedFilter = Utils.FileFilter.lastUsedRasterFilter() - outputFile = Utils.FileDialog.getSaveFileName(self, self.tr( "Select the raster file to save the results to" ), Utils.FileFilter.allRastersFilter(), lastUsedFilter ) + outputFile = Utils.FileDialog.getSaveFileName(self, self.tr( "Select the raster file to save the results to" ), Utils.FileFilter.saveRastersFilter(), lastUsedFilter ) if not outputFile: return Utils.FileFilter.setLastUsedRasterFilter(lastUsedFilter) diff --git a/python/plugins/GdalTools/tools/doProximity.py b/python/plugins/GdalTools/tools/doProximity.py index 2e5573cba20..a5411c14671 100644 --- a/python/plugins/GdalTools/tools/doProximity.py +++ b/python/plugins/GdalTools/tools/doProximity.py @@ -76,7 +76,7 @@ class GdalToolsDialog(QWidget, Ui_Widget, BasePluginWidget): def fillOutputFileEdit(self): lastUsedFilter = Utils.FileFilter.lastUsedRasterFilter() - outputFile = Utils.FileDialog.getSaveFileName(self, self.tr( "Select the raster file to save the results to" ), Utils.FileFilter.allRastersFilter(), lastUsedFilter) + outputFile = Utils.FileDialog.getSaveFileName(self, self.tr( "Select the raster file to save the results to" ), Utils.FileFilter.saveRastersFilter(), lastUsedFilter) if not outputFile: return Utils.FileFilter.setLastUsedRasterFilter(lastUsedFilter) diff --git a/python/plugins/GdalTools/tools/doRasterize.py b/python/plugins/GdalTools/tools/doRasterize.py index 910b865ae6b..62d628132db 100644 --- a/python/plugins/GdalTools/tools/doRasterize.py +++ b/python/plugins/GdalTools/tools/doRasterize.py @@ -96,10 +96,12 @@ class GdalToolsDialog(QWidget, Ui_Widget, BasePluginWidget): gdalVersion = Utils.GdalConfig.versionNum() if gdalVersion >= 1800: fileDialogFunc = Utils.FileDialog.getSaveFileName + filters = Utils.FileFilter.saveRastersFilter() else: fileDialogFunc = Utils.FileDialog.getOpenFileName + filters = Utils.FileFilter.allRastersFilter() - outputFile = fileDialogFunc(self, self.tr( "Select the raster file to save the results to" ), Utils.FileFilter.allRastersFilter(), lastUsedFilter) + outputFile = fileDialogFunc(self, self.tr( "Select the raster file to save the results to" ), filters, lastUsedFilter) if not outputFile: return Utils.FileFilter.setLastUsedRasterFilter(lastUsedFilter) diff --git a/python/plugins/GdalTools/tools/doRgbPct.py b/python/plugins/GdalTools/tools/doRgbPct.py index c415f1531ad..07be08e4ce1 100644 --- a/python/plugins/GdalTools/tools/doRgbPct.py +++ b/python/plugins/GdalTools/tools/doRgbPct.py @@ -106,7 +106,7 @@ class GdalToolsDialog(QWidget, Ui_Widget, BaseBatchWidget): def fillOutputFileEdit(self): lastUsedFilter = Utils.FileFilter.lastUsedRasterFilter() - outputFile = Utils.FileDialog.getSaveFileName(self, self.tr( "Select the raster file to save the results to" ), Utils.FileFilter.allRastersFilter(), lastUsedFilter ) + outputFile = Utils.FileDialog.getSaveFileName(self, self.tr( "Select the raster file to save the results to" ), Utils.FileFilter.saveRastersFilter(), lastUsedFilter ) if not outputFile: return Utils.FileFilter.setLastUsedRasterFilter(lastUsedFilter) diff --git a/python/plugins/GdalTools/tools/doSieve.py b/python/plugins/GdalTools/tools/doSieve.py index 9cf618e391d..0d4c2fc7b6e 100644 --- a/python/plugins/GdalTools/tools/doSieve.py +++ b/python/plugins/GdalTools/tools/doSieve.py @@ -71,7 +71,7 @@ class GdalToolsDialog(QWidget, Ui_Widget, BasePluginWidget): def fillOutputFileEdit(self): lastUsedFilter = Utils.FileFilter.lastUsedRasterFilter() - outputFile = Utils.FileDialog.getSaveFileName(self, self.tr( "Select the raster file to save the results to" ), Utils.FileFilter.allRastersFilter(), lastUsedFilter ) + outputFile = Utils.FileDialog.getSaveFileName(self, self.tr( "Select the raster file to save the results to" ), Utils.FileFilter.saveRastersFilter(), lastUsedFilter ) if not outputFile: return Utils.FileFilter.setLastUsedRasterFilter(lastUsedFilter) diff --git a/python/plugins/GdalTools/tools/doTranslate.py b/python/plugins/GdalTools/tools/doTranslate.py index aa2c0552f81..2e381de1e2e 100644 --- a/python/plugins/GdalTools/tools/doTranslate.py +++ b/python/plugins/GdalTools/tools/doTranslate.py @@ -158,7 +158,7 @@ class GdalToolsDialog(QWidget, Ui_Widget, BaseBatchWidget): def fillOutputFileEdit(self): lastUsedFilter = Utils.FileFilter.lastUsedRasterFilter() - outputFile = Utils.FileDialog.getSaveFileName(self, self.tr( "Select the raster file to save the results to" ), Utils.FileFilter.allRastersFilter(), lastUsedFilter ) + outputFile = Utils.FileDialog.getSaveFileName(self, self.tr( "Select the raster file to save the results to" ), Utils.FileFilter.saveRastersFilter(), lastUsedFilter ) if not outputFile: return Utils.FileFilter.setLastUsedRasterFilter(lastUsedFilter) diff --git a/python/plugins/GdalTools/tools/doWarp.py b/python/plugins/GdalTools/tools/doWarp.py index ae552f60c7e..821d699dd30 100644 --- a/python/plugins/GdalTools/tools/doWarp.py +++ b/python/plugins/GdalTools/tools/doWarp.py @@ -126,7 +126,7 @@ class GdalToolsDialog(QWidget, Ui_Widget, BaseBatchWidget): def fillOutputFileEdit(self): lastUsedFilter = Utils.FileFilter.lastUsedRasterFilter() - outputFile = Utils.FileDialog.getSaveFileName(self, self.tr( "Select the raster file to save the results to" ), Utils.FileFilter.allRastersFilter(), lastUsedFilter ) + outputFile = Utils.FileDialog.getSaveFileName(self, self.tr( "Select the raster file to save the results to" ), Utils.FileFilter.saveRastersFilter(), lastUsedFilter ) if not outputFile: return Utils.FileFilter.setLastUsedRasterFilter(lastUsedFilter)