[processing] added progress display in qgsMessageBar

This commit is contained in:
Victor Olaya 2013-09-12 20:07:00 +02:00
parent 3d775d6913
commit d69667b838
3 changed files with 67 additions and 7 deletions

View File

@ -16,7 +16,6 @@
* *
***************************************************************************
"""
from processing import interface
__author__ = 'Victor Olaya'
__date__ = 'August 2012'
@ -28,6 +27,8 @@ import processing
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from qgis.core import *
from processing import interface
from processing.gui.MessageBarProgress import MessageBarProgress
from processing.tools import dataobjects
from processing.core.ProcessingConfig import ProcessingConfig
from processing.core.GeoAlgorithm import GeoAlgorithm
@ -341,11 +342,13 @@ class Processing:
algEx.start()
algEx.wait()
else:
progress = SilentProgress()
#progress = SilentProgress()
progress = MessageBarProgress()
ret = UnthreadedAlgorithmExecutor.runalg(alg, progress)
if onFinish is not None and ret:
onFinish(alg, progress)
QApplication.restoreOverrideCursor()
progress.close()
return alg

View File

@ -0,0 +1,62 @@
# -*- coding: utf-8 -*-
"""
***************************************************************************
SilentProgress.py
---------------------
Date : April 2013
Copyright : (C) 2013 by Victor Olaya
Email : volayaf at gmail dot com
***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************
"""
__author__ = 'Victor Olaya'
__date__ = 'April 2013'
__copyright__ = '(C) 2013, Victor Olaya'
# This will get replaced with a git SHA1 when you do a git archive
__revision__ = '$Format:%H$'
from processing import interface
from PyQt4.QtCore import *
from PyQt4 import QtGui
class MessageBarProgress():
def __init__(self):
self.progressMessageBar = interface.iface.messageBar().createMessage("Executing algorithm")
self.progress = QtGui.QProgressBar()
self.progress.setMaximum(100)
self.progress.setAlignment(Qt.AlignLeft|Qt.AlignVCenter)
self.progressMessageBar.layout().addWidget(self.progress)
interface.iface.messageBar().pushWidget(self.progressMessageBar, interface.iface.messageBar().INFO)
def setText(self, text):
pass
def setPercentage(self, i):
self.progress.setValue(i)
def setInfo(self, _):
pass
def setCommand(self, _):
pass
def setDebugInfo(self, _):
pass
def setConsoleInfo(self, _):
pass
def close(self):
interface.iface.messageBar().clearWidgets()

View File

@ -196,7 +196,6 @@ def getObjectFromUri(uri, forceLoad = True):
These methods are used by the GeoAlgorithm class and allow the developer to use transparently
any layer that is loaded into QGIS, without having to worry about its origin'''
@staticmethod
def exportVectorLayer(layer):
'''Takes a QgsVectorLayer and returns the filename to refer to it, which allows external
apps which support only file-based layers to use it. It performs the necessary export
@ -245,8 +244,6 @@ def exportVectorLayer(layer):
return unicode(layer.source())
@staticmethod
def exportRasterLayer(layer):
'''Takes a QgsRasterLayer and returns the filename to refer to it, which allows external
apps which support only file-based layers to use it. It performs the necessary export
@ -259,8 +256,6 @@ def exportRasterLayer(layer):
#TODO:Do the conversion here
return unicode(layer.source())
@staticmethod
def exportTable( table):
'''Takes a QgsVectorLayer and returns the filename to refer to its attributes table,
which allows external apps which support only file-based layers to use it.