37
37
from qgis .core import (QgsDataSourceUri ,
38
38
QgsCredentials ,
39
39
QgsSettings ,
40
- QgsProcessingOutputVectorLayer )
40
+ QgsProcessingOutputVectorLayer ,
41
+ QgsProcessingFeatureSinkDefinition )
41
42
from processing .core .ProcessingConfig import ProcessingConfig
42
43
from processing .core .outputs import OutputVector
43
44
from processing .core .outputs import OutputDirectory
@@ -62,6 +63,8 @@ def __init__(self, parameter, alg):
62
63
63
64
self .parameter = parameter
64
65
self .alg = alg
66
+ settings = QgsSettings ()
67
+ self .encoding = settings .value ('/Processing/encoding' , 'System' )
65
68
66
69
if hasattr (self .leText , 'setPlaceholderText' ):
67
70
if isinstance (self .parameter , QgsProcessingOutputVectorLayer ) \
@@ -159,17 +162,15 @@ def saveToSpatialite(self):
159
162
else :
160
163
path = ProcessingConfig .getSetting (ProcessingConfig .OUTPUT_FOLDER )
161
164
162
- encoding = settings .value ('/Processing/encoding' , 'System' )
163
165
fileDialog = QgsEncodingFileDialog (
164
- self , self .tr ('Save Spatialite' ), path , fileFilter , encoding )
166
+ self , self .tr ('Save Spatialite' ), path , fileFilter , self . encoding )
165
167
fileDialog .setFileMode (QFileDialog .AnyFile )
166
168
fileDialog .setAcceptMode (QFileDialog .AcceptSave )
167
169
fileDialog .setOption (QFileDialog .DontConfirmOverwrite , True )
168
170
169
171
if fileDialog .exec_ () == QDialog .Accepted :
170
172
files = fileDialog .selectedFiles ()
171
- encoding = str (fileDialog .encoding ())
172
- self .parameter .encoding = encoding
173
+ self .encoding = str (fileDialog .encoding ())
173
174
fileName = str (files [0 ])
174
175
selectedFileFilter = str (fileDialog .selectedNameFilter ())
175
176
if not fileName .lower ().endswith (
@@ -179,7 +180,7 @@ def saveToSpatialite(self):
179
180
fileName += ext .group (1 )
180
181
settings .setValue ('/Processing/LastOutputPath' ,
181
182
os .path .dirname (fileName ))
182
- settings .setValue ('/Processing/encoding' , encoding )
183
+ settings .setValue ('/Processing/encoding' , self . encoding )
183
184
184
185
uri = QgsDataSourceUri ()
185
186
uri .setDatabase (fileName )
@@ -196,17 +197,15 @@ def selectFile(self):
196
197
else :
197
198
path = ProcessingConfig .getSetting (ProcessingConfig .OUTPUT_FOLDER )
198
199
199
- encoding = settings .value ('/Processing/encoding' , 'System' )
200
200
fileDialog = QgsEncodingFileDialog (
201
- self , self .tr ('Save file' ), path , fileFilter , encoding )
201
+ self , self .tr ('Save file' ), path , fileFilter , self . encoding )
202
202
fileDialog .setFileMode (QFileDialog .AnyFile )
203
203
fileDialog .setAcceptMode (QFileDialog .AcceptSave )
204
204
fileDialog .setOption (QFileDialog .DontConfirmOverwrite , False )
205
205
206
206
if fileDialog .exec_ () == QDialog .Accepted :
207
207
files = fileDialog .selectedFiles ()
208
- encoding = str (fileDialog .encoding ())
209
- self .parameter .encoding = encoding
208
+ self .encoding = str (fileDialog .encoding ())
210
209
fileName = str (files [0 ])
211
210
selectedFileFilter = str (fileDialog .selectedNameFilter ())
212
211
if not fileName .lower ().endswith (
@@ -217,7 +216,7 @@ def selectFile(self):
217
216
self .leText .setText (fileName )
218
217
settings .setValue ('/Processing/LastOutputPath' ,
219
218
os .path .dirname (fileName ))
220
- settings .setValue ('/Processing/encoding' , encoding )
219
+ settings .setValue ('/Processing/encoding' , self . encoding )
221
220
222
221
def selectDirectory (self ):
223
222
lastDir = ''
@@ -226,6 +225,11 @@ def selectDirectory(self):
226
225
self .leText .setText (dirName )
227
226
228
227
def getValue (self ):
228
+ key = None
229
229
if not self .leText .text ():
230
- return 'memory:'
231
- return self .leText .text ()
230
+ key = 'memory:'
231
+ else :
232
+ key = self .leText .text ()
233
+ value = QgsProcessingFeatureSinkDefinition (key )
234
+ value .createOptions = {'fileEncoding' : self .encoding }
235
+ return value
0 commit comments