From 06d20455f5aa80b1ec259d702d574a24de597834 Mon Sep 17 00:00:00 2001 From: Victor Olaya Date: Wed, 17 Apr 2013 11:18:49 +0200 Subject: [PATCH] [sextante] fixed problem when exporting non-file based data to be used by 3rd party apps --- python/plugins/sextante/core/LayerExporter.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/python/plugins/sextante/core/LayerExporter.py b/python/plugins/sextante/core/LayerExporter.py index bf5b8a4b333..06c779e56d4 100644 --- a/python/plugins/sextante/core/LayerExporter.py +++ b/python/plugins/sextante/core/LayerExporter.py @@ -49,12 +49,18 @@ class LayerExporter(): It also export to a new file if the original one contains non-ascii characters''' settings = QSettings() systemEncoding = settings.value( "/UI/encoding", "System" ).toString() + filename = os.path.basename(unicode(layer.source())) idx = filename.rfind(".") if idx != -1: filename = filename[:idx] - output = SextanteUtils.getTempFilenameInTempFolder(filename + ".shp") - #output = SextanteUtils.getTempFilename("shp") + + filename = str(layer.name()) + validChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789:" + filename = ''.join(c for c in filename if c in validChars) + if len(filename) == 0: + filename = "layer" + output = SextanteUtils.getTempFilenameInTempFolder(filename + ".shp") provider = layer.dataProvider() useSelection = SextanteConfig.getSetting(SextanteConfig.USE_SELECTED) if useSelection and layer.selectedFeatureCount() != 0: