macos_hackarounds: spurious hacks to support macos (@goodboy's re-work/base) #78

Closed
goodboy wants to merge 5 commits from macos_hackarounds into main

5 Commits (main)

Author SHA1 Message Date
Gud Boi 4cfc2b695f Fix chart axis scaling on UI zoom level change
Again a patch (vibed) from our very own @dnks
(just a commit msg reworking using his new `/commit-msg` skill added by
@goodboy B)

Deats,
- add `Axis.update_fonts()` to recalculate tick font, text offset,
  bounding rect and `pyqtgraph`'s internal text-width/height tracking
  after a zoom change; store `_typical_max_str` at init for later reuse.
- rework `PriceAxis.size_to_values()` and
  `DynamicDateAxis.size_to_values()` to use pyqtgraph's
  `_updateWidth()`/`_updateHeight()` with `updateGeometry()` instead of
  raw `setWidth()`/ `setHeight()` so auto-expand constraints are
  respected.
- fix `GlobalZoomEventFilter` to mask out `KeypadModifier` and
  explicitly require both Ctrl+Shift, letting plain Ctrl+Plus/Minus pass
  through to chart zoom.
- add `_update_chart_axes()` to walk all plot-item axes during
  `_apply_zoom()` and call `splits.resize_sidepanes()` to sync subplot
  widths.

(this commit msg, and likely patch, was generated in some part by
[`claude-code`][claude-code-gh])
[claude-code-gh]: https://github.com/anthropics/claude-code
2026-03-04 22:21:38 -05:00
Gud Boi 22720e33fd gitignore: start a "tina sw" section with `vscode` settings 2026-03-04 21:51:15 -05:00
Gud Boi 98ab543f95 Add global UI font-size zoom scaling (from @dnks)
Add `Ctrl+Shift+Plus/Minus/0` shortcuts for zooming all
UI widget font sizes via a `GlobalZoomEventFilter`
installed at the `QApplication` level.

Deats,
- `.ui._window`: add `GlobalZoomEventFilter` event
  filter class and `MainWindow.zoom_in/out/reset_zoom()`
  methods that reconfigure `DpiAwareFont` with a
  `zoom_level` multiplier then propagate to all child
  widgets.
- `.ui._style`: extend `DpiAwareFont.configure_to_dpi()`
  and `_config_fonts_to_screen()` to accept a
  `zoom_level` float multiplier; cast `px_size` to `int`.
- `.ui._forms`: add `update_fonts()` to `Edit`,
  `Selection`, `FieldsForm` and `FillStatusBar` for
  stylesheet regen.
- `.ui._label`: add `FormatLabel.update_font()` method.
- `.ui._position`: add `SettingsPane.update_fonts()`.
- `.ui._search`: add `update_fonts()` to `CompleterView`
  and `SearchWidget`.
- `.ui._exec`: install the zoom filter on window show.
- `.ui.qt`: import `QObject` from `PyQt6`.

(this commit msg was generated in some part by [`claude-code`][claude-code-gh])
[claude-code-gh]: https://github.com/anthropics/claude-code
2026-03-04 18:24:59 -05:00
Gud Boi 718d4bad25 Revert to checking a `.hist` suffix in shm file name
That is, in-mem history buffer files should have a `.hist` suffix (which
was added back instead of the weird `.h` change from the rebased
8352d89e).

I'm pretty sure we can afford the 3 extra chars if we're already
truncating to a max 16 char `key: str = f'{uuid[:8]}_{fqme_hash}'`, per
@goodboy's edit from the original key-truncation approach in the
original original @dnks patch: 75d8582b).
2026-03-04 18:21:57 -05:00
wygud ae4fb38bde Various patches for macOS (orig from @dnks)
Generally hackarounds to various modules to cope with either
linux-specific runtime incompats, file-name-len limits on macos, or
oddly specific to @dnks' setup config template hardcodings XD

(Obvi this commit msg was edited/reformated by @goodboy, who's also
tossed in interleaved todo bullets around each "change")

Hi-level summary,
- config/conf.toml for updated UI font size and graphics throttle.
  - [ ] remove this since it's a project template.
- piker/cli/__init__.py -> Changed transport from UDP to TCP in service
  manager.
  - [ ] this should be the default anyway, likely it was left that way
    on a dev-testing branch this history was clone from..
- piker/data/_symcache.py -> Added recursive dict cleaning for TOML
  serialization.
- piker/fsp/_api.py -> Hash-based key for shared memory buffers (macOS
  compatibility).
- piker/tsp/__init__.py -> Hash-based key for history buffers for macOS
  compatibility.
  * conflict-reso-note: was adjusted by @goodboy in new code location
    `.tsp._history` mod and keeps the orig keying for linux, only
    shortens on mac.
- piker/ui/_display.py -> Modified SHM name assertion for macOS
  compatibility.

Unmentioned changes noticed by @goodboy,
- adds a new `piker.sh` which should be unnecessary pending proper macos
  support in `tractor` via `platformdirs`,
  * 474f1dc4a7
2026-03-04 18:17:55 -05:00