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.codegenQt detail-dialog template (same pattern generated for every entity)