From 7b9acec467b6e3fb45e92e1dd159bc0888a4bcf8 Mon Sep 17 00:00:00 2001 From: Joerg Wunsch Date: Wed, 27 Mar 2024 06:36:31 +0100 Subject: [PATCH] Fix progress reporting Turn time calculations into int. "Finish" indication is percent == 100. When reading signature, manually clear progress lest it would stick at 66 %. Enforce processing of GUI events in progress_callback() --- src/python/adgui.py | 8 +++++--- src/python/adgui.ui | 3 +++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/python/adgui.py b/src/python/adgui.py index 2490aa0e..2d09d7c9 100755 --- a/src/python/adgui.py +++ b/src/python/adgui.py @@ -284,16 +284,17 @@ class adgui(QObject): if hdr: self.adgui.operation.setText(hdr) self.adgui.progressBar.setEnabled(True) - if finish != 0: + if percent == 100: self.adgui.progressBar.setValue(0) self.adgui.progressBar.setEnabled(False) self.adgui.time.setText("-:--") self.adgui.operation.setText("") else: self.adgui.progressBar.setValue(percent) - secs = etime % 60 - mins = etime // 60 + secs = int(etime % 60) + mins = int(etime / 60) self.adgui.time.setText(f"{mins}:{secs:02d}") + self.app.processEvents() def update_device_cb(self): fams = list(self.devices.keys()) @@ -426,6 +427,7 @@ class adgui(QObject): m = ad.avr_locate_mem(self.dev, 'signature') if m: ad.avr_read_mem(self.pgm, self.dev, m) + self.progress_callback(100, 0, "", 0) # clear progress bar read_sig = m.get(3) sigstr = read_sig.hex(' ').upper() self.memories.deviceSig.setText(sigstr) diff --git a/src/python/adgui.ui b/src/python/adgui.ui index 52fd72d5..6e0e748e 100644 --- a/src/python/adgui.ui +++ b/src/python/adgui.ui @@ -54,6 +54,9 @@ false + + 100 + 0