From 9afb68fd72f0a499c04b25e6673e0c6d1434f8de Mon Sep 17 00:00:00 2001 From: Nyall Dawson Date: Mon, 24 Jul 2023 13:51:23 +1000 Subject: [PATCH] Fix exception when running an algorithm which has no parameters through the toolbox We were passing a float to a PyQt method requiring int in newer Python versions, which raises an exception instead of silently truncating. --- python/plugins/processing/gui/MessageBarProgress.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/python/plugins/processing/gui/MessageBarProgress.py b/python/plugins/processing/gui/MessageBarProgress.py index da1abdacd081..e77be8a7e931 100644 --- a/python/plugins/processing/gui/MessageBarProgress.py +++ b/python/plugins/processing/gui/MessageBarProgress.py @@ -35,13 +35,20 @@ def __init__(self, algname=None): self.progressMessageBar = \ iface.messageBar().createMessage(self.tr('Executing algorithm {}'.format(algname if algname else ''))) self.progress = QProgressBar() - self.progressChanged.connect(self.progress.setValue) + self.progressChanged.connect(self.set_progress_bar_value) self.progress.setMaximum(100) self.progress.setAlignment(Qt.AlignLeft | Qt.AlignVCenter) self.progressMessageBar.layout().addWidget(self.progress) self.message_bar_item = iface.messageBar().pushWidget(self.progressMessageBar, Qgis.Info) + def set_progress_bar_value(self, progress: float): + """ + Sets the progress bar value to a rounded int of the algorithm's + progress + """ + self.progress.setValue(int(progress)) + def reportError(self, msg, fatalError=False): self.msg.append(msg)