Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
[processing] added progress display in qgsMessageBar
  • Loading branch information
volaya committed Sep 14, 2013
1 parent 3d775d6 commit d69667b
Show file tree
Hide file tree
Showing 3 changed files with 67 additions and 7 deletions.
7 changes: 5 additions & 2 deletions python/plugins/processing/core/Processing.py
Expand Up @@ -16,7 +16,6 @@
* *
***************************************************************************
"""
from processing import interface

__author__ = 'Victor Olaya'
__date__ = 'August 2012'
Expand All @@ -28,6 +27,8 @@
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
Expand Down Expand Up @@ -341,11 +342,13 @@ def cancel():
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


Expand Down
62 changes: 62 additions & 0 deletions python/plugins/processing/gui/MessageBarProgress.py
@@ -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()


5 changes: 0 additions & 5 deletions python/plugins/processing/tools/dataobjects.py
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand All @@ -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.
Expand Down

0 comments on commit d69667b

Please sign in to comment.