Skip to content

Release: cross-app clipboard lane — RTF/CSV + format inspection + file drop (v185–v187)#405

Merged
JE-Chen merged 6 commits into
mainfrom
dev
Jun 24, 2026
Merged

Release: cross-app clipboard lane — RTF/CSV + format inspection + file drop (v185–v187)#405
JE-Chen merged 6 commits into
mainfrom
dev

Conversation

@JE-Chen

@JE-Chen JE-Chen commented Jun 24, 2026

Copy link
Copy Markdown
Member

Release: cross-app clipboard lane (v185–v187)

Bundles the completed cross-app clipboard lane — three features extending clipboard / drag-drop interop, each merged to dev CI-green (Codacy 0 / SonarCloud OK / all matrices + Docker).

All three keep the pure codec / classify / pack-and-dispatch logic headless-testable; only the live Win32 clipboard / message I/O is platform-gated. EN/Zh docs (v185–v187) + WHATS_NEW entries included.

JE-Chen added 6 commits June 24, 2026 12:41
rich_clipboard added CF_HTML, but RTF (the format rich editors accept
for styled paste) and the Csv format Excel reads were still missing.
Add both: build_rtf/rtf_to_text build and strip RTF control words and
escapes in pure Python with a unit-testable round-trip, and rows_to_csv/
csv_to_rows wrap the stdlib csv module (delimiter-parametrised for TSV).
The Win32 get/set share one generic byte-transfer helper; codecs are
platform-independent and headless-tested.
…ch-formats-batch

Add clipboard_rich_formats: RTF + CSV/TSV clipboard codecs
The clipboard holds the same content in several formats at once, and
nothing reported which formats were present or detected when that set
changed. Add classify_format/classify_formats (map standard CF_* ids +
registered names to friendly categories), diff_formats (pure monitor
primitive returning added/removed/changed), and a Win32
EnumClipboardFormats enumeration. Classifier and diff are pure and
headless-tested; only the live enumeration is Win32.
…rmats-batch

Add clipboard_formats: classify + diff the clipboard's available formats
clipboard_files stages a file list on the clipboard for Ctrl+V; this
actively drops files onto a target window (the completion of a
drag-and-drop) by posting WM_DROPFILES. Reuses clipboard_files.
build_dropfiles to pack the DROPFILES blob (shared byte layout) and
dispatches through an injectable driver seam, so build-and-dispatch is
unit-testable with a fake driver; the real GlobalAlloc + PostMessage
lives in the default Win32 driver. plan_file_drop is a pure dry-run.
Add file_drop: drop files onto a window via WM_DROPFILES
@codacy-production

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

🟢 Metrics 147 complexity · 4 duplication

Metric Results
Complexity 147
Duplication 4

View in Codacy

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

@JE-Chen JE-Chen merged commit 058dbae into main Jun 24, 2026
17 checks passed
@sonarqubecloud

Copy link
Copy Markdown

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