Generated detail dialogs disable Save silently instead of showing validation errors

Table of Contents

This page is a capture in the inbox bucket of the product backlog — a pre-sprint idea, not yet pulled into a sprint as a story.

What

Found while running the "Verify party Qt UI end-to-end post-NATS" scenario, reported as "cannot save party": PartyDetailDialog:: updateSaveButtonState() gates the Save button on hasChanges_ && validateInput() && !readOnly_, and validateInput() just returns false when required fields (e.g. Short Code) are empty – no message, no tooltip. Clicking a disabled button does nothing and doesn't even reach onSaveClicked(), so the tester sees Save silently refuse to do anything with no clue why. This is the standard codegen'd detail-dialog pattern, so it's not party-specific.

Why

A disabled control with no explanation reads as a bug, not a guardrail – the fix is cheap (either keep Save always enabled and have onSaveClicked() report exactly which fields are missing via MessageBoxHelper::warning, or set a dynamic tooltip on the disabled button listing the missing fields) and would remove a recurring false-positive in manual QA across every codegen'd entity, not just party/counterparty.

References

  • projects/ores.qt/refdata/src/PartyDetailDialog.cpp (validateInput=/ =updateSaveButtonState=/=onSaveClicked)
  • ores.codegen Qt detail-dialog template (same pattern generated for every entity)

See also

Emacs 29.3 (Org mode 9.6.15)