Copy the statistics table and graph to the clipboard

Copy All takes whichever tab is open, as N1MM's does: the table off the table
tab, a picture of the graph off the graph tab. Copy Table as Text and Copy
Graph as Image do either one from either tab.

`StatisticsTable` lays the pivot out as the window prints it — the headings,
the rows, the Total line — and pads it into columns for the text form, so the
grid, the clipboard and Print to File all say the same thing.

X11 asks for a picture when the other program pastes rather than when it is
copied, so the bitmap given to the clipboard is held until the clipboard is
given a different one. Disposing it at the end of the copy killed the program
on the next paste; the table pasted into a second Avalonia program reads back
lined up, and the picture reads back as a 916x438 bitmap.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PdAYHcdRktqKry7nk414TU
This commit is contained in:
2026-09-04 07:59:22 +00:00
co-authored by Claude Opus 5
parent acd22a9b5e
commit 6e24e00ec8
6 changed files with 271 additions and 77 deletions
+11 -6
View File
@@ -668,12 +668,17 @@ What still differs, and why:
the log under any two of its fields, in N1MM's own two lists — 29 fields down
the rows, 20 of them across the columns — with N1MM's `Tot` and `Accum` columns,
its `Total` line, its "Include Dupes & X-QSOs" box and its stacked column graph.
Left out: printing to a printer, which needs a print dialog this program has
nowhere else, and N1MM's font size spinner, because the theme dialog sets the
fonts here. Copy All copies the table as text on both tabs; N1MM copies the
graph as an image on the graph tab, which the clipboard on Linux would need a
per-toolkit path for, so the graph is written to a PNG through File ▸ Save Graph
instead.
Copy All takes whichever tab is open, as N1MM's does: the table as spaced text
off the table tab, a picture of the graph off the graph tab. File ▸ Copy Table
as Text and File ▸ Copy Graph as Image do either from either tab, and File ▸
Save Graph writes the picture to a PNG. Left out: printing to a printer, which
needs a print dialog this program has nowhere else, and N1MM's font size
spinner, because the theme dialog sets the fonts here.
X11 hands over a picture only when the other program pastes, not when it is
copied, so `StatisticsWindow` holds the bitmap it gave the clipboard until it
gives it a different one. Disposing it at the end of the copy killed the
program on the next paste.
The palette names are N1MM's twelve, which are the .NET chart control's. The
colours are not: they are chosen to match the name, because the control's own