cjm-substrate-qt-kit
Shared foundations for the PySide6 application lane (DEC c4b0d6e5): LoopThreadSession (a private asyncio loop behind a Qt shell — GraphSession and CapabilitySession both subclass it), the row-style palette (STYLE_COLORS/apply_row_style), and the keybinding helper. Every piece extracted at its first real duplication between cjm-graph-workbench-qt and cjm-transcription-qt — the kit grows by demand, never speculation. Semantic theming (a94fa56a) and in-app config (812beb51) land here at their demand points.
Modules
cjm_substrate_qt_kit.__init__— Shared foundations for the PySide6 application lane — extracted at first duplication (DEC dcf8a712).cjm_substrate_qt_kit.findbar— The lane's find-bar universal (the Ctrl-F half of signal c7955f25).cjm_substrate_qt_kit.formdialog— Kit FormShell (work item d55292f9): the frameless modal FORM chrome —cjm_substrate_qt_kit.hitl— Kit HITL confirm chrome (work item 55bcc3c5, the payload-agnostic half ofcjm_substrate_qt_kit.keyhints— Keyboard-hints surface: the ?-overlay + contextual hint line (DEC 2a42c028).cjm_substrate_qt_kit.keymap— KeymapRegistry: the QAction layer from the toolbox verdict (DEC d55f1d0f).cjm_substrate_qt_kit.keys— The keybinding helper both shells grew independently.cjm_substrate_qt_kit.layout— Layout roles for the application lane — the FastHTML-era framework's Qtcjm_substrate_qt_kit.loopthread— The loop-thread session base: a private asyncio loop behind a Qt shell.cjm_substrate_qt_kit.pickerlist— Kit PickerList (work item 8d29f0f0): the native list PAGE the paintedcjm_substrate_qt_kit.player— Span playback via QMediaPlayer — the Qt lane's one audio component (kitcjm_substrate_qt_kit.statusstrip— StatusStrip: the footer's slot model (DEC 2a42c028).cjm_substrate_qt_kit.style— Row-style vocabulary for the lane's list widgets.cjm_substrate_qt_kit.testbed— Readability test-bed: error-seeded reading trials measuring which themecjm_substrate_qt_kit.testbed_corpus— Bundled clean-prose corpus for the readability test-bed.cjm_substrate_qt_kit.theme— Semantic theme tokens for the lane: one flat dict -> QPalette + QSS + fonts.
API
cjm_substrate_qt_kit.findbar
FindBarclass — Incremental find over an attached text pane. While the bar is open the
cjm_substrate_qt_kit.formdialog
FormShellclass — Frameless modal shell: head (QTextBrowser, fixed) / body (PickerList,
cjm_substrate_qt_kit.hitl
HitlPanelclass — The composed confirm panel: worklist (stretch) over the verdict stripProposalWorklistclass — The proposal list page: items above (a kit PickerList), the host'sProvenancePaneclass — Key/value provenance — a two-column table of whatever the lane'sVerdictStripclass — The derived-verdict status strip: one line per tier, each verdictfmt_tsfunction — Source-seconds as mm:ss.s — the worklist's span column.worklist_rowfunction — Project one item into a picker row: tier glyph (? / ??), the category
cjm_substrate_qt_kit.keyhints
KeyHintsOverlayclass — ?-toggled keyboard-hints overlay. Modal + frameless, centered overcolumn_countfunction — Responsive column count: what the CONTAINER width affords (layoutgroup_entriesfunction — [{verb,label,key,group}] -> [(group, entries)] in first-seen grouphint_linefunction — Project the pinned verbs (in pin order, capped at limit) into theis_close_anchorfunction — True for the close affordance modal_header paints — the dialog'skeycapsfunction — Public key-cap renderer — the overlay's chip grammar for OTHERmodal_headerfunction — A kit modal's title row: the title at left, the mouse CLOSErender_hints_htmlfunction — The overlay's document: sections distributed across columns in
cjm_substrate_qt_kit.keymap
KeymapRegistryclass — Declarative verb table -> live QActions on an owner widget.
cjm_substrate_qt_kit.keys
bindfunction — One QShortcut:keyonparent(default: the owner window) firesfn.
cjm_substrate_qt_kit.layout
affordfunction — R3 container affordance: how many fixed-width units fit in theclassifyfunction — One geometry -> its three role ids: {"mode", "shape", "height"}.height_tierfunction — Absolute height -> height-tier role id ("H1".."H4").modefunction — Width -> mode role id ("M1".."M6").shapefunction — Aspect ratio -> shape role id ("S1".."S6").
cjm_substrate_qt_kit.loopthread
LoopThreadSessionclass — Owns one daemon asyncio loop thread; subclasses put their subsystem's
cjm_substrate_qt_kit.pickerlist
PickerListclass — The kit list page: native list above, budget-reserved detail below.SpanRowDelegateclass — Paint one row's rich-text fragment (the _ROW_HTML data) through aspans_to_htmlfunction — Project style-worded spans into one QTextDocument-ready fragment.
cjm_substrate_qt_kit.player
SpanPlayerclass — Play/stop one file span at a time; replay gestures re-enter, escape
cjm_substrate_qt_kit.statusstrip
StatusStripclass — Two-row footer: chips + readout + transient above, hint line below
cjm_substrate_qt_kit.style
apply_row_stylefunction — Map a row's style words onto a list item (color words + bold).
cjm_substrate_qt_kit.testbed
ClickPaneclass — Read-only pane reporting the whitespace-token index of clicks thatTrialWindowclass — The trial loop: render the paragraph under its variant, take thebuild_trialsfunction — The trial plan: variants covered evenly (shuffled round-robin over thebuild_variantsfunction — Cross the sweep dimensions into variant dicts. Defaults reproduce theload_paragraphsfunction — Prose paragraphs from a markdown file: fence markers stripped (fencemainfunction — CLI: run trials over a markdown file, or summarize result JSONLs.seed_errorfunction — Apply one error class to a token list; (mutated_words, target_token,summarizefunction — Catch rate + latency per dimension marginal, per variant cell, per
cjm_substrate_qt_kit.theme
apply_themefunction — THE entry point: resolve the theme and land palette + QSS + ui font onbuild_palettefunction — Project the palette roles onto QPalette so NATIVE widgets follow thebuild_qssfunction — Generate the lane's QSS layer: chrome polish + dynamic-property statecurrent_themefunction — The theme apply_theme last landed (default-resolved before any apply).document_cssfunction — Default stylesheet for rich-text documents (setDefaultStyleSheet):load_themefunction — Read a theme-as-data JSON file (a flat token dict): themes are sharedmake_fontfunction — Build the theme's font for a slot: "body" / "mono" / "ui". An emptyresolve_themefunction — Merge override tokens onto the built-in pair member for the schemestate_colorfunction — Resolve a legacy style word or a semantic role to the theme's colorstyle_text_panefunction — Reading-quality setup for a text pane (QTextEdit / QTextBrowser /
Dependencies
Depends on: PySide6
Used by: cjm-graph-workbench-qt, cjm-session-scratchpad-qt, cjm-transcript-correction-qt, cjm-transcript-decomp-qt, cjm-transcription-qt, cjm-workflow-hub-qt
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cjm_substrate_qt_kit-0.0.6.tar.gz.
File metadata
- Download URL: cjm_substrate_qt_kit-0.0.6.tar.gz
- Upload date:
- Size: 72.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
965817c431ebc52702de2cb302ca71a33fb163c0cd98de78ee6533cbe2eb084c
|
|
| MD5 |
2c95a03f205a79f95178c9a71a48fe0b
|
|
| BLAKE2b-256 |
c76eb1f83bda93fe560f0dedf29985ef31e084afeb34140cbc317ac45eda595e
|
File details
Details for the file cjm_substrate_qt_kit-0.0.6-py3-none-any.whl.
File metadata
- Download URL: cjm_substrate_qt_kit-0.0.6-py3-none-any.whl
- Upload date:
- Size: 59.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c3c1398f0d402c28fdc975c1fcffe759cb1d0df5b9d229af517bc419af96201a
|
|
| MD5 |
058a91836dd2eff7148db9a07c236c54
|
|
| BLAKE2b-256 |
2ae1a30ca9157bd8736e23fd134bd52b81f95f20ca2238294c0dd2efe17851de
|