Skip to content

0.3.2.10085

Latest

Choose a tag to compare

@hanacryo-bot hanacryo-bot released this 22 Oct 03:39

tail-f_plot v0.3.2

A settings window for every option at runtime, an icon toolbar, and a reader that opens files like tail: a huge file opens at once and memory stays bounded.

Settings window

The new gear button on the toolbar (right of the legend-position button) opens a window that changes any command-line option while the plot keeps running.

  • Display: X axis label and unit, Y unit and per-stack Y units, colors, line width, marker radius, --max-points, --max-x-range, repaint interval, log Y, absolute X.
  • Files: the file groups in command-line order (add a copy, remove, reorder) and a form per file — path with Browse (the file does not have to exist yet), header and data rows, X column and its scale, delimiter, quote, fixed widths, merged delimiters, epoch column — plus a sheet of Y columns, each with a legend name and a stack. Columns can be picked by name from the file's header row, which is read in the background and refreshed while it is shown.
  • Window: --monitor (every monitor listed with its resolution) and --bounds.
  • Command line: the line that starts exactly these settings (the running executable, absolute file paths) with Copy. When the line holds %, a second button copies it for a .cmd file, where every % must be doubled.

How it applies:

  • Every field is checked as you type. A field with a problem turns red with the reason, and so do its tab and its entry in the file list. OK is available while every field is valid; Apply only after a change.
  • Applying goes through the command line: the window writes its settings as arguments and parses them like the real ones, so what is applied is exactly what the copied line starts.
  • Files are read again only when what is read changes (file groups, --max-points, --absolute-x). Everything else applies in place, and hidden series stay hidden as long as the series are the same.
  • The window is modal: owned by the main window and centered on its monitor. The main window keeps updating but takes no input until the settings window closes. Esc cancels (an open drop-down list closes first).
  • Every label and field has a tooltip with its meaning and its command-line option.

Toolbar icons

The toolbar's text buttons and checkboxes are now icon buttons: Home (fit all), Zoom In, Zoom Out, Auto-X, Auto-Y, the Y scale, and Settings.

  • Vector icons drawn every frame: sharp at any DPI, and they follow a live switch of the OS light/dark theme.
  • Zoom In, Zoom Out, Auto-X and Auto-Y are filled while on. The Y scale button shows the current scale (linear or log) and switches to the other one on click.
  • Hover a button for its tooltip.

A lone auto axis fits what is on screen

With both Auto-X and Auto-Y on (the default), nothing changes. With only one of them on, the auto axis now fits only the lines drawn inside the range the other, manual axis shows. Zoom Y to 3–5 K during a cool-down from 300 K and turn Auto-X on: the time axis trims to where the trace is inside that band instead of spanning the hours above it, and keeps growing as new rows land in the band. Auto-Y with a manual X works the same way.

  • A line crossing the band counts over the part inside it, even when both of its points lie outside.
  • Hidden series (legend click) no longer stretch the fit.
  • When nothing is drawn inside the band, the axis keeps its last range.
  • Turning Auto off before the first data no longer lets each stacked sub-plot fit itself, which made the linked X axes drift apart.

Files are read like tail

The file used to be held open, read from the top, and every row stayed in memory. Now:

  • Only the newest --max-points rows are read and kept, on the first load and for every appended burst. A 62 MB / 3 M-row file opened in 1.1 s instead of 6.5 s (debug build), memory stays bounded however long the plot runs, and what is drawn is unchanged.
  • The file is not held open between reads, so a logger can delete and re-create it.
  • A file that is replaced, truncated or rewritten in place is detected (file identity, size, head/tail fingerprints) and read again from scratch. A file that disappears keeps its rows on screen until it comes back.
  • File-change notifications now wake the window as soon as the file changes; polling stays as the fallback.
  • Text that is not UTF-8 (e.g. a CP949 comment column) no longer drops the row, and a UTF-8 BOM is skipped.
  • With --fixed-width, leading spaces are kept, so right-aligned columns no longer shift.

--oneshot: render once, save a PNG

tail-f_plot.exe data.csv --y-cols 2 --oneshot view.png

For automated checks of the rendered view. The window waits until every file is read and the layout is stable, saves a screenshot, prints SCREENSHOT: <absolute path> and exits.

  • Exit codes: 0 = captured once the view settled, 3 = captured after a 15 s settle timeout (e.g. a file that never appeared), 1 = the PNG could not be written, 4 = no screenshot at all.
  • The window opens without taking focus and ignores the mouse, so a cursor over it cannot leave a crosshair or tooltip in the image.
  • --oneshot-settings <TAB> also saves the settings window on that tab (display, files, window, command-line) as <PNG stem>-settings.png.

Other

  • --monitor / --bounds now place this instance's own window. The window used to be found by its title, which could move another instance showing the same files.
  • A window placed on a monitor with another DPI now ends up at the requested position and size.
  • Hangul legend names and file paths render (Malgun Gothic fallback).
  • The legend no longer shows empty parentheses after a value without a unit.
  • --colors with no usable entry falls back to the default palette instead of crashing.
  • New resets for an option inherited from an earlier file group: --y-names "" (back to default names) and --epochtime-proportion 0 (back to following --x-proportion). --fixed-width 0 now means delimiter mode in the first group too.
  • Non-finite Y values break the line instead of being drawn.

Compatibility notes

  • With only one of Auto-X / Auto-Y on, the auto axis fits what is drawn inside the other axis' range, not every row. With both on (the default) the view is unchanged.
  • --y-names "" now means default names; it used to give one series an empty name.
  • Lines must end with LF or CRLF. A bare CR does not end a line.
  • With --fixed-width, columns are counted from the very start of the line; leading spaces are no longer trimmed first.
  • Rows older than the newest --max-points are no longer kept in memory. They were never drawn, so the plot looks the same.

Win32 Signed Thumbprint

  • 1dddd32ca1ec85b6e676c66b8ceaa626ec905908