Skip to content

Commit ba6e2dc

Browse files
committed
Fix showing gdal command in algorithm dialog
1 parent 3d3d297 commit ba6e2dc

File tree

3 files changed

+13
-7
lines changed

3 files changed

+13
-7
lines changed

python/plugins/processing/algs/gdal/GdalAlgorithmDialog.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,15 @@
3737
QSizePolicy,
3838
QDialogButtonBox)
3939

40+
from qgis.core import QgsProcessingFeedback
4041
from qgis.gui import QgsMessageBar
4142

4243
from processing.gui.AlgorithmDialog import AlgorithmDialog
4344
from processing.gui.AlgorithmDialogBase import AlgorithmDialogBase
4445
from processing.gui.ParametersPanel import ParametersPanel
4546
from processing.gui.MultipleInputPanel import MultipleInputPanel
4647
from processing.gui.NumberInputPanel import NumberInputPanel
48+
from processing.tools.dataobjects import createContext
4749

4850

4951
class GdalAlgorithmDialog(AlgorithmDialog):
@@ -102,15 +104,15 @@ def connectParameterSignals(self):
102104
w.hasChanged.connect(self.parametersHaveChanged)
103105

104106
def parametersHaveChanged(self):
107+
context = createContext()
108+
feedback = QgsProcessingFeedback()
105109
try:
106110
parameters = self.parent.getParamValues()
107111
for output in self.alg.destinationParameterDefinitions():
108-
if parameters[output.name()] is None:
112+
if not output.name() in parameters or parameters[output.name()] is None:
109113
parameters[output.name()] = self.tr("[temporary file]")
110-
commands = self.alg.getConsoleCommands(parameters)
114+
commands = self.alg.getConsoleCommands(parameters, context, feedback)
111115
commands = [c for c in commands if c not in ['cmd.exe', '/C ']]
112116
self.text.setPlainText(" ".join(commands))
113117
except AlgorithmDialogBase.InvalidParameterValue as e:
114118
self.text.setPlainText(self.tr("Invalid value for parameter '{0}'").format(e.parameter.description()))
115-
except:
116-
self.text.setPlainText("")

python/plugins/processing/algs/gdal/GdalUtils.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,8 @@ def escapeAndJoin(strList):
198198
+ '"'
199199
else:
200200
escaped = s
201-
joined += escaped + ' '
201+
if escaped is not None:
202+
joined += escaped + ' '
202203
return joined.strip()
203204

204205
@staticmethod
@@ -245,7 +246,7 @@ def ogrConnectionStringAndFormat(uri, context):
245246
if layer is None:
246247
path, ext = os.path.splitext(uri)
247248
format = QgsVectorFileWriter.driverForExtension(ext)
248-
return '"' + uri + '"', format
249+
return '"' + uri + '"', '"' + format + '"'
249250

250251
provider = layer.dataProvider().name()
251252
if provider == 'spatialite':
@@ -317,7 +318,7 @@ def ogrConnectionStringAndFormat(uri, context):
317318
path, ext = os.path.splitext(ogrstr)
318319
format = QgsVectorFileWriter.driverForExtension(ext)
319320

320-
return '"' + ogrstr + '"', format
321+
return '"' + ogrstr + '"', '"' + format + '"'
321322

322323
@staticmethod
323324
def ogrLayerName(uri):

python/plugins/processing/gui/AlgorithmDialog.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,9 @@ def runAsBatch(self):
9393
def getParamValues(self):
9494
parameters = {}
9595

96+
if not hasattr(self, 'mainWidget') or self.mainWidget is None:
97+
return parameters
98+
9699
for param in self.alg.parameterDefinitions():
97100
if param.flags() & QgsProcessingParameterDefinition.FlagHidden:
98101
continue

0 commit comments

Comments
 (0)