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()
This commit is contained in:
Joerg Wunsch
2024-03-27 06:36:31 +01:00
parent 1f227636df
commit 7b9acec467
2 changed files with 8 additions and 3 deletions

View File

@@ -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)

View File

@@ -54,6 +54,9 @@
<property name="enabled">
<bool>false</bool>
</property>
<property name="maximum">
<number>100</number>
</property>
<property name="value">
<number>0</number>
</property>