Skip to content

Commit 3c18386

Browse files
author
cpolymeris@gmail.com
committed
More AlgExecutor logging
git-svn-id: http://sextante.googlecode.com/svn/trunk/soft/bindings/qgis-plugin@275 881b9c09-3ef8-f3c2-ec3d-21d735c97f4d
1 parent 980ad22 commit 3c18386

File tree

2 files changed

+35
-27
lines changed

2 files changed

+35
-27
lines changed

src/sextante/gui/AlgorithmExecutor.py

+22-25
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
class AlgorithmExecutor(QThread):
99
percentageChanged = pyqtSignal(int)
1010
textChanged = pyqtSignal(QString)
11-
#~ cancelled = pyqtSignal()
1211
error = pyqtSignal()
1312
iterated = pyqtSignal(int)
1413
#started & finished inherited from QThread
@@ -51,10 +50,6 @@ def setPercentage(self, p):
5150
def runalg(self):
5251
try:
5352
self.algorithm.execute(self.progress)
54-
#===================================================================
55-
# if self.algorithm.canceled:
56-
# self.canceled.emit()
57-
#===================================================================
5853
except GeoAlgorithmExecutionException,e :
5954
self.error.emit(e.msg)
6055
except BaseException,e:
@@ -66,24 +61,26 @@ def runalg(self):
6661
print "Error executing " + str(self)
6762

6863
def runalgIterating(self):
69-
outputs = {}
70-
#store output values to use them later as basenames for all outputs
71-
for out in self.algorithm.outputs:
72-
outputs[out.name] = out.value
73-
i = 1
74-
for f in self.filelist:
75-
self.algorithm.setParameterValue(self.parameterToIterate, f)
64+
try:
65+
outputs = {}
66+
#store output values to use them later as basenames for all outputs
7667
for out in self.algorithm.outputs:
77-
filename = outputs[out.name]
78-
if filename:
79-
filename = filename[:filename.rfind(".")] + "_" + str(i) + filename[filename.rfind("."):]
80-
out.value = filename
81-
self.progress.setText("Executing iteration " + str(i) + "/" + str(len(self.filelist)) + "...")
82-
self.progress.setPercentage((i * 100) / len(self.filelist))
83-
self.runalg()
84-
#===================================================================
85-
# if self.algorithm.canceled:
86-
# return
87-
#===================================================================
88-
self.iterated.emit(i)
89-
i += 1
68+
outputs[out.name] = out.value
69+
i = 1
70+
for f in self.filelist:
71+
self.algorithm.setParameterValue(self.parameterToIterate, f)
72+
for out in self.algorithm.outputs:
73+
filename = outputs[out.name]
74+
if filename:
75+
filename = filename[:filename.rfind(".")] + "_" + str(i) + filename[filename.rfind("."):]
76+
out.value = filename
77+
self.progress.setText("Executing iteration " + str(i) + "/" + str(len(self.filelist)) + "...")
78+
self.progress.setPercentage((i * 100) / len(self.filelist))
79+
self.runalg()
80+
self.iterated.emit(i)
81+
i += 1
82+
except BaseException as e:
83+
self.error.emit(str(e))
84+
print "Error iterating " + str(e)
85+
except:
86+
print "Error iterating " + str(self)

src/sextante/gui/ParametersDialog.py

+13-2
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,10 @@ def accept(self):
191191
self.algEx.error.connect(self.error)
192192
self.algEx.percentageChanged.connect(self.setPercentage)
193193
self.algEx.textChanged.connect(self.setText)
194+
self.algEx.iterated.connect(self.iterate)
194195
self.algEx.start()
196+
SextanteLog.addToLog(SextanteLog.LOG_INFO,
197+
"Algorithm %s started" % self.alg.name)
195198
self.buttonBox.button(QtGui.QDialogButtonBox.Cancel).setEnabled(True)
196199
self.finish()
197200
else:
@@ -220,6 +223,8 @@ def accept(self):
220223
@pyqtSlot()
221224
def finish(self):
222225
self.dialog.executed = True
226+
SextanteLog.addToLog(SextanteLog.LOG_INFO,
227+
"Algorithm %s finished correctly" % self.alg.name)
223228
QApplication.restoreOverrideCursor()
224229
keepOpen = SextanteConfig.getSetting(SextanteConfig.KEEP_DIALOG_OPEN)
225230
if not keepOpen:
@@ -232,8 +237,7 @@ def finish(self):
232237
self.buttonBox.button(QtGui.QDialogButtonBox.Close).setEnabled(True)
233238
self.buttonBox.button(QtGui.QDialogButtonBox.Cancel).setEnabled(False)
234239

235-
236-
@pyqtSlot()
240+
@pyqtSlot(str)
237241
def error(self, msg):
238242
self.algEx.finished.disconnect()
239243
QApplication.restoreOverrideCursor()
@@ -247,8 +251,15 @@ def error(self, msg):
247251
self.progress.setValue(0)
248252
self.buttonBox.button(QtGui.QDialogButtonBox.Ok).setEnabled(True)
249253

254+
@pyqtSlot(int)
255+
def iterate(self, i):
256+
SextanteLog.addToLog(SextanteLog.LOG_INFO,
257+
"Algorithm %s iteration #%i completed" % (elf.alg.name, i))
258+
250259
@pyqtSlot()
251260
def cancel(self):
261+
SextanteLog.addToLog(SextanteLog.LOG_INFO,
262+
"Algorithm %s canceled" % self.alg.name)
252263
try:
253264
self.algEx.finished.disconnect()
254265
self.algEx.terminate()

0 commit comments

Comments
 (0)