Skip to content

feat(spellcheck): proofread Mastodon posts and spell-check before saving - #758

Merged
accesswatch merged 4 commits into
mainfrom
feature/spellcheck-post-and-save
Jun 29, 2026
Merged

feat(spellcheck): proofread Mastodon posts and spell-check before saving#758
accesswatch merged 4 commits into
mainfrom
feature/spellcheck-post-and-save

Conversation

@accesswatch

Copy link
Copy Markdown
Contributor

What

Two opt-in spelling-review options, both off by default:

  1. Proofread Mastodon posts before sending (per account). In Tools → Share → Mastodon Accounts..., tick Spell-check posts before sending for an account. Pressing Post for that account then opens the Spelling Review (F7) on the post text so you can fix misspellings, and it sends only after you finish or skip.
  2. Spell check a document before saving (global). Settings → Editing → Spell check a document before saving opens the F7 review on the document when you Save or Save As, then proceeds with your corrections.

Migration (as confirmed)

Existing Mastodon accounts get the new spell_check_before_post field in the off state (loaded from the missing key → False), so nothing changes for current users until they opt in. The global save setting also defaults off.

Changes

  • quill/core/mastodon/accounts.py — per-account spell_check_before_post (default False, missing-key → off), persisted, add_account param, and set_spell_check_before_post().
  • quill/core/settings.py + settings_specs.py — global spell_check_before_save (default False) + searchable spec.
  • quill/ui/spell_review.py (new, wx-free helper) — runs the F7 ReviewSession + SpellingReviewDialog over any wx.TextCtrl, applying corrections in place.
  • quill/ui/mastodon_dialogs.py — compose dialog runs the review pre-Post when the selected account opts in (re-reads the corrected text); accounts dialog gains the per-account checkbox (synced fresh from the store, persisted on toggle, no selection reset).
  • quill/ui/main_frame.py_spell_review_textctrl (passed to the compose dialog) and pre-save hooks in save_file / save_file_as.
  • Docs — user guide (Spelling Review + Mastodon sections + editing-settings list), CHANGELOG and release0.8.1-beta1 release notes (Enhancements), regenerated HTML/EPUB.

Tests / gates

  • New: 4 account tests (default-off, toggle-persists, enable-at-create, legacy-account-without-field migrates to off). Existing settings tests still pass (66 in the settings+accounts run).
  • ruff clean; mypy clean on the core; py_compile of the UI files OK.
  • GATE-11: settings.py/settings_specs.py rebaselined (+5/+10) for the canonical new field + spec, with a dated note; everything else fits existing budgets (the helper is a new wx-free module).
  • Docs-artifact parity: regenerated .html/.epub for both edited docs.

Note: the wx-bound dialog flows (compose pre-post gating, accounts checkbox) follow the codebase's pattern of not unit-testing wx dialogs directly; the gating logic is a simple guard on the account flag.

🤖 Generated with Claude Code

accesswatch and others added 2 commits June 29, 2026 08:32
… (WIP #spellcheck)

Per-account MastodonAccount.spell_check_before_post (default False; accounts
saved before the field migrate to off) with a set_spell_check_before_post()
setter, and a global Settings.spell_check_before_save (default False) + searchable
spec. Both opt-in. UI hooks (compose pre-post, accounts checkbox, pre-save) and
docs still to come.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
…ing (#spellcheck)

Wire the two opt-in spelling-review hooks onto the core added earlier:

- Mastodon compose: when the selected account has spell_check_before_post on,
  pressing Post first runs the F7 spelling review over the post text (new
  quill/ui/spell_review.review_textctrl helper, applied in place) before sending.
- Mastodon Accounts dialog: a per-account "Spell-check posts before sending"
  checkbox, synced fresh from the store on selection and persisted on toggle.
- Save / Save As: when Settings.spell_check_before_save is on, open the F7
  spelling review on the document before the file is written.

Both default off; existing accounts migrate to off. Docs: user guide (Spelling
Review + Mastodon sections + the editing-settings list), CHANGELOG and
release0.8.1-beta1 release notes (Enhancements) with regenerated HTML/EPUB.
GATE-11: settings.py/settings_specs.py rebaselined for the new field + spec.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
@accesswatch
accesswatch requested a review from kellylford as a code owner June 29, 2026 15:45
accesswatch and others added 2 commits June 29, 2026 08:52
…st-and-save

# Conflicts:
#	CHANGELOG.md
#	docs/release notes/release0.8.1-beta1.epub
#	docs/release notes/release0.8.1-beta1.html
#	docs/release notes/release0.8.1-beta1.md
#	docs/user guide/userguide.epub
#	quill/tools/module_size_budgets.json
@accesswatch
accesswatch merged commit 01d3f8c into main Jun 29, 2026
13 of 14 checks passed
@accesswatch
accesswatch deleted the feature/spellcheck-post-and-save branch June 29, 2026 17:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant