Skip to content

Commit 12c014e

Browse files
author
cpolymeris@gmail.com
committedAug 10, 2012
Display execution dialog log in unthreaded mode if "keep open" option is activated. Also make algorithm error messages non-modal, less obtrusive.
git-svn-id: http://sextante.googlecode.com/svn/trunk/soft/bindings/qgis-plugin@341 881b9c09-3ef8-f3c2-ec3d-21d735c97f4d
1 parent f6f6124 commit 12c014e

File tree

1 file changed

+9
-8
lines changed

1 file changed

+9
-8
lines changed
 

‎src/sextante/gui/AlgorithmExecutionDialog.py

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,9 @@ def __init__(self, alg, mainWidget):
6969
self.verticalLayout.addWidget(self.tabWidget)
7070
self.logText = QTextEdit()
7171
self.logText.readOnly = True
72-
if SextanteConfig.getSetting(SextanteConfig.USE_THREADS):
72+
useThreads = SextanteConfig.getSetting(SextanteConfig.USE_THREADS)
73+
keepOpen = SextanteConfig.getSetting(SextanteConfig.KEEP_DIALOG_OPEN)
74+
if useThreads or keepOpen:
7375
self.tabWidget.addTab(self.logText, "Log")
7476
self.webView = QtWebKit.QWebView()
7577
cssUrl = QtCore.QUrl(os.path.join(os.path.dirname(__file__), "help", "help.css"))
@@ -213,8 +215,8 @@ def accept(self):
213215
self.algEx.start()
214216
self.setInfo("<b>Algorithm %s started</b>" % self.alg.name)
215217
self.buttonBox.button(QtGui.QDialogButtonBox.Cancel).setEnabled(True)
216-
self.tabWidget.setCurrentIndex(1) # log tab
217218
else:
219+
self.setInfo("<b>Algorithm %s starting...</b>" % self.alg.name)
218220
if iterateParam:
219221
UnthreadedAlgorithmExecutor.runalgIterating(self.alg, iterateParam, self)
220222
else:
@@ -235,6 +237,7 @@ def accept(self):
235237
self.buttonBox.button(QtGui.QDialogButtonBox.Ok).setEnabled(True)
236238
self.buttonBox.button(QtGui.QDialogButtonBox.Close).setEnabled(True)
237239
self.buttonBox.button(QtGui.QDialogButtonBox.Cancel).setEnabled(False)
240+
self.tabWidget.setCurrentIndex(1) # log tab
238241
else:
239242
QMessageBox.critical(self, "Unable to execute algorithm", "Wrong or missing parameter values")
240243

@@ -259,13 +262,13 @@ def finish(self):
259262
def error(self, msg):
260263
self.algEx.finished.disconnect()
261264
QApplication.restoreOverrideCursor()
262-
self.setInfo(msg, True)
263-
QMessageBox.critical(self, "Error", msg)
264265
keepOpen = SextanteConfig.getSetting(SextanteConfig.KEEP_DIALOG_OPEN)
265-
if not keepOpen:
266+
self.setInfo(msg, True)
267+
if not SextanteConfig.USE_THREADS and not keepOpen:
268+
QMessageBox.critical(self, "Error", msg)
266269
self.close()
267270
else:
268-
self.progressLabel.setText("")
271+
self.progressLabel.setText("Error: " + msg)
269272
self.progress.setValue(0)
270273
self.buttonBox.button(QtGui.QDialogButtonBox.Ok).setEnabled(True)
271274
self.buttonBox.button(QtGui.QDialogButtonBox.Close).setEnabled(True)
@@ -291,10 +294,8 @@ def cancel(self):
291294
@pyqtSlot(str, bool)
292295
def setInfo(self, msg, error = False):
293296
if error:
294-
#SextanteLog.addToLog(SextanteLog.LOG_ERROR, msg)
295297
self.logText.append('<span style="color:red">' + msg + '</span>')
296298
else:
297-
#SextanteLog.addToLog(SextanteLog.LOG_INFO, msg)
298299
self.logText.append(msg)
299300

300301
@pyqtSlot(str)

0 commit comments

Comments
 (0)
Please sign in to comment.