Skip to content

Commit a2bd6d8

Browse files
committedMar 15, 2013
[sextante] fixes in batch processing interface for #7348
1 parent 08f2e84 commit a2bd6d8

File tree

2 files changed

+33
-13
lines changed

2 files changed

+33
-13
lines changed
 

‎python/plugins/sextante/gui/BatchInputSelectionPanel.py

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
__copyright__ = '(C) 2012, Victor Olaya'
2323
# This will get replaced with a git SHA1 when you do a git archive
2424
__revision__ = '$Format:%H$'
25-
25+
import os
2626
from PyQt4 import QtGui, QtCore
2727
from sextante.parameters.ParameterMultipleInput import ParameterMultipleInput
2828

@@ -49,13 +49,26 @@ def __init__(self, param, row, col, batchDialog, parent = None):
4949
self.horizontalLayout.addWidget(self.pushButton)
5050
self.setLayout(self.horizontalLayout)
5151

52-
def showSelectionDialog(self):
53-
ret = QtGui.QFileDialog.getOpenFileNames(self, "Open file", QtCore.QString(), "All files (*.*)")
54-
if ret:
55-
files = list(ret)
52+
def showSelectionDialog(self):
53+
settings = QtCore.QSettings()
54+
text = str(self.text.text())
55+
if os.path.isdir(text):
56+
path = text
57+
elif os.path.isdir(os.path.dirname(text)):
58+
path = os.path.dirname(text)
59+
elif settings.contains("/SextanteQGIS/LastInputPath"):
60+
path = str(settings.value( "/SextanteQGIS/LastInputPath",QtCore.QVariant( "" ) ).toString())
61+
else:
62+
path = ""
63+
64+
ret = QtGui.QFileDialog.getOpenFileNames(self, "Open file", path, "All files (*.*)")
65+
if ret:
66+
files = list(ret)
5667
if len(files) == 1:
68+
settings.setValue("/SextanteQGIS/LastInputPath", os.path.dirname(str(files[0])))
5769
self.text.setText(str(files[0]))
5870
else:
71+
settings.setValue("/SextanteQGIS/LastInputPath", os.path.dirname(str(files[0])))
5972
if isinstance(self.param, ParameterMultipleInput):
6073
self.text.setText(";".join(str(f) for f in files))
6174
else:

‎python/plugins/sextante/gui/BatchProcessingDialog.py

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@
1616
* *
1717
***************************************************************************
1818
"""
19-
from sextante.gui.SextantePostprocessing import SextantePostprocessing
20-
2119
__author__ = 'Victor Olaya'
2220
__date__ = 'August 2012'
2321
__copyright__ = '(C) 2012, Victor Olaya'
@@ -27,7 +25,9 @@
2725
from PyQt4 import QtCore, QtGui
2826
from PyQt4.QtCore import *
2927
from PyQt4.QtGui import *
30-
from sextante.core.QGisLayers import QGisLayers
28+
from sextante.gui.SextantePostprocessing import SextantePostprocessing
29+
from sextante.parameters.ParameterFile import ParameterFile
30+
from sextante.gui.FileSelectionPanel import FileSelectionPanel
3131
from sextante.parameters.ParameterRaster import ParameterRaster
3232
from sextante.parameters.ParameterTable import ParameterTable
3333
from sextante.parameters.ParameterVector import ParameterVector
@@ -95,25 +95,27 @@ def headerDoubleClicked(self, col):
9595
widgetValue = widget.currentIndex()
9696
for row in range(1, self.table.rowCount()):
9797
self.table.cellWidget(row, col).setCurrentIndex(widgetValue)
98-
9998
elif isinstance(widget, ExtentSelectionPanel):
10099
widgetValue = widget.getValue()
101100
for row in range(1, self.table.rowCount()):
102101
if widgetValue != None:
103102
self.table.cellWidget(row, col).text.setText(widgetValue)
104103
else:
105104
self.table.cellWidget(row, col).text.setText("")
106-
107105
elif isinstance(widget, CrsSelectionPanel):
108106
widgetValue = widget.getValue()
109107
for row in range(1, self.table.rowCount()):
110108
self.table.cellWidget(row, col).epsg = widgetValue
111109
self.table.cellWidget(row, col).setText()
112-
113110
elif isinstance(widget, QtGui.QLineEdit):
114111
widgetValue = widget.text()
112+
for row in range(1, self.table.rowCount()):
113+
self.table.cellWidget(row, col).setText(widgetValue)
114+
elif isinstance(widget, BatchInputSelectionPanel):
115+
widgetValue = widget.getText()
115116
for row in range(1, self.table.rowCount()):
116117
self.table.cellWidget(row, col).setText(widgetValue)
118+
117119
else:
118120
pass
119121

@@ -264,7 +266,10 @@ def finishAll(self):
264266

265267
def setParameterValueFromWidget(self, param, widget, alg = None):
266268
if isinstance(param, (ParameterRaster, ParameterVector, ParameterTable, ParameterMultipleInput)):
267-
return param.setValue(widget.getText())
269+
value = widget.getText()
270+
if unicode(value.strip()) == "":
271+
value = None
272+
return param.setValue(value)
268273
elif isinstance(param, ParameterBoolean):
269274
return param.setValue(widget.currentIndex() == 0)
270275
elif isinstance(param, ParameterSelection):
@@ -275,7 +280,7 @@ def setParameterValueFromWidget(self, param, widget, alg = None):
275280
if alg != None:
276281
widget.useNewAlg(alg)
277282
return param.setValue(widget.getValue())
278-
elif isinstance(param, ParameterCrs):
283+
elif isinstance(param, (ParameterCrs, ParameterFile)):
279284
return param.setValue(widget.getValue())
280285
else:
281286
return param.setValue(widget.text())
@@ -300,6 +305,8 @@ def getWidgetFromParameter(self, param, row, col):
300305
item = ExtentSelectionPanel(self, self.alg, param.default)
301306
elif isinstance(param, ParameterCrs):
302307
item = CrsSelectionPanel(param.default)
308+
elif isinstance(param, ParameterFile):
309+
item = FileSelectionPanel(param.isFolder)
303310
else:
304311
item = QtGui.QLineEdit()
305312
try:

0 commit comments

Comments
 (0)
Please sign in to comment.