UI polish and signed-tx colour fix (v0.3.3)

Fix and refine the BAL plugin GUI without changing business logic:

core/will.py: restore the PUSHED requirement in needs_server_check so a
signed-but-not-broadcast will is no longer server-queried and therefore
stays blue (COMPLETE) instead of turning red (CHECK_FAIL). This matches the
original Gitea check() condition.

gui/qt/widgets.py: WillSettingsWidget vertical layout now caps every row to
the widest date-row width and left-aligns them; the leading icons keep their
original HelpButton width.

gui/qt/lists.py + gui/qt/common.py: the wizard toolbar button now shows a
28x28 icon plus a bold 'Create your will' caption (QSize imported).

gui/qt/dialogs.py (BalBuildWillDialog):
- closing summary row labelled 'All done: Ok' with a blank separator above it;
- 'checking variables' capitalised to 'Checking variables' (redundant trailing
  colon dropped);
- final auto-closing countdown replaced by an explicit right-aligned 'Close'
  button; intermediate technical pauses kept; next-steps popup preserved.

gui/qt/window.py + core/plugin_base.py: guide show_message on build, and
sync_hide_filters() in update_all so hide flags refresh immediately.

tests: test_needs_server_check updated; added offscreen preview helpers.
Version bumped to 0.3.3. 186 tests pass; ruff clean (baseline only).
This commit is contained in:
GenSpark AI Developer
2026-06-16 12:59:40 +00:00
committed by steal
parent 365824767b
commit 30bab62247
15 changed files with 679 additions and 31 deletions

View File

@@ -574,10 +574,15 @@ class BalWindow:
_logger.info("build will")
self.build_will(ignore_duplicate, keep_original)
# Track whether the rebuild produced a coherent, ready-to-sign
# will, so we can guide the user through the remaining manual
# steps (Sign + Broadcast) afterwards.
rebuilt_ok = False
try:
self.check_will()
for wid, _w in self.willitems.items():
self.wallet.set_label(wid, "BAL Transaction")
rebuilt_ok = True
except WillExpiredException as e:
self.invalidate_will()
except NotCompleteWillException as e:
@@ -590,6 +595,31 @@ class BalWindow:
self.window.history_list.update()
self.window.utxo_list.update()
# Guide the user: the inheritance was just (re)built and is now
# in the "New" state, so it must be SIGNED and then BROADCAST
# again -- two manual steps the user has to perform. Without
# this hint the user is left with a freshly rebuilt will and no
# indication that it still needs to be signed and re-sent to the
# will-executors.
if rebuilt_ok:
if self.no_willexecutor:
next_steps = _(
"Your inheritance has been rebuilt and now needs "
"to be signed again.\n\n"
"Next step (manual):\n"
" 1. Press 'Sign' to sign the new transaction."
)
else:
next_steps = _(
"Your inheritance has been rebuilt and now needs "
"to be signed and re-sent to the will-executors.\n\n"
"Next steps (manual):\n"
" 1. Press 'Sign' to sign the new transaction.\n"
" 2. Press 'Broadcast' to send it to the "
"will-executors."
)
self.show_message(next_steps)
self.update_all()
return self.willitems
except Exception as e: