fix(bal): black bar on cancelled invalidation + editable fee follows dates (v0.3.6)
Two GUI fixes bundled together (v0.3.6): - Fix #10 (black bar): in dialogs.py on_success_phase1, the cancelled invalidation branch no longer calls the blocking self.wait(3)+self.close(). wait() uses time.sleep() and runs in the GUI thread, freezing the UI so the 'Building Will' dialog could not repaint the area it just resized, leaving a black rectangle at the bottom. It now shows 'Aborted' plus the existing non-blocking Close button (_add_close_button), consistent with the other end-of-flow branches. - Fix #11 (editable fee): in widgets.py WillSettingsWidget.apply_editable_dates, the fee widget (baltx_fees) now follows the same 'Editable dates' setting as the locktime/threshold widgets (set_read_only(not editable_dates)) instead of being forced read-only. With the setting ticked, dates AND fee are editable outside the wizard; unticked, all three are read-only. Default stays OFF. Version bumped 0.3.5 -> 0.3.6 (manifest.json, __init__.py, plugin_base.py, VERSION). CHANGELOG: entries #10 and #11. ruff clean; full suite 239 passed.
This commit is contained in:
@@ -917,9 +917,19 @@ class BalBuildWillDialog(BalDialog):
|
||||
_("Invalidate your old will"), parent=self
|
||||
)
|
||||
if password is False:
|
||||
# The user cancelled the password prompt for the invalidation.
|
||||
# We must NOT call self.wait(3) here: on_success_phase1 runs in
|
||||
# the GUI thread, so wait()'s time.sleep() would freeze the UI
|
||||
# for several seconds. While frozen the dialog cannot repaint
|
||||
# the area it just resized, leaving a black, undrawn rectangle
|
||||
# at the bottom of the "Building Will" window (the reported bug).
|
||||
#
|
||||
# Instead, mark the invalidation as "Aborted" and offer a
|
||||
# non-blocking "Close" button (the same helper used by the
|
||||
# normal finish path), so the user can read the outcome and
|
||||
# dismiss the dialog when they want, without blocking the GUI.
|
||||
self.msg_set_invalidating(_("Aborted"))
|
||||
self.wait(3)
|
||||
self.close()
|
||||
self._add_close_button()
|
||||
return
|
||||
self.thread.add(
|
||||
partial(self.invalidate_task, password, self.bal_window, tx),
|
||||
|
||||
Reference in New Issue
Block a user